From 276d62815657ef4a089d414fc1d9123567094cf9 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Wed, 13 May 2026 23:00:37 +1000 Subject: [PATCH 01/30] Add JSON / SteVec ingest benches (rebased on functional-indexes-only main) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rebuilds PR #2 on top of current main. The original branch was based on the pre-functional-indexes era and predated the AutoStrategy / cipherstash-client 0.34 migration, so a straight `git rebase` would have regressed the indexing recipe and broken the build. This commit ports the additive value (JSON + SteVec ingest benches, four new binaries, new schema tables, GIN index variant, reporting script extensions) onto current main and modernises along the way. What's new ---------- Four new ingest binaries split JSON ingest into "raw" and "indexed" variants so the SteVec write-amplification cost can be measured directly: - `encrypt_json_small` (no index baseline) - `encrypt_json_large` (no index baseline) - `encrypt_ste_vec_small` (with SteVec index) - `encrypt_ste_vec_large` (with SteVec index) `FakeJsonSmall` and `FakeJsonLarge` data generators move to `src/lib.rs` so all four binaries can share them. `WrappedJson` continues to map to `Plaintext::Json` (the variant `cipherstash-client` 0.34 keeps; PR's original `JsonB` reference was a name change that was reverted before this version). New tables in `sql/schema.sql`: - `json_ste_vec_small_encrypted{,_10000,_100000,_1000000,_10000000}` (5 tables) — the indexed variant at size suffixes for ingest sweeps. - `json_small_encrypted{_10000,_100000,_1000000,_10000000}` (4 tables) — size-suffixed variants of the existing no-index table. New index SQL files under `sql/indexes/`: - `json_ste_vec_small_encrypted{,_10000,_100000,_1000000,_10000000}_{up,down}.sql` — functional GIN over `eql_v2.ste_vec(value)` only. PR #2's original files mixed the GIN index with an `eql_v2.encrypted_operator_class` btree index; the latter is dropped to stay consistent with the functional-indexes-only direction set by #9. mise tasks: - `bench:ingest:_run` now takes ` [num_records]` and truncates the target table between hyperfine iterations. Without the truncate, each iteration ingested on top of the previous run's rows, distorting timings. - New tasks: `bench:ingest:json-{small,large}`, `bench:ingest:json-ste-vec-{small,large}`, and `bench:ingest:json-ste-vec-small-gin` (the GIN-pre-created variant that measures index-write cost amortised over the insert path). - `bench:ingest` umbrella now includes the four ingest types. `report_benchmarks.py` extended with throughput / time / comparison charts and descriptions for the new bench types. What didn't carry forward ------------------------- - PR #2's `Cargo.toml` cipherstash-client downgrade to 0.32.2 (main has 0.34.1-alpha.4). - PR #2's `src/lib.rs` reversion to `ServiceCredentials` and `ZeroKMSConfig::builder()` (main has AutoStrategy). - PR #2's revert of `sql/indexes/{integer,string}_encrypted_*` from functional indexes back to opclass (dropped #9's work). - PR #2's revert of the bench .rs files (`exact`, `match`, `ore`) to pre-inlining-era scenarios. - `benches/json.rs` — empty placeholder in PR #2 with no scenarios; re-add when actual JSON query bench bodies exist. - Auto-generated artefacts (`report/*.png`, `results/*/*.json`, the 10M-row query JSON files from the standalone 10M commit in PR #2). These regenerate when the benches are next run. Verification ------------ - `cargo build --release --bins --benches` clean. - `sql/schema.sql` applies cleanly to the running ore-benches-postgres container (idempotent CREATE TABLE IF NOT EXISTS for pre-existing tables, plus the 9 new ones). --- Cargo.toml | 16 ++ mise.toml | 76 ++++++- report_benchmarks.py | 187 ++++++++++++++++-- ..._ste_vec_small_encrypted_10000000_down.sql | 2 + ...on_ste_vec_small_encrypted_10000000_up.sql | 5 + ...n_ste_vec_small_encrypted_1000000_down.sql | 2 + ...son_ste_vec_small_encrypted_1000000_up.sql | 5 + ...on_ste_vec_small_encrypted_100000_down.sql | 2 + ...json_ste_vec_small_encrypted_100000_up.sql | 5 + ...son_ste_vec_small_encrypted_10000_down.sql | 2 + .../json_ste_vec_small_encrypted_10000_up.sql | 5 + .../json_ste_vec_small_encrypted_down.sql | 1 + .../json_ste_vec_small_encrypted_up.sql | 5 + sql/schema.sql | 45 +++++ src/bin/encrypt_json_large.rs | 140 ++----------- src/bin/encrypt_json_small.rs | 61 ++---- src/bin/encrypt_ste_vec_large.rs | 61 ++++++ src/bin/encrypt_ste_vec_small.rs | 64 ++++++ src/lib.rs | 119 +++++++++++ 19 files changed, 612 insertions(+), 191 deletions(-) create mode 100644 sql/indexes/json_ste_vec_small_encrypted_10000000_down.sql create mode 100644 sql/indexes/json_ste_vec_small_encrypted_10000000_up.sql create mode 100644 sql/indexes/json_ste_vec_small_encrypted_1000000_down.sql create mode 100644 sql/indexes/json_ste_vec_small_encrypted_1000000_up.sql create mode 100644 sql/indexes/json_ste_vec_small_encrypted_100000_down.sql create mode 100644 sql/indexes/json_ste_vec_small_encrypted_100000_up.sql create mode 100644 sql/indexes/json_ste_vec_small_encrypted_10000_down.sql create mode 100644 sql/indexes/json_ste_vec_small_encrypted_10000_up.sql create mode 100644 sql/indexes/json_ste_vec_small_encrypted_down.sql create mode 100644 sql/indexes/json_ste_vec_small_encrypted_up.sql create mode 100644 src/bin/encrypt_ste_vec_large.rs create mode 100644 src/bin/encrypt_ste_vec_small.rs diff --git a/Cargo.toml b/Cargo.toml index 7b89f07..d8d18f7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,6 +38,22 @@ path = "src/bin/encrypt_string.rs" name = "combine_benchmark" path = "src/bin/combine_benchmark.rs" +[[bin]] +name = "encrypt_json_small" +path = "src/bin/encrypt_json_small.rs" + +[[bin]] +name = "encrypt_json_large" +path = "src/bin/encrypt_json_large.rs" + +[[bin]] +name = "encrypt_ste_vec_small" +path = "src/bin/encrypt_ste_vec_small.rs" + +[[bin]] +name = "encrypt_ste_vec_large" +path = "src/bin/encrypt_ste_vec_large.rs" + [[bench]] name = "ore" harness = false diff --git a/mise.toml b/mise.toml index b2f0909..f84339e 100644 --- a/mise.toml +++ b/mise.toml @@ -76,20 +76,27 @@ cargo build --release [tasks."bench:ingest:_run"] description = "Internal: Run a generic ingest benchmark" -depends = ["bench:build"] +depends = ["postgres", "bench:build"] run = """ #!/usr/bin/env bash set -e +[ -f .env ] && set -a && source .env && set +a BENCH_NAME="$1" +TABLE_NAME="$2" +NUM_RECORDS="${3:-500,1000,10000}" -if [ -z "$BENCH_NAME" ]; then - echo "Error: BENCH_NAME argument must be provided" +if [ -z "$BENCH_NAME" ] || [ -z "$TABLE_NAME" ]; then + echo "Error: BENCH_NAME and TABLE_NAME arguments must be provided" + echo "Usage: mise run bench:ingest:_run [num_records]" exit 1 fi echo "Running $BENCH_NAME ingest benchmark..." -mise x -- hyperfine --export-json target/${BENCH_NAME}_hyperfine.json -L num_records 500,1000,10000 --runs 2 "NUM_RECORDS={num_records} ./target/release/$BENCH_NAME" +mise x -- hyperfine --export-json target/${BENCH_NAME}_hyperfine.json \ + -L num_records "${NUM_RECORDS}" --runs 2 \ + --prepare "docker exec ore-benches-postgres psql -U postgres -d postgres -c 'TRUNCATE TABLE ${TABLE_NAME};'" \ + "NUM_RECORDS={num_records} ./target/release/$BENCH_NAME" echo "Combining results..." ./target/release/combine_benchmark "$BENCH_NAME" @@ -99,19 +106,68 @@ echo "Benchmark complete! Results written to results/ingest/${BENCH_NAME}_combin [tasks."bench:ingest:encrypt_int"] description = "Run encrypt_int ingest benchmark and combine results" -run = "mise run bench:ingest:_run encrypt_int" +run = "mise run bench:ingest:_run encrypt_int integer_encrypted" [tasks."bench:ingest:encrypt_string"] description = "Run encrypt_string ingest benchmark and combine results" -run = "mise run bench:ingest:_run encrypt_string" +run = "mise run bench:ingest:_run encrypt_string string_encrypted" + +[tasks."bench:ingest:json-small"] +description = "Run encrypt_json_small (no-index baseline) ingest benchmark" +run = "mise run bench:ingest:_run encrypt_json_small json_small_encrypted" + +[tasks."bench:ingest:json-large"] +description = "Run encrypt_json_large (no-index baseline) ingest benchmark" +run = "mise run bench:ingest:_run encrypt_json_large json_large_encrypted" + +[tasks."bench:ingest:json-ste-vec-small"] +description = "Run encrypt_ste_vec_small (SteVec-indexed) ingest benchmark" +run = "mise run bench:ingest:_run encrypt_ste_vec_small json_ste_vec_small_encrypted $1" + +[tasks."bench:ingest:json-ste-vec-small-gin"] +description = "Run encrypt_ste_vec_small ingest benchmark with the GIN index pre-created (measures index-write cost amortised over insert path)" +depends = ["postgres", "bench:build"] +run = """ +#!/usr/bin/env bash +set -e +[ -f .env ] && set -a && source .env && set +a + +BENCH_NAME="encrypt_ste_vec_small" +TABLE_NAME="json_ste_vec_small_encrypted" +NUM_RECORDS="${1:-500,1000,10000}" + +echo "Waiting for PostgreSQL to be ready..." +until docker exec ore-benches-postgres pg_isready -U postgres > /dev/null 2>&1; do + sleep 1 +done + +echo "Truncating table and creating GIN index before ingest..." +docker exec -i ore-benches-postgres psql -v ON_ERROR_STOP=1 -U postgres -d postgres -c "TRUNCATE TABLE ${TABLE_NAME};" +docker exec -i ore-benches-postgres psql -v ON_ERROR_STOP=1 -U postgres -d postgres < sql/indexes/${TABLE_NAME}_down.sql +docker exec -i ore-benches-postgres psql -v ON_ERROR_STOP=1 -U postgres -d postgres < sql/indexes/${TABLE_NAME}_up.sql + +echo "Running $BENCH_NAME ingest benchmark (with GIN index)..." +mkdir -p results/ingest +hyperfine --export-json results/ingest/${BENCH_NAME}_gin_hyperfine.json \ + -L num_records "${NUM_RECORDS}" --runs 2 \ + --prepare "docker exec ore-benches-postgres psql -U postgres -d postgres -c 'TRUNCATE TABLE ${TABLE_NAME};'" \ + "NUM_RECORDS={num_records} ./target/release/$BENCH_NAME" + +echo "Benchmark complete! Results written to results/ingest/${BENCH_NAME}_gin_hyperfine.json" +""" -[tasks."bench:ingest:encrypt_json_small"] -description = "Run encrypt_json_small ingest benchmark and combine results" -run = "mise run bench:ingest:_run encrypt_json_small" +[tasks."bench:ingest:json-ste-vec-large"] +description = "Run encrypt_ste_vec_large (SteVec-indexed) ingest benchmark" +run = "mise run bench:ingest:_run encrypt_ste_vec_large json_large_encrypted" [tasks."bench:ingest"] description = "Run all ingest benchmarks sequentially" -depends = ["bench:ingest:encrypt_int", "bench:ingest:encrypt_string", "bench:ingest:encrypt_json_small"] +depends = [ + "bench:ingest:encrypt_int", + "bench:ingest:encrypt_string", + "bench:ingest:json-small", + "bench:ingest:json-large", +] [tasks."prepare:_table"] description = "Internal: Prepare a table with target row count" diff --git a/report_benchmarks.py b/report_benchmarks.py index 35c7700..f5ccbe5 100755 --- a/report_benchmarks.py +++ b/report_benchmarks.py @@ -60,7 +60,7 @@ def load_ingest_results(self): """Load ingest benchmark results""" ingest_dir = self.results_dir / "ingest" - for bench_type in ["int", "json_small", "string"]: + for bench_type in ["int", "json_small", "json_large", "string", "ste_vec_small", "ste_vec_large"]: file_path = ingest_dir / f"encrypt_{bench_type}_combined.json" if not file_path.exists(): @@ -342,6 +342,14 @@ def _write_header(self, f): f.write("This report summarizes the performance benchmarks for encrypted database operations.\n\n") f.write("## Table of Contents\n\n") f.write("1. [Ingest Throughput](#ingest-throughput)\n") + + # Add subsections for each ingest type + ingest_types = sorted(set(r.bench_type for r in self.ingest_results)) + for it in ingest_types: + title = it.replace('_', ' ').title() + anchor = it.replace('_', '-') + f.write(f" - [{title}](#{anchor})\n") + f.write("2. [Query Performance](#query-performance)\n") # Add subsections for each query type @@ -355,10 +363,14 @@ def _write_ingest_section(self, f): f.write("## Ingest Throughput\n\n") f.write("This section measures the throughput of inserting encrypted records into the database.\n\n") - # Group by bench_type - types = ["int", "json_small", "string"] + # Add comparison charts at the top if matplotlib is available + if HAS_MATPLOTLIB: + self._write_comparison_charts(f) + + # Group by bench_type - use all types found in results + ingest_types = sorted(set(r.bench_type for r in self.ingest_results)) - for bench_type in types: + for bench_type in ingest_types: results = [r for r in self.ingest_results if r.bench_type == bench_type] if not results: continue @@ -368,12 +380,18 @@ def _write_ingest_section(self, f): f.write(f"### {bench_type.replace('_', ' ').title()}\n\n") - if bench_type == "int": - f.write("Tests insertion of encrypted integer values.\n\n") - elif bench_type == "json_small": - f.write("Tests insertion of small encrypted JSON objects.\n\n") - elif bench_type == "string": - f.write("Tests insertion of encrypted string values.\n\n") + # Add descriptions for each type + descriptions = { + "int": "Tests insertion of encrypted integer values.", + "json_small": "Tests insertion of small encrypted JSON objects (first_name, last_name, age, email).", + "json_large": "Tests insertion of large encrypted JSON objects with complex nested structures (user info, company, addresses, orders).", + "string": "Tests insertion of encrypted string values.", + "ste_vec_small": "Tests insertion of small JSON objects with SteVec (searchable encrypted vector) indexing.", + "ste_vec_large": "Tests insertion of large JSON objects with SteVec (searchable encrypted vector) indexing.", + } + + if bench_type in descriptions: + f.write(f"{descriptions[bench_type]}\n\n") # Table f.write("| Records | Throughput (records/sec) | Total Time | Avg Memory |\n") @@ -385,13 +403,19 @@ def _write_ingest_section(self, f): f.write("\n") - # Generate chart if matplotlib is available + # Generate charts if matplotlib is available if HAS_MATPLOTLIB: - chart_path = self.output_file.parent / f"ingest_{bench_type}_chart.png" - self._create_ingest_chart(results, bench_type, chart_path) - f.write(f"![Ingest Throughput - {bench_type}]({chart_path.name})\n\n") + # Throughput chart + throughput_chart_path = self.output_file.parent / f"ingest_{bench_type}_throughput_chart.png" + self._create_ingest_throughput_chart(results, bench_type, throughput_chart_path) + f.write(f"![Ingest Throughput - {bench_type}]({throughput_chart_path.name})\n\n") + + # Total time chart + time_chart_path = self.output_file.parent / f"ingest_{bench_type}_time_chart.png" + self._create_ingest_time_chart(results, bench_type, time_chart_path) + f.write(f"![Ingest Total Time - {bench_type}]({time_chart_path.name})\n\n") - def _create_ingest_chart(self, results: List[IngestResult], bench_type: str, output_path: Path): + def _create_ingest_throughput_chart(self, results: List[IngestResult], bench_type: str, output_path: Path): """Create a bar chart for ingest throughput""" fig, ax = plt.subplots(figsize=(10, 6)) @@ -406,6 +430,134 @@ def _create_ingest_chart(self, results: List[IngestResult], bench_type: str, out ax.set_xticklabels([f"{r:,}" for r in records]) ax.grid(axis='y', alpha=0.3) + # Add "larger is better" annotation + ax.text(0.98, 0.98, 'larger is better ↑', transform=ax.transAxes, + fontsize=11, verticalalignment='top', horizontalalignment='right', + bbox=dict(boxstyle='round', facecolor='wheat', alpha=0.5)) + + plt.tight_layout() + plt.savefig(output_path, dpi=100, bbox_inches='tight') + plt.close() + + def _create_ingest_time_chart(self, results: List[IngestResult], bench_type: str, output_path: Path): + """Create a bar chart for total ingest time""" + fig, ax = plt.subplots(figsize=(10, 6)) + + records = [r.num_records for r in results] + times = [r.total_time for r in results] + + ax.bar(range(len(records)), times, color='coral') + ax.set_xlabel('Number of Records') + ax.set_ylabel('Total Time (seconds)') + ax.set_title(f'Ingest Total Time - {bench_type.replace("_", " ").title()}') + ax.set_xticks(range(len(records))) + ax.set_xticklabels([f"{r:,}" for r in records]) + ax.grid(axis='y', alpha=0.3) + + # Add "smaller is better" annotation + ax.text(0.98, 0.98, 'smaller is better ↓', transform=ax.transAxes, + fontsize=11, verticalalignment='top', horizontalalignment='right', + bbox=dict(boxstyle='round', facecolor='lightblue', alpha=0.5)) + + plt.tight_layout() + plt.savefig(output_path, dpi=100, bbox_inches='tight') + plt.close() + + def _write_comparison_charts(self, f): + """Write comparison charts for all benchmark types at 10000 rows""" + target_row_count = 10000 + + # Get results for each bench type at target row count + comparison_data = {} + for result in self.ingest_results: + if result.num_records == target_row_count: + comparison_data[result.bench_type] = result + + if len(comparison_data) < 2: + # Not enough data for comparison + return + + f.write(f"### Comparison at {target_row_count:,} Records\n\n") + f.write(f"Comparing all benchmark types at {target_row_count:,} records.\n\n") + + # Create throughput comparison chart + throughput_chart_path = self.output_file.parent / f"ingest_comparison_throughput_{target_row_count}.png" + self._create_comparison_throughput_chart(comparison_data, target_row_count, throughput_chart_path) + f.write(f"![Throughput Comparison at {target_row_count:,} records]({throughput_chart_path.name})\n\n") + + # Create time comparison chart + time_chart_path = self.output_file.parent / f"ingest_comparison_time_{target_row_count}.png" + self._create_comparison_time_chart(comparison_data, target_row_count, time_chart_path) + f.write(f"![Total Time Comparison at {target_row_count:,} records]({time_chart_path.name})\n\n") + + # Create time comparison chart without ste_vec_large + filtered_data = {k: v for k, v in comparison_data.items() if k != 'ste_vec_large'} + if len(filtered_data) >= 2: + time_chart_path_filtered = self.output_file.parent / f"ingest_comparison_time_{target_row_count}_filtered.png" + self._create_comparison_time_chart(filtered_data, target_row_count, time_chart_path_filtered, exclude_label='ste_vec_large') + f.write(f"![Total Time Comparison at {target_row_count:,} records (excluding ste_vec_large)]({time_chart_path_filtered.name})\n\n") + + def _create_comparison_throughput_chart(self, comparison_data: Dict[str, IngestResult], + row_count: int, output_path: Path): + """Create a bar chart comparing throughput across all benchmark types""" + fig, ax = plt.subplots(figsize=(12, 6)) + + # Sort by throughput descending (highest on left) + sorted_items = sorted(comparison_data.items(), key=lambda x: x[1].throughput, reverse=True) + bench_types = [item[0] for item in sorted_items] + labels = [bt.replace('_', ' ').title() for bt in bench_types] + throughputs = [comparison_data[bt].throughput for bt in bench_types] + + # Use different colors for each bar + colors = plt.cm.Set3(range(len(bench_types))) + + ax.bar(range(len(bench_types)), throughputs, color=colors) + ax.set_xlabel('Benchmark Type', fontsize=12) + ax.set_ylabel('Throughput (records/sec)', fontsize=12) + ax.set_title(f'Ingest Throughput Comparison at {row_count:,} Records', fontsize=14, fontweight='bold') + ax.set_xticks(range(len(bench_types))) + ax.set_xticklabels(labels, rotation=45, ha='right') + ax.grid(axis='y', alpha=0.3) + + # Add "larger is better" annotation + ax.text(0.98, 0.98, 'larger is better ↑', transform=ax.transAxes, + fontsize=11, verticalalignment='top', horizontalalignment='right', + bbox=dict(boxstyle='round', facecolor='wheat', alpha=0.5)) + + plt.tight_layout() + plt.savefig(output_path, dpi=100, bbox_inches='tight') + plt.close() + + def _create_comparison_time_chart(self, comparison_data: Dict[str, IngestResult], + row_count: int, output_path: Path, exclude_label: str = None): + """Create a bar chart comparing total time across all benchmark types""" + fig, ax = plt.subplots(figsize=(12, 6)) + + # Sort by throughput descending (highest on left) to match throughput chart order + sorted_items = sorted(comparison_data.items(), key=lambda x: x[1].throughput, reverse=True) + bench_types = [item[0] for item in sorted_items] + labels = [bt.replace('_', ' ').title() for bt in bench_types] + times = [comparison_data[bt].total_time for bt in bench_types] + + # Use different colors for each bar + colors = plt.cm.Set2(range(len(bench_types))) + + ax.bar(range(len(bench_types)), times, color=colors) + ax.set_xlabel('Benchmark Type', fontsize=12) + ax.set_ylabel('Total Time (seconds)', fontsize=12) + title = f'Total Ingest Time Comparison at {row_count:,} Records' + if exclude_label: + title += f' (excluding {exclude_label.replace("_", " ").title()})' + ax.set_title(title, fontsize=14, fontweight='bold') + ax.set_xticks(range(len(bench_types))) + ax.set_xticklabels(labels, rotation=45, ha='right') + ax.grid(axis='y', alpha=0.3) + + # Add "smaller is better" annotation + ax.text(0.98, 0.98, 'smaller is better ↓', transform=ax.transAxes, + fontsize=11, verticalalignment='top', horizontalalignment='right', + bbox=dict(boxstyle='round', facecolor='lightblue', alpha=0.5)) + plt.tight_layout() plt.savefig(output_path, dpi=100, bbox_inches='tight') plt.close() @@ -538,6 +690,11 @@ def _create_query_chart(self, results: List[QueryResult], query_type: str, ax.set_xticks(row_counts) ax.set_xticklabels([f"{r:,}" for r in row_counts]) + # Add "smaller is better" annotation + ax.text(0.98, 0.98, 'smaller is better ↓', transform=ax.transAxes, + fontsize=11, verticalalignment='top', horizontalalignment='right', + bbox=dict(boxstyle='round', facecolor='lightblue', alpha=0.5)) + plt.tight_layout() plt.savefig(output_path, dpi=100, bbox_inches='tight') plt.close() diff --git a/sql/indexes/json_ste_vec_small_encrypted_10000000_down.sql b/sql/indexes/json_ste_vec_small_encrypted_10000000_down.sql new file mode 100644 index 0000000..8daaf43 --- /dev/null +++ b/sql/indexes/json_ste_vec_small_encrypted_10000000_down.sql @@ -0,0 +1,2 @@ +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_10000000_ste_vec_index; +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_10000000_eql_index; diff --git a/sql/indexes/json_ste_vec_small_encrypted_10000000_up.sql b/sql/indexes/json_ste_vec_small_encrypted_10000000_up.sql new file mode 100644 index 0000000..ee4392c --- /dev/null +++ b/sql/indexes/json_ste_vec_small_encrypted_10000000_up.sql @@ -0,0 +1,5 @@ +CREATE INDEX +json_ste_vec_small_encrypted_10000000_ste_vec_index +ON json_ste_vec_small_encrypted_10000000 USING GIN ( + eql_v2.ste_vec(value) +); diff --git a/sql/indexes/json_ste_vec_small_encrypted_1000000_down.sql b/sql/indexes/json_ste_vec_small_encrypted_1000000_down.sql new file mode 100644 index 0000000..ef0a53d --- /dev/null +++ b/sql/indexes/json_ste_vec_small_encrypted_1000000_down.sql @@ -0,0 +1,2 @@ +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_1000000_ste_vec_index; +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_1000000_eql_index; diff --git a/sql/indexes/json_ste_vec_small_encrypted_1000000_up.sql b/sql/indexes/json_ste_vec_small_encrypted_1000000_up.sql new file mode 100644 index 0000000..a1d44c3 --- /dev/null +++ b/sql/indexes/json_ste_vec_small_encrypted_1000000_up.sql @@ -0,0 +1,5 @@ +CREATE INDEX +json_ste_vec_small_encrypted_1000000_ste_vec_index +ON json_ste_vec_small_encrypted_1000000 USING GIN ( + eql_v2.ste_vec(value) +); diff --git a/sql/indexes/json_ste_vec_small_encrypted_100000_down.sql b/sql/indexes/json_ste_vec_small_encrypted_100000_down.sql new file mode 100644 index 0000000..3a8992f --- /dev/null +++ b/sql/indexes/json_ste_vec_small_encrypted_100000_down.sql @@ -0,0 +1,2 @@ +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_100000_ste_vec_index; +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_100000_eql_index; diff --git a/sql/indexes/json_ste_vec_small_encrypted_100000_up.sql b/sql/indexes/json_ste_vec_small_encrypted_100000_up.sql new file mode 100644 index 0000000..328bedb --- /dev/null +++ b/sql/indexes/json_ste_vec_small_encrypted_100000_up.sql @@ -0,0 +1,5 @@ +CREATE INDEX +json_ste_vec_small_encrypted_100000_ste_vec_index +ON json_ste_vec_small_encrypted_100000 USING GIN ( + eql_v2.ste_vec(value) +); diff --git a/sql/indexes/json_ste_vec_small_encrypted_10000_down.sql b/sql/indexes/json_ste_vec_small_encrypted_10000_down.sql new file mode 100644 index 0000000..e1955ee --- /dev/null +++ b/sql/indexes/json_ste_vec_small_encrypted_10000_down.sql @@ -0,0 +1,2 @@ +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_10000_ste_vec_index; +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_10000_eql_index; diff --git a/sql/indexes/json_ste_vec_small_encrypted_10000_up.sql b/sql/indexes/json_ste_vec_small_encrypted_10000_up.sql new file mode 100644 index 0000000..f34d49a --- /dev/null +++ b/sql/indexes/json_ste_vec_small_encrypted_10000_up.sql @@ -0,0 +1,5 @@ +CREATE INDEX +json_ste_vec_small_encrypted_10000_ste_vec_index +ON json_ste_vec_small_encrypted_10000 USING GIN ( + eql_v2.ste_vec(value) +); diff --git a/sql/indexes/json_ste_vec_small_encrypted_down.sql b/sql/indexes/json_ste_vec_small_encrypted_down.sql new file mode 100644 index 0000000..169783e --- /dev/null +++ b/sql/indexes/json_ste_vec_small_encrypted_down.sql @@ -0,0 +1 @@ +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_ste_vec_index; diff --git a/sql/indexes/json_ste_vec_small_encrypted_up.sql b/sql/indexes/json_ste_vec_small_encrypted_up.sql new file mode 100644 index 0000000..9e14ab4 --- /dev/null +++ b/sql/indexes/json_ste_vec_small_encrypted_up.sql @@ -0,0 +1,5 @@ +CREATE INDEX +json_ste_vec_small_encrypted_ste_vec_index +ON json_ste_vec_small_encrypted USING GIN ( + eql_v2.ste_vec(value) +); diff --git a/sql/schema.sql b/sql/schema.sql index 1df34b5..7af5d1a 100644 --- a/sql/schema.sql +++ b/sql/schema.sql @@ -63,11 +63,56 @@ CREATE TABLE IF NOT EXISTS json_small_plaintext ( value JSONB NOT NULL ); +CREATE TABLE IF NOT EXISTS json_ste_vec_small_encrypted ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS json_ste_vec_small_encrypted_10000 ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS json_ste_vec_small_encrypted_100000 ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS json_ste_vec_small_encrypted_1000000 ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS json_ste_vec_small_encrypted_10000000 ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + CREATE TABLE IF NOT EXISTS json_small_encrypted ( id SERIAL PRIMARY KEY, value eql_v2_encrypted NOT NULL ); +CREATE TABLE IF NOT EXISTS json_small_encrypted_10000 ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS json_small_encrypted_100000 ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS json_small_encrypted_1000000 ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS json_small_encrypted_10000000 ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + CREATE TABLE IF NOT EXISTS json_large_plaintext ( id SERIAL PRIMARY KEY, value JSONB NOT NULL diff --git a/src/bin/encrypt_json_large.rs b/src/bin/encrypt_json_large.rs index 6f3da6d..9e580bb 100644 --- a/src/bin/encrypt_json_large.rs +++ b/src/bin/encrypt_json_large.rs @@ -2,135 +2,26 @@ //! //! This binary generates large, complex JSON objects containing user information, company //! details, addresses, and order history using the fake crate. The objects are encrypted -//! using the cipherstash-client library with SteVec indexing and stored in the -//! json_large_encrypted table. -//! -//! The encrypted JSON objects support: -//! - Searchable encrypted vectors (SteVec) for term-based searches +//! using the cipherstash-client library WITHOUT any searchable indexes. It is the baseline +//! that pairs with `encrypt_ste_vec_large` to quantify the ingest cost of SteVec indexing +//! on large payloads. //! //! Environment variables: //! - DATABASE_URL: PostgreSQL connection string //! - NUM_RECORDS: Number of records to generate (default: 10000) +//! - BATCH_SIZE: Number of records per batch insert (default: 1000) //! - CS_CLIENT_ID: CipherStash client ID -//! - CS_CLIENT_KEY: CipherStash client key +//! - CS_CLIENT_KEY: CipherStash client key //! - CS_WORKSPACE_CRN: CipherStash workspace CRN use anyhow::Result; use cipherstash_client::{ eql::Identifier, - schema::{ - column::{ArrayIndexMode, Index, IndexType}, - ColumnConfig, ColumnType, - }, -}; -use dbbenches::{IngestOptionsBuilder, WrappedJson}; -use fake::{ - faker::{address, chrono, company, internet, name, phone_number}, - Dummy, Fake, Rng, + schema::{ColumnConfig, ColumnType}, }; -use serde_json::json; +use dbbenches::{FakeJsonLarge, IngestOptionsBuilder, WrappedJson}; use std::env; -struct FakeJsonLarge; - -// FIXME: cipherstash-client doesn't have a From for Plaintext impl yet, so we use String here -impl Dummy for WrappedJson { - fn dummy_with_rng(_config: &FakeJsonLarge, _: &mut R) -> Self { - let department = [ - "Engineering", - "Sales", - "Marketing", - "HR", - "Finance", - "Operations", - ] - .iter() - .take((1..6).fake()) - .last() - .unwrap() - .to_string(); - let type_ = ["Home", "Work", "Billing", "Shipping"] - .iter() - .take((1..4).fake()) - .last() - .unwrap() - .to_string(); - let status = [ - "Pending", - "Processing", - "Shipped", - "Delivered", - "Cancelled", - "Returned", - ] - .iter() - .take((1..6).fake()) - .last() - .unwrap() - .to_string(); - let relationship = ["Spouse", "Parent", "Sibling", "Friend", "Other"] - .iter() - .take((1..5).fake()) - .last() - .unwrap() - .to_string(); - - let value = json!({ - "user": { - "first_name": name::en::FirstName().fake::(), - "last_name": name::en::LastName().fake::(), - "age": (18..=99).fake::(), - "email": internet::en::FreeEmail().fake::(), - "username": internet::en::Username().fake::(), - "contact": { - "phone": phone_number::en::PhoneNumber().fake::(), - "mobile": phone_number::en::CellNumber().fake::(), - "emergency_contact": { - "name": name::en::Name().fake::(), - "phone": phone_number::en::PhoneNumber().fake::(), - "relationship": relationship - } - } - }, - "company": { - "name": company::en::CompanyName().fake::(), - "industry": company::en::Industry().fake::(), - "position": company::en::Profession().fake::(), - "department": department, - "salary": (40000..=300000).fake::(), - "start_date": chrono::en::Date().fake::() - }, - "addresses": (0..(1..4).fake::()).map(|_| { - json!({ - "type": type_, - "street": address::en::StreetName().fake::(), - "city": address::en::CityName().fake::(), - "state": address::en::StateName().fake::(), - "zip": address::en::ZipCode().fake::(), - "country": "United States" - }) - }).collect::>(), - "orders": (0..(5..=20).fake::()).map(|_| { - json!({ - "order_id": format!("ORD-{}", (100000..=999999).fake::()), - "date": chrono::en::Date().fake::(), - "total": (10.0..=5000.0).fake::(), - "status": status, - "items": (0..(1..=8).fake::()).map(|_| { - json!({ - "product": company::en::Buzzword().fake::(), - "quantity": (1..=10).fake::(), - "price": (5.0..=500.0).fake::() - }) - }).collect::>() - }) - }).collect::>() - }); - - WrappedJson(value) - } -} - #[tokio::main] async fn main() -> Result<()> { let num_records: i32 = env::var("NUM_RECORDS") @@ -138,19 +29,18 @@ async fn main() -> Result<()> { .parse() .expect("NUM_RECORDS must be a valid integer"); + let batch_size: usize = env::var("BATCH_SIZE") + .unwrap_or_else(|_| "1000".to_string()) + .parse() + .expect("BATCH_SIZE must be a valid integer"); + IngestOptionsBuilder::new("encrypt_json_large") .num_records(num_records) - .batch_size(1000) + .batch_size(batch_size) .identifier(Identifier::new("json_large_encrypted", "value")) .column_config( - ColumnConfig::build("value") - .casts_as(ColumnType::Json) - // FIXME: There is no convenience method for SteVec yet on Index - .add_index(Index::new(IndexType::SteVec { - prefix: "value".to_string(), - term_filters: Default::default(), - array_index_mode: ArrayIndexMode::default(), - })), + // No searchable indexes — pure encryption-and-ingest baseline. + ColumnConfig::build("value").casts_as(ColumnType::Json), ) .build()? .ingest::(FakeJsonLarge) diff --git a/src/bin/encrypt_json_small.rs b/src/bin/encrypt_json_small.rs index 164fc94..6178cef 100644 --- a/src/bin/encrypt_json_small.rs +++ b/src/bin/encrypt_json_small.rs @@ -1,50 +1,27 @@ //! Encrypt small JSON data binary - encrypts generated JSON objects using CipherStash //! //! This binary generates small JSON objects (first_name, last_name, age, email) using -//! the fake crate and encrypts them using the cipherstash-client library with SteVec -//! indexing, storing the encrypted values in the json_small_encrypted table. -//! -//! The encrypted JSON objects support: -//! - Searchable encrypted vectors (SteVec) for term-based searches +//! the fake crate and encrypts them using the cipherstash-client library WITHOUT any +//! searchable indexes. It is the baseline that pairs with `encrypt_ste_vec_small` to +//! quantify the ingest cost of SteVec indexing. //! //! Environment variables: //! - DATABASE_URL: PostgreSQL connection string //! - NUM_RECORDS: Number of records to generate (default: 10000) +//! - BATCH_SIZE: Number of records per batch insert (default: 1000) +//! - TABLE_SUFFIX: Optional suffix for table name (e.g., _10000) //! - CS_CLIENT_ID: CipherStash client ID -//! - CS_CLIENT_KEY: CipherStash client key +//! - CS_CLIENT_KEY: CipherStash client key //! - CS_WORKSPACE_CRN: CipherStash workspace CRN use anyhow::Result; use cipherstash_client::{ eql::Identifier, - schema::{ - column::{ArrayIndexMode, Index, IndexType}, - ColumnConfig, ColumnType, - }, -}; -use dbbenches::{IngestOptionsBuilder, WrappedJson}; -use fake::{ - faker::{internet, name}, - Dummy, Fake, Rng, + schema::{ColumnConfig, ColumnType}, }; -use serde_json::json; +use dbbenches::{FakeJsonSmall, IngestOptionsBuilder, WrappedJson}; use std::env; -struct FakeJsonSmall; - -// FIXME: cipherstash-client doesn't have a From for Plaintext impl yet, so we use String here -impl Dummy for WrappedJson { - fn dummy_with_rng(_config: &FakeJsonSmall, _: &mut R) -> Self { - let value = json!({ - "first_name": name::en::FirstName().fake::(), - "last_name": name::en::LastName().fake::(), - "age": (18..=99).fake::(), - "email": internet::en::FreeEmail().fake::(), - }); - WrappedJson(value) - } -} - #[tokio::main] async fn main() -> Result<()> { let num_records: i32 = env::var("NUM_RECORDS") @@ -52,19 +29,21 @@ async fn main() -> Result<()> { .parse() .expect("NUM_RECORDS must be a valid integer"); + let batch_size: usize = env::var("BATCH_SIZE") + .unwrap_or_else(|_| "1000".to_string()) + .parse() + .expect("BATCH_SIZE must be a valid integer"); + + let table_suffix = env::var("TABLE_SUFFIX").unwrap_or_default(); + let table_name = format!("json_small_encrypted{}", table_suffix); + IngestOptionsBuilder::new("encrypt_json_small") .num_records(num_records) - .batch_size(1000) - .identifier(Identifier::new("json_small_encrypted", "value")) + .batch_size(batch_size) + .identifier(Identifier::new(&table_name, "value")) .column_config( - ColumnConfig::build("value") - .casts_as(ColumnType::Json) - // FIXME: There is no convenience method for SteVec yet on Index - .add_index(Index::new(IndexType::SteVec { - prefix: "value".to_string(), - term_filters: Default::default(), - array_index_mode: ArrayIndexMode::default(), - })), + // No searchable indexes — pure encryption-and-ingest baseline. + ColumnConfig::build("value").casts_as(ColumnType::Json), ) .build()? .ingest::(FakeJsonSmall) diff --git a/src/bin/encrypt_ste_vec_large.rs b/src/bin/encrypt_ste_vec_large.rs new file mode 100644 index 0000000..8dab2b4 --- /dev/null +++ b/src/bin/encrypt_ste_vec_large.rs @@ -0,0 +1,61 @@ +//! Encrypt large JSON data binary - encrypts generated complex JSON objects using CipherStash +//! +//! This binary generates large, complex JSON objects containing user information, company +//! details, addresses, and order history using the fake crate. The objects are encrypted +//! using the cipherstash-client library with SteVec indexing and stored in the +//! json_large_encrypted table. +//! +//! The encrypted JSON objects support: +//! - Searchable encrypted vectors (SteVec) for term-based searches +//! +//! Environment variables: +//! - DATABASE_URL: PostgreSQL connection string +//! - NUM_RECORDS: Number of records to generate (default: 10000) +//! - BATCH_SIZE: Number of records per batch insert (default: 1000) +//! - CS_CLIENT_ID: CipherStash client ID +//! - CS_CLIENT_KEY: CipherStash client key +//! - CS_WORKSPACE_CRN: CipherStash workspace CRN + +use anyhow::Result; +use cipherstash_client::{ + eql::Identifier, + schema::{ + column::{ArrayIndexMode, Index, IndexType}, + ColumnConfig, ColumnType, + }, +}; +use dbbenches::{FakeJsonLarge, IngestOptionsBuilder, WrappedJson}; +use std::env; + +#[tokio::main] +async fn main() -> Result<()> { + let num_records: i32 = env::var("NUM_RECORDS") + .unwrap_or_else(|_| "10000".to_string()) + .parse() + .expect("NUM_RECORDS must be a valid integer"); + + let batch_size: usize = env::var("BATCH_SIZE") + .unwrap_or_else(|_| "1000".to_string()) + .parse() + .expect("BATCH_SIZE must be a valid integer"); + + IngestOptionsBuilder::new("encrypt_ste_vec_large") + .num_records(num_records) + .batch_size(batch_size) + .identifier(Identifier::new("json_large_encrypted", "value")) + .column_config( + ColumnConfig::build("value") + .casts_as(ColumnType::Json) + // FIXME: There is no convenience method for SteVec yet on Index + .add_index(Index::new(IndexType::SteVec { + prefix: "value".to_string(), + term_filters: Default::default(), + array_index_mode: ArrayIndexMode::default(), + })), + ) + .build()? + .ingest::(FakeJsonLarge) + .await?; + + Ok(()) +} diff --git a/src/bin/encrypt_ste_vec_small.rs b/src/bin/encrypt_ste_vec_small.rs new file mode 100644 index 0000000..9f6005a --- /dev/null +++ b/src/bin/encrypt_ste_vec_small.rs @@ -0,0 +1,64 @@ +//! Encrypt small JSON data binary - encrypts generated JSON objects using CipherStash +//! +//! This binary generates small JSON objects (first_name, last_name, age, email) using +//! the fake crate and encrypts them using the cipherstash-client library with SteVec +//! indexing, storing the encrypted values in the json_small_encrypted table. +//! +//! The encrypted JSON objects support: +//! - Searchable encrypted vectors (SteVec) for term-based searches +//! +//! Environment variables: +//! - DATABASE_URL: PostgreSQL connection string +//! - NUM_RECORDS: Number of records to generate (default: 10000) +//! - BATCH_SIZE: Number of records per batch insert (default: 1000) +//! - TABLE_SUFFIX: Optional suffix for table name (e.g., _10000) +//! - CS_CLIENT_ID: CipherStash client ID +//! - CS_CLIENT_KEY: CipherStash client key +//! - CS_WORKSPACE_CRN: CipherStash workspace CRN + +use anyhow::Result; +use cipherstash_client::{ + eql::Identifier, + schema::{ + column::{ArrayIndexMode, Index, IndexType}, + ColumnConfig, ColumnType, + }, +}; +use dbbenches::{FakeJsonSmall, IngestOptionsBuilder, WrappedJson}; +use std::env; + +#[tokio::main] +async fn main() -> Result<()> { + let num_records: i32 = env::var("NUM_RECORDS") + .unwrap_or_else(|_| "10000".to_string()) + .parse() + .expect("NUM_RECORDS must be a valid integer"); + + let batch_size: usize = env::var("BATCH_SIZE") + .unwrap_or_else(|_| "1000".to_string()) + .parse() + .expect("BATCH_SIZE must be a valid integer"); + + let table_suffix = env::var("TABLE_SUFFIX").unwrap_or_default(); + let table_name = format!("json_ste_vec_small_encrypted{}", table_suffix); + + IngestOptionsBuilder::new("encrypt_ste_vec_small") + .num_records(num_records) + .batch_size(batch_size) + .identifier(Identifier::new(&table_name, "value")) + .column_config( + ColumnConfig::build("value") + .casts_as(ColumnType::Json) + // FIXME: There is no convenience method for SteVec yet on Index + .add_index(Index::new(IndexType::SteVec { + prefix: "value".to_string(), + term_filters: Default::default(), + array_index_mode: ArrayIndexMode::default(), + })), + ) + .build()? + .ingest::(FakeJsonSmall) + .await?; + + Ok(()) +} diff --git a/src/lib.rs b/src/lib.rs index eb15355..84cb252 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -170,6 +170,125 @@ impl From for Plaintext { } } +/// Generator config for small JSON payloads (4 flat fields). +pub struct FakeJsonSmall; + +impl Dummy for WrappedJson { + fn dummy_with_rng(_config: &FakeJsonSmall, _: &mut R) -> Self { + use fake::faker::{internet, name}; + + let value = json!({ + "first_name": name::en::FirstName().fake::(), + "last_name": name::en::LastName().fake::(), + "age": (18..=99).fake::(), + "email": internet::en::FreeEmail().fake::(), + }); + WrappedJson(value) + } +} + +/// Generator config for large nested JSON payloads (users / company / addresses / orders). +pub struct FakeJsonLarge; + +impl Dummy for WrappedJson { + fn dummy_with_rng(_config: &FakeJsonLarge, _: &mut R) -> Self { + use fake::faker::{address, chrono, company, internet, name, phone_number}; + + let department = [ + "Engineering", + "Sales", + "Marketing", + "HR", + "Finance", + "Operations", + ] + .iter() + .take((1..6).fake()) + .last() + .unwrap() + .to_string(); + let type_ = ["Home", "Work", "Billing", "Shipping"] + .iter() + .take((1..4).fake()) + .last() + .unwrap() + .to_string(); + let status = [ + "Pending", + "Processing", + "Shipped", + "Delivered", + "Cancelled", + "Returned", + ] + .iter() + .take((1..6).fake()) + .last() + .unwrap() + .to_string(); + let relationship = ["Spouse", "Parent", "Sibling", "Friend", "Other"] + .iter() + .take((1..5).fake()) + .last() + .unwrap() + .to_string(); + + let value = json!({ + "user": { + "first_name": name::en::FirstName().fake::(), + "last_name": name::en::LastName().fake::(), + "age": (18..=99).fake::(), + "email": internet::en::FreeEmail().fake::(), + "username": internet::en::Username().fake::(), + "contact": { + "phone": phone_number::en::PhoneNumber().fake::(), + "mobile": phone_number::en::CellNumber().fake::(), + "emergency_contact": { + "name": name::en::Name().fake::(), + "phone": phone_number::en::PhoneNumber().fake::(), + "relationship": relationship + } + } + }, + "company": { + "name": company::en::CompanyName().fake::(), + "industry": company::en::Industry().fake::(), + "position": company::en::Profession().fake::(), + "department": department, + "salary": (40000..=300000).fake::(), + "start_date": chrono::en::Date().fake::() + }, + "addresses": (0..(1..4).fake::()).map(|_| { + json!({ + "type": type_, + "street": address::en::StreetName().fake::(), + "city": address::en::CityName().fake::(), + "state": address::en::StateName().fake::(), + "zip": address::en::ZipCode().fake::(), + "country": "United States" + }) + }).collect::>(), + "orders": (0..(5..=20).fake::()).map(|_| { + json!({ + "order_id": format!("ORD-{}", (100000..=999999).fake::()), + "date": chrono::en::Date().fake::(), + "total": (10.0..=5000.0).fake::(), + "status": status, + "items": (0..(1..=8).fake::()).map(|_| { + json!({ + "product": company::en::Buzzword().fake::(), + "quantity": (1..=10).fake::(), + "price": (5.0..=500.0).fake::() + }) + }).collect::>() + }) + }).collect::>() + }); + + WrappedJson(value) + } +} + pub struct EncryptedQueryBuilder { pub column_config: ColumnConfig, pub identifier: Identifier, From 8b33bd66ff041e8a45d478d1be2d986a5cec3ca8 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Thu, 14 May 2026 18:46:58 +1000 Subject: [PATCH 02/30] bench: drop natural-form GROUP BY scenario MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "eql_cast" scenario (`GROUP BY value`) was measuring the planner's HashAggregate-vs-GroupAggregate cost model, not anything EQL itself controls. At 100k+ rows the natural form's group key is the full ~1-2 KB encrypted payload; the planner refuses HashAggregate and falls back to GroupAggregate + sort, which dominates wall-clock regardless of how `hash_encrypted` is implemented under the hood. The recommended `GROUP BY` recipe on an encrypted column is the extractor form (`GROUP BY eql_v2.hmac_256(value)`) — small 32-byte group key, HashAggregate every time, no `work_mem` tuning needed. Benching only the recommended path means the numbers we publish track what callers should actually be running. The natural-form trap and recommendation are documented in the EQL query-performance guide (`docs/reference/query-performance.md` §5). --- benches/group_by.rs | 42 ++++++++++++++++-------------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/benches/group_by.rs b/benches/group_by.rs index 474b2c2..1349382 100644 --- a/benches/group_by.rs +++ b/benches/group_by.rs @@ -3,25 +3,24 @@ use sqlx::postgres::PgPoolOptions; use sqlx::Row; use tokio::runtime::Runtime; -// Two flavours of the same GROUP BY against the string_encrypted_* tables: +// The canonical `GROUP BY` recipe on an encrypted column is the extractor +// form: `GROUP BY eql_v2.hmac_256(value)`. The body of `eql_v2.hmac_256` is +// inlinable single-statement SQL (`(val).data ->> 'hm'`), so the planner +// folds it into the aggregation and the group key is a 32-byte HMAC that +// fits comfortably in `work_mem`. `HashAggregate` engages on every +// deployment without `work_mem` tuning. // -// 1. "eql_cast" — natural form: `GROUP BY value`. The hash discriminator for -// aggregation is provided by `eql_v2.hash_encrypted`, which is a plpgsql -// function called once per row. Not inlinable. -// -// 2. "hmac_extractor" — explicit form: `GROUP BY eql_v2.hmac_256(value)`. The -// extractor is an inlinable single-statement SQL function (post 2.3), so the -// planner folds the body — `(val).data ->> 'hm'` — into the aggregation. -// -// PostgreSQL builds an in-memory hash table for GROUP BY in both cases (the -// functional hash index on `eql_v2.hmac_256(value)` is only useful for -// equality lookups, not aggregation), so this is really a comparison of -// per-row hashing cost: plpgsql function call vs. inlined SQL. +// The natural form (`GROUP BY value`) was removed from this bench +// deliberately. Its plan choice degrades pathologically with row count: +// the planner estimates the hash table against the full ~1-2 KB encrypted +// payload, decides it won't fit in the default `work_mem = 4 MB`, and +// falls back to `GroupAggregate` + sort. At 100k rows that's ~29 s vs the +// extractor's ~80 ms; at 1M rows the natural form's sort runs for +// minutes regardless of how `hash_encrypted` is implemented. Benching the +// natural form measured the planner's cost model, not anything EQL +// controls — and recommended practice is the extractor form anyway. See +// `docs/reference/query-performance.md` §5 in the EQL repo. static QUERY_TEMPLATES: &[(&str, &str)] = &[ - ( - "SELECT count(*) FROM {TABLE} GROUP BY value", - "eql_cast", - ), ( "SELECT count(*) FROM {TABLE} GROUP BY eql_v2.hmac_256(value)", "hmac_extractor", @@ -53,15 +52,6 @@ fn criterion_benchmark(c: &mut Criterion) { let mut group = c.benchmark_group("GROUP_BY"); group.sample_size(10); - // The natural-form `GROUP BY value` scenario calls `eql_v2.hash_encrypted` - // (plpgsql, per row) for the hash discriminator. At 10k rows that's - // ~3.5 s per iteration; at 100k+ it scales roughly linearly. Criterion's - // default 5 s `measurement_time` can't fit a single sample. Extend so - // even the slow scenarios get the criterion-minimum 10 samples without - // a "Unable to complete 10 samples" warning. Inflated for headroom at - // 1M rows. - group.warm_up_time(std::time::Duration::from_secs(5)); - group.measurement_time(std::time::Duration::from_secs(60)); for (query_template, scenario) in QUERY_TEMPLATES { let query_str = query_template.replace("{TABLE}", &table_name); From 587cb4ed2058dcdb7c461b09ff2e6d4c01a4b6ec Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Thu, 14 May 2026 18:52:51 +1000 Subject: [PATCH 03/30] mise: add `truncate` task for wiping bench tables in place MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wipes every public `*_encrypted*` / `*_plaintext*` table with TRUNCATE … RESTART IDENTITY CASCADE while leaving the EQL install and the schema intact. Sits between `reset-db` (which drops the database and forces a full EQL reinstall) and the bench's `prepare:*` tasks (which check existing row counts and skip if the target is already reached). The use case: when an experimental EQL build is installed (e.g. a 2.3 preview from a feature branch) and a bench run trips an unrelated issue that taints the encrypted data (a ZeroKMS scoped-cipher TTL expiry mid- ingest, a partial run after a Ctrl-C, a mix of two key generations). Resetting via `reset-db` would force a re-download of the latest released EQL and lose the experimental install; truncating wipes rows so a fresh ingest can repopulate against the same EQL functions. --- mise.toml | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/mise.toml b/mise.toml index f84339e..2af6877 100644 --- a/mise.toml +++ b/mise.toml @@ -40,6 +40,48 @@ docker exec -i ore-benches-postgres psql -U postgres -d template1 -c "CREATE DAT echo "Database reset complete. Run 'mise run setup-db' to set up tables and data." """ +[tasks.truncate] +description = "Truncate all bench tables (keeps EQL install + schema; just wipes rows)" +depends = ["postgres"] +run = """ +#!/usr/bin/env bash +set -e + +echo "Waiting for PostgreSQL to be ready..." +until docker exec ore-benches-postgres pg_isready -U postgres > /dev/null 2>&1; do + sleep 1 +done + +echo "Truncating all bench tables in public schema..." +docker exec -i ore-benches-postgres psql -v ON_ERROR_STOP=1 -U postgres -d postgres <<'SQL' +DO $$ +DECLARE + r record; + table_list text := ''; +BEGIN + FOR r IN + SELECT tablename + FROM pg_tables + WHERE schemaname = 'public' + AND (tablename LIKE '%_encrypted%' OR tablename LIKE '%_plaintext%') + ORDER BY tablename + LOOP + table_list := table_list || 'public.' || quote_ident(r.tablename) || ', '; + END LOOP; + + IF table_list = '' THEN + RAISE NOTICE 'No bench tables found to truncate.'; + ELSE + table_list := rtrim(table_list, ', '); + RAISE NOTICE 'Truncating: %', table_list; + EXECUTE 'TRUNCATE TABLE ' || table_list || ' RESTART IDENTITY CASCADE'; + END IF; +END $$; +SQL + +echo "Truncate complete. EQL version untouched." +""" + [tasks.setup-db] description = "Set up the test database (create tables and load data)" depends = ["postgres"] From 089ddb22ef3eb2d1157aac2b83dc032937756e05 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Thu, 14 May 2026 18:53:04 +1000 Subject: [PATCH 04/30] results: capture extractor-form GROUP BY @ 1M MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Median 869 ms across 10 samples on `string_encrypted_1000000`, against EQL with the inlinable `hash_encrypted` flip + the rest of the 2.3 operator-inlining chain. The natural-form scenario (`GROUP BY value`) was removed earlier in this branch because the planner falls back to `GroupAggregate` + sort on the full 1-2 KB encrypted payload past ~10k rows regardless of how `hash_encrypted` is implemented; the extractor form's 32-byte HMAC group key fits in default `work_mem` and engages `HashAggregate` reliably. Numbers documented in the EQL query-perf guide (`docs/reference/query-performance.md` §5). --- results/query/group_by_rows_1000000.json | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 results/query/group_by_rows_1000000.json diff --git a/results/query/group_by_rows_1000000.json b/results/query/group_by_rows_1000000.json new file mode 100644 index 0000000..dc57743 --- /dev/null +++ b/results/query/group_by_rows_1000000.json @@ -0,0 +1,2 @@ +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[964559250.0,880586834.0,866617541.0,867813792.0,869191083.0,865882958.0,861634250.0,907432125.0,869234792.0,875873417.0],"unit":"ns","throughput":[],"typical":{"estimate":882882604.2,"lower_bound":868225570.9,"upper_bound":903679608.5,"unit":"ns"},"mean":{"estimate":882882604.2,"lower_bound":868225570.9,"upper_bound":903679608.5,"unit":"ns"},"median":{"estimate":869212937.5,"lower_bound":866617541.0,"upper_bound":891652771.0,"unit":"ns"},"median_abs_dev":{"estimate":7405927.125218511,"lower_bound":1053387.2812986374,"upper_bound":28348083.931320906,"unit":"ns"},"slope":null,"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/hmac_extractor/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} From 7b0d4bd97acc6cb3021767fc67f479828bf16b50 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Thu, 14 May 2026 20:42:12 +1000 Subject: [PATCH 05/30] bench(ore): drop natural-form + redundant fully-extractor ordered scenarios MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `range_lt_ordered_10` (natural-form ORDER BY) was the §4 sort-key trap the EQL query-performance guide warns about: the planner can't satisfy `ORDER BY value` from a functional index over `eql_v2.ore_block_u64_8_256(value)` because the sort key doesn't syntactically match the index expression, so it inserts a Top-N Sort over the full post-WHERE bitmap. Cost scales linearly with the number of rows passing WHERE — at 1M with our default selectivity that's ~8.8 s, compared to ~1 ms for the hybrid form. Same logic as the natural-form GROUP BY we dropped: documented better recipe, keeping the trap in the headline numbers misleads. `range_lt_ore_ordered_10` (fully-extractor on both clauses) inlines to the same predicate shape as the hybrid form, so its plan and timing are identical. Pure redundancy. Both scenarios are mentioned in the comment block on `QUERY_TEMPLATES` for context, with a pointer to the EQL guide's §4 for the underlying rule. Also drops the `measurement_time = 30s` override: the slow scenario was the only reason for it, and all remaining scenarios run sub-ms to single-digit-ms per iteration, well within criterion's default budget. --- benches/ore.rs | 59 +++++++++++++++++--------------------------------- 1 file changed, 20 insertions(+), 39 deletions(-) diff --git a/benches/ore.rs b/benches/ore.rs index bc4e8cb..e519950 100644 --- a/benches/ore.rs +++ b/benches/ore.rs @@ -20,25 +20,25 @@ use tokio::runtime::Runtime; // `eql_v2.ore_block_u64_8_256(value)` — so the natural-form scenarios below // engage the index without rewriting. // -// The ordered scenarios show three plan shapes side-by-side: +// Ordered range queries use the **hybrid form**: natural-form WHERE, extractor +// ORDER BY (`ORDER BY eql_v2.ore_block_u64_8_256(val)`). The sort key matches +// the functional index expression, so the planner streams rows out of the +// index in order — plain Index Scan, no Sort node. See §4 of the EQL +// query-performance guide for the underlying rule. // -// range_lt_ordered_10 — natural form: WHERE val < $1 ORDER BY val LIMIT 10 -// → Bitmap Index Scan via the inlined `<`, plus -// a Top-N sort by `val` (the natural-form sort -// key doesn't match the index expression -// syntactically). Each comparison in the Sort -// step uses the inlined ORE-term path, so the -// Top-N is fast. +// Two ordered scenarios that previously sat alongside the hybrid one are no +// longer benched: // -// range_lt_hybrid_ordered_10 — natural WHERE, extractor ORDER BY: -// ORDER BY eql_v2.ore_block_u64_8_256(val). -// The sort key matches the index expression → -// plain ordered Index Scan, no Sort node. +// * The natural-form variant (`ORDER BY value`) is the §4 sort-key trap — +// the planner can't satisfy the ORDER BY from the index, so it inserts a +// Top-N Sort over the full post-WHERE bitmap. The cost scales linearly +// with the number of rows passing WHERE: at 100k it's ~880 ms, at 1M +// it's ~8.8 s. Documented in the guide, so the bench doesn't need to +// keep proving it. // -// range_lt_ore_ordered_10 — fully extractor on both clauses. After the `<` -// inlining the WHERE reduces to the same shape -// as the hybrid, so the plan is identical to -// hybrid. Kept for contrast / regression. +// * The fully-extractor variant (`WHERE ore_block(val) < ore_block($1) +// ORDER BY ore_block(val)`) inlines to the same predicate shape as the +// hybrid, so its plan and timing are identical — pure redundancy. // // The equality scenario from the previous bench (`WHERE value = $1`) is gone: // the integer column carries only `ob`, not `hm`, so post-2.3 equality returns @@ -64,11 +64,6 @@ static QUERY_TEMPLATES: &[(&str, i32, &str)] = &[ 5000, "range_lt_100", ), - ( - "SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 ORDER BY value LIMIT 10", - 5000, - "range_lt_ordered_10", - ), ( "SELECT id,value::jsonb FROM {TABLE} \ WHERE value < $1 \ @@ -76,13 +71,6 @@ static QUERY_TEMPLATES: &[(&str, i32, &str)] = &[ 5000, "range_lt_hybrid_ordered_10", ), - ( - "SELECT id,value::jsonb FROM {TABLE} \ - WHERE eql_v2.ore_block_u64_8_256(value) < eql_v2.ore_block_u64_8_256($1::jsonb) \ - ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10", - 5000, - "range_lt_ore_ordered_10", - ), ]; async fn build_query( @@ -147,17 +135,10 @@ fn criterion_benchmark(c: &mut Criterion) { let mut group = c.benchmark_group("ORE"); group.sample_size(10); - // Some scenarios — notably the natural-form `WHERE val < $1 ORDER BY val - // LIMIT 10` — finish a single iteration in several hundred milliseconds - // because the Top-N sort runs over the post-WHERE bitmap rather than - // streaming from an ordered index (see U-005 in EQL's v2.3 upgrade - // notes). Criterion's default 5 s `measurement_time` only fits a few - // such samples, yielding very wide confidence intervals and false - // "regressed" alerts against any stored baseline. 30 s gives the slow - // scenarios room to settle while leaving fast ones (sub-ms to single - // ms) plenty of headroom. - group.warm_up_time(std::time::Duration::from_secs(5)); - group.measurement_time(std::time::Duration::from_secs(30)); + // All remaining scenarios run sub-ms to single-digit-ms per iteration, so + // criterion's default measurement budget is plenty. (Earlier versions of + // this bench needed a 30 s budget for the natural-form ordered range + // scenario; that scenario is gone — see the comment on `QUERY_TEMPLATES`.) for (i, query) in queries.into_iter().enumerate() { let (_, _, scenario) = QUERY_TEMPLATES[i]; From b29cfe2ab55620c1b1d0acbf8d9a23f388d0000e Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Thu, 14 May 2026 20:47:24 +1000 Subject: [PATCH 06/30] results: refresh query benches against EQL 2.3-preview build Full re-run after the operator inlining work landed (hash_encrypted SQL flip + range operator inlining + hmac_256 inlining) and after the bench suite dropped the natural-form scenarios that measured the planner's HashAggregate-vs-GroupAggregate / sort-key-trap traps rather than EQL itself. Highlights @ 1M rows: GROUP_BY/hmac_extractor ~870 ms (was: infinite, ran for hours) ORE/range_lt_hybrid_ordered ~1 ms (was: 6+ s on natural form) ORE/range_gt_10 ~1 ms ORE/range_lt_10 ~1 ms Plus refreshed numbers at 10k / 100k for all remaining scenarios across exact / match / ore / group_by. --- results/query/exact_rows_10000.json | 10 ++++----- results/query/exact_rows_100000.json | 8 +++---- results/query/exact_rows_1000000.json | 10 ++++----- results/query/group_by_rows_10000.json | 5 ++--- results/query/group_by_rows_100000.json | 5 ++--- results/query/match_rows_10000.json | 14 ++++++------ results/query/match_rows_100000.json | 12 +++++----- results/query/match_rows_1000000.json | 12 +++++----- results/query/ore_rows_10000.json | 30 ++++++++++++------------- results/query/ore_rows_100000.json | 28 +++++++++++------------ results/query/ore_rows_1000000.json | 11 +++++++++ 11 files changed, 78 insertions(+), 67 deletions(-) diff --git a/results/query/exact_rows_10000.json b/results/query/exact_rows_10000.json index 61a7c24..b3c0b47 100644 --- a/results/query/exact_rows_10000.json +++ b/results/query/exact_rows_10000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[208,416,624,832,1040,1248,1456,1664,1872,2080],"measured_values":[90136125.0,177061708.0,277471041.0,347643000.0,440986500.0,523136167.0,599694959.0,697944208.0,782574417.0,862956500.0],"unit":"ns","throughput":[],"typical":{"estimate":417896.44475524477,"lower_bound":415600.3899663456,"upper_bound":421721.40603252273,"unit":"ns"},"mean":{"estimate":422892.7089400183,"lower_bound":417792.3236950549,"upper_bound":429038.6276098901,"unit":"ns"},"median":{"estimate":419308.6229967949,"lower_bound":416462.4110576923,"upper_bound":428686.1177884615,"unit":"ns"},"median_abs_dev":{"estimate":6777.370769100684,"lower_bound":992.9541066504212,"upper_bound":14608.275450266608,"unit":"ns"},"slope":{"estimate":417896.44475524477,"lower_bound":415600.3899663456,"upper_bound":421721.40603252273,"unit":"ns"},"change":{"mean":{"estimate":-0.07175388180360132,"lower_bound":-0.09815735360157866,"upper_bound":-0.04219930201730728,"unit":"%"},"median":{"estimate":-0.09055110044831072,"lower_bound":-0.10480369121200861,"upper_bound":-0.04237911841429509,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[203,406,609,812,1015,1218,1421,1624,1827,2030],"measured_values":[94865791.0,176606584.0,258618416.0,334995709.0,419629459.0,517907875.0,603494042.0,699001333.0,782854416.0,835196125.0],"unit":"ns","throughput":[],"typical":{"estimate":422028.424796878,"lower_bound":415371.52842421154,"upper_bound":427960.9524024873,"unit":"ns"},"mean":{"estimate":427320.22540874965,"lower_bound":419085.9189514426,"upper_bound":437835.01490147784,"unit":"ns"},"median":{"estimate":424954.2210297912,"lower_bound":413428.0384236453,"upper_bound":431741.66502463055,"unit":"ns"},"median_abs_dev":{"estimate":11492.139572636332,"lower_bound":435.053277251628,"upper_bound":20900.81046672519,"unit":"ns"},"slope":{"estimate":422028.424796878,"lower_bound":415371.52842421154,"upper_bound":427960.9524024873,"unit":"ns"},"change":{"mean":{"estimate":-0.06496087032072162,"lower_bound":-0.12209036207440671,"upper_bound":-0.0002637463651535696,"unit":"%"},"median":{"estimate":-0.06552222647720707,"lower_bound":-0.15749868305123926,"upper_bound":0.03876544773814694,"unit":"%"},"change":"NoChange"}} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[88241833.0,188105542.0,273259291.0,401735875.0,463563625.0,546438709.0,611396375.0,738599541.0,790385250.0,886300625.0],"unit":"ns","throughput":[],"typical":{"estimate":409122.42174734356,"lower_bound":402560.0501243914,"upper_bound":420840.6348240469,"unit":"ns"},"mean":{"estimate":415326.7154518398,"lower_bound":405970.84054951294,"upper_bound":426802.02560213744,"unit":"ns"},"median":{"estimate":413998.9738636364,"lower_bound":401024.19507575757,"upper_bound":423585.7127840909,"unit":"ns"},"median_abs_dev":{"estimate":17816.9868150489,"lower_bound":2727.576798166732,"upper_bound":27514.93985815988,"unit":"ns"},"slope":{"estimate":409122.42174734356,"lower_bound":402560.0501243914,"upper_bound":420840.6348240469,"unit":"ns"},"change":{"mean":{"estimate":0.0016386131234420453,"lower_bound":-0.0447391621831066,"upper_bound":0.057122313778719534,"unit":"%"},"median":{"estimate":0.0007265270621481523,"lower_bound":-0.07397431236064733,"upper_bound":0.05272385660338408,"unit":"%"},"change":"NoChange"}} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[224,448,672,896,1120,1344,1568,1792,2016,2240],"measured_values":[121678792.0,186398417.0,280387292.0,361523166.0,470885166.0,553291375.0,657253208.0,753239959.0,824946167.0,910833584.0],"unit":"ns","throughput":[],"typical":{"estimate":412980.6089633581,"lower_bound":408941.5526172377,"upper_bound":418886.1718322026,"unit":"ns"},"mean":{"estimate":426743.67810675316,"lower_bound":411016.9849541171,"upper_bound":453915.47152507177,"unit":"ns"},"median":{"estimate":416655.4445684524,"lower_bound":409148.6329613095,"upper_bound":420334.79854910716,"unit":"ns"},"median_abs_dev":{"estimate":6492.3451075503335,"lower_bound":1011.8615636541508,"upper_bound":15718.613403383028,"unit":"ns"},"slope":{"estimate":412980.6089633581,"lower_bound":408941.5526172377,"upper_bound":418886.1718322026,"unit":"ns"},"change":{"mean":{"estimate":0.06507270634468143,"lower_bound":0.0004891838434652832,"upper_bound":0.1487705487781515,"unit":"%"},"median":{"estimate":0.0503621893005759,"lower_bound":-0.007378055546500728,"upper_bound":0.09066126338326375,"unit":"%"},"change":"NoChange"}} -{"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact_decrypt/eql_hash/1000000","EXACT/exact/eql_hash/1000000","EXACT/exact_decrypt/eql_hash/100000","EXACT/exact_decrypt/eql_cast/100000","EXACT/exact/eql_cast/100000","EXACT/exact_decrypt/eql_cast/1000000","EXACT/exact/eql_hash/100000","EXACT/exact/eql_cast/1000000","EXACT/exact/eql_cast/10000","EXACT/exact_decrypt/eql_cast/10000","EXACT/exact/eql_hash/10000","EXACT/exact_decrypt/eql_hash/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[227,454,681,908,1135,1362,1589,1816,2043,2270],"measured_values":[101275458.0,196156959.0,280632375.0,427147834.0,486338000.0,546490917.0,657394667.0,690745792.0,804303292.0,972661667.0],"unit":"ns","throughput":[],"typical":{"estimate":410181.23052806227,"lower_bound":394711.3473043843,"upper_bound":427403.59533132747,"unit":"ns"},"mean":{"estimate":420671.53634431155,"lower_bound":405534.5988993776,"upper_bound":436622.7550667785,"unit":"ns"},"median":{"estimate":421100.6399937067,"lower_bound":401241.49559471366,"upper_bound":437319.5110132159,"unit":"ns"},"median_abs_dev":{"estimate":22848.56372651551,"lower_bound":2652.7201231251447,"upper_bound":45996.24283227268,"unit":"ns"},"slope":{"estimate":410181.23052806227,"lower_bound":394711.3473043843,"upper_bound":427403.59533132747,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[214,428,642,856,1070,1284,1498,1712,1926,2140],"measured_values":[87371000.0,173769083.0,278287750.0,372703041.0,443209667.0,542482583.0,637442166.0,713967417.0,791783584.0,853074625.0],"unit":"ns","throughput":[],"typical":{"estimate":413425.9184002913,"lower_bound":405836.34044591646,"upper_bound":423188.6779355115,"unit":"ns"},"mean":{"estimate":417215.93097704346,"lower_bound":410225.9191770509,"upper_bound":424270.0785230631,"unit":"ns"},"median":{"estimate":415625.8423481308,"lower_bound":408275.7009345794,"upper_bound":427982.1195482866,"unit":"ns"},"median_abs_dev":{"estimate":12582.4207730309,"lower_bound":3780.6724633313365,"upper_bound":20361.64641911595,"unit":"ns"},"slope":{"estimate":413425.9184002913,"lower_bound":405836.34044591646,"upper_bound":423188.6779355115,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[241,482,723,964,1205,1446,1687,1928,2169,2410],"measured_values":[122102958.0,197123333.0,290307208.0,380345208.0,483167625.0,570386833.0,643560584.0,763224834.0,877048250.0,998307167.0],"unit":"ns","throughput":[],"typical":{"estimate":401293.74233981787,"lower_bound":391607.0022065252,"upper_bound":408885.5777573002,"unit":"ns"},"mean":{"estimate":410306.57501712436,"lower_bound":395414.07611353975,"upper_bound":433563.5480082988,"unit":"ns"},"median":{"estimate":401250.1957123098,"lower_bound":394548.97095435683,"upper_bound":409295.68932687875,"unit":"ns"},"median_abs_dev":{"estimate":10002.38276661306,"lower_bound":1041.6097880430393,"upper_bound":21863.484270946563,"unit":"ns"},"slope":{"estimate":401293.74233981787,"lower_bound":391607.0022065252,"upper_bound":408885.5777573002,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[226,452,678,904,1130,1356,1582,1808,2034,2260],"measured_values":[82717916.0,176520333.0,264889250.0,374827417.0,479773458.0,567025917.0,657406209.0,719711958.0,841371833.0,979389959.0],"unit":"ns","throughput":[],"typical":{"estimate":416693.9892656017,"lower_bound":405548.94196821575,"upper_bound":426175.28608115757,"unit":"ns"},"mean":{"estimate":406524.02084211266,"lower_bound":394130.48774230934,"upper_bound":417656.35078452027,"unit":"ns"},"median":{"estimate":414142.9501597837,"lower_bound":390692.1091445428,"upper_bound":420066.07149178255,"unit":"ns"},"median_abs_dev":{"estimate":19650.01546930623,"lower_bound":1408.5142301561007,"upper_bound":35319.47804832265,"unit":"ns"},"slope":{"estimate":416693.9892656017,"lower_bound":405548.94196821575,"upper_bound":426175.28608115757,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000","EXACT/exact_decrypt/eql_cast/10000","EXACT/exact/eql_hash/10000","EXACT/exact_decrypt/eql_hash/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_100000.json b/results/query/exact_rows_100000.json index efdc988..0f96881 100644 --- a/results/query/exact_rows_100000.json +++ b/results/query/exact_rows_100000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[207,414,621,828,1035,1242,1449,1656,1863,2070],"measured_values":[91542500.0,183934750.0,265712959.0,345890166.0,455921125.0,511696375.0,657076625.0,711966167.0,787200416.0,858054791.0],"unit":"ns","throughput":[],"typical":{"estimate":426005.55594453856,"lower_bound":417845.4233434723,"upper_bound":438380.05830077,"unit":"ns"},"mean":{"estimate":430510.3425843494,"lower_bound":422434.3259928878,"upper_bound":438827.946226248,"unit":"ns"},"median":{"estimate":428905.21064814815,"lower_bound":417741.7463768116,"upper_bound":442395.16908212565,"unit":"ns"},"median_abs_dev":{"estimate":18478.66693745741,"lower_bound":3042.4422719519766,"upper_bound":22924.348979323884,"unit":"ns"},"slope":{"estimate":426005.55594453856,"lower_bound":417845.4233434723,"upper_bound":438380.05830077,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[210,420,630,840,1050,1260,1470,1680,1890,2100],"measured_values":[94938042.0,190256542.0,266570291.0,361908125.0,452238167.0,553183750.0,682493167.0,710323167.0,838613208.0,929865250.0],"unit":"ns","throughput":[],"typical":{"estimate":440436.57032776746,"lower_bound":430631.182728774,"upper_bound":449267.187456446,"unit":"ns"},"mean":{"estimate":440238.201451814,"lower_bound":432495.62688095245,"upper_bound":448409.9439149659,"unit":"ns"},"median":{"estimate":440913.84920634923,"lower_bound":426985.2259920635,"upper_bound":452085.9142857143,"unit":"ns"},"median_abs_dev":{"estimate":15851.142076585964,"lower_bound":1360.6055291777518,"upper_bound":24289.08371354447,"unit":"ns"},"slope":{"estimate":440436.57032776746,"lower_bound":430631.182728774,"upper_bound":449267.187456446,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[85526083.0,170157291.0,256196625.0,339009625.0,458985667.0,524873417.0,618550875.0,688167709.0,826586916.0,898265208.0],"unit":"ns","throughput":[],"typical":{"estimate":406235.78245863726,"lower_bound":396694.73313514306,"upper_bound":413200.4980410325,"unit":"ns"},"mean":{"estimate":400039.69488095236,"lower_bound":393125.9105620787,"upper_bound":407584.60260112246,"unit":"ns"},"median":{"estimate":396118.41657153727,"lower_bound":389508.5125570776,"upper_bound":411327.7262883235,"unit":"ns"},"median_abs_dev":{"estimate":11122.090000488626,"lower_bound":1675.136989952156,"upper_bound":21227.075703144084,"unit":"ns"},"slope":{"estimate":406235.78245863726,"lower_bound":396694.73313514306,"upper_bound":413200.4980410325,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[84802416.0,169951041.0,254047416.0,375829125.0,474532917.0,553088083.0,645717916.0,765987667.0,782828875.0,882309375.0],"unit":"ns","throughput":[],"typical":{"estimate":413898.3182351895,"lower_bound":403438.7811022991,"upper_bound":428497.2556960362,"unit":"ns"},"mean":{"estimate":410370.5109014641,"lower_bound":398683.6080792926,"upper_bound":422217.8294643717,"unit":"ns"},"median":{"estimate":411900.1933028919,"lower_bound":388016.0753424658,"upper_bound":429028.6815068493,"unit":"ns"},"median_abs_dev":{"estimate":28608.01886034816,"lower_bound":1397.9513005239087,"upper_bound":33615.967109909594,"unit":"ns"},"slope":{"estimate":413898.3182351895,"lower_bound":403438.7811022991,"upper_bound":428497.2556960362,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[222,444,666,888,1110,1332,1554,1776,1998,2220],"measured_values":[90947000.0,188956709.0,309675292.0,355694167.0,461939458.0,573587916.0,668081959.0,735789541.0,868031625.0,964880292.0],"unit":"ns","throughput":[],"typical":{"estimate":428172.0525798526,"lower_bound":419428.8476419559,"upper_bound":433982.1766816817,"unit":"ns"},"mean":{"estimate":426085.5095490132,"lower_bound":416224.96153903904,"upper_bound":437163.94294937793,"unit":"ns"},"median":{"estimate":427744.671975547,"lower_bound":412916.4225225225,"upper_bound":434450.2627627628,"unit":"ns"},"median_abs_dev":{"estimate":13691.134905041863,"lower_bound":2972.0225785873904,"upper_bound":28561.241959242936,"unit":"ns"},"slope":{"estimate":428172.0525798526,"lower_bound":419428.8476419559,"upper_bound":433982.1766816817,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[212,424,636,848,1060,1272,1484,1696,1908,2120],"measured_values":[87278208.0,190636917.0,264577375.0,370877916.0,429554041.0,559041375.0,609721208.0,715908500.0,891481500.0,889522417.0],"unit":"ns","throughput":[],"typical":{"estimate":430797.45665278117,"lower_bound":416597.1790344682,"upper_bound":449499.23112639465,"unit":"ns"},"mean":{"estimate":427919.9568149146,"lower_bound":417023.91312674084,"upper_bound":440261.48816711584,"unit":"ns"},"median":{"estimate":420850.9533018868,"lower_bound":411689.6603773585,"upper_bound":443485.7016509434,"unit":"ns"},"median_abs_dev":{"estimate":18976.462434798555,"lower_bound":3809.402929067703,"upper_bound":33620.67833094386,"unit":"ns"},"slope":{"estimate":430797.45665278117,"lower_bound":416597.1790344682,"upper_bound":449499.23112639465,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[244,488,732,976,1220,1464,1708,1952,2196,2440],"measured_values":[97876542.0,183109708.0,278141042.0,385569792.0,474638125.0,571743958.0,674867209.0,772673000.0,851022667.0,962697333.0],"unit":"ns","throughput":[],"typical":{"estimate":392123.5301362572,"lower_bound":388803.12536023057,"upper_bound":394453.60120659333,"unit":"ns"},"mean":{"estimate":390400.55042219616,"lower_bound":385562.2732541472,"upper_bound":394749.0447619047,"unit":"ns"},"median":{"estimate":392541.7888661202,"lower_bound":384510.8722677596,"upper_bound":395443.7971311476,"unit":"ns"},"median_abs_dev":{"estimate":5032.637000816765,"lower_bound":477.0486329651529,"upper_bound":12644.775498324576,"unit":"ns"},"slope":{"estimate":392123.5301362572,"lower_bound":388803.12536023057,"upper_bound":394453.60120659333,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[227,454,681,908,1135,1362,1589,1816,2043,2270],"measured_values":[86533792.0,177242084.0,267043917.0,359093083.0,440976625.0,575338250.0,795111125.0,762941334.0,844392584.0,953869166.0],"unit":"ns","throughput":[],"typical":{"estimate":425001.0656330454,"lower_bound":407570.2157588871,"upper_bound":450663.2729270569,"unit":"ns"},"mean":{"estimate":412418.9701440459,"lower_bound":395543.89932697016,"upper_bound":435188.5112862737,"unit":"ns"},"median":{"estimate":404393.54399167886,"lower_bound":390330.3171806167,"upper_bound":421271.7512848752,"unit":"ns"},"median_abs_dev":{"estimate":23381.693541925757,"lower_bound":1767.6622572961728,"upper_bound":42841.59532775761,"unit":"ns"},"slope":{"estimate":425001.0656330454,"lower_bound":407570.2157588871,"upper_bound":450663.2729270569,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/100000","EXACT/exact_decrypt/eql_cast/100000","EXACT/exact/eql_hash/100000","EXACT/exact_decrypt/eql_hash/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_1000000.json b/results/query/exact_rows_1000000.json index 0532416..6de3a01 100644 --- a/results/query/exact_rows_1000000.json +++ b/results/query/exact_rows_1000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[114,228,342,456,570,684,798,912,1026,1140],"measured_values":[111220417.0,207633875.0,154657333.0,217299042.0,255996375.0,293648708.0,715914417.0,649318125.0,898715584.0,882423125.0],"unit":"ns","throughput":[],"typical":{"estimate":729554.5199817726,"lower_bound":579266.9333773884,"upper_bound":816916.6739211186,"unit":"ns"},"mean":{"estimate":695257.1395137148,"lower_bound":564730.4524562274,"upper_bound":825486.262810803,"unit":"ns"},"median":{"estimate":743013.5005482456,"lower_bound":452214.4239766082,"upper_bound":897135.8609022556,"unit":"ns"},"median_abs_dev":{"estimate":296716.8708443936,"lower_bound":19274.855251662575,"upper_bound":344858.96958049,"unit":"ns"},"slope":{"estimate":729554.5199817726,"lower_bound":579266.9333773884,"upper_bound":816916.6739211186,"unit":"ns"},"change":{"mean":{"estimate":-0.9999132211769995,"lower_bound":-0.999929754403837,"upper_bound":-0.9998948765867203,"unit":"%"},"median":{"estimate":-0.9999072405302023,"lower_bound":-0.9999435681534321,"upper_bound":-0.9998879986042203,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[171,342,513,684,855,1026,1197,1368,1539,1710],"measured_values":[70718208.0,143040250.0,276062417.0,304802917.0,472662666.0,521332667.0,718801000.0,620982375.0,664433083.0,943154458.0],"unit":"ns","throughput":[],"typical":{"estimate":505907.42440950865,"lower_bound":456378.8420825437,"upper_bound":554045.3905741365,"unit":"ns"},"mean":{"estimate":491421.7408648937,"lower_bound":453044.06153537205,"upper_bound":531229.7601738896,"unit":"ns"},"median":{"estimate":481027.99622319685,"lower_bound":431730.3983105913,"upper_bound":551552.3146198831,"unit":"ns"},"median_abs_dev":{"estimate":88872.24741752387,"lower_bound":10888.558990666006,"upper_bound":108650.56284628624,"unit":"ns"},"slope":{"estimate":505907.42440950865,"lower_bound":456378.8420825437,"upper_bound":554045.3905741365,"unit":"ns"},"change":{"mean":{"estimate":-0.9999386627314146,"lower_bound":-0.9999432154424407,"upper_bound":-0.999933768635663,"unit":"%"},"median":{"estimate":-0.999939996075808,"lower_bound":-0.9999461455085877,"upper_bound":-0.9999311298078122,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[228,456,684,912,1140,1368,1596,1824,2052,2280],"measured_values":[91025042.0,181228000.0,285367834.0,370343709.0,478358458.0,555475708.0,754519250.0,765128375.0,838837458.0,966803209.0],"unit":"ns","throughput":[],"typical":{"estimate":423055.78582820686,"lower_bound":410439.87234250567,"upper_bound":440559.9737923063,"unit":"ns"},"mean":{"estimate":417066.9082941729,"lower_bound":406657.7325767544,"upper_bound":431331.22623951803,"unit":"ns"},"median":{"estimate":412997.30994152045,"lower_bound":402655.63432017545,"upper_bound":421757.38547149126,"unit":"ns"},"median_abs_dev":{"estimate":10279.234370906175,"lower_bound":1785.2333090075356,"upper_bound":23366.55779755094,"unit":"ns"},"slope":{"estimate":423055.78582820686,"lower_bound":410439.87234250567,"upper_bound":440559.9737923063,"unit":"ns"},"change":{"mean":{"estimate":0.039912836206747127,"lower_bound":0.010669592681075332,"upper_bound":0.07599697044991253,"unit":"%"},"median":{"estimate":0.03764357790878403,"lower_bound":0.002651457789572431,"upper_bound":0.06061441074249396,"unit":"%"},"change":"Regressed"}} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[228,456,684,912,1140,1368,1596,1824,2052,2280],"measured_values":[91911416.0,178735167.0,268568042.0,351820625.0,456181459.0,557669959.0,663052625.0,733402208.0,829428000.0,916695541.0],"unit":"ns","throughput":[],"typical":{"estimate":403619.1487126908,"lower_bound":399618.9344030809,"upper_bound":407751.88488100877,"unit":"ns"},"mean":{"estimate":400510.2726848371,"lower_bound":395485.11774853803,"upper_bound":405478.14408317674,"unit":"ns"},"median":{"estimate":402071.99583333335,"lower_bound":392643.33625730994,"upper_bound":405386.86220760236,"unit":"ns"},"median_abs_dev":{"estimate":5718.510781458577,"lower_bound":803.8899822193017,"upper_bound":15682.194641541606,"unit":"ns"},"slope":{"estimate":403619.1487126908,"lower_bound":399618.9344030809,"upper_bound":407751.88488100877,"unit":"ns"},"change":{"mean":{"estimate":-0.020692905391870742,"lower_bound":-0.047168489790024665,"upper_bound":0.002637677202577882,"unit":"%"},"median":{"estimate":-0.001774227767842751,"lower_bound":-0.04121604849202143,"upper_bound":0.013739706487771971,"unit":"%"},"change":"NoChange"}} -{"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact_decrypt/eql_hash/10000","EXACT/exact_decrypt/eql_hash/100000","EXACT/exact_decrypt/eql_cast/10000","EXACT/exact_decrypt/eql_cast/100000","EXACT/exact/eql_cast/100000","EXACT/exact/eql_cast/10000","EXACT/exact/eql_hash/100000","EXACT/exact/eql_hash/10000","EXACT/exact/eql_cast/1000000","EXACT/exact_decrypt/eql_cast/1000000","EXACT/exact/eql_hash/1000000","EXACT/exact_decrypt/eql_hash/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[87070750.0,180223625.0,273658875.0,368119959.0,467538250.0,474206208.0,742624292.0,715602042.0,851097875.0,903270625.0],"unit":"ns","throughput":[],"typical":{"estimate":419594.76344746165,"lower_bound":398137.16494295176,"upper_bound":443856.7197556681,"unit":"ns"},"mean":{"estimate":415185.0582395382,"lower_bound":397811.0790909091,"upper_bound":433955.0126743325,"unit":"ns"},"median":{"estimate":412606.10795454547,"lower_bound":402687.64204545453,"upper_bound":425034.7727272727,"unit":"ns"},"median_abs_dev":{"estimate":13671.575794440074,"lower_bound":3567.6091449956434,"upper_bound":48768.38070964271,"unit":"ns"},"slope":{"estimate":419594.76344746165,"lower_bound":398137.16494295176,"upper_bound":443856.7197556681,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[228,456,684,912,1140,1368,1596,1824,2052,2280],"measured_values":[81331083.0,193577834.0,279381459.0,375507625.0,477066750.0,548345208.0,646157500.0,722498042.0,854797500.0,949357250.0],"unit":"ns","throughput":[],"typical":{"estimate":409818.904784689,"lower_bound":401989.0460432997,"upper_bound":415439.5970848173,"unit":"ns"},"mean":{"estimate":405465.7770989975,"lower_bound":392780.95477600256,"upper_bound":414814.6458666196,"unit":"ns"},"median":{"estimate":410096.6211622807,"lower_bound":400483.48582393484,"upper_bound":417432.1820175439,"unit":"ns"},"median_abs_dev":{"estimate":11011.526045624807,"lower_bound":2437.6845366566636,"upper_bound":21057.672237006835,"unit":"ns"},"slope":{"estimate":409818.904784689,"lower_bound":401989.0460432997,"upper_bound":415439.5970848173,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[236,472,708,944,1180,1416,1652,1888,2124,2360],"measured_values":[113229000.0,258234334.0,283526000.0,371137041.0,467789208.0,546185834.0,650216667.0,802012334.0,850017125.0,1036127250.0],"unit":"ns","throughput":[],"typical":{"estimate":413382.42176975566,"lower_bound":396131.401970339,"upper_bound":428902.91661192133,"unit":"ns"},"mean":{"estimate":426028.22758810874,"lower_bound":399908.181658974,"upper_bound":459138.30105091474,"unit":"ns"},"median":{"estimate":400328.4192561206,"lower_bound":393593.6240920097,"upper_bound":452289.2833686441,"unit":"ns"},"median_abs_dev":{"estimate":16144.575483750878,"lower_bound":2429.8976465005576,"upper_bound":66879.48731527882,"unit":"ns"},"slope":{"estimate":413382.42176975566,"lower_bound":396131.401970339,"upper_bound":428902.91661192133,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[184,368,552,736,920,1104,1288,1472,1656,1840],"measured_values":[85825708.0,487278958.0,239521250.0,777487958.0,521200833.0,751692375.0,1042108834.0,781810958.0,699227833.0,768085167.0],"unit":"ns","throughput":[],"typical":{"estimate":557992.7906549972,"lower_bound":465312.33819480875,"upper_bound":730315.819930149,"unit":"ns"},"mean":{"estimate":670814.8808329019,"lower_bound":507932.84667934774,"upper_bound":866795.447775459,"unit":"ns"},"median":{"estimate":548822.1096467392,"lower_bound":433915.30797101447,"upper_bound":868625.1413043478,"unit":"ns"},"median_abs_dev":{"estimate":191231.37770158588,"lower_bound":17311.250021287015,"upper_bound":470080.9154130005,"unit":"ns"},"slope":{"estimate":557992.7906549972,"lower_bound":465312.33819480875,"upper_bound":730315.819930149,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/1000000","EXACT/exact_decrypt/eql_cast/1000000","EXACT/exact/eql_hash/1000000","EXACT/exact_decrypt/eql_hash/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/group_by_rows_10000.json b/results/query/group_by_rows_10000.json index b4f9670..7f05566 100644 --- a/results/query/group_by_rows_10000.json +++ b/results/query/group_by_rows_10000.json @@ -1,3 +1,2 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_eql_cast_10000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[4551906125.0,4719123208.0,3697537709.0,5082560500.0,4575627875.0,4781555834.0,4956161041.0,5143554041.0,5150066250.0,4642328959.0],"unit":"ns","throughput":[],"typical":{"estimate":4730042154.2,"lower_bound":4456724984.51,"upper_bound":4953773816.5,"unit":"ns"},"mean":{"estimate":4730042154.2,"lower_bound":4456724984.51,"upper_bound":4953773816.5,"unit":"ns"},"median":{"estimate":4750339521.0,"lower_bound":4575627875.0,"upper_bound":5082560500.0,"unit":"ns"},"median_abs_dev":{"estimate":299674163.9105201,"lower_bound":54869512.032571435,"upper_bound":640974206.4666331,"unit":"ns"},"slope":null,"change":{"mean":{"estimate":0.21890863075063693,"lower_bound":0.1316813324960823,"upper_bound":0.30609274533364517,"unit":"%"},"median":{"estimate":0.2534387435964922,"lower_bound":0.11427193668794611,"upper_bound":0.3662535513712508,"unit":"%"},"change":"Regressed"}} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[92315167.0,177508125.0,265394167.0,365453292.0,468068709.0,548455500.0,625435166.0,740552209.0,787314334.0,916873500.0],"unit":"ns","throughput":[],"typical":{"estimate":45316144.76753247,"lower_bound":44451783.80521355,"upper_bound":46042851.41433732,"unit":"ns"},"mean":{"estimate":45350194.70299603,"lower_bound":44742306.545117065,"upper_bound":45934173.694068946,"unit":"ns"},"median":{"estimate":45693143.25,"lower_bound":44377031.25,"upper_bound":46157583.5,"unit":"ns"},"median_abs_dev":{"estimate":1193917.47233498,"lower_bound":120100.60541778803,"upper_bound":1634189.7423273304,"unit":"ns"},"slope":{"estimate":45316144.76753247,"lower_bound":44451783.80521355,"upper_bound":46042851.41433732,"unit":"ns"},"change":{"mean":{"estimate":5.682713730216364,"lower_bound":5.4506371407002945,"upper_bound":5.904896748199547,"unit":"%"},"median":{"estimate":5.842602326559897,"lower_bound":5.40180453824739,"upper_bound":6.04298685972822,"unit":"%"},"change":"Regressed"}} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/eql_cast/10000","GROUP_BY/group_by/hmac_extractor/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_10000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[104910583.0,197574334.0,308844584.0,408725375.0,540370291.0,572927541.0,713591375.0,774349875.0,886934167.0,887293042.0],"unit":"ns","throughput":[],"typical":{"estimate":8061945.400865801,"lower_bound":7717893.974600119,"upper_bound":8472337.019085819,"unit":"ns"},"mean":{"estimate":8320018.1205787035,"lower_bound":8045513.359930557,"upper_bound":8576440.979791667,"unit":"ns"},"median":{"estimate":8363699.666666666,"lower_bound":8066144.53125,"upper_bound":8628830.28125,"unit":"ns"},"median_abs_dev":{"estimate":380191.77776795486,"lower_bound":62180.84005440306,"upper_bound":773225.4615679896,"unit":"ns"},"slope":{"estimate":8061945.400865801,"lower_bound":7717893.974600119,"upper_bound":8472337.019085819,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/hmac_extractor/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_100000.json b/results/query/group_by_rows_100000.json index 4f0503b..9691876 100644 --- a/results/query/group_by_rows_100000.json +++ b/results/query/group_by_rows_100000.json @@ -1,3 +1,2 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_eql_cast_100000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[36405884750.0,37149355416.0,37874740042.0,37501585083.0,39262288917.0,38213672208.0,37403792958.0,37148188000.0,36565849000.0,37661012167.0],"unit":"ns","throughput":[],"typical":{"estimate":37518636854.1,"lower_bound":37060358674.075,"upper_bound":38031094898.1,"unit":"ns"},"mean":{"estimate":37518636854.1,"lower_bound":37060358674.075,"upper_bound":38031094898.1,"unit":"ns"},"median":{"estimate":37452689020.5,"lower_bound":36857602208.0,"upper_bound":37937342187.5,"unit":"ns"},"median_abs_dev":{"estimate":538593019.1726625,"lower_bound":189479952.0014584,"upper_bound":1340112818.8236415,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_100000","iteration_count":[5,10,15,20,25,30,35,40,45,50],"measured_values":[1130683709.0,2242166500.0,3382185625.0,4449089041.0,5628849833.0,6703555333.0,7836147125.0,8892240584.0,10000841250.0,11165733292.0],"unit":"ns","throughput":[],"typical":{"estimate":223158114.09246755,"lower_bound":222620143.85736012,"upper_bound":223909520.99635655,"unit":"ns"},"mean":{"estimate":223864423.82338095,"lower_bound":223073082.73042974,"upper_bound":224686908.69868094,"unit":"ns"},"median":{"estimate":223670881.1452381,"lower_bound":222454452.05,"upper_bound":225153993.32,"unit":"ns"},"median_abs_dev":{"estimate":1913514.424313333,"lower_bound":206550.87397798602,"upper_bound":2314014.734368041,"unit":"ns"},"slope":{"estimate":223158114.09246755,"lower_bound":222620143.85736012,"upper_bound":223909520.99635655,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/eql_cast/100000","GROUP_BY/group_by/hmac_extractor/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_100000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[90049458.0,179946959.0,268270125.0,358392250.0,447349959.0,545643916.0,630043875.0,723980167.0,807523833.0,899432500.0],"unit":"ns","throughput":[],"typical":{"estimate":90034088.31168832,"lower_bound":89761686.34443088,"upper_bound":90356853.7813702,"unit":"ns"},"mean":{"estimate":89962692.8532143,"lower_bound":89704262.04766667,"upper_bound":90249642.43833333,"unit":"ns"},"median":{"estimate":89958364.75,"lower_bound":89597431.06666666,"upper_bound":90251894.36607143,"unit":"ns"},"median_abs_dev":{"estimate":440181.46118522057,"lower_bound":48612.0174369547,"upper_bound":761707.2897744946,"unit":"ns"},"slope":{"estimate":90034088.31168832,"lower_bound":89761686.34443088,"upper_bound":90356853.7813702,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/hmac_extractor/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/match_rows_10000.json b/results/query/match_rows_10000.json index fb967d7..e75a9b2 100644 --- a/results/query/match_rows_10000.json +++ b/results/query/match_rows_10000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[135,270,405,540,675,810,945,1080,1215,1350],"measured_values":[99008334.0,197721709.0,259991958.0,344571667.0,441238667.0,531873833.0,615490459.0,727639125.0,799260958.0,946674583.0],"unit":"ns","throughput":[],"typical":{"estimate":670318.2547763347,"lower_bound":653629.1307591279,"upper_bound":686747.2512187401,"unit":"ns"},"mean":{"estimate":674019.1066281599,"lower_bound":654612.6254791298,"upper_bound":695993.5823071136,"unit":"ns"},"median":{"estimate":657231.1553497943,"lower_bound":647821.182962963,"upper_bound":703021.2782407408,"unit":"ns"},"median_abs_dev":{"estimate":23561.833644749324,"lower_bound":3069.749114735576,"upper_bound":58277.82616113949,"unit":"ns"},"slope":{"estimate":670318.2547763347,"lower_bound":653629.1307591279,"upper_bound":686747.2512187401,"unit":"ns"},"change":{"mean":{"estimate":0.01970805041069945,"lower_bound":-0.015275098699091131,"upper_bound":0.057096646042586026,"unit":"%"},"median":{"estimate":-0.0062513046142086415,"lower_bound":-0.02295063127033925,"upper_bound":0.08082170108618891,"unit":"%"},"change":"NoChange"}} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[122159167.0,224108416.0,321455167.0,422570958.0,527025875.0,641924333.0,771012500.0,928474875.0,947304916.0,1095146333.0],"unit":"ns","throughput":[],"typical":{"estimate":27281684.921428572,"lower_bound":26566804.927419353,"upper_bound":28052472.393282387,"unit":"ns"},"mean":{"estimate":27509378.44941468,"lower_bound":26788510.981597226,"upper_bound":28383468.67908482,"unit":"ns"},"median":{"estimate":27083294.454166666,"lower_bound":26410684.875,"upper_bound":28275500.27901786,"unit":"ns"},"median_abs_dev":{"estimate":1041237.5845493361,"lower_bound":99280.62901658379,"upper_bound":2035153.0646031876,"unit":"ns"},"slope":{"estimate":27281684.921428572,"lower_bound":26566804.927419353,"upper_bound":28052472.393282387,"unit":"ns"},"change":{"mean":{"estimate":-0.04958123934462433,"lower_bound":-0.10859613062591118,"upper_bound":0.0010691447482613988,"unit":"%"},"median":{"estimate":-0.04780196815338156,"lower_bound":-0.07483746698719074,"upper_bound":-0.005298270648365078,"unit":"%"},"change":"NoChange"}} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[103,206,309,412,515,618,721,824,927,1030],"measured_values":[94234375.0,195533042.0,298727083.0,374953250.0,486989084.0,532926334.0,634208042.0,704718333.0,774291667.0,945934666.0],"unit":"ns","throughput":[],"typical":{"estimate":883090.9785146891,"lower_bound":855665.9461720291,"upper_bound":914484.4392484233,"unit":"ns"},"mean":{"estimate":903738.4367248422,"lower_bound":877435.678808368,"upper_bound":929119.2384928724,"unit":"ns"},"median":{"estimate":912488.7742718447,"lower_bound":862340.3462783172,"upper_bound":945609.8718446601,"unit":"ns"},"median_abs_dev":{"estimate":51758.93468682334,"lower_bound":6154.618670636585,"upper_bound":75530.21559903845,"unit":"ns"},"slope":{"estimate":883090.9785146891,"lower_bound":855665.9461720291,"upper_bound":914484.4392484233,"unit":"ns"},"change":{"mean":{"estimate":-0.054550379456170806,"lower_bound":-0.1192818405589943,"upper_bound":0.007200867850503521,"unit":"%"},"median":{"estimate":-0.0233341882462742,"lower_bound":-0.11370417557102908,"upper_bound":0.05456825175182156,"unit":"%"},"change":"NoChange"}} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[96045792.0,224267291.0,331386292.0,443821250.0,546358625.0,636713291.0,759782375.0,903360958.0,993206292.0,1109883792.0],"unit":"ns","throughput":[],"typical":{"estimate":27564386.985714287,"lower_bound":27150059.959737826,"upper_bound":27863585.866189152,"unit":"ns"},"mean":{"estimate":27194813.676726185,"lower_bound":26390118.4339747,"upper_bound":27763182.219226193,"unit":"ns"},"median":{"estimate":27602294.0,"lower_bound":26923825.854166664,"upper_bound":27886119.75,"unit":"ns"},"median_abs_dev":{"estimate":530385.4072462767,"lower_bound":97533.1852084413,"upper_bound":1151287.0331730656,"unit":"ns"},"slope":{"estimate":27564386.985714287,"lower_bound":27150059.959737826,"upper_bound":27863585.866189152,"unit":"ns"},"change":{"mean":{"estimate":-0.020276880079356463,"lower_bound":-0.056652436713236935,"upper_bound":0.012069510878030262,"unit":"%"},"median":{"estimate":-0.015378792845818334,"lower_bound":-0.04234600619626083,"upper_bound":0.03373932194025464,"unit":"%"},"change":"NoChange"}} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[103,206,309,412,515,618,721,824,927,1030],"measured_values":[96478792.0,207202292.0,359094500.0,414809667.0,514673792.0,491864167.0,652048333.0,806033125.0,890544042.0,983358625.0],"unit":"ns","throughput":[],"typical":{"estimate":949011.3596015635,"lower_bound":905619.8385238646,"upper_bound":984727.5302820157,"unit":"ns"},"mean":{"estimate":970467.7125878409,"lower_bound":917130.6769070735,"upper_bound":1026021.0631206656,"unit":"ns"},"median":{"estimate":969434.3622572816,"lower_bound":929541.8658113731,"upper_bound":1005836.3689320388,"unit":"ns"},"median_abs_dev":{"estimate":51260.20316956108,"lower_bound":6253.758547517453,"upper_bound":151896.7559843615,"unit":"ns"},"slope":{"estimate":949011.3596015635,"lower_bound":905619.8385238646,"upper_bound":984727.5302820157,"unit":"ns"},"change":{"mean":{"estimate":0.1284240912832999,"lower_bound":0.05737595146538302,"upper_bound":0.1983362536194862,"unit":"%"},"median":{"estimate":0.1259848244204822,"lower_bound":0.068147760463106,"upper_bound":0.18490343093454853,"unit":"%"},"change":"Regressed"}} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[145826459.0,230930250.0,342373292.0,435881334.0,574001500.0,653803625.0,770607333.0,901833375.0,1002966292.0,1153892625.0],"unit":"ns","throughput":[],"typical":{"estimate":28146560.14935065,"lower_bound":27684808.686651584,"upper_bound":28580052.301126517,"unit":"ns"},"mean":{"estimate":28944995.358581353,"lower_bound":27816005.43747024,"upper_bound":30755224.36597222,"unit":"ns"},"median":{"estimate":28356700.317708336,"lower_bound":27521690.464285713,"upper_bound":28847315.625,"unit":"ns"},"median_abs_dev":{"estimate":745826.7146172635,"lower_bound":123208.69093760848,"upper_bound":1747072.8816332584,"unit":"ns"},"slope":{"estimate":28146560.14935065,"lower_bound":27684808.686651584,"upper_bound":28580052.301126517,"unit":"ns"},"change":{"mean":{"estimate":0.03356877083581988,"lower_bound":-0.019146800515889413,"upper_bound":0.10762911524921695,"unit":"%"},"median":{"estimate":0.030437434451316747,"lower_bound":-0.036505137146440436,"upper_bound":0.05380871325758463,"unit":"%"},"change":"NoChange"}} -{"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/1000000","MATCH/match/eql_cast_firstname/100000","MATCH/match_decrypt/eql_cast_firstname/100000","MATCH/match/eql_cast_lastname/100000","MATCH/match_decrypt/eql_bloom/100000","MATCH/match/eql_bloom/100000","MATCH/match_decrypt/eql_cast_lastname/100000","MATCH/match_decrypt/eql_cast_firstname/1000000","MATCH/match/eql_bloom/1000000","MATCH/match/eql_cast_lastname/1000000","MATCH/match_decrypt/eql_cast_lastname/1000000","MATCH/match_decrypt/eql_bloom/1000000","MATCH/match/eql_cast_firstname/10000","MATCH/match_decrypt/eql_cast_firstname/10000","MATCH/match/eql_cast_lastname/10000","MATCH/match_decrypt/eql_cast_lastname/10000","MATCH/match/eql_bloom/10000","MATCH/match_decrypt/eql_bloom/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[146,292,438,584,730,876,1022,1168,1314,1460],"measured_values":[113029000.0,200526792.0,258130584.0,369387458.0,440171916.0,509010000.0,651644583.0,733772709.0,828514083.0,898601500.0],"unit":"ns","throughput":[],"typical":{"estimate":620801.9791496175,"lower_bound":607809.0934560942,"upper_bound":631096.9328653911,"unit":"ns"},"mean":{"estimate":637865.1465370189,"lower_bound":609412.4946819961,"upper_bound":674316.6409386009,"unit":"ns"},"median":{"estimate":629379.1402682648,"lower_bound":602409.8561643836,"upper_bound":659624.1797945206,"unit":"ns"},"median_abs_dev":{"estimate":29876.29734392182,"lower_bound":3407.2554927625374,"upper_bound":73246.44593756096,"unit":"ns"},"slope":{"estimate":620801.9791496175,"lower_bound":607809.0934560942,"upper_bound":631096.9328653911,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[100738875.0,197097000.0,306535416.0,408220000.0,528958500.0,618546625.0,716418000.0,820351917.0,909863292.0,1056248500.0],"unit":"ns","throughput":[],"typical":{"estimate":25800316.452597402,"lower_bound":25434284.69148936,"upper_bound":26167857.382665094,"unit":"ns"},"mean":{"estimate":25600346.017410714,"lower_bound":25288191.009445686,"upper_bound":25919185.184148062,"unit":"ns"},"median":{"estimate":25565487.57142857,"lower_bound":25273980.333333332,"upper_bound":26021104.953125,"unit":"ns"},"median_abs_dev":{"estimate":369757.2520229984,"lower_bound":53823.67404443798,"upper_bound":936414.7765003145,"unit":"ns"},"slope":{"estimate":25800316.452597402,"lower_bound":25434284.69148936,"upper_bound":26167857.382665094,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[98,196,294,392,490,588,686,784,882,980],"measured_values":[96178667.0,222633333.0,272075291.0,355344292.0,440302416.0,557772667.0,711558208.0,771266792.0,883149750.0,848342917.0],"unit":"ns","throughput":[],"typical":{"estimate":951762.9252054068,"lower_bound":899084.4153893318,"upper_bound":1001052.028002982,"unit":"ns"},"mean":{"estimate":968436.0487803693,"lower_bound":924914.4229348883,"upper_bound":1017609.2469144801,"unit":"ns"},"median":{"estimate":965003.9702380953,"lower_bound":906490.5408163265,"upper_bound":1010507.7631195335,"unit":"ns"},"median_abs_dev":{"estimate":72715.03476976443,"lower_bound":14743.42043110911,"upper_bound":127207.6894762039,"unit":"ns"},"slope":{"estimate":951762.9252054068,"lower_bound":899084.4153893318,"upper_bound":1001052.028002982,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[116466875.0,210180375.0,320523542.0,453299250.0,536388500.0,689362250.0,804064417.0,890482000.0,956254500.0,1111340708.0],"unit":"ns","throughput":[],"typical":{"estimate":27663451.785714287,"lower_bound":27055739.454113923,"upper_bound":28260881.984386537,"unit":"ns"},"mean":{"estimate":27686390.752142858,"lower_bound":27080317.92570833,"upper_bound":28290660.335895833,"unit":"ns"},"median":{"estimate":27805540.1,"lower_bound":26691025.0,"upper_bound":28716586.32142857,"unit":"ns"},"median_abs_dev":{"estimate":1411436.7193169883,"lower_bound":190365.8366203308,"upper_bound":1601802.555937319,"unit":"ns"},"slope":{"estimate":27663451.785714287,"lower_bound":27055739.454113923,"upper_bound":28260881.984386537,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[102,204,306,408,510,612,714,816,918,1020],"measured_values":[91222500.0,191019167.0,314964042.0,374062708.0,485122000.0,522542000.0,599066292.0,738662208.0,884972958.0,924283541.0],"unit":"ns","throughput":[],"typical":{"estimate":911271.1874713522,"lower_bound":878003.974809792,"upper_bound":943943.0248650184,"unit":"ns"},"mean":{"estimate":919630.2602521008,"lower_bound":888560.613356676,"upper_bound":952974.6353250465,"unit":"ns"},"median":{"estimate":911490.3485294117,"lower_bound":879525.045751634,"upper_bound":951219.6078431372,"unit":"ns"},"median_abs_dev":{"estimate":47893.44732736842,"lower_bound":8596.906820903881,"upper_bound":91973.80159655039,"unit":"ns"},"slope":{"estimate":911271.1874713522,"lower_bound":878003.974809792,"upper_bound":943943.0248650184,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[108145250.0,237320417.0,322656458.0,436715125.0,550415500.0,638819917.0,751131959.0,909455958.0,1027646917.0,1082283834.0],"unit":"ns","throughput":[],"typical":{"estimate":27589509.694805194,"lower_bound":26979821.90703744,"upper_bound":28196984.889465876,"unit":"ns"},"mean":{"estimate":27587185.327063493,"lower_bound":27064205.041946422,"upper_bound":28202573.9206002,"unit":"ns"},"median":{"estimate":27175895.58125,"lower_bound":26888038.166666668,"upper_bound":28420498.6875,"unit":"ns"},"median_abs_dev":{"estimate":514931.8838331324,"lower_bound":125322.4584300818,"upper_bound":1647131.5092875457,"unit":"ns"},"slope":{"estimate":27589509.694805194,"lower_bound":26979821.90703744,"upper_bound":28196984.889465876,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000","MATCH/match_decrypt/eql_cast_firstname/10000","MATCH/match/eql_cast_lastname/10000","MATCH/match_decrypt/eql_cast_lastname/10000","MATCH/match/eql_bloom/10000","MATCH/match_decrypt/eql_bloom/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_100000.json b/results/query/match_rows_100000.json index 8adffa5..de15a1b 100644 --- a/results/query/match_rows_100000.json +++ b/results/query/match_rows_100000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[97782959.0,184410458.0,271682125.0,404076542.0,452206625.0,609347000.0,702409333.0,771393625.0,880385333.0,980778834.0],"unit":"ns","throughput":[],"typical":{"estimate":1177729.3760287904,"lower_bound":1154510.4739964884,"upper_bound":1196132.1376722765,"unit":"ns"},"mean":{"estimate":1164137.421296137,"lower_bound":1133476.4592950374,"upper_bound":1192522.7653198508,"unit":"ns"},"median":{"estimate":1178334.6479250335,"lower_bound":1110906.373493976,"upper_bound":1208966.1497418245,"unit":"ns"},"median_abs_dev":{"estimate":51442.41767366236,"lower_bound":2634.065708898677,"upper_bound":79564.75059632906,"unit":"ns"},"slope":{"estimate":1177729.3760287904,"lower_bound":1154510.4739964884,"upper_bound":1196132.1376722765,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[115074375.0,241029375.0,337491833.0,430877375.0,543720458.0,752521791.0,805142500.0,899609583.0,1007454625.0,1132295834.0],"unit":"ns","throughput":[],"typical":{"estimate":28434919.018831167,"lower_bound":27900786.973742798,"upper_bound":29282848.807692308,"unit":"ns"},"mean":{"estimate":28565265.380307544,"lower_bound":27847627.261378966,"upper_bound":29392721.27935045,"unit":"ns"},"median":{"estimate":28215857.633333333,"lower_bound":27649411.184375,"upper_bound":29441880.58035714,"unit":"ns"},"median_abs_dev":{"estimate":809475.6928239356,"lower_bound":103388.16194783054,"upper_bound":2181385.646440164,"unit":"ns"},"slope":{"estimate":28434919.018831167,"lower_bound":27900786.973742798,"upper_bound":29282848.807692308,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[33,66,99,132,165,198,231,264,297,330],"measured_values":[91106833.0,196809583.0,255567375.0,369264208.0,503606125.0,555357292.0,659196875.0,730998458.0,786261334.0,935434417.0],"unit":"ns","throughput":[],"typical":{"estimate":2791949.7282959465,"lower_bound":2716605.6414141413,"upper_bound":2869683.457893856,"unit":"ns"},"mean":{"estimate":2808330.838496874,"lower_bound":2727582.3953992305,"upper_bound":2891128.709007576,"unit":"ns"},"median":{"estimate":2801145.4646464647,"lower_bound":2708139.055976431,"upper_bound":2908306.5636363635,"unit":"ns"},"median_abs_dev":{"estimate":68831.93088707986,"lower_bound":26613.599896453543,"upper_bound":248052.92676234187,"unit":"ns"},"slope":{"estimate":2791949.7282959465,"lower_bound":2716605.6414141413,"upper_bound":2869683.457893856,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103205458.0,213804291.0,385671042.0,423312666.0,618902667.0,721411708.0,825436375.0,952927625.0,1068347958.0,1113859750.0],"unit":"ns","throughput":[],"typical":{"estimate":29194328.675324675,"lower_bound":28380953.49786419,"upper_bound":30001802.85648148,"unit":"ns"},"mean":{"estimate":28890883.52502976,"lower_bound":27667314.54330729,"upper_bound":30107823.345863093,"unit":"ns"},"median":{"estimate":29578101.351190478,"lower_bound":26725536.375,"upper_bound":30362060.815625,"unit":"ns"},"median_abs_dev":{"estimate":2297021.4946997175,"lower_bound":221735.980829026,"upper_bound":3575428.127582833,"unit":"ns"},"slope":{"estimate":29194328.675324675,"lower_bound":28380953.49786419,"upper_bound":30001802.85648148,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[36,72,108,144,180,216,252,288,324,360],"measured_values":[89448416.0,184227709.0,271747459.0,376730667.0,470580041.0,566689417.0,713852917.0,745447917.0,873608334.0,932829125.0],"unit":"ns","throughput":[],"typical":{"estimate":2646783.953607504,"lower_bound":2591456.447887671,"upper_bound":2717738.2818586924,"unit":"ns"},"mean":{"estimate":2612228.196901455,"lower_bound":2560141.307476852,"upper_bound":2673798.754384921,"unit":"ns"},"median":{"estimate":2602762.7875,"lower_bound":2552270.499421296,"upper_bound":2656253.6030092593,"unit":"ns"},"median_abs_dev":{"estimate":48068.808299385826,"lower_bound":6841.127425490042,"upper_bound":150999.3211500602,"unit":"ns"},"slope":{"estimate":2646783.953607504,"lower_bound":2591456.447887671,"upper_bound":2717738.2818586924,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[106731041.0,201005958.0,385516459.0,473044166.0,584949042.0,710398291.0,879213541.0,984166083.0,1011503208.0,1240378209.0],"unit":"ns","throughput":[],"typical":{"estimate":30051778.16038961,"lower_bound":28895702.749244712,"upper_bound":30885477.31245547,"unit":"ns"},"mean":{"estimate":29360995.810922623,"lower_bound":28024282.691171873,"upper_bound":30573642.949802086,"unit":"ns"},"median":{"estimate":29582594.583333336,"lower_bound":27965106.175,"upper_bound":31077836.85044643,"unit":"ns"},"median_abs_dev":{"estimate":2158772.2285666335,"lower_bound":286990.663712398,"upper_bound":3497248.2625614326,"unit":"ns"},"slope":{"estimate":30051778.16038961,"lower_bound":28895702.749244712,"upper_bound":30885477.31245547,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[29,58,87,116,145,174,203,232,261,290],"measured_values":[208269541.0,94639458.0,156940333.0,176080208.0,151684416.0,185592667.0,516279750.0,377654458.0,465352292.0,469610375.0],"unit":"ns","throughput":[],"typical":{"estimate":1698534.4077026423,"lower_bound":1421402.672168782,"upper_bound":2011349.9107915678,"unit":"ns"},"mean":{"estimate":2182136.7781800767,"lower_bound":1438090.2697509578,"upper_bound":3391701.977162354,"unit":"ns"},"median":{"estimate":1629767.8663793104,"lower_bound":1342985.3218390804,"upper_bound":2163104.486590038,"unit":"ns"},"median_abs_dev":{"estimate":242653.51568887793,"lower_bound":12055.41020752551,"upper_bound":1092467.9531271157,"unit":"ns"},"slope":{"estimate":1698534.4077026423,"lower_bound":1421402.672168782,"upper_bound":2011349.9107915678,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[55204917.0,21711208.0,32000750.0,26974625.0,27554667.0,27051583.0,32857791.0,30929416.0,35755917.0,31435000.0],"unit":"ns","throughput":[],"typical":{"estimate":32147587.4,"lower_bound":27740133.2,"upper_bound":38131041.7,"unit":"ns"},"mean":{"estimate":32147587.4,"lower_bound":27740133.2,"upper_bound":38131041.7,"unit":"ns"},"median":{"estimate":31182208.0,"lower_bound":27051583.0,"upper_bound":33878333.5,"unit":"ns"},"median_abs_dev":{"estimate":5751128.353697062,"lower_bound":487034.09135341644,"upper_bound":9765143.985334039,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[31,62,93,124,155,186,217,248,279,310],"measured_values":[79416917.0,168479334.0,241975958.0,299570250.0,415893375.0,523271000.0,604072500.0,699315291.0,827693542.0,890108792.0],"unit":"ns","throughput":[],"typical":{"estimate":2826396.0586510263,"lower_bound":2718714.6808850975,"upper_bound":2888954.4997932175,"unit":"ns"},"mean":{"estimate":2723501.995531234,"lower_bound":2624468.069659978,"upper_bound":2815848.9979251153,"unit":"ns"},"median":{"estimate":2750576.426267281,"lower_bound":2601892.0215053763,"upper_bound":2842301.815053764,"unit":"ns"},"median_abs_dev":{"estimate":140836.28802054314,"lower_bound":26742.7544377213,"upper_bound":272691.0006023153,"unit":"ns"},"slope":{"estimate":2826396.0586510263,"lower_bound":2718714.6808850975,"upper_bound":2888954.4997932175,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107521209.0,213898541.0,387363458.0,435213917.0,649768542.0,705281125.0,847654167.0,1024833833.0,1072644875.0,1142838334.0],"unit":"ns","throughput":[],"typical":{"estimate":29956643.403246753,"lower_bound":28991282.109792843,"upper_bound":31182151.444272447,"unit":"ns"},"mean":{"estimate":29563998.820644844,"lower_bound":28268447.235347223,"upper_bound":30876298.706767112,"unit":"ns"},"median":{"estimate":29591202.256944448,"lower_bound":27200869.8125,"upper_bound":32026057.28125,"unit":"ns"},"median_abs_dev":{"estimate":3576911.4070815034,"lower_bound":343631.23049307615,"upper_bound":3837957.1236259732,"unit":"ns"},"slope":{"estimate":29956643.403246753,"lower_bound":28991282.109792843,"upper_bound":31182151.444272447,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[34,68,102,136,170,204,238,272,306,340],"measured_values":[91703375.0,194886916.0,270778375.0,356154834.0,445313458.0,533024958.0,660346208.0,710609000.0,799264667.0,938269417.0],"unit":"ns","throughput":[],"typical":{"estimate":2675822.791061879,"lower_bound":2616565.4729138166,"upper_bound":2734498.7757166754,"unit":"ns"},"mean":{"estimate":2682766.496844071,"lower_bound":2634820.1557329604,"upper_bound":2739091.493714402,"unit":"ns"},"median":{"estimate":2637090.4401960783,"lower_bound":2612867.4411764704,"upper_bound":2759615.932352941,"unit":"ns"},"median_abs_dev":{"estimate":36821.672224127506,"lower_bound":908.6545152403456,"upper_bound":155563.25722114087,"unit":"ns"},"slope":{"estimate":2675822.791061879,"lower_bound":2616565.4729138166,"upper_bound":2734498.7757166754,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103499750.0,256843667.0,334449334.0,442386917.0,557301916.0,677661625.0,798370500.0,922545583.0,1046583750.0,1271975875.0],"unit":"ns","throughput":[],"typical":{"estimate":29448397.888311688,"lower_bound":28308253.458285425,"upper_bound":30642285.92939815,"unit":"ns"},"mean":{"estimate":28781530.218244046,"lower_bound":27736746.70979167,"upper_bound":29943146.048469495,"unit":"ns"},"median":{"estimate":28374566.592261903,"lower_bound":27759980.072916664,"upper_bound":30314473.171875,"unit":"ns"},"median_abs_dev":{"estimate":894508.1863293037,"lower_bound":179558.69437782277,"upper_bound":3076554.000561498,"unit":"ns"},"slope":{"estimate":29448397.888311688,"lower_bound":28308253.458285425,"upper_bound":30642285.92939815,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/100000","MATCH/match_decrypt/eql_cast_firstname/100000","MATCH/match/eql_cast_lastname/100000","MATCH/match_decrypt/eql_cast_lastname/100000","MATCH/match/eql_bloom/100000","MATCH/match_decrypt/eql_bloom/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_1000000.json b/results/query/match_rows_1000000.json index 729b338..0e5ad2e 100644 --- a/results/query/match_rows_1000000.json +++ b/results/query/match_rows_1000000.json @@ -1,5 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[19,38,57,76,95,114,133,152,171,190],"measured_values":[90527292.0,181007792.0,270681584.0,382648500.0,472861334.0,556310375.0,652804250.0,745992833.0,811661667.0,919180416.0],"unit":"ns","throughput":[],"typical":{"estimate":4857372.812713603,"lower_bound":4804118.623007029,"upper_bound":4921375.720422911,"unit":"ns"},"mean":{"estimate":4856951.02995614,"lower_bound":4798861.696658991,"upper_bound":4918643.218279605,"unit":"ns"},"median":{"estimate":4858853.616666666,"lower_bound":4756697.01754386,"upper_bound":4942667.655921053,"unit":"ns"},"median_abs_dev":{"estimate":140661.6503938091,"lower_bound":11708.534171079176,"upper_bound":187954.49993353686,"unit":"ns"},"slope":{"estimate":4857372.812713603,"lower_bound":4804118.623007029,"upper_bound":4921375.720422911,"unit":"ns"},"change":{"mean":{"estimate":-0.9874380852198805,"lower_bound":-0.988655238953072,"upper_bound":-0.9856820751407159,"unit":"%"},"median":{"estimate":-0.9877678246182628,"lower_bound":-0.9888109232100681,"upper_bound":-0.9862896355655763,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[94940542.0,174636917.0,270874084.0,360227083.0,491246500.0,535855750.0,672654375.0,774155916.0,870580750.0,904978458.0],"unit":"ns","throughput":[],"typical":{"estimate":31303853.89004329,"lower_bound":30420351.36057043,"upper_bound":32102739.677119244,"unit":"ns"},"mean":{"estimate":31008591.20457672,"lower_bound":30249930.321666665,"upper_bound":31766979.361190476,"unit":"ns"},"median":{"estimate":30906397.96666667,"lower_bound":29933442.166666664,"upper_bound":32243731.48148148,"unit":"ns"},"median_abs_dev":{"estimate":1676373.4369050884,"lower_bound":108989.64292004907,"upper_bound":1876174.2377468045,"unit":"ns"},"slope":{"estimate":31303853.89004329,"lower_bound":30420351.36057043,"upper_bound":32102739.677119244,"unit":"ns"},"change":{"mean":{"estimate":-0.9259031882487296,"lower_bound":-0.9305094046118007,"upper_bound":-0.9206422404783118,"unit":"%"},"median":{"estimate":-0.926852975001608,"lower_bound":-0.931325999335721,"upper_bound":-0.9166641227130601,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[111553875.0,207288959.0,311476875.0,414722167.0,517945250.0,637749375.0,733010375.0,825896500.0,926161166.0,1036259459.0],"unit":"ns","throughput":[],"typical":{"estimate":17303880.214285713,"lower_bound":17212006.102217603,"upper_bound":17456341.402515724,"unit":"ns"},"mean":{"estimate":17451178.43715609,"lower_bound":17256475.23703704,"upper_bound":17736942.944285713,"unit":"ns"},"median":{"estimate":17277085.104166668,"lower_bound":17238584.03333333,"upper_bound":17509765.625,"unit":"ns"},"median_abs_dev":{"estimate":72716.89558401704,"lower_bound":6745.317147749628,"upper_bound":356275.9395748358,"unit":"ns"},"slope":{"estimate":17303880.214285713,"lower_bound":17212006.102217603,"upper_bound":17456341.402515724,"unit":"ns"},"change":{"mean":{"estimate":-0.8683813811923236,"lower_bound":-0.8783045967657279,"upper_bound":-0.8565042367466531,"unit":"%"},"median":{"estimate":-0.8679102403790255,"lower_bound":-0.8841517136386209,"upper_bound":-0.8519472185853121,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[118174375.0,254394625.0,385308916.0,561893083.0,659088084.0,782043042.0,906888875.0,1032976292.0,1198792125.0,1300024916.0],"unit":"ns","throughput":[],"typical":{"estimate":43653309.1974026,"lower_bound":43205112.12660984,"upper_bound":44250044.48168498,"unit":"ns"},"mean":{"estimate":43277286.46849205,"lower_bound":42154169.95920636,"upper_bound":44337357.00142857,"unit":"ns"},"median":{"estimate":43259674.1952381,"lower_bound":42719891.5,"upper_bound":43939205.6,"unit":"ns"},"median_abs_dev":{"estimate":835522.0485798541,"lower_bound":193961.98875648555,"upper_bound":2974334.1016533505,"unit":"ns"},"slope":{"estimate":43653309.1974026,"lower_bound":43205112.12660984,"upper_bound":44250044.48168498,"unit":"ns"},"change":{"mean":{"estimate":-0.7244581915909477,"lower_bound":-0.7410750185121298,"upper_bound":-0.7072158607164999,"unit":"%"},"median":{"estimate":-0.7243138132939773,"lower_bound":-0.7367488787189185,"upper_bound":-0.704323479834285,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[102656833.0,208275084.0,311191791.0,420131875.0,520374917.0,618091916.0,727908083.0,825663417.0,976896708.0,1031436500.0],"unit":"ns","throughput":[],"typical":{"estimate":17424604.0017316,"lower_bound":17211435.41709256,"upper_bound":17760868.739164695,"unit":"ns"},"mean":{"estimate":17358846.13791667,"lower_bound":17225031.53172222,"upper_bound":17545902.758055557,"unit":"ns"},"median":{"estimate":17309788.833333332,"lower_bound":17185270.538194444,"upper_bound":17425662.679166667,"unit":"ns"},"median_abs_dev":{"estimate":168755.56751023885,"lower_bound":18615.64881950709,"upper_bound":277301.2160102539,"unit":"ns"},"slope":{"estimate":17424604.0017316,"lower_bound":17211435.41709256,"upper_bound":17760868.739164695,"unit":"ns"},"change":{"mean":{"estimate":-0.009974561731766918,"lower_bound":-0.021364787760249988,"upper_bound":0.0035480852378329086,"unit":"%"},"median":{"estimate":-0.01383237043330865,"lower_bound":-0.028437591500036774,"upper_bound":-0.00018150635036928708,"unit":"%"},"change":"NoChange"}} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[92498750.0,184108750.0,286777583.0,380556417.0,468554708.0,571999792.0,646170208.0,745909584.0,828352209.0,834386000.0],"unit":"ns","throughput":[],"typical":{"estimate":5037163.776046176,"lower_bound":4833394.727009937,"upper_bound":5224850.4543946935,"unit":"ns"},"mean":{"estimate":5140863.662394179,"lower_bound":5012266.923935185,"upper_bound":5233188.767009258,"unit":"ns"},"median":{"estimate":5159373.555555556,"lower_bound":5114131.944444444,"upper_bound":5285505.791666667,"unit":"ns"},"median_abs_dev":{"estimate":68850.59470987986,"lower_bound":11156.374574157733,"upper_bound":217477.1745306761,"unit":"ns"},"slope":{"estimate":5037163.776046176,"lower_bound":4833394.727009937,"upper_bound":5224850.4543946935,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[85323083.0,187606291.0,280790667.0,360159708.0,469693416.0,555590958.0,665629125.0,752081042.0,851177375.0,910942250.0],"unit":"ns","throughput":[],"typical":{"estimate":31057688.66839827,"lower_bound":30608087.15954416,"upper_bound":31453698.583435375,"unit":"ns"},"mean":{"estimate":30802323.827962972,"lower_bound":30166573.400374997,"upper_bound":31295594.346310187,"unit":"ns"},"median":{"estimate":31233339.083333336,"lower_bound":30364741.666666668,"upper_bound":31418991.18148148,"unit":"ns"},"median_abs_dev":{"estimate":488460.0779725453,"lower_bound":51145.93081697914,"upper_bound":1301595.89104205,"unit":"ns"},"slope":{"estimate":31057688.66839827,"lower_bound":30608087.15954416,"upper_bound":31453698.583435375,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[104324000.0,198272875.0,303808875.0,410783875.0,503738542.0,640497667.0,729443292.0,801839500.0,945175625.0,1076333000.0],"unit":"ns","throughput":[],"typical":{"estimate":17405991.452813853,"lower_bound":16965779.50051494,"upper_bound":17717150.038011696,"unit":"ns"},"mean":{"estimate":17200204.779616404,"lower_bound":16924091.272857144,"upper_bound":17478090.942397818,"unit":"ns"},"median":{"estimate":17241846.11011905,"lower_bound":16791284.733333334,"upper_bound":17589467.597222224,"unit":"ns"},"median_abs_dev":{"estimate":603519.4905778887,"lower_bound":109179.7534200037,"upper_bound":805505.6672160826,"unit":"ns"},"slope":{"estimate":17405991.452813853,"lower_bound":16965779.50051494,"upper_bound":17717150.038011696,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[134927625.0,262042375.0,382604708.0,499060542.0,659201416.0,761800875.0,890979333.0,977623500.0,1133139750.0,1239867875.0],"unit":"ns","throughput":[],"typical":{"estimate":41839533.18441559,"lower_bound":41349899.776,"upper_bound":42584729.40459337,"unit":"ns"},"mean":{"estimate":42547761.66301588,"lower_bound":41822353.44768651,"upper_bound":43342902.00301587,"unit":"ns"},"median":{"estimate":42374929.059523806,"lower_bound":41588378.5,"upper_bound":43673729.166666664,"unit":"ns"},"median_abs_dev":{"estimate":1358469.6262323395,"lower_bound":156142.1695279155,"upper_bound":2178989.536315201,"unit":"ns"},"slope":{"estimate":41839533.18441559,"lower_bound":41349899.776,"upper_bound":42584729.40459337,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[99395959.0,201652500.0,314910792.0,428893250.0,539697125.0,607519667.0,695402833.0,798272000.0,904919416.0,1013842000.0],"unit":"ns","throughput":[],"typical":{"estimate":16901861.704329003,"lower_bound":16726566.7082397,"upper_bound":17227321.35737705,"unit":"ns"},"mean":{"estimate":17044442.53280423,"lower_bound":16752282.455995368,"upper_bound":17378063.68796296,"unit":"ns"},"median":{"estimate":16839960.652777776,"lower_bound":16630666.666666666,"upper_bound":17495044.0,"unit":"ns"},"median_abs_dev":{"estimate":358241.72299826983,"lower_bound":60963.92846767273,"upper_bound":886410.07701308,"unit":"ns"},"slope":{"estimate":16901861.704329003,"lower_bound":16726566.7082397,"upper_bound":17227321.35737705,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[140436000.0,255038041.0,392053291.0,547696584.0,650560416.0,771515375.0,879400083.0,1000347750.0,1110505417.0,1287158916.0],"unit":"ns","throughput":[],"typical":{"estimate":42358504.86147186,"lower_bound":41712989.23163559,"upper_bound":43194336.40616246,"unit":"ns"},"mean":{"estimate":43234633.67600529,"lower_bound":42284338.48416005,"upper_bound":44349907.503412694,"unit":"ns"},"median":{"estimate":42883631.23888889,"lower_bound":41876194.428571425,"upper_bound":44506038.2,"unit":"ns"},"median_abs_dev":{"estimate":1249299.7832871631,"lower_bound":295746.843559448,"upper_bound":2935715.296355635,"unit":"ns"},"slope":{"estimate":42358504.86147186,"lower_bound":41712989.23163559,"upper_bound":43194336.40616246,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/1000000","MATCH/match_decrypt/eql_cast_firstname/1000000","MATCH/match/eql_cast_lastname/1000000","MATCH/match_decrypt/eql_cast_lastname/1000000","MATCH/match/eql_bloom/1000000","MATCH/match_decrypt/eql_bloom/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/ore_rows_10000.json b/results/query/ore_rows_10000.json index f2b2026..2cac4c1 100644 --- a/results/query/ore_rows_10000.json +++ b/results/query/ore_rows_10000.json @@ -1,15 +1,15 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[61,122,183,244,305,366,427,488,549,610],"measured_values":[111318709.0,197778750.0,256108458.0,374971000.0,479480458.0,552442917.0,651524500.0,730160209.0,803746584.0,966981667.0],"unit":"ns","throughput":[],"typical":{"estimate":1524063.6352139662,"lower_bound":1485815.4122752512,"upper_bound":1563788.4755493547,"unit":"ns"},"mean":{"estimate":1553505.7844203748,"lower_bound":1494170.8450351288,"upper_bound":1626899.9461065573,"unit":"ns"},"median":{"estimate":1531292.4473067916,"lower_bound":1494918.8899297426,"upper_bound":1596602.1852459018,"unit":"ns"},"median_abs_dev":{"estimate":70199.64716010072,"lower_bound":20281.609142388486,"upper_bound":153485.5780890208,"unit":"ns"},"slope":{"estimate":1524063.6352139662,"lower_bound":1485815.4122752512,"upper_bound":1563788.4755493547,"unit":"ns"},"change":{"mean":{"estimate":-0.378148753541114,"lower_bound":-0.40230538330324017,"upper_bound":-0.3452247959250055,"unit":"%"},"median":{"estimate":-0.3814481937513796,"lower_bound":-0.4021094360122811,"upper_bound":-0.3497238375012155,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[134498583.0,236023583.0,316222875.0,464566000.0,553139792.0,668701875.0,859420250.0,981985333.0,1087549541.0,1131559834.0],"unit":"ns","throughput":[],"typical":{"estimate":29329063.12142857,"lower_bound":28273271.201763604,"upper_bound":30220342.861180257,"unit":"ns"},"mean":{"estimate":29391376.993561514,"lower_bound":28243164.28034722,"upper_bound":30658165.34738219,"unit":"ns"},"median":{"estimate":29269161.4375,"lower_bound":27862578.125,"upper_bound":30687041.65625,"unit":"ns"},"median_abs_dev":{"estimate":2093774.778543692,"lower_bound":358693.480623584,"upper_bound":3467030.7623928995,"unit":"ns"},"slope":{"estimate":29329063.12142857,"lower_bound":28273271.201763604,"upper_bound":30220342.861180257,"unit":"ns"},"change":{"mean":{"estimate":-0.0002995325324263165,"lower_bound":-0.05084012248323879,"upper_bound":0.04973956992570959,"unit":"%"},"median":{"estimate":0.0030647276987638694,"lower_bound":-0.08083881468334486,"upper_bound":0.07326355062496415,"unit":"%"},"change":"NoChange"}} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[88996125.0,186091541.0,269595375.0,358466750.0,448057708.0,554859459.0,633070166.0,731034625.0,848043916.0,895247625.0],"unit":"ns","throughput":[],"typical":{"estimate":6519094.115398887,"lower_bound":6421690.88467818,"upper_bound":6632885.24692526,"unit":"ns"},"mean":{"estimate":6494154.383183106,"lower_bound":6424065.599591836,"upper_bound":6572836.760974702,"unit":"ns"},"median":{"estimate":6439418.576530612,"lower_bound":6397908.928571429,"upper_bound":6605469.75,"unit":"ns"},"median_abs_dev":{"estimate":94400.98676333272,"lower_bound":9189.906526847295,"upper_bound":202312.09770824207,"unit":"ns"},"slope":{"estimate":6519094.115398887,"lower_bound":6421690.88467818,"upper_bound":6632885.24692526,"unit":"ns"},"change":{"mean":{"estimate":-0.5606689931650426,"lower_bound":-0.5736855619806251,"upper_bound":-0.549678014533415,"unit":"%"},"median":{"estimate":-0.5541287123319921,"lower_bound":-0.5709817762771191,"upper_bound":-0.5426311757681446,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[142112417.0,294236833.0,406392292.0,570268916.0,712804250.0,808694042.0,967449125.0,1064513792.0,1233398292.0,1337631083.0],"unit":"ns","throughput":[],"typical":{"estimate":45378505.44935065,"lower_bound":44823081.76082474,"upper_bound":46274356.86639118,"unit":"ns"},"mean":{"estimate":46222798.49968253,"lower_bound":45336726.477142856,"upper_bound":47173087.131587304,"unit":"ns"},"median":{"estimate":45875212.08730159,"lower_bound":44871200.93888889,"upper_bound":47520283.333333336,"unit":"ns"},"median_abs_dev":{"estimate":2063114.143142401,"lower_bound":113960.29407679666,"upper_bound":2473964.908978343,"unit":"ns"},"slope":{"estimate":45378505.44935065,"lower_bound":44823081.76082474,"upper_bound":46274356.86639118,"unit":"ns"},"change":{"mean":{"estimate":-0.1279054180688285,"lower_bound":-0.14767969499461953,"upper_bound":-0.1072332921017398,"unit":"%"},"median":{"estimate":-0.1303365042080139,"lower_bound":-0.15455301426271273,"upper_bound":-0.0985570633517302,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[71,142,213,284,355,426,497,568,639,710],"measured_values":[103179875.0,169023416.0,263705500.0,348010959.0,458829917.0,598222583.0,653809750.0,701714083.0,804314500.0,884450333.0],"unit":"ns","throughput":[],"typical":{"estimate":1272419.4940552406,"lower_bound":1245604.1300480296,"upper_bound":1317926.4218923498,"unit":"ns"},"mean":{"estimate":1285908.2642627992,"lower_bound":1240690.1479208588,"upper_bound":1338202.8983446094,"unit":"ns"},"median":{"estimate":1252206.4160406885,"lower_bound":1231722.345657277,"upper_bound":1348378.5016431925,"unit":"ns"},"median_abs_dev":{"estimate":49732.28809939942,"lower_bound":9387.296640736618,"upper_bound":132609.4223355008,"unit":"ns"},"slope":{"estimate":1272419.4940552406,"lower_bound":1245604.1300480296,"upper_bound":1317926.4218923498,"unit":"ns"},"change":{"mean":{"estimate":-0.32068194341812795,"lower_bound":-0.3524467929006541,"upper_bound":-0.2845412864257665,"unit":"%"},"median":{"estimate":-0.3326100611817553,"lower_bound":-0.3640300856644596,"upper_bound":-0.2797641885527964,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[117031833.0,250547042.0,333167667.0,454434375.0,594945000.0,668385792.0,782089292.0,912762750.0,1109972125.0,1193954667.0],"unit":"ns","throughput":[],"typical":{"estimate":29302875.97987013,"lower_bound":28275293.410569105,"upper_bound":30088334.12989312,"unit":"ns"},"mean":{"estimate":29147613.92563492,"lower_bound":28441430.31319197,"upper_bound":29917019.313134916,"unit":"ns"},"median":{"estimate":28890897.09375,"lower_bound":27931760.42857143,"upper_bound":30289904.513888888,"unit":"ns"},"median_abs_dev":{"estimate":1421150.8352470293,"lower_bound":150656.87968030683,"upper_bound":2161802.6042265818,"unit":"ns"},"slope":{"estimate":29302875.97987013,"lower_bound":28275293.410569105,"upper_bound":30088334.12989312,"unit":"ns"},"change":{"mean":{"estimate":-0.026341340612251574,"lower_bound":-0.0694143149677045,"upper_bound":0.0155620549746146,"unit":"%"},"median":{"estimate":-0.023261462121507814,"lower_bound":-0.07783769011980968,"upper_bound":0.028276001700246578,"unit":"%"},"change":"NoChange"}} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[87709709.0,179557250.0,264738000.0,351355000.0,443111417.0,534521917.0,651639041.0,737366500.0,820949583.0,901440084.0],"unit":"ns","throughput":[],"typical":{"estimate":6480983.148423006,"lower_bound":6398096.703407136,"upper_bound":6549931.900190724,"unit":"ns"},"mean":{"estimate":6413607.759795918,"lower_bound":6339117.567431972,"upper_bound":6494759.401857142,"unit":"ns"},"median":{"estimate":6388057.541666666,"lower_bound":6302179.764285713,"upper_bound":6515472.880952381,"unit":"ns"},"median_abs_dev":{"estimate":147246.59616084953,"lower_bound":35229.32877455321,"upper_bound":224779.80953936197,"unit":"ns"},"slope":{"estimate":6480983.148423006,"lower_bound":6398096.703407136,"upper_bound":6549931.900190724,"unit":"ns"},"change":{"mean":{"estimate":-0.5599168305299298,"lower_bound":-0.5711020226370892,"upper_bound":-0.5504229771237805,"unit":"%"},"median":{"estimate":-0.5571927440947941,"lower_bound":-0.5672929135875131,"upper_bound":-0.5459983315363977,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[84721292.0,185758333.0,285243334.0,349268750.0,473475208.0,593283000.0,637864833.0,769820041.0,848816125.0,936453791.0],"unit":"ns","throughput":[],"typical":{"estimate":47095602.849350646,"lower_bound":46250297.15622839,"upper_bound":47916453.99191374,"unit":"ns"},"mean":{"estimate":46444181.67537698,"lower_bound":45147932.850394845,"upper_bound":47605466.913611114,"unit":"ns"},"median":{"estimate":46989570.46944444,"lower_bound":45049088.5,"upper_bound":47730636.68125,"unit":"ns"},"median_abs_dev":{"estimate":1241801.4902365396,"lower_bound":286193.48823905067,"upper_bound":3348640.9114347384,"unit":"ns"},"slope":{"estimate":47095602.849350646,"lower_bound":46250297.15622839,"upper_bound":47916453.99191374,"unit":"ns"},"change":{"mean":{"estimate":-0.13647232247903607,"lower_bound":-0.16506611609471367,"upper_bound":-0.10840768473892491,"unit":"%"},"median":{"estimate":-0.1230879887566042,"lower_bound":-0.16679433092673557,"upper_bound":-0.10240263344081768,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[63495250.0,126438625.0,192023917.0,249787958.0,328427833.0,395997875.0,445772708.0,536486291.0,583475750.0,646182167.0],"unit":"ns","throughput":[],"typical":{"estimate":16256574.806493506,"lower_bound":16050854.696185187,"upper_bound":16491536.29331519,"unit":"ns"},"mean":{"estimate":16126154.853978176,"lower_bound":15924809.986145834,"upper_bound":16340450.96528646,"unit":"ns"},"median":{"estimate":16078273.629166666,"lower_bound":15862640.99107143,"upper_bound":16421391.65,"unit":"ns"},"median_abs_dev":{"estimate":354272.18100041116,"lower_bound":85713.35371578457,"upper_bound":600189.2904020103,"unit":"ns"},"slope":{"estimate":16256574.806493506,"lower_bound":16050854.696185187,"upper_bound":16491536.29331519,"unit":"ns"},"change":{"mean":{"estimate":-0.9755308569418186,"lower_bound":-0.9763844790441544,"upper_bound":-0.9747305734061379,"unit":"%"},"median":{"estimate":-0.9748876851713664,"lower_bound":-0.9765096817527757,"upper_bound":-0.9742296262650018,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_ordered_10_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[126667542.0,249555584.0,370095625.0,522242167.0,608805500.0,774376500.0,881606291.0,1012135042.0,1109613125.0,1247589583.0],"unit":"ns","throughput":[],"typical":{"estimate":41771479.723809525,"lower_bound":41352473.05659851,"upper_bound":42336680.09803922,"unit":"ns"},"mean":{"estimate":41890162.523756616,"lower_bound":41383234.01072818,"upper_bound":42431992.702645496,"unit":"ns"},"median":{"estimate":41786924.64285715,"lower_bound":41121736.11111111,"upper_bound":42596605.041666664,"unit":"ns"},"median_abs_dev":{"estimate":816006.634546319,"lower_bound":178847.55272481914,"upper_bound":1486195.3527447537,"unit":"ns"},"slope":{"estimate":41771479.723809525,"lower_bound":41352473.05659851,"upper_bound":42336680.09803922,"unit":"ns"},"change":{"mean":{"estimate":-0.9365115016240321,"lower_bound":-0.9373889416092059,"upper_bound":-0.9356319008948646,"unit":"%"},"median":{"estimate":-0.9366081123781814,"lower_bound":-0.9375954966381621,"upper_bound":-0.9354077911051406,"unit":"%"},"change":"Improved"}} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[75,150,225,300,375,450,525,600,675,750],"measured_values":[91475833.0,176155458.0,324425459.0,379213583.0,458805708.0,571798208.0,623958833.0,742399334.0,818233708.0,883926708.0],"unit":"ns","throughput":[],"typical":{"estimate":1217974.4485194804,"lower_bound":1195854.2829905835,"upper_bound":1254564.9116145761,"unit":"ns"},"mean":{"estimate":1241072.0539830686,"lower_bound":1203794.3658021956,"upper_bound":1292821.084948148,"unit":"ns"},"median":{"estimate":1221579.8306666669,"lower_bound":1188493.0152380953,"upper_bound":1264045.2766666666,"unit":"ns"},"median_abs_dev":{"estimate":56006.890402678844,"lower_bound":8364.682329008294,"upper_bound":84029.63546684226,"unit":"ns"},"slope":{"estimate":1217974.4485194804,"lower_bound":1195854.2829905835,"upper_bound":1254564.9116145761,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120961000.0,228718250.0,336342875.0,471191708.0,562109333.0,705723834.0,787965709.0,923876291.0,1004374125.0,1144335417.0],"unit":"ns","throughput":[],"typical":{"estimate":28510762.475324675,"lower_bound":28160419.46251921,"upper_bound":28908288.55562201,"unit":"ns"},"mean":{"estimate":28733914.554970235,"lower_bound":28314839.74138095,"upper_bound":29200176.261874996,"unit":"ns"},"median":{"estimate":28599083.3375,"lower_bound":28085102.69047619,"upper_bound":29405159.75,"unit":"ns"},"median_abs_dev":{"estimate":788837.4114028345,"lower_bound":83811.04116205448,"upper_bound":1238104.7826692462,"unit":"ns"},"slope":{"estimate":28510762.475324675,"lower_bound":28160419.46251921,"upper_bound":28908288.55562201,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_ore_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_ore_ordered_10_10000","iteration_count":[75,150,225,300,375,450,525,600,675,750],"measured_values":[101076708.0,223080542.0,327858292.0,373852000.0,484134750.0,560835875.0,597890542.0,715279541.0,864979292.0,908548209.0],"unit":"ns","throughput":[],"typical":{"estimate":1232542.8747359307,"lower_bound":1196757.117398374,"upper_bound":1279059.4680310548,"unit":"ns"},"mean":{"estimate":1289936.2406470901,"lower_bound":1227630.2393070632,"upper_bound":1358927.6389563493,"unit":"ns"},"median":{"estimate":1263876.3737037037,"lower_bound":1211397.612,"upper_bound":1374086.9822222223,"unit":"ns"},"median_abs_dev":{"estimate":92086.18733715455,"lower_bound":25874.58118170126,"upper_bound":188624.0065122544,"unit":"ns"},"slope":{"estimate":1232542.8747359307,"lower_bound":1196757.117398374,"upper_bound":1279059.4680310548,"unit":"ns"},"change":{"mean":{"estimate":0.125253246502119,"lower_bound":0.06621155256489736,"upper_bound":0.18870546666516558,"unit":"%"},"median":{"estimate":0.11173013037705637,"lower_bound":0.050576355656023475,"upper_bound":0.20934946245168118,"unit":"%"},"change":"Regressed"}} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_ore_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_ore_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[122907375.0,249828166.0,343002917.0,486249250.0,577763167.0,653539250.0,788446708.0,930451459.0,1004688959.0,1229236750.0],"unit":"ns","throughput":[],"typical":{"estimate":29028524.384415586,"lower_bound":28057142.715968516,"upper_bound":30048696.954617836,"unit":"ns"},"mean":{"estimate":29292284.395763893,"lower_bound":28485160.41277604,"upper_bound":30104023.16527084,"unit":"ns"},"median":{"estimate":28982383.221875,"lower_bound":28158811.0,"upper_bound":30726843.75,"unit":"ns"},"median_abs_dev":{"estimate":1840315.3839820381,"lower_bound":255239.77834359472,"upper_bound":2342341.938102619,"unit":"ns"},"slope":{"estimate":29028524.384415586,"lower_bound":28057142.715968516,"upper_bound":30048696.954617836,"unit":"ns"},"change":{"mean":{"estimate":-0.06941090977814401,"lower_bound":-0.16045759803088852,"upper_bound":0.010754108463294327,"unit":"%"},"median":{"estimate":-0.0323046616582372,"lower_bound":-0.09882375020683087,"upper_bound":0.05335237678174454,"unit":"%"},"change":"NoChange"}} -{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore_decrypt/range_lt_ordered_10/100000","ORE/ore/range_lt_10/100000","ORE/ore_decrypt/range_lt_ore_100/10000","ORE/ore_decrypt/range_gt_ore_10/10000","ORE/ore_decrypt/range_lt_100/100000","ORE/ore_decrypt/range_gt_10/100000","ORE/ore_decrypt/range_gt_ore_100/10000","ORE/ore/range_lt_ordered_10/100000","ORE/ore/range_gt_100/100000","ORE/ore/range_lt_ore_10/10000","ORE/ore_decrypt/exact/10000","ORE/ore/range_lt_100/100000","ORE/ore_decrypt/range_lt_ore_10/10000","ORE/ore_decrypt/range_gt_100/100000","ORE/ore/range_gt_ore_100/10000","ORE/ore_decrypt/range_lt_10/100000","ORE/ore/exact/100000","ORE/ore_decrypt/exact/100000","ORE/ore/range_lt_ore_100/10000","ORE/ore/range_gt_10/100000","ORE/ore/range_gt_ore_10/10000","ORE/ore/exact/10000","ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_lt_ordered_10/10000","ORE/ore_decrypt/range_lt_ordered_10/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","ORE/ore/range_lt_ore_ordered_10/10000","ORE/ore_decrypt/range_lt_ore_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[404,808,1212,1616,2020,2424,2828,3232,3636,4040],"measured_values":[546129125.0,1056875667.0,1568391375.0,2124475334.0,2696924334.0,3215566292.0,3755895666.0,4536527750.0,5044113584.0,5614395208.0],"unit":"ns","throughput":[],"typical":{"estimate":1367914.6286485791,"lower_bound":1328131.736902557,"upper_bound":1385779.722518921,"unit":"ns"},"mean":{"estimate":1343889.7468530962,"lower_bound":1322787.5280943688,"upper_bound":1366712.2285403896,"unit":"ns"},"median":{"estimate":1331610.631824611,"lower_bound":1314650.577970297,"upper_bound":1387269.9625962595,"unit":"ns"},"median_abs_dev":{"estimate":32461.76771316868,"lower_bound":6343.530536488723,"upper_bound":62656.57074810186,"unit":"ns"},"slope":{"estimate":1367914.6286485791,"lower_bound":1328131.736902557,"upper_bound":1385779.722518921,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[523394375.0,1090135584.0,1755735000.0,2230641167.0,2821204375.0,3269742958.0,3951888250.0,4436041875.0,5050251417.0,5603818958.0],"unit":"ns","throughput":[],"typical":{"estimate":27955833.755454544,"lower_bound":27725161.46279799,"upper_bound":28146290.07565598,"unit":"ns"},"mean":{"estimate":27805735.67105357,"lower_bound":27320160.795106247,"upper_bound":28269098.89450223,"unit":"ns"},"median":{"estimate":27951054.68875,"lower_bound":27253389.6,"upper_bound":28212043.75,"unit":"ns"},"median_abs_dev":{"estimate":398602.6270076393,"lower_bound":116942.19952823484,"upper_bound":1432960.8692248557,"unit":"ns"},"slope":{"estimate":27955833.755454544,"lower_bound":27725161.46279799,"upper_bound":28146290.07565598,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[539410500.0,1077117167.0,1615432959.0,2089531625.0,2701165250.0,3300884625.0,3701044750.0,4198184000.0,4724078541.0,5419745542.0],"unit":"ns","throughput":[],"typical":{"estimate":6428294.531372243,"lower_bound":6345075.892028801,"upper_bound":6519076.816408491,"unit":"ns"},"mean":{"estimate":6445272.263479633,"lower_bound":6380481.796537938,"upper_bound":6509487.090021586,"unit":"ns"},"median":{"estimate":6488170.09939759,"lower_bound":6324067.658634538,"upper_bound":6514367.796385542,"unit":"ns"},"median_abs_dev":{"estimate":118374.67263891122,"lower_bound":8331.559865337691,"upper_bound":192052.4414572551,"unit":"ns"},"slope":{"estimate":6428294.531372243,"lower_bound":6345075.892028801,"upper_bound":6519076.816408491,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[538449084.0,1119299625.0,1682068666.0,2349125459.0,2733274291.0,3430113459.0,3959750125.0,4319365250.0,5086899875.0,5370028625.0],"unit":"ns","throughput":[],"typical":{"estimate":46152027.354329005,"lower_bound":45273424.17994905,"upper_bound":47280633.86510618,"unit":"ns"},"mean":{"estimate":46435195.47117724,"lower_bound":45640336.440277785,"upper_bound":47248855.56076058,"unit":"ns"},"median":{"estimate":46680806.99305555,"lower_bound":44993388.020833336,"upper_bound":47370694.738425925,"unit":"ns"},"median_abs_dev":{"estimate":1546272.5955306764,"lower_bound":181812.74825968218,"upper_bound":2656903.810320111,"unit":"ns"},"slope":{"estimate":46152027.354329005,"lower_bound":45273424.17994905,"upper_bound":47280633.86510618,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[378,756,1134,1512,1890,2268,2646,3024,3402,3780],"measured_values":[544345500.0,1124747750.0,1675804500.0,2337671000.0,2907230875.0,3078183417.0,3686077291.0,4550664583.0,4776282458.0,5186789959.0],"unit":"ns","throughput":[],"typical":{"estimate":1424032.7959183673,"lower_bound":1387841.5113359452,"upper_bound":1481728.5983568402,"unit":"ns"},"mean":{"estimate":1452118.5077531072,"lower_bound":1412264.0397779667,"upper_bound":1492217.498152872,"unit":"ns"},"median":{"estimate":1458924.603174603,"lower_bound":1388064.8767048796,"upper_bound":1512989.4841269841,"unit":"ns"},"median_abs_dev":{"estimate":89557.03772000923,"lower_bound":16142.22197285392,"upper_bound":111746.92253720667,"unit":"ns"},"slope":{"estimate":1424032.7959183673,"lower_bound":1387841.5113359452,"upper_bound":1481728.5983568402,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[19,38,57,76,95,114,133,152,171,190],"measured_values":[618783125.0,1103218375.0,1705026625.0,2277933500.0,2710761916.0,3438096375.0,3883000500.0,4603478625.0,5111704458.0,5678040875.0],"unit":"ns","throughput":[],"typical":{"estimate":29805742.0303486,"lower_bound":29428318.287046444,"upper_bound":30068942.02406015,"unit":"ns"},"mean":{"estimate":29943719.875269424,"lower_bound":29387570.625664163,"upper_bound":30640477.096447367,"unit":"ns"},"median":{"estimate":29902878.166666664,"lower_bound":29195492.48120301,"upper_bound":30158740.13157895,"unit":"ns"},"median_abs_dev":{"estimate":473710.9911800859,"lower_bound":27357.68901956166,"upper_bound":1366907.477048327,"unit":"ns"},"slope":{"estimate":29805742.0303486,"lower_bound":29428318.287046444,"upper_bound":30068942.02406015,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[81,162,243,324,405,486,567,648,729,810],"measured_values":[570159542.0,1117241791.0,1640635375.0,2179395750.0,2834297583.0,3284595583.0,3769932708.0,4384894750.0,4875262166.0,5437406750.0],"unit":"ns","throughput":[],"typical":{"estimate":6735395.466153599,"lower_bound":6696701.317989473,"upper_bound":6805093.638529122,"unit":"ns"},"mean":{"estimate":6798654.416667646,"lower_bound":6726367.041681362,"upper_bound":6881554.433902997,"unit":"ns"},"median":{"estimate":6755006.515432099,"lower_bound":6707066.257544581,"upper_bound":6896554.265432099,"unit":"ns"},"median_abs_dev":{"estimate":81218.87911507318,"lower_bound":12432.72798236195,"upper_bound":211580.20955333015,"unit":"ns"},"slope":{"estimate":6735395.466153599,"lower_bound":6696701.317989473,"upper_bound":6805093.638529122,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[567960125.0,1158084042.0,1601054459.0,2337225542.0,2997381292.0,3482247291.0,4051949792.0,4400676833.0,5049297917.0,5642958541.0],"unit":"ns","throughput":[],"typical":{"estimate":47263834.162554115,"lower_bound":46600683.720681794,"upper_bound":48223360.143410854,"unit":"ns"},"mean":{"estimate":47492564.070552245,"lower_bound":46546242.75960011,"upper_bound":48389820.27485566,"unit":"ns"},"median":{"estimate":47783753.97023809,"lower_bound":46432519.092708334,"upper_bound":48472850.27083333,"unit":"ns"},"median_abs_dev":{"estimate":1236150.5552889393,"lower_bound":106044.75017983328,"upper_bound":2654880.41465019,"unit":"ns"},"slope":{"estimate":47263834.162554115,"lower_bound":46600683.720681794,"upper_bound":48223360.143410854,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_ordered_10_10000","iteration_count":[24,48,72,96,120,144,168,192,216,240],"measured_values":[389070541.0,762233792.0,1158909458.0,1742839542.0,1955660417.0,2337403834.0,2757757792.0,3129162584.0,3605193916.0,4045226334.0],"unit":"ns","throughput":[],"typical":{"estimate":16601835.882683983,"lower_bound":16326104.54314227,"upper_bound":16842837.47091195,"unit":"ns"},"mean":{"estimate":16512959.67195106,"lower_bound":16205430.176349208,"upper_bound":16933941.171210315,"unit":"ns"},"median":{"estimate":16297445.966666667,"lower_bound":16163967.881944444,"upper_bound":16690712.574074075,"unit":"ns"},"median_abs_dev":{"estimate":236667.62500664272,"lower_bound":48741.00951800728,"upper_bound":695473.9610584262,"unit":"ns"},"slope":{"estimate":16601835.882683983,"lower_bound":16326104.54314227,"upper_bound":16842837.47091195,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_ordered_10_10000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[565397208.0,1106108541.0,1671758084.0,2174164083.0,2707368541.0,3255916209.0,3749849458.0,4310632459.0,4935610042.0,5396249208.0],"unit":"ns","throughput":[],"typical":{"estimate":41694080.55324675,"lower_bound":41466993.78258997,"upper_bound":42009779.39623185,"unit":"ns"},"mean":{"estimate":42045534.44064407,"lower_bound":41652278.04010989,"upper_bound":42488867.31007746,"unit":"ns"},"median":{"estimate":41776681.625,"lower_bound":41509609.29230769,"upper_bound":42542636.192307696,"unit":"ns"},"median_abs_dev":{"estimate":545828.2129233971,"lower_bound":117884.52046982184,"upper_bound":1168257.4640862069,"unit":"ns"},"slope":{"estimate":41694080.55324675,"lower_bound":41466993.78258997,"upper_bound":42009779.39623185,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[374,748,1122,1496,1870,2244,2618,2992,3366,3740],"measured_values":[420735708.0,926221625.0,1536964917.0,1829728708.0,2252635208.0,2790247417.0,3343207917.0,4353981125.0,4305282750.0,5190214291.0],"unit":"ns","throughput":[],"typical":{"estimate":1327117.4467810264,"lower_bound":1253869.6808245422,"upper_bound":1383836.6728227914,"unit":"ns"},"mean":{"estimate":1280321.8088213012,"lower_bound":1224822.6459237968,"upper_bound":1339225.623574421,"unit":"ns"},"median":{"estimate":1260217.0684046345,"lower_bound":1221440.9814171123,"upper_bound":1369843.9545454546,"unit":"ns"},"median_abs_dev":{"estimate":68744.96678078952,"lower_bound":15081.806043073333,"upper_bound":174298.8173258446,"unit":"ns"},"slope":{"estimate":1327117.4467810264,"lower_bound":1253869.6808245422,"upper_bound":1383836.6728227914,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[19,38,57,76,95,114,133,152,171,190],"measured_values":[530723792.0,1075039792.0,1605988250.0,2284986167.0,2912156208.0,3427514042.0,3923893084.0,4523760792.0,5044287875.0,5503492750.0],"unit":"ns","throughput":[],"typical":{"estimate":29508603.470266577,"lower_bound":29188182.08463944,"upper_bound":29908531.432229154,"unit":"ns"},"mean":{"estimate":29291343.09348788,"lower_bound":28746536.45537594,"upper_bound":29820051.41633939,"unit":"ns"},"median":{"estimate":29500857.510860484,"lower_bound":28290520.842105262,"upper_bound":30065607.460526317,"unit":"ns"},"median_abs_dev":{"estimate":837524.4968121109,"lower_bound":194831.91327086752,"upper_bound":1535346.6540316178,"unit":"ns"},"slope":{"estimate":29508603.470266577,"lower_bound":29188182.08463944,"upper_bound":29908531.432229154,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_ore_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_ore_ordered_10_10000","iteration_count":[423,846,1269,1692,2115,2538,2961,3384,3807,4230],"measured_values":[617764458.0,1187760292.0,1725203000.0,2307733125.0,3092123375.0,3620276791.0,3783680333.0,4397741167.0,4730630750.0,6221006417.0],"unit":"ns","throughput":[],"typical":{"estimate":1357253.6105738233,"lower_bound":1283109.8436663118,"upper_bound":1437671.8236030822,"unit":"ns"},"mean":{"estimate":1376694.8889844834,"lower_bound":1327242.6193684214,"upper_bound":1423185.3539965851,"unit":"ns"},"median":{"estimate":1383940.2213356975,"lower_bound":1299568.9027777778,"upper_bound":1460436.070921986,"unit":"ns"},"median_abs_dev":{"estimate":114569.76314913617,"lower_bound":8756.103482633058,"upper_bound":135359.44310681868,"unit":"ns"},"slope":{"estimate":1357253.6105738233,"lower_bound":1283109.8436663118,"upper_bound":1437671.8236030822,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_ore_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_ore_ordered_10_10000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[494396000.0,1107232042.0,1537748292.0,2224900125.0,2755962708.0,3219992834.0,3595326500.0,4360473583.0,4649677291.0,5336402875.0],"unit":"ns","throughput":[],"typical":{"estimate":29521453.757142857,"lower_bound":28995294.62506505,"upper_bound":30122341.871192884,"unit":"ns"},"mean":{"estimate":29520145.53943342,"lower_bound":28815186.11574515,"upper_bound":30186032.376332674,"unit":"ns"},"median":{"estimate":29730715.550925925,"lower_bound":28534337.301587302,"upper_bound":30621807.866666667,"unit":"ns"},"median_abs_dev":{"estimate":1523174.241398992,"lower_bound":199613.9163694784,"upper_bound":1893123.493174643,"unit":"ns"},"slope":{"estimate":29521453.757142857,"lower_bound":28995294.62506505,"upper_bound":30122341.871192884,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_lt_ordered_10/10000","ORE/ore_decrypt/range_lt_ordered_10/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","ORE/ore/range_lt_ore_ordered_10/10000","ORE/ore_decrypt/range_lt_ore_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_100000.json b/results/query/ore_rows_100000.json index d158153..4f07f64 100644 --- a/results/query/ore_rows_100000.json +++ b/results/query/ore_rows_100000.json @@ -1,15 +1,15 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[417,834,1251,1668,2085,2502,2919,3336,3753,4170],"measured_values":[541499083.0,1112687625.0,1970853084.0,2381332250.0,2717736500.0,3484443708.0,3925985125.0,4626398459.0,5339353083.0,5614776167.0],"unit":"ns","throughput":[],"typical":{"estimate":1379022.2697499143,"lower_bound":1351338.597595711,"upper_bound":1412140.854466427,"unit":"ns"},"mean":{"estimate":1383287.48191818,"lower_bound":1341167.5942840013,"upper_bound":1435084.9775672317,"unit":"ns"},"median":{"estimate":1366639.5972122303,"lower_bound":1324223.4027064063,"upper_bound":1422689.337330136,"unit":"ns"},"median_abs_dev":{"estimate":65628.40985848404,"lower_bound":8678.047406185491,"upper_bound":119388.3062322025,"unit":"ns"},"slope":{"estimate":1379022.2697499143,"lower_bound":1351338.597595711,"upper_bound":1412140.854466427,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[19,38,57,76,95,114,133,152,171,190],"measured_values":[526732625.0,1102360125.0,1608775875.0,2089966250.0,2674440667.0,3323891917.0,3744356917.0,4294699166.0,4814632542.0,5329348208.0],"unit":"ns","throughput":[],"typical":{"estimate":28219612.719343815,"lower_bound":28054455.459970348,"upper_bound":28499218.805036787,"unit":"ns"},"mean":{"estimate":28237750.070789468,"lower_bound":27956931.26525877,"upper_bound":28549810.29441886,"unit":"ns"},"median":{"estimate":28154402.692982458,"lower_bound":27937388.37894737,"upper_bound":28616807.565789476,"unit":"ns"},"median_abs_dev":{"estimate":152262.0399512834,"lower_bound":3551.823140098462,"upper_bound":931378.40389762,"unit":"ns"},"slope":{"estimate":28219612.719343815,"lower_bound":28054455.459970348,"upper_bound":28499218.805036787,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[543975000.0,1102662417.0,1561932041.0,2172263875.0,2851406125.0,3286055458.0,3871716792.0,4552995958.0,5036974708.0,5682290833.0],"unit":"ns","throughput":[],"typical":{"estimate":6752595.235174464,"lower_bound":6646764.821081108,"upper_bound":6816004.961956593,"unit":"ns"},"mean":{"estimate":6659148.384258941,"lower_bound":6546038.197349397,"upper_bound":6761087.328507364,"unit":"ns"},"median":{"estimate":6653214.502151463,"lower_bound":6553915.662650603,"upper_bound":6846133.53373494,"unit":"ns"},"median_abs_dev":{"estimate":155339.31048886274,"lower_bound":20662.26793015887,"upper_bound":334662.83511457243,"unit":"ns"},"slope":{"estimate":6752595.235174464,"lower_bound":6646764.821081108,"upper_bound":6816004.961956593,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[590660833.0,1113445459.0,1708722708.0,2279846166.0,2911576083.0,3405679625.0,4076850958.0,4603766125.0,5068511000.0,5731192500.0],"unit":"ns","throughput":[],"typical":{"estimate":47695167.18831169,"lower_bound":47277129.46459538,"upper_bound":48123233.47553191,"unit":"ns"},"mean":{"estimate":47758441.763845906,"lower_bound":47271587.470822334,"upper_bound":48256245.70449405,"unit":"ns"},"median":{"estimate":47628366.3125,"lower_bound":47197588.53703704,"upper_bound":48526268.05,"unit":"ns"},"median_abs_dev":{"estimate":760010.1968803816,"lower_bound":145064.41785792634,"upper_bound":1476293.5102413811,"unit":"ns"},"slope":{"estimate":47695167.18831169,"lower_bound":47277129.46459538,"upper_bound":48123233.47553191,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[375,750,1125,1500,1875,2250,2625,3000,3375,3750],"measured_values":[534974750.0,1095068583.0,1569239125.0,2299250292.0,2742920542.0,3720798375.0,4256582334.0,4519493000.0,5558433083.0,5747091125.0],"unit":"ns","throughput":[],"typical":{"estimate":1566185.6467809523,"lower_bound":1514002.764659176,"upper_bound":1616302.014556213,"unit":"ns"},"mean":{"estimate":1523853.62605164,"lower_bound":1471173.3942946666,"upper_bound":1579015.519666455,"unit":"ns"},"median":{"estimate":1519527.65,"lower_bound":1444745.1445333334,"upper_bound":1621555.1748571428,"unit":"ns"},"median_abs_dev":{"estimate":112947.81864757538,"lower_bound":19522.773659801376,"upper_bound":161494.15850597245,"unit":"ns"},"slope":{"estimate":1566185.6467809523,"lower_bound":1514002.764659176,"upper_bound":1616302.014556213,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[580265041.0,1128292166.0,1685074500.0,2267655250.0,2803244875.0,3433411959.0,3914820916.0,4520093125.0,5212648708.0,5663049083.0],"unit":"ns","throughput":[],"typical":{"estimate":28401066.313766234,"lower_bound":28142247.581462584,"upper_bound":28682764.604530018,"unit":"ns"},"mean":{"estimate":28378303.037799604,"lower_bound":28175384.366611503,"upper_bound":28605338.595178425,"unit":"ns"},"median":{"estimate":28282913.723125,"lower_bound":28084575.0,"upper_bound":28652425.056944445,"unit":"ns"},"median_abs_dev":{"estimate":332698.17412355106,"lower_bound":70503.9992951788,"upper_bound":623013.1200993083,"unit":"ns"},"slope":{"estimate":28401066.313766234,"lower_bound":28142247.581462584,"upper_bound":28682764.604530018,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[551059584.0,1073733500.0,1573166875.0,2169676292.0,2863928292.0,3261997209.0,3787300458.0,4417626167.0,5015883042.0,5694026291.0],"unit":"ns","throughput":[],"typical":{"estimate":6694529.1791894855,"lower_bound":6568817.410493274,"upper_bound":6787432.445405206,"unit":"ns"},"mean":{"estimate":6615849.862385254,"lower_bound":6513325.388260218,"upper_bound":6720871.5720767,"unit":"ns"},"median":{"estimate":6594733.647590362,"lower_bound":6501721.825301205,"upper_bound":6756662.048042169,"unit":"ns"},"median_abs_dev":{"estimate":145378.88967443097,"lower_bound":23429.357050914252,"upper_bound":294120.85919879325,"unit":"ns"},"slope":{"estimate":6694529.1791894855,"lower_bound":6568817.410493274,"upper_bound":6787432.445405206,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[581007208.0,1176711709.0,1633638084.0,2307465834.0,2870523958.0,3300506959.0,3934647000.0,4506712042.0,4964302875.0,5686214125.0],"unit":"ns","throughput":[],"typical":{"estimate":46830727.7530303,"lower_bound":46291754.83278146,"upper_bound":47340187.352810174,"unit":"ns"},"mean":{"estimate":47171724.070178576,"lower_bound":46469625.673799604,"upper_bound":47873049.30758185,"unit":"ns"},"median":{"estimate":47165017.40625,"lower_bound":45965767.36111111,"upper_bound":48129666.650000006,"unit":"ns"},"median_abs_dev":{"estimate":1561502.1013236288,"lower_bound":341203.9394374162,"upper_bound":2039736.550294106,"unit":"ns"},"slope":{"estimate":46830727.7530303,"lower_bound":46291754.83278146,"upper_bound":47340187.352810174,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_ordered_10_100000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[880584792.0,1750336083.0,2623175625.0,2109022333.0,706744291.0,866724250.0,993600000.0,1161758458.0,1272025166.0,1433145959.0],"unit":"ns","throughput":[],"typical":{"estimate":185584139.9168831,"lower_bound":147430922.8815095,"upper_bound":288224566.5248869,"unit":"ns"},"mean":{"estimate":401501658.14650786,"lower_bound":215991063.19928575,"upper_bound":621450208.3597025,"unit":"ns"},"median":{"estimate":144836924.4583333,"lower_bound":141942857.14285713,"upper_bound":874391875.0,"unit":"ns"},"median_abs_dev":{"estimate":5180842.686753305,"lower_bound":575372.2162351012,"upper_bound":542522949.5915723,"unit":"ns"},"slope":{"estimate":185584139.9168831,"lower_bound":147430922.8815095,"upper_bound":288224566.5248869,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[668223375.0,1403319291.0,2126737625.0,2695468083.0,3467278583.0,4184839917.0,4983647459.0,5751391333.0,6534042208.0,7145911542.0],"unit":"ns","throughput":[],"typical":{"estimate":178080868.66883117,"lower_bound":175208277.3112607,"upper_bound":179712841.46705395,"unit":"ns"},"mean":{"estimate":175376525.4154861,"lower_bound":172492187.5758924,"upper_bound":177993124.34736112,"unit":"ns"},"median":{"estimate":176321523.3958333,"lower_bound":171417542.53125,"upper_bound":178859194.203125,"unit":"ns"},"median_abs_dev":{"estimate":3916924.9036806864,"lower_bound":1052388.8490563794,"upper_bound":8306458.617952139,"unit":"ns"},"slope":{"estimate":178080868.66883117,"lower_bound":175208277.3112607,"upper_bound":179712841.46705395,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[402,804,1206,1608,2010,2412,2814,3216,3618,4020],"measured_values":[455982708.0,959501250.0,1628467417.0,2179276750.0,2654023042.0,3129472792.0,3492145125.0,4079736500.0,4640080625.0,4996751875.0],"unit":"ns","throughput":[],"typical":{"estimate":1271794.2667894296,"lower_bound":1254104.5507743151,"upper_bound":1298623.0395757924,"unit":"ns"},"mean":{"estimate":1268617.6713405198,"lower_bound":1226171.2960751797,"upper_bound":1307673.7172857933,"unit":"ns"},"median":{"estimate":1275536.7865533442,"lower_bound":1218191.309079602,"upper_bound":1323882.1778606963,"unit":"ns"},"median_abs_dev":{"estimate":58873.84838119822,"lower_bound":20448.792407483692,"upper_bound":118993.57961181997,"unit":"ns"},"slope":{"estimate":1271794.2667894296,"lower_bound":1254104.5507743151,"upper_bound":1298623.0395757924,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[563447083.0,1130293834.0,1884639625.0,2273686542.0,3166591583.0,4078655333.0,3941790000.0,4596504959.0,5163361583.0,5493369167.0],"unit":"ns","throughput":[],"typical":{"estimate":29044948.73974026,"lower_bound":28064602.36676768,"upper_bound":30893463.89687684,"unit":"ns"},"mean":{"estimate":29495213.927700393,"lower_bound":28363171.86117064,"upper_bound":30825692.142373018,"unit":"ns"},"median":{"estimate":28553211.951388888,"lower_bound":28172354.15,"upper_bound":31410660.416666668,"unit":"ns"},"median_abs_dev":{"estimate":577047.8474895186,"lower_bound":87780.50844158288,"upper_bound":3524786.431487905,"unit":"ns"},"slope":{"estimate":29044948.73974026,"lower_bound":28064602.36676768,"upper_bound":30893463.89687684,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_ore_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_ore_ordered_10_100000","iteration_count":[431,862,1293,1724,2155,2586,3017,3448,3879,4310],"measured_values":[536311042.0,1073394000.0,1673205292.0,2204959625.0,2633848709.0,3079843125.0,3579065041.0,4350838958.0,4704162208.0,5384853917.0],"unit":"ns","throughput":[],"typical":{"estimate":1230704.9248561184,"lower_bound":1207471.68820029,"upper_bound":1251880.522512073,"unit":"ns"},"mean":{"estimate":1238603.2324752328,"lower_bound":1217650.072351209,"upper_bound":1259405.9713524887,"unit":"ns"},"median":{"estimate":1244788.9118329468,"lower_bound":1206585.764849188,"upper_bound":1264182.4802204175,"unit":"ns"},"median_abs_dev":{"estimate":40511.116232044726,"lower_bound":4403.610358038365,"upper_bound":62720.529845745514,"unit":"ns"},"slope":{"estimate":1230704.9248561184,"lower_bound":1207471.68820029,"upper_bound":1251880.522512073,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_ore_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_ore_ordered_10_100000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[581560667.0,1097378833.0,1690728000.0,2207938500.0,2833715209.0,3359506167.0,4062331458.0,4400675666.0,5210557875.0,5776528291.0],"unit":"ns","throughput":[],"typical":{"estimate":28481545.285584416,"lower_bound":27888333.72010582,"upper_bound":28835397.819923725,"unit":"ns"},"mean":{"estimate":28297463.362892855,"lower_bound":27911479.929,"upper_bound":28678495.227995533,"unit":"ns"},"median":{"estimate":28257976.045,"lower_bound":27599231.25,"upper_bound":28949647.363214284,"unit":"ns"},"median_abs_dev":{"estimate":999504.0385052562,"lower_bound":99342.95775481033,"upper_bound":1073528.868960052,"unit":"ns"},"slope":{"estimate":28481545.285584416,"lower_bound":27888333.72010582,"upper_bound":28835397.819923725,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[562,1124,1686,2248,2810,3372,3934,4496,5058,5620],"measured_values":[497131000.0,1072819959.0,1647958958.0,2074459083.0,2913657875.0,3429829208.0,3816003083.0,4427056416.0,4672046208.0,5321147750.0],"unit":"ns","throughput":[],"typical":{"estimate":963257.9148125895,"lower_bound":942115.550569621,"upper_bound":994178.6577921115,"unit":"ns"},"mean":{"estimate":961850.8094581427,"lower_bound":934887.5214243348,"upper_bound":988606.7616505676,"unit":"ns"},"median":{"estimate":962236.0116293848,"lower_bound":923694.3867141162,"upper_bound":997293.4644128114,"unit":"ns"},"median_abs_dev":{"estimate":45197.9395570068,"lower_bound":10867.239411872197,"upper_bound":77426.33812683128,"unit":"ns"},"slope":{"estimate":963257.9148125895,"lower_bound":942115.550569621,"upper_bound":994178.6577921115,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[563135459.0,1052908041.0,1648721917.0,2141136083.0,2653131833.0,3331859083.0,3859279875.0,4404566458.0,4940792167.0,5329200042.0],"unit":"ns","throughput":[],"typical":{"estimate":27200921.55831169,"lower_bound":26840800.967941586,"upper_bound":27525044.14477612,"unit":"ns"},"mean":{"estimate":27220885.508365076,"lower_bound":26859615.40796984,"upper_bound":27571157.844638392,"unit":"ns"},"median":{"estimate":27463771.994444445,"lower_bound":26646000.21,"upper_bound":27647016.360416666,"unit":"ns"},"median_abs_dev":{"estimate":737386.901012932,"lower_bound":59077.895244077554,"upper_bound":1027443.198465902,"unit":"ns"},"slope":{"estimate":27200921.55831169,"lower_bound":26840800.967941586,"upper_bound":27525044.14477612,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[79,158,237,316,395,474,553,632,711,790],"measured_values":[533583625.0,1017244833.0,1533591958.0,2063798167.0,2590618833.0,2998424084.0,3501015375.0,4028913375.0,4651966792.0,5172719334.0],"unit":"ns","throughput":[],"typical":{"estimate":6467236.21880651,"lower_bound":6379130.112815923,"upper_bound":6536475.9960972825,"unit":"ns"},"mean":{"estimate":6487506.803131906,"lower_bound":6414978.564104468,"upper_bound":6567446.046606893,"unit":"ns"},"median":{"estimate":6500929.500527427,"lower_bound":6374862.935126582,"upper_bound":6550689.656399438,"unit":"ns"},"median_abs_dev":{"estimate":89156.33802639908,"lower_bound":11622.152698898246,"upper_bound":243907.6957561032,"unit":"ns"},"slope":{"estimate":6467236.21880651,"lower_bound":6379130.112815923,"upper_bound":6536475.9960972825,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[604627000.0,1205973375.0,1783282208.0,2346328542.0,2975423334.0,3594999083.0,4136867167.0,4799709333.0,5487765416.0,6137939333.0],"unit":"ns","throughput":[],"typical":{"estimate":46418356.16723277,"lower_bound":45722722.26535666,"upper_bound":46860278.384615384,"unit":"ns"},"mean":{"estimate":46133574.94593102,"lower_bound":45756608.114072725,"upper_bound":46517108.90002137,"unit":"ns"},"median":{"estimate":46120391.556089744,"lower_bound":45617911.17912088,"upper_bound":46643784.63034188,"unit":"ns"},"median_abs_dev":{"estimate":581612.412997391,"lower_bound":217838.05298644706,"upper_bound":1070362.4255536771,"unit":"ns"},"slope":{"estimate":46418356.16723277,"lower_bound":45722722.26535666,"upper_bound":46860278.384615384,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[555,1110,1665,2220,2775,3330,3885,4440,4995,5550],"measured_values":[468384333.0,1093078750.0,1782876708.0,2250968583.0,2692536750.0,3107066916.0,3583256083.0,4404723125.0,4950630167.0,5729441708.0],"unit":"ns","throughput":[],"typical":{"estimate":988804.482035802,"lower_bound":953549.0461219215,"upper_bound":1015303.4847059658,"unit":"ns"},"mean":{"estimate":975460.9426798942,"lower_bound":936078.095909624,"upper_bound":1010680.6645775776,"unit":"ns"},"median":{"estimate":987936.3905905907,"lower_bound":933053.1279279279,"upper_bound":1013949.8121621622,"unit":"ns"},"median_abs_dev":{"estimate":52194.094597300376,"lower_bound":6105.891239151152,"upper_bound":104389.78667752165,"unit":"ns"},"slope":{"estimate":988804.482035802,"lower_bound":953549.0461219215,"upper_bound":1015303.4847059658,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[611409041.0,1131291833.0,1670259917.0,2232686875.0,2770069125.0,3443314208.0,3930429667.0,4557428834.0,5161545250.0,5711665709.0],"unit":"ns","throughput":[],"typical":{"estimate":28424513.443116885,"lower_bound":28144010.789372824,"upper_bound":28577853.146873806,"unit":"ns"},"mean":{"estimate":28478598.318031747,"lower_bound":28080362.106642853,"upper_bound":29022089.80808056,"unit":"ns"},"median":{"estimate":28383113.018749997,"lower_bound":27908585.9375,"upper_bound":28675251.388888888,"unit":"ns"},"median_abs_dev":{"estimate":459448.4249981596,"lower_bound":105146.96000076573,"upper_bound":979566.4263010521,"unit":"ns"},"slope":{"estimate":28424513.443116885,"lower_bound":28144010.789372824,"upper_bound":28577853.146873806,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[549750500.0,1096254750.0,1689090708.0,2245436250.0,2701181917.0,3278122084.0,3813961250.0,4431725542.0,5334266584.0,5563090750.0],"unit":"ns","throughput":[],"typical":{"estimate":6751893.570802691,"lower_bound":6600832.271308077,"upper_bound":6936585.473320346,"unit":"ns"},"mean":{"estimate":6694795.059723656,"lower_bound":6605413.565457401,"upper_bound":6811359.3277337905,"unit":"ns"},"median":{"estimate":6648892.727409638,"lower_bound":6582574.465863454,"upper_bound":6763362.198795181,"unit":"ns"},"median_abs_dev":{"estimate":111738.95985208014,"lower_bound":29256.947823959024,"upper_bound":220506.87399184794,"unit":"ns"},"slope":{"estimate":6751893.570802691,"lower_bound":6600832.271308077,"upper_bound":6936585.473320346,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[548455958.0,1031840208.0,1778378417.0,2149156167.0,2773169875.0,3383344875.0,3989273916.0,4503322791.0,4899834625.0,5686707375.0],"unit":"ns","throughput":[],"typical":{"estimate":46672489.18463203,"lower_bound":45865840.50951803,"upper_bound":47274325.32327697,"unit":"ns"},"mean":{"estimate":46324092.72041997,"lower_bound":45275771.1283569,"upper_bound":47340457.31914683,"unit":"ns"},"median":{"estimate":46564555.16145833,"lower_bound":45239374.98958333,"upper_bound":47389228.125,"unit":"ns"},"median_abs_dev":{"estimate":1324475.4797358608,"lower_bound":355539.12599729374,"upper_bound":2987855.0770827457,"unit":"ns"},"slope":{"estimate":46672489.18463203,"lower_bound":45865840.50951803,"upper_bound":47274325.32327697,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[602132125.0,1177489208.0,1756067458.0,2317997750.0,2900268500.0,3502459042.0,4090488750.0,4744116667.0,5214842250.0,5807024334.0],"unit":"ns","throughput":[],"typical":{"estimate":145846479.76818183,"lower_bound":145127242.8438287,"upper_bound":146999408.41975105,"unit":"ns"},"mean":{"estimate":146425708.2163988,"lower_bound":145482676.71404764,"upper_bound":147579316.36429688,"unit":"ns"},"median":{"estimate":146012338.67261904,"lower_bound":145013425.0,"upper_bound":147296300.3385417,"unit":"ns"},"median_abs_dev":{"estimate":1583708.080721057,"lower_bound":129598.54238668067,"upper_bound":2589189.107177746,"unit":"ns"},"slope":{"estimate":145846479.76818183,"lower_bound":145127242.8438287,"upper_bound":146999408.41975105,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[679648292.0,1348633375.0,2064615583.0,2724893584.0,3429891834.0,4075594334.0,4771313250.0,5431898334.0,6264237041.0,6754153167.0],"unit":"ns","throughput":[],"typical":{"estimate":170680133.61168832,"lower_bound":169372974.23434344,"upper_bound":172492083.96151453,"unit":"ns"},"mean":{"estimate":170517069.5969246,"lower_bound":169644389.6829717,"upper_bound":171528979.93970236,"unit":"ns"},"median":{"estimate":170108961.0,"lower_bound":169335129.87916666,"upper_bound":171494591.7,"unit":"ns"},"median_abs_dev":{"estimate":1198882.1463193283,"lower_bound":141799.4444325419,"upper_bound":2515011.077549649,"unit":"ns"},"slope":{"estimate":170680133.61168832,"lower_bound":169372974.23434344,"upper_bound":172492083.96151453,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[469,938,1407,1876,2345,2814,3283,3752,4221,4690],"measured_values":[589651958.0,1098011125.0,1508862458.0,2245511500.0,2532533625.0,3380537750.0,3564116083.0,4181705291.0,4827934167.0,4943504917.0],"unit":"ns","throughput":[],"typical":{"estimate":1110564.6929859053,"lower_bound":1076733.8033481035,"upper_bound":1152295.2104512565,"unit":"ns"},"mean":{"estimate":1137650.203554422,"lower_bound":1099588.3483820693,"upper_bound":1178468.463830846,"unit":"ns"},"median":{"estimate":1129158.0927949538,"lower_bound":1079012.3593765865,"upper_bound":1196967.750533049,"unit":"ns"},"median_abs_dev":{"estimate":78538.93705957303,"lower_bound":11230.370251367303,"upper_bound":110288.56791608053,"unit":"ns"},"slope":{"estimate":1110564.6929859053,"lower_bound":1076733.8033481035,"upper_bound":1152295.2104512565,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[19,38,57,76,95,114,133,152,171,190],"measured_values":[564329417.0,1162963584.0,1636773792.0,2177974834.0,2838050000.0,3232703375.0,3740852667.0,4410711708.0,4954326625.0,5660335542.0],"unit":"ns","throughput":[],"typical":{"estimate":29085837.993848257,"lower_bound":28579244.546488173,"upper_bound":29524205.97021627,"unit":"ns"},"mean":{"estimate":29181846.60527151,"lower_bound":28738356.52061947,"upper_bound":29654971.187776316,"unit":"ns"},"median":{"estimate":28995255.252923977,"lower_bound":28536188.416666668,"upper_bound":29791239.694736842,"unit":"ns"},"median_abs_dev":{"estimate":996678.6581396251,"lower_bound":127994.53340659161,"upper_bound":1271938.6231364699,"unit":"ns"},"slope":{"estimate":29085837.993848257,"lower_bound":28579244.546488173,"upper_bound":29524205.97021627,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_ore_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_ore_ordered_10_100000","iteration_count":[465,930,1395,1860,2325,2790,3255,3720,4185,4650],"measured_values":[521063000.0,1098691208.0,1700217459.0,2517401708.0,2702331541.0,3114532166.0,3583489500.0,4020757917.0,4676474000.0,5182882292.0],"unit":"ns","throughput":[],"typical":{"estimate":1124173.3505488061,"lower_bound":1104178.0111974508,"upper_bound":1165819.120053293,"unit":"ns"},"mean":{"estimate":1156660.5266686294,"lower_bound":1116315.0882330302,"upper_bound":1209258.3264578427,"unit":"ns"},"median":{"estimate":1119001.314217443,"lower_bound":1108619.10296979,"upper_bound":1190543.5066666668,"unit":"ns"},"median_abs_dev":{"estimate":41687.22183908826,"lower_bound":2552.1926572273087,"upper_bound":101536.38109078837,"unit":"ns"},"slope":{"estimate":1124173.3505488061,"lower_bound":1104178.0111974508,"upper_bound":1165819.120053293,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_ore_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_ore_ordered_10_100000","iteration_count":[19,38,57,76,95,114,133,152,171,190],"measured_values":[630458875.0,1130951458.0,1614970042.0,2286545875.0,2756787750.0,3304212584.0,3797490125.0,4686632541.0,4860942584.0,5750958334.0],"unit":"ns","throughput":[],"typical":{"estimate":29504610.727272727,"lower_bound":28676254.446138445,"upper_bound":30232801.86307601,"unit":"ns"},"mean":{"estimate":29744643.627804928,"lower_bound":28974529.95661445,"upper_bound":30693008.42843729,"unit":"ns"},"median":{"estimate":29390349.44736842,"lower_bound":28552557.33082707,"upper_bound":30459619.378289476,"unit":"ns"},"median_abs_dev":{"estimate":1271807.1912061705,"lower_bound":232402.46867578538,"upper_bound":2220105.075733066,"unit":"ns"},"slope":{"estimate":29504610.727272727,"lower_bound":28676254.446138445,"upper_bound":30232801.86307601,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/100000","ORE/ore_decrypt/range_gt_10/100000","ORE/ore/range_gt_100/100000","ORE/ore_decrypt/range_gt_100/100000","ORE/ore/range_lt_10/100000","ORE/ore_decrypt/range_lt_10/100000","ORE/ore/range_lt_100/100000","ORE/ore_decrypt/range_lt_100/100000","ORE/ore/range_lt_ordered_10/100000","ORE/ore_decrypt/range_lt_ordered_10/100000","ORE/ore/range_lt_hybrid_ordered_10/100000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","ORE/ore/range_lt_ore_ordered_10/100000","ORE/ore_decrypt/range_lt_ore_ordered_10/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_1000000.json b/results/query/ore_rows_1000000.json index e69de29..f1b89b1 100644 --- a/results/query/ore_rows_1000000.json +++ b/results/query/ore_rows_1000000.json @@ -0,0 +1,11 @@ +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[76,152,228,304,380,456,532,608,684,760],"measured_values":[98253084.0,201466667.0,368788250.0,452605750.0,531013833.0,529478500.0,605673167.0,699027000.0,812500042.0,957680959.0],"unit":"ns","throughput":[],"typical":{"estimate":1229362.6954887218,"lower_bound":1178824.6496334905,"upper_bound":1308621.1184256382,"unit":"ns"},"mean":{"estimate":1301928.2189745198,"lower_bound":1214015.5915601505,"upper_bound":1400761.8263157895,"unit":"ns"},"median":{"estimate":1276455.1309210525,"lower_bound":1161137.0614035088,"upper_bound":1407136.6513157894,"unit":"ns"},"median_abs_dev":{"estimate":175145.2890692337,"lower_bound":25119.490236934816,"upper_bound":258524.75397171563,"unit":"ns"},"slope":{"estimate":1229362.6954887218,"lower_bound":1178824.6496334905,"upper_bound":1308621.1184256382,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[109531458.0,223709875.0,333104584.0,477418750.0,570097000.0,695500125.0,821134417.0,941277250.0,1047837542.0,1126003375.0],"unit":"ns","throughput":[],"typical":{"estimate":28868932.634415586,"lower_bound":28432211.080714174,"upper_bound":29264559.29519774,"unit":"ns"},"mean":{"estimate":28642583.396329366,"lower_bound":28163674.68808036,"upper_bound":29115928.11527778,"unit":"ns"},"median":{"estimate":28742010.9375,"lower_bound":27954399.854166664,"upper_bound":29326229.17857143,"unit":"ns"},"median_abs_dev":{"estimate":937618.2306976989,"lower_bound":228554.40479026825,"upper_bound":1277803.9091477785,"unit":"ns"},"slope":{"estimate":28868932.634415586,"lower_bound":28432211.080714174,"upper_bound":29264559.29519774,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[103750583.0,184277292.0,276464334.0,391348166.0,474211875.0,548913334.0,661355875.0,843564458.0,910766709.0,1067288833.0],"unit":"ns","throughput":[],"typical":{"estimate":7194698.6478664195,"lower_bound":6779033.87037037,"upper_bound":7442114.687864431,"unit":"ns"},"mean":{"estimate":7000422.367363945,"lower_bound":6760851.717942176,"upper_bound":7252347.862619048,"unit":"ns"},"median":{"estimate":6881407.732142857,"lower_bound":6582484.142857143,"upper_bound":7410755.928571428,"unit":"ns"},"median_abs_dev":{"estimate":479473.61691264185,"lower_bound":38437.917174734175,"upper_bound":657346.404279768,"unit":"ns"},"slope":{"estimate":7194698.6478664195,"lower_bound":6779033.87037037,"upper_bound":7442114.687864431,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[97414000.0,186072125.0,274883041.0,373494333.0,519381250.0,539076084.0,684634459.0,780335375.0,835807459.0,916927333.0],"unit":"ns","throughput":[],"typical":{"estimate":47202872.9,"lower_bound":46091233.71488152,"upper_bound":48772453.78016999,"unit":"ns"},"mean":{"estimate":47454033.17085317,"lower_bound":46315383.96363095,"upper_bound":48764720.80585317,"unit":"ns"},"median":{"estimate":46602411.4375,"lower_bound":45846366.65,"upper_bound":48804730.67857143,"unit":"ns"},"median_abs_dev":{"estimate":1829510.3601072002,"lower_bound":144895.50147759143,"upper_bound":3805749.348306109,"unit":"ns"},"slope":{"estimate":47202872.9,"lower_bound":46091233.71488152,"upper_bound":48772453.78016999,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[93,186,279,372,465,558,651,744,837,930],"measured_values":[98757709.0,173966625.0,284847542.0,345222625.0,427476917.0,526906625.0,597545709.0,712523583.0,801816792.0,902095250.0],"unit":"ns","throughput":[],"typical":{"estimate":952416.1618489038,"lower_bound":934539.1528412724,"upper_bound":964188.4162903226,"unit":"ns"},"mean":{"estimate":961331.6267805941,"lower_bound":936791.2754249873,"upper_bound":991083.4622699053,"unit":"ns"},"median":{"estimate":950985.0468189964,"lower_bound":927304.8166666667,"upper_bound":989462.0179211469,"unit":"ns"},"median_abs_dev":{"estimate":31117.611322551995,"lower_bound":8558.381851767856,"upper_bound":68334.58105241001,"unit":"ns"},"slope":{"estimate":952416.1618489038,"lower_bound":934539.1528412724,"upper_bound":964188.4162903226,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[109574416.0,216329250.0,317976084.0,706599083.0,530279416.0,650573125.0,783180750.0,902029709.0,973924417.0,1242003833.0],"unit":"ns","throughput":[],"typical":{"estimate":29065749.568181816,"lower_bound":27243514.86531401,"upper_bound":31357975.561363637,"unit":"ns"},"mean":{"estimate":29297911.5609623,"lower_bound":27078500.66214286,"upper_bound":32865005.330803573,"unit":"ns"},"median":{"estimate":27250408.770833336,"lower_bound":26783713.413888887,"upper_bound":29510418.448214285,"unit":"ns"},"median_abs_dev":{"estimate":1079903.7830378744,"lower_bound":48968.26944314036,"upper_bound":2922858.5847438886,"unit":"ns"},"slope":{"estimate":29065749.568181816,"lower_bound":27243514.86531401,"upper_bound":31357975.561363637,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[86427250.0,166578875.0,256444750.0,342376583.0,426869583.0,518523584.0,600918375.0,729043041.0,790054125.0,915166208.0],"unit":"ns","throughput":[],"typical":{"estimate":6814153.278521478,"lower_bound":6611475.216117216,"upper_bound":6943068.720571152,"unit":"ns"},"mean":{"estimate":6683563.117316851,"lower_bound":6574441.263278388,"upper_bound":6807885.94808379,"unit":"ns"},"median":{"estimate":6625618.441391941,"lower_bound":6575506.41025641,"upper_bound":6829139.620192308,"unit":"ns"},"median_abs_dev":{"estimate":80435.58435044404,"lower_bound":12837.310460554498,"upper_bound":316346.2092429631,"unit":"ns"},"slope":{"estimate":6814153.278521478,"lower_bound":6611475.216117216,"upper_bound":6943068.720571152,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[81482625.0,172910583.0,256079917.0,352140542.0,464530083.0,504716250.0,657786750.0,788269125.0,895951917.0,964519917.0],"unit":"ns","throughput":[],"typical":{"estimate":47499325.06233766,"lower_bound":45143146.4375,"upper_bound":48725562.33367983,"unit":"ns"},"mean":{"estimate":45343189.84863095,"lower_bound":43480212.37722321,"upper_bound":47221226.14791667,"unit":"ns"},"median":{"estimate":45235288.025,"lower_bound":42643666.625,"upper_bound":48225995.85,"unit":"ns"},"median_abs_dev":{"estimate":4111256.9052656023,"lower_bound":811960.0838348307,"upper_bound":5102806.115387081,"unit":"ns"},"slope":{"estimate":47499325.06233766,"lower_bound":45143146.4375,"upper_bound":48725562.33367983,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[86,172,258,344,430,516,602,688,774,860],"measured_values":[85235250.0,197916750.0,354367166.0,418043541.0,471478708.0,613888458.0,748863666.0,768270708.0,811350333.0,982983167.0],"unit":"ns","throughput":[],"typical":{"estimate":1140962.388794926,"lower_bound":1094805.5649754335,"upper_bound":1201379.4953725676,"unit":"ns"},"mean":{"estimate":1156860.5807336657,"lower_bound":1096117.771482558,"upper_bound":1221594.1153732005,"unit":"ns"},"median":{"estimate":1146841.2308139536,"lower_bound":1082464.3924418604,"upper_bound":1216832.946013289,"unit":"ns"},"median_abs_dev":{"estimate":88052.16108495936,"lower_bound":25208.824057686328,"upper_bound":180782.75861837115,"unit":"ns"},"slope":{"estimate":1140962.388794926,"lower_bound":1094805.5649754335,"upper_bound":1201379.4953725676,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[102677458.0,217983042.0,313971708.0,423432083.0,535579042.0,653586167.0,787876791.0,849678834.0,997905083.0,1102017708.0],"unit":"ns","throughput":[],"typical":{"estimate":27329604.055844154,"lower_bound":26820108.770202022,"upper_bound":27667783.49744898,"unit":"ns"},"mean":{"estimate":26951871.671865083,"lower_bound":26504884.75972222,"upper_bound":27395342.948551092,"unit":"ns"},"median":{"estimate":27005854.52916667,"lower_bound":26358386.28125,"upper_bound":27550442.7,"unit":"ns"},"median_abs_dev":{"estimate":805005.4637245456,"lower_bound":233099.49209790787,"upper_bound":1244079.1045881808,"unit":"ns"},"slope":{"estimate":27329604.055844154,"lower_bound":26820108.770202022,"upper_bound":27667783.49744898,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/1000000","ORE/ore_decrypt/range_gt_10/1000000","ORE/ore/range_gt_100/1000000","ORE/ore_decrypt/range_gt_100/1000000","ORE/ore/range_lt_10/1000000","ORE/ore_decrypt/range_lt_10/1000000","ORE/ore/range_lt_100/1000000","ORE/ore_decrypt/range_lt_100/1000000","ORE/ore/range_lt_hybrid_ordered_10/1000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} From df4a0fc6623ca67b9ebdc17c8e6ffc283d7a8d68 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Thu, 14 May 2026 20:54:07 +1000 Subject: [PATCH 07/30] bench(json): add ste_vec field-level query bench MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three scenarios against `json_ste_vec_small_encrypted_*`, all using the extractor recipes the EQL query-performance guide recommends: field_eq WHERE eql_v2.hmac_256_terms(col) @> $1::jsonb Engages a `GIN (eql_v2.hmac_256_terms(value))` index (added in this commit). One index covers field-level equality across every selector that carries `hm`, vs the per-selector hash recipe which needs one index per hot path. field_extract SELECT eql_v2.jsonb_path_query(col, '') FROM t LIMIT 1000 No index. Measures the per-row cost of the inlinable `jsonb_path_query` body — `jsonb_array_elements(...) WHERE elem ->> 's' = selector`. Inlining means the body folds into the calling query, so each row pays an array walk rather than a plpgsql function call. field_group_by SELECT eql_v2.hmac_256(col, ''), count(*) FROM t GROUP BY 1 Same recipe as §5 of the perf guide, scaled to a field inside an ste_vec doc. Small group key (32-byte HMAC) so HashAggregate engages on default work_mem. The bench picks one `(selector_hash, hmac_value)` pair from `sv[0]` of a sample row at startup and uses it across all scenarios. Data-driven so the bench works against any ste_vec-shaped table without static knowledge of which selectors are hot; stable within a run for comparison purposes. New supporting infra: * `sql/indexes/json_ste_vec_small_encrypted_*_{up,down}.sql` Each variant gets the new `hmac_terms` GIN alongside the existing `ste_vec` GIN. * `mise.toml` `prepare:json_ste_vec_small` (mirrors `prepare:string_encrypted`), `bench:query:json`, and a slot in `bench:query:all` (now [1..=5/5]). --- Cargo.toml | 4 + benches/json.rs | 169 ++++++++++++++++++ mise.toml | 51 +++++- ..._ste_vec_small_encrypted_10000000_down.sql | 1 + ...on_ste_vec_small_encrypted_10000000_up.sql | 6 + ...n_ste_vec_small_encrypted_1000000_down.sql | 1 + ...son_ste_vec_small_encrypted_1000000_up.sql | 6 + ...on_ste_vec_small_encrypted_100000_down.sql | 1 + ...json_ste_vec_small_encrypted_100000_up.sql | 6 + ...son_ste_vec_small_encrypted_10000_down.sql | 1 + .../json_ste_vec_small_encrypted_10000_up.sql | 6 + 11 files changed, 247 insertions(+), 5 deletions(-) create mode 100644 benches/json.rs diff --git a/Cargo.toml b/Cargo.toml index d8d18f7..8d305a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,4 +68,8 @@ harness = false [[bench]] name = "group_by" +harness = false + +[[bench]] +name = "json" harness = false \ No newline at end of file diff --git a/benches/json.rs b/benches/json.rs new file mode 100644 index 0000000..fdd120b --- /dev/null +++ b/benches/json.rs @@ -0,0 +1,169 @@ +use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use sqlx::postgres::PgPoolOptions; +use sqlx::Row; +use tokio::runtime::Runtime; + +// JSON / ste_vec query benches. Three shapes that exercise three distinct +// planner paths — all using the extractor recipes the EQL query-performance +// guide recommends: +// +// field_eq — `WHERE eql_v2.hmac_256_terms(col) @> $1::jsonb`, +// parameter `[{"s":"","hm":""}]`. Engages the +// `GIN (eql_v2.hmac_256_terms(value))` index. One index +// covers field-level equality across every selector that +// carries an `hm` term, vs the per-selector +// `hash (eql_v2.hmac_256(col, ''))` recipe which +// needs one index per hot path. +// +// field_extract — `SELECT eql_v2.jsonb_path_query(col, '') FROM tbl LIMIT n`. +// No index. Measures the per-row cost of the inlinable +// `jsonb_path_query` body: `jsonb_array_elements((val).data -> 'sv') +// WHERE elem ->> 's' = selector`. Inlining means the body +// folds into the calling query — each row pays an array +// walk, not a plpgsql function call. +// +// field_group_by — `SELECT eql_v2.hmac_256(col, ''), count(*) FROM tbl +// GROUP BY 1`. No index needed; HashAggregate over the +// 32-byte HMAC group key fits in default `work_mem`. Same +// extractor-form recipe as §5 of the perf guide, scaled +// down to a field-level lookup inside an ste_vec doc. +// +// Setup: at startup the bench reads one sample row from the target table, +// extracts a (selector_hash, hmac_value) pair from `sv[0]`, and uses those in +// the queries. The pick is data-driven — the bench works against any +// ste_vec-shaped table without static knowledge of which selectors are hot — +// at the cost of the pick being arbitrary across runs. For comparison purposes +// the (selector, hmac) pair is stable within a single run. + +#[derive(Debug)] +struct Selector { + sel: String, + hmac: String, +} + +async fn pick_selector(pool: &sqlx::PgPool, table: &str) -> Selector { + // (value).data -> 'sv' is the array of ste_vec elements; element 0's `s` + // is a selector hash and `hm` is the HMAC term for that selector's value. + // We pick the first sv element that carries `hm` so the chosen selector + // is HMAC-indexed (i.e. addressable via hmac_256_terms / hmac_256(col, sel)). + let row = sqlx::query(&format!( + "SELECT (value).data -> 'sv' -> 0 ->> 's' AS sel, + (value).data -> 'sv' -> 0 ->> 'hm' AS hmac + FROM {table} + WHERE (value).data -> 'sv' -> 0 ->> 'hm' IS NOT NULL + LIMIT 1" + )) + .fetch_optional(pool) + .await + .expect("query for sample selector failed"); + + let row = row.unwrap_or_else(|| { + panic!( + "no rows with sv[0].hm found in `{table}` — ingest data first \ + via `mise run prepare:json_ste_vec_small `" + ) + }); + + Selector { + sel: row.get::("sel"), + hmac: row.get::("hmac"), + } +} + +fn criterion_benchmark(c: &mut Criterion) { + let rt = Runtime::new().unwrap(); + + let target_rows = std::env::var("TARGET_ROWS") + .unwrap_or_else(|_| "unknown".to_string()); + + let table_suffix = match target_rows.as_str() { + "10000" | "100000" | "1000000" | "10000000" => format!("_{}", target_rows), + _ => String::new(), + }; + let table_name = format!("json_ste_vec_small_encrypted{}", table_suffix); + + let (pool, selector) = rt.block_on(async { + let database_url = + std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable must be set"); + + let pool = PgPoolOptions::new() + .max_connections(5) + .connect(&database_url) + .await + .expect("Failed to connect to database"); + + let selector = pick_selector(&pool, &table_name).await; + eprintln!( + "json bench picked selector `{}` (hmac ends in `{}`) from `{}`", + &selector.sel, + // last 8 chars of hmac, just to make runs visually distinguishable. + // Full hmac stays in `selector.hmac` for the field_eq parameter. + selector.hmac.chars().rev().take(8).collect::().chars().rev().collect::(), + table_name + ); + (pool, selector) + }); + + // Pre-build the field_eq parameter: a jsonb array with one + // `{"s": , "hm": }` element that matches at least the source + // row (and likely several more if the value isn't unique). + let needle = format!( + r#"[{{"s":"{}","hm":"{}"}}]"#, + selector.sel, selector.hmac + ); + + let q_field_eq = format!( + "SELECT id FROM {table_name} \ + WHERE eql_v2.hmac_256_terms(value) @> $1::jsonb \ + LIMIT 10" + ); + + let q_field_extract = format!( + "SELECT eql_v2.jsonb_path_query(value, '{}') FROM {table_name} LIMIT 1000", + selector.sel + ); + + let q_field_group_by = format!( + "SELECT eql_v2.hmac_256(value, '{}'), count(*) FROM {table_name} GROUP BY 1", + selector.sel + ); + + let mut group = c.benchmark_group("JSON"); + group.sample_size(10); + + group.bench_function(format!("json/field_eq/{}", target_rows), |b| { + b.to_async(&rt).iter(|| async { + let rows = sqlx::query(&q_field_eq) + .bind(&needle) + .fetch_all(&pool) + .await + .expect("field_eq query failed"); + black_box(rows.iter().map(|r| r.get::(0)).sum::()) + }) + }); + + group.bench_function(format!("json/field_extract/{}", target_rows), |b| { + b.to_async(&rt).iter(|| async { + let rows = sqlx::query(&q_field_extract) + .fetch_all(&pool) + .await + .expect("field_extract query failed"); + black_box(rows.len()) + }) + }); + + group.bench_function(format!("json/field_group_by/{}", target_rows), |b| { + b.to_async(&rt).iter(|| async { + let rows = sqlx::query(&q_field_group_by) + .fetch_all(&pool) + .await + .expect("field_group_by query failed"); + black_box(rows.iter().map(|r| r.get::(1)).sum::()) + }) + }); + + group.finish(); +} + +criterion_group!(benches, criterion_benchmark); +criterion_main!(benches); diff --git a/mise.toml b/mise.toml index 2af6877..f189152 100644 --- a/mise.toml +++ b/mise.toml @@ -279,6 +279,10 @@ run = "mise run prepare:_table string_encrypted encrypt_string $1" description = "Prepare integer_encrypted table with target row count" run = "mise run prepare:_table integer_encrypted encrypt_int $1" +[tasks."prepare:json_ste_vec_small"] +description = "Prepare json_ste_vec_small_encrypted table with target row count" +run = "mise run prepare:_table json_ste_vec_small_encrypted encrypt_ste_vec_small $1" + [tasks."bench:query:ore"] description = "Run ORE query benchmark" run = """ @@ -411,6 +415,39 @@ TARGET_ROWS="$TARGET_ROWS" cargo criterion --bench group_by --message-format jso echo "Benchmark complete! Results written to $OUTPUT_FILE" """ +[tasks."bench:query:json"] +description = "Run JSON / ste_vec query benchmark (field equality / extraction / GROUP BY)" +run = """ +#!/usr/bin/env bash +set -e + +TARGET_ROWS="$1" + +if [ -z "$TARGET_ROWS" ]; then + echo "Error: target row count argument required" + echo "Usage: mise run bench:query:json " + exit 1 +fi + +if ! [[ "$TARGET_ROWS" =~ ^[0-9]+$ ]]; then + echo "Error: target row count must be a positive integer" + exit 1 +fi + +echo "Preparing json_ste_vec_small_encrypted table with $TARGET_ROWS rows..." +mise run prepare:json_ste_vec_small "$TARGET_ROWS" + +echo "Cleaning old benchmark data..." +rm -rf target/criterion/data/main/JSON target/criterion/reports/JSON + +echo "Running JSON query benchmark..." +mkdir -p results/query +OUTPUT_FILE="results/query/json_rows_${TARGET_ROWS}.json" +TARGET_ROWS="$TARGET_ROWS" cargo criterion --bench json --message-format json > "$OUTPUT_FILE" + +echo "Benchmark complete! Results written to $OUTPUT_FILE" +""" + [tasks."bench:query:all"] description = "Run all query benchmarks with multiple row counts (10k, 100k, 1M, 10M)" run = """ @@ -422,7 +459,7 @@ ROW_COUNTS=(10000 100000 1000000 10000000) echo "========================================" echo "Starting comprehensive benchmark suite" echo "Row counts: ${ROW_COUNTS[*]}" -echo "Benchmarks: exact, match, ore, group_by" +echo "Benchmarks: exact, match, ore, group_by, json" echo "========================================" echo "" @@ -434,22 +471,26 @@ for ROWS in "${ROW_COUNTS[@]}"; do echo "========================================" echo "" - echo "[1/4] Running EXACT benchmark with $ROWS rows..." + echo "[1/5] Running EXACT benchmark with $ROWS rows..." mise run bench:query:exact "$ROWS" echo "" - echo "[2/4] Running MATCH benchmark with $ROWS rows..." + echo "[2/5] Running MATCH benchmark with $ROWS rows..." mise run bench:query:match "$ROWS" echo "" - echo "[3/4] Running ORE benchmark with $ROWS rows..." + echo "[3/5] Running ORE benchmark with $ROWS rows..." mise run bench:query:ore "$ROWS" echo "" - echo "[4/4] Running GROUP BY benchmark with $ROWS rows..." + echo "[4/5] Running GROUP BY benchmark with $ROWS rows..." mise run bench:query:group_by "$ROWS" echo "" + echo "[5/5] Running JSON benchmark with $ROWS rows..." + mise run bench:query:json "$ROWS" + echo "" + echo "Completed benchmarks for $ROWS rows" echo "" done diff --git a/sql/indexes/json_ste_vec_small_encrypted_10000000_down.sql b/sql/indexes/json_ste_vec_small_encrypted_10000000_down.sql index 8daaf43..2135bd8 100644 --- a/sql/indexes/json_ste_vec_small_encrypted_10000000_down.sql +++ b/sql/indexes/json_ste_vec_small_encrypted_10000000_down.sql @@ -1,2 +1,3 @@ DROP INDEX IF EXISTS json_ste_vec_small_encrypted_10000000_ste_vec_index; +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_10000000_hmac_terms_index; DROP INDEX IF EXISTS json_ste_vec_small_encrypted_10000000_eql_index; diff --git a/sql/indexes/json_ste_vec_small_encrypted_10000000_up.sql b/sql/indexes/json_ste_vec_small_encrypted_10000000_up.sql index ee4392c..aba4b0b 100644 --- a/sql/indexes/json_ste_vec_small_encrypted_10000000_up.sql +++ b/sql/indexes/json_ste_vec_small_encrypted_10000000_up.sql @@ -3,3 +3,9 @@ json_ste_vec_small_encrypted_10000000_ste_vec_index ON json_ste_vec_small_encrypted_10000000 USING GIN ( eql_v2.ste_vec(value) ); + +CREATE INDEX +json_ste_vec_small_encrypted_10000000_hmac_terms_index +ON json_ste_vec_small_encrypted_10000000 USING GIN ( + eql_v2.hmac_256_terms(value) +); diff --git a/sql/indexes/json_ste_vec_small_encrypted_1000000_down.sql b/sql/indexes/json_ste_vec_small_encrypted_1000000_down.sql index ef0a53d..3e41a5d 100644 --- a/sql/indexes/json_ste_vec_small_encrypted_1000000_down.sql +++ b/sql/indexes/json_ste_vec_small_encrypted_1000000_down.sql @@ -1,2 +1,3 @@ DROP INDEX IF EXISTS json_ste_vec_small_encrypted_1000000_ste_vec_index; +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_1000000_hmac_terms_index; DROP INDEX IF EXISTS json_ste_vec_small_encrypted_1000000_eql_index; diff --git a/sql/indexes/json_ste_vec_small_encrypted_1000000_up.sql b/sql/indexes/json_ste_vec_small_encrypted_1000000_up.sql index a1d44c3..7e2dbd8 100644 --- a/sql/indexes/json_ste_vec_small_encrypted_1000000_up.sql +++ b/sql/indexes/json_ste_vec_small_encrypted_1000000_up.sql @@ -3,3 +3,9 @@ json_ste_vec_small_encrypted_1000000_ste_vec_index ON json_ste_vec_small_encrypted_1000000 USING GIN ( eql_v2.ste_vec(value) ); + +CREATE INDEX +json_ste_vec_small_encrypted_1000000_hmac_terms_index +ON json_ste_vec_small_encrypted_1000000 USING GIN ( + eql_v2.hmac_256_terms(value) +); diff --git a/sql/indexes/json_ste_vec_small_encrypted_100000_down.sql b/sql/indexes/json_ste_vec_small_encrypted_100000_down.sql index 3a8992f..e9e4471 100644 --- a/sql/indexes/json_ste_vec_small_encrypted_100000_down.sql +++ b/sql/indexes/json_ste_vec_small_encrypted_100000_down.sql @@ -1,2 +1,3 @@ DROP INDEX IF EXISTS json_ste_vec_small_encrypted_100000_ste_vec_index; +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_100000_hmac_terms_index; DROP INDEX IF EXISTS json_ste_vec_small_encrypted_100000_eql_index; diff --git a/sql/indexes/json_ste_vec_small_encrypted_100000_up.sql b/sql/indexes/json_ste_vec_small_encrypted_100000_up.sql index 328bedb..4fb6308 100644 --- a/sql/indexes/json_ste_vec_small_encrypted_100000_up.sql +++ b/sql/indexes/json_ste_vec_small_encrypted_100000_up.sql @@ -3,3 +3,9 @@ json_ste_vec_small_encrypted_100000_ste_vec_index ON json_ste_vec_small_encrypted_100000 USING GIN ( eql_v2.ste_vec(value) ); + +CREATE INDEX +json_ste_vec_small_encrypted_100000_hmac_terms_index +ON json_ste_vec_small_encrypted_100000 USING GIN ( + eql_v2.hmac_256_terms(value) +); diff --git a/sql/indexes/json_ste_vec_small_encrypted_10000_down.sql b/sql/indexes/json_ste_vec_small_encrypted_10000_down.sql index e1955ee..12cc459 100644 --- a/sql/indexes/json_ste_vec_small_encrypted_10000_down.sql +++ b/sql/indexes/json_ste_vec_small_encrypted_10000_down.sql @@ -1,2 +1,3 @@ DROP INDEX IF EXISTS json_ste_vec_small_encrypted_10000_ste_vec_index; +DROP INDEX IF EXISTS json_ste_vec_small_encrypted_10000_hmac_terms_index; DROP INDEX IF EXISTS json_ste_vec_small_encrypted_10000_eql_index; diff --git a/sql/indexes/json_ste_vec_small_encrypted_10000_up.sql b/sql/indexes/json_ste_vec_small_encrypted_10000_up.sql index f34d49a..2d575ab 100644 --- a/sql/indexes/json_ste_vec_small_encrypted_10000_up.sql +++ b/sql/indexes/json_ste_vec_small_encrypted_10000_up.sql @@ -3,3 +3,9 @@ json_ste_vec_small_encrypted_10000_ste_vec_index ON json_ste_vec_small_encrypted_10000 USING GIN ( eql_v2.ste_vec(value) ); + +CREATE INDEX +json_ste_vec_small_encrypted_10000_hmac_terms_index +ON json_ste_vec_small_encrypted_10000 USING GIN ( + eql_v2.hmac_256_terms(value) +); From 12a98b3ead7d2f30e15c3a837323af48c029e53a Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Thu, 14 May 2026 21:03:45 +1000 Subject: [PATCH 08/30] bench(json): soften startup panic to name the cipherstash-client dependency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The bench's field-level scenarios depend on the post-2.3 ste_vec shape where sv elements carry `hm` (HMAC-256). The currently pinned `cipherstash-client = 0.34.1-alpha.4` still emits the pre-2.3 shape (sv elements carry `b3` Blake3 and `ocf` / `ocv` OPE terms, no `hm`), so the bench can't extract a (selector, hmac) pair from a sample row and panics at startup. This is expected for now — the cipherstash-client changes that emit post-2.3 sv elements are still in flight. Park the bench in place; once a newer alpha lands, bump the Cargo.toml pin and re-ingest, and the bench works without further changes. Replaces the previous "ingest data first" hint (misleading — ingest was the step that produced this shape) with a clearer message that names the client version, the payload-shape requirement, and the U-004 upgrade note as the reference. --- benches/json.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/benches/json.rs b/benches/json.rs index fdd120b..4f774fb 100644 --- a/benches/json.rs +++ b/benches/json.rs @@ -59,8 +59,13 @@ async fn pick_selector(pool: &sqlx::PgPool, table: &str) -> Selector { let row = row.unwrap_or_else(|| { panic!( - "no rows with sv[0].hm found in `{table}` — ingest data first \ - via `mise run prepare:json_ste_vec_small `" + "No sv elements carry `hm` in `{table}`. The bench's field-level scenarios \ + depend on the post-2.3 ste_vec shape (sv elements emit `hm` rather than `b3`), \ + but the cipherstash-client version pinned in this repo \ + (currently 0.34.1-alpha.4) still emits the pre-2.3 shape. Resolve by bumping \ + `cipherstash-client` to a version that emits the new ste_vec element shape, \ + then re-ingest via `mise run prepare:json_ste_vec_small `. See \ + U-004 in EQL's v2.3 upgrade notes for the payload change." ) }); From 70d1ab4aa350a0e619bcc00defab4476ea92c143 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Thu, 14 May 2026 21:13:19 +1000 Subject: [PATCH 09/30] mise: drop json bench from `bench:query:all` until client emits post-2.3 shape MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `bench:query:json` panics at startup against data ingested by the currently pinned `cipherstash-client 0.34.1-alpha.4` because the client still emits the pre-2.3 ste_vec shape (sv elements carry `b3`, not `hm`) and the post-2.3 EQL has no Blake3 extractor. Including it in the all-benches sweep makes the whole run fail. Keep the standalone `bench:query:json` task in place — direct invocation is fine once a newer cipherstash-client lands and data is re-ingested — but pull it out of the comprehensive suite for now. The suite banner names the parked state so future-us doesn't wonder where the json scenarios went. --- mise.toml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/mise.toml b/mise.toml index f189152..1e84299 100644 --- a/mise.toml +++ b/mise.toml @@ -459,7 +459,9 @@ ROW_COUNTS=(10000 100000 1000000 10000000) echo "========================================" echo "Starting comprehensive benchmark suite" echo "Row counts: ${ROW_COUNTS[*]}" -echo "Benchmarks: exact, match, ore, group_by, json" +echo "Benchmarks: exact, match, ore, group_by" +echo "(bench:query:json is parked until cipherstash-client emits the" +echo " post-2.3 ste_vec shape — run it directly when ready.)" echo "========================================" echo "" @@ -471,26 +473,22 @@ for ROWS in "${ROW_COUNTS[@]}"; do echo "========================================" echo "" - echo "[1/5] Running EXACT benchmark with $ROWS rows..." + echo "[1/4] Running EXACT benchmark with $ROWS rows..." mise run bench:query:exact "$ROWS" echo "" - echo "[2/5] Running MATCH benchmark with $ROWS rows..." + echo "[2/4] Running MATCH benchmark with $ROWS rows..." mise run bench:query:match "$ROWS" echo "" - echo "[3/5] Running ORE benchmark with $ROWS rows..." + echo "[3/4] Running ORE benchmark with $ROWS rows..." mise run bench:query:ore "$ROWS" echo "" - echo "[4/5] Running GROUP BY benchmark with $ROWS rows..." + echo "[4/4] Running GROUP BY benchmark with $ROWS rows..." mise run bench:query:group_by "$ROWS" echo "" - echo "[5/5] Running JSON benchmark with $ROWS rows..." - mise run bench:query:json "$ROWS" - echo "" - echo "Completed benchmarks for $ROWS rows" echo "" done From af0a1f3da53275a42a8e50e9a1fd04af3ce31da1 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Thu, 14 May 2026 21:46:47 +1000 Subject: [PATCH 10/30] report: cover GROUP_BY + JSON; refresh ORE scenarios; drop empty Parameter line MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The criterion JSON loader was already generic over `*_rows_*.json`, but the writer's `sql_map` / `descriptions` / table-name selection were hardcoded to EXACT / MATCH / ORE — so GROUP_BY rows were loaded but emitted with no SQL, no description, and no Indexes block. This commit brings the writer in line with the bench surface as of today. Changes: * **GROUP_BY**. New `sql_map["GROUP_BY"]["hmac_extractor"]` and matching description. Table-name selection in `_write_query_subsection` extended so `string_encrypted_{rows}` is picked for `GROUP_BY` (same table family as EXACT / MATCH). The description explains the HashAggregate / work_mem story and points at §5 of the EQL query-performance guide. * **ORE**. Drops the `exact` scenario (was already gone from `ore.rs`) and `range_lt_ordered_10` (natural-form ORDER BY, dropped earlier today as the §4 sort-key trap). Adds `range_lt_hybrid_ordered_10` — the new canonical recipe (natural WHERE + extractor ORDER BY, index expression matches sort key, no Sort node). * **JSON**. Stubs out `field_eq` / `field_extract` / `field_group_by` scenarios with their SQL templates and descriptions, and adds a `json_ste_vec_small_encrypted_{rows}` arm to the table-name selection. The JSON bench itself is parked until cipherstash-client emits the post-2.3 sv shape; this means the report-side wiring will be there as soon as data lands, with no further edits needed. * **Empty parameter rendering**. The `**Parameter:** \`\`` rendering for parameter-less scenarios (GROUP BY, field_extract, field_group_by) is gone — the `if sql_query:` block now only emits the Parameter line when `param` is non-empty. Smoke-tested against the local `results/` tree: GROUP_BY hmac_extractor emits with description + SQL + indexes block; ORE section reflects the trimmed scenarios; JSON section will appear automatically once `json_rows_*.json` lands. --- report_benchmarks.py | 136 +++++++++++++++++++++++++++++++++---------- 1 file changed, 104 insertions(+), 32 deletions(-) diff --git a/report_benchmarks.py b/report_benchmarks.py index f5ccbe5..4233352 100755 --- a/report_benchmarks.py +++ b/report_benchmarks.py @@ -196,10 +196,6 @@ def get_query_sql_and_param(self, query_type: str, query_name: str) -> Tuple[str ) }, "ORE": { - "exact": ( - "SELECT value FROM {TABLE} WHERE value = $1 LIMIT 1", - "5000" - ), "range_gt_10": ( "SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 10", "5000" @@ -216,13 +212,39 @@ def get_query_sql_and_param(self, query_type: str, query_name: str) -> Tuple[str "SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 LIMIT 100", "5000" ), - "range_lt_ordered_10": ( - "SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 ORDER BY value LIMIT 10", + "range_lt_hybrid_ordered_10": ( + "SELECT id,value::jsonb FROM {TABLE} " + "WHERE value < $1 " + "ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10", "5000" ) + }, + "GROUP_BY": { + "hmac_extractor": ( + "SELECT count(*) FROM {TABLE} GROUP BY eql_v2.hmac_256(value)", + "" + ) + }, + "JSON": { + "field_eq": ( + "SELECT id FROM {TABLE} " + "WHERE eql_v2.hmac_256_terms(value) @> $1::jsonb " + "LIMIT 10", + "[{\"s\":\"\",\"hm\":\"\"}]" + ), + "field_extract": ( + "SELECT eql_v2.jsonb_path_query(value, '') " + "FROM {TABLE} LIMIT 1000", + "" + ), + "field_group_by": ( + "SELECT eql_v2.hmac_256(value, ''), count(*) " + "FROM {TABLE} GROUP BY 1", + "" + ) } } - + return sql_map.get(query_type, {}).get(query_name, ("", "")) def get_query_description(self, query_type: str, query_name: str) -> Tuple[str, str]: @@ -261,45 +283,91 @@ def get_query_description(self, query_type: str, query_name: str) -> Tuple[str, ) }, "ORE": { - "exact": ( - "Exact match query on encrypted integer", - "Table: `integer_encrypted_{rows}` with ORE-encrypted integer values. " - "Index: ORE index supporting equality and range queries. " - "Query returns LIMIT 1 result." - ), "range_gt_10": ( "Range query (greater than) returning 10 results", - "Table: `integer_encrypted_{rows}` with ORE-encrypted integer values. " - "Index: ORE index supporting equality and range queries. " + "Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. " + "Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. " + "The bare-form `<` / `>` operators inline to " + "`eql_v2.ore_block_u64_8_256(a) op eql_v2.ore_block_u64_8_256(b)` " + "post-2.3, so the index engages without query rewriting. " "Query: WHERE value > 5000 LIMIT 10." ), "range_gt_100": ( "Range query (greater than) returning 100 results", - "Table: `integer_encrypted_{rows}` with ORE-encrypted integer values. " - "Index: ORE index supporting equality and range queries. " + "Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. " + "Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. " "Query: WHERE value > 5000 LIMIT 100." ), "range_lt_10": ( "Range query (less than) returning 10 results", - "Table: `integer_encrypted_{rows}` with ORE-encrypted integer values. " - "Index: ORE index supporting equality and range queries. " + "Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. " + "Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. " "Query: WHERE value < 5000 LIMIT 10." ), "range_lt_100": ( "Range query (less than) returning 100 results", - "Table: `integer_encrypted_{rows}` with ORE-encrypted integer values. " - "Index: ORE index supporting equality and range queries. " + "Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. " + "Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. " "Query: WHERE value < 5000 LIMIT 100." ), - "range_lt_ordered_10": ( - "Ordered range query (less than) with ORDER BY", - "Table: `integer_encrypted_{rows}` with ORE-encrypted integer values. " - "Index: ORE index supporting equality and range queries. " - "Query: WHERE value < 5000 ORDER BY value LIMIT 10." + "range_lt_hybrid_ordered_10": ( + "Ordered range query (hybrid form: natural WHERE, extractor ORDER BY)", + "Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. " + "Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. " + "Query: WHERE value < 5000 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10. " + "The sort key matches the index expression syntactically, so rows stream " + "out of the index already ordered — no Sort node. See §4 of the EQL " + "query-performance guide for the natural-form sort-key trap that this " + "shape avoids." + ) + }, + "GROUP_BY": { + "hmac_extractor": ( + "GROUP BY in extractor form on `eql_v2.hmac_256(value)`", + "Table: `string_encrypted_{rows}` with encrypted string values " + "(carrying an `hm` HMAC term, configured via the `unique` search index). " + "Index: no index drives `GROUP BY` directly — hash aggregation is in-memory. " + "Query: `GROUP BY eql_v2.hmac_256(value)`. The extractor's 32-byte HMAC " + "group key fits in default `work_mem`, so the planner picks `HashAggregate` " + "reliably across deployments. Natural-form `GROUP BY value` against an " + "encrypted column has been removed from this bench because the planner " + "estimates the hash table against the full ~1-2 KB ciphertext payload, " + "exceeds default `work_mem`, and falls back to GroupAggregate + Sort — " + "see §5 of the EQL query-performance guide." + ) + }, + "JSON": { + "field_eq": ( + "Field-level equality on an ste_vec document via `hmac_256_terms`", + "Table: `json_ste_vec_small_encrypted_{rows}` with encrypted JSON " + "documents (small four-field shape — first_name / last_name / age / email). " + "Index: functional GIN on `eql_v2.hmac_256_terms(value)`. One index covers " + "field-level equality across every selector that carries `hm`, vs the " + "per-selector `hash (eql_v2.hmac_256(col, ''))` recipe which " + "needs one index per hot path. The bench picks a (selector, hmac) pair " + "from `sv[0]` of a sample row at startup; the query body matches the " + "documented EQL recipe." + ), + "field_extract": ( + "Sequential field extraction via `eql_v2.jsonb_path_query`", + "Table: `json_ste_vec_small_encrypted_{rows}`. No index — measures the " + "per-row cost of the inlinable `jsonb_path_query` body " + "(`jsonb_array_elements((val).data -> 'sv') WHERE elem ->> 's' = selector`). " + "Inlining means the body folds into the calling query, so each row pays " + "an array walk rather than a plpgsql function call. Query: " + "`SELECT eql_v2.jsonb_path_query(value, '') FROM tbl LIMIT 1000`." + ), + "field_group_by": ( + "Field-level `GROUP BY` on an ste_vec document", + "Table: `json_ste_vec_small_encrypted_{rows}`. No index — HashAggregate " + "is in-memory. Query: " + "`GROUP BY eql_v2.hmac_256(value, '')`. Same extractor-form " + "recipe as the top-level GROUP_BY bench, scaled to a single field " + "inside an ste_vec doc." ) } } - + return descriptions.get(query_type, {}).get(query_name, ("Unknown query", "")) def get_table_indexes(self, table_name: str) -> Optional[str]: @@ -604,21 +672,25 @@ def _write_query_subsection(self, f, query_type: str, query_name: str): # Add SQL query and parameter if sql_query: f.write(f"**SQL Query:**\n```sql\n{sql_query}\n```\n\n") - f.write(f"**Parameter:** `{param}`\n\n") - + if param: + f.write(f"**Parameter:** `{param}`\n\n") + f.write(f"**{table_info}**\n\n") - + # Add index information for one of the row counts (they all use same indexes) if results: # Determine table name based on query type sample_row_count = results[0].row_count - if query_type in ["EXACT", "MATCH"]: + if query_type in ["EXACT", "MATCH", "GROUP_BY"]: + # String-encrypted scenarios all run against the same table family. table_name = f"string_encrypted_{sample_row_count}" elif query_type == "ORE": table_name = f"integer_encrypted_{sample_row_count}" + elif query_type == "JSON": + table_name = f"json_ste_vec_small_encrypted_{sample_row_count}" else: table_name = "" - + if table_name: indexes_sql = self.get_table_indexes(table_name) if indexes_sql: From 8acb8552302becfdafbcd93e70e5eaca975b034b Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Fri, 15 May 2026 14:55:07 +1000 Subject: [PATCH 11/30] results: refresh all query benches @ 10k..10M + regenerate report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full sweep against the EQL 2.3-preview install (hash_encrypted SQL + range operator inlining + #205 hmac_256 inlining). 10M ingest needed a couple of retries through the prepare task to step past the ZeroKMS scoped-cipher TTL (~10 min per encrypt-binary invocation); the bench itself ran clean once the table was full. Result files refreshed: * exact_rows_{10000,100000,1000000,10000000}.json * match_rows_{10000,100000,1000000,10000000}.json * ore_rows_{10000,100000,1000000,10000000}.json * group_by_rows_{10000,100000,1000000,10000000}.json Plus the ste_vec_small ingest run that landed today; the matching json query bench is still parked pending cipherstash-client emitting post-2.3 sv shape. Report regenerated (`mise run report`) — new sections / charts: * GROUP_BY Queries / hmac_extractor (was completely missing pre-fix) * ORE Queries / range_lt_hybrid_ordered_10 (the new canonical recipe) * Ste Vec Small ingest comparison Stale artefacts cleaned up: * Old single-format `ingest_*_chart.png` (replaced by the per-metric `_throughput_chart.png` / `_time_chart.png` pair) * `query_ore_exact_chart.png` (scenario was removed from ore.rs long before today's pass) * `query_ore_range_lt_ordered_10_chart.png` (natural-form ORDER BY, dropped today — §4 sort-key trap) * 0-byte `results/query/json_rows_10000.json` (parked-bench startup panic; regenerates only when a clean run completes) --- report/BENCHMARK_REPORT.md | 245 ++++++++++-------- report/ingest_comparison_throughput_10000.png | Bin 0 -> 36246 bytes report/ingest_comparison_time_10000.png | Bin 0 -> 30675 bytes .../ingest_comparison_time_10000_filtered.png | Bin 0 -> 33601 bytes report/ingest_int_chart.png | Bin 19949 -> 0 bytes report/ingest_int_throughput_chart.png | Bin 0 -> 22673 bytes report/ingest_int_time_chart.png | Bin 0 -> 18398 bytes report/ingest_json_small_chart.png | Bin 18527 -> 0 bytes report/ingest_json_small_throughput_chart.png | Bin 0 -> 21265 bytes report/ingest_json_small_time_chart.png | Bin 0 -> 18212 bytes .../ingest_ste_vec_small_throughput_chart.png | Bin 0 -> 24922 bytes report/ingest_ste_vec_small_time_chart.png | Bin 0 -> 19890 bytes report/ingest_string_chart.png | Bin 18840 -> 0 bytes report/ingest_string_throughput_chart.png | Bin 0 -> 21571 bytes report/ingest_string_time_chart.png | Bin 0 -> 20738 bytes report/query_exact_eql_cast_chart.png | Bin 41017 -> 57625 bytes report/query_exact_eql_hash_chart.png | Bin 48676 -> 54783 bytes .../query_group_by_hmac_extractor_chart.png | Bin 0 -> 41328 bytes report/query_match_eql_bloom_chart.png | Bin 36390 -> 48008 bytes .../query_match_eql_cast_firstname_chart.png | Bin 51553 -> 44590 bytes .../query_match_eql_cast_lastname_chart.png | Bin 52089 -> 49621 bytes report/query_ore_exact_chart.png | Bin 44108 -> 0 bytes report/query_ore_range_gt_100_chart.png | Bin 27199 -> 32833 bytes report/query_ore_range_gt_10_chart.png | Bin 26309 -> 31151 bytes report/query_ore_range_lt_100_chart.png | Bin 27683 -> 31072 bytes report/query_ore_range_lt_10_chart.png | Bin 26396 -> 30835 bytes ...y_ore_range_lt_hybrid_ordered_10_chart.png | Bin 0 -> 31908 bytes .../query_ore_range_lt_ordered_10_chart.png | Bin 48065 -> 0 bytes .../encrypt_ste_vec_small_combined.json | 24 ++ results/query/exact_rows_10000.json | 8 +- results/query/exact_rows_100000.json | 8 +- results/query/exact_rows_1000000.json | 8 +- results/query/exact_rows_10000000.json | 5 + results/query/group_by_rows_10000.json | 2 +- results/query/group_by_rows_100000.json | 2 +- results/query/group_by_rows_1000000.json | 2 +- results/query/group_by_rows_10000000.json | 2 + results/query/match_rows_10000.json | 12 +- results/query/match_rows_100000.json | 12 +- results/query/match_rows_1000000.json | 12 +- results/query/match_rows_10000000.json | 7 + results/query/ore_rows_10000.json | 26 +- results/query/ore_rows_100000.json | 26 +- results/query/ore_rows_1000000.json | 20 +- results/query/ore_rows_10000000.json | 11 + 45 files changed, 249 insertions(+), 183 deletions(-) create mode 100644 report/ingest_comparison_throughput_10000.png create mode 100644 report/ingest_comparison_time_10000.png create mode 100644 report/ingest_comparison_time_10000_filtered.png delete mode 100644 report/ingest_int_chart.png create mode 100644 report/ingest_int_throughput_chart.png create mode 100644 report/ingest_int_time_chart.png delete mode 100644 report/ingest_json_small_chart.png create mode 100644 report/ingest_json_small_throughput_chart.png create mode 100644 report/ingest_json_small_time_chart.png create mode 100644 report/ingest_ste_vec_small_throughput_chart.png create mode 100644 report/ingest_ste_vec_small_time_chart.png delete mode 100644 report/ingest_string_chart.png create mode 100644 report/ingest_string_throughput_chart.png create mode 100644 report/ingest_string_time_chart.png create mode 100644 report/query_group_by_hmac_extractor_chart.png delete mode 100644 report/query_ore_exact_chart.png create mode 100644 report/query_ore_range_lt_hybrid_ordered_10_chart.png delete mode 100644 report/query_ore_range_lt_ordered_10_chart.png create mode 100644 results/ingest/encrypt_ste_vec_small_combined.json create mode 100644 results/query/exact_rows_10000000.json create mode 100644 results/query/group_by_rows_10000000.json create mode 100644 results/query/match_rows_10000000.json create mode 100644 results/query/ore_rows_10000000.json diff --git a/report/BENCHMARK_REPORT.md b/report/BENCHMARK_REPORT.md index 558c516..74579a5 100644 --- a/report/BENCHMARK_REPORT.md +++ b/report/BENCHMARK_REPORT.md @@ -5,8 +5,13 @@ This report summarizes the performance benchmarks for encrypted database operati ## Table of Contents 1. [Ingest Throughput](#ingest-throughput) + - [Int](#int) + - [Json Small](#json-small) + - [Ste Vec Small](#ste-vec-small) + - [String](#string) 2. [Query Performance](#query-performance) - [EXACT Queries](#exact-queries) + - [GROUP_BY Queries](#group_by-queries) - [MATCH Queries](#match-queries) - [ORE Queries](#ore-queries) @@ -16,6 +21,16 @@ This report summarizes the performance benchmarks for encrypted database operati This section measures the throughput of inserting encrypted records into the database. +### Comparison at 10,000 Records + +Comparing all benchmark types at 10,000 records. + +![Throughput Comparison at 10,000 records](ingest_comparison_throughput_10000.png) + +![Total Time Comparison at 10,000 records](ingest_comparison_time_10000.png) + +![Total Time Comparison at 10,000 records (excluding ste_vec_large)](ingest_comparison_time_10000_filtered.png) + ### Int Tests insertion of encrypted integer values. @@ -26,11 +41,13 @@ Tests insertion of encrypted integer values. | 1,000 | 1.11K | 0.90s | 17.83 MB | | 10,000 | 1.34K | 7.48s | 20.34 MB | -![Ingest Throughput - int](ingest_int_chart.png) +![Ingest Throughput - int](ingest_int_throughput_chart.png) + +![Ingest Total Time - int](ingest_int_time_chart.png) ### Json Small -Tests insertion of small encrypted JSON objects. +Tests insertion of small encrypted JSON objects (first_name, last_name, age, email). | Records | Throughput (records/sec) | Total Time | Avg Memory | |---------|--------------------------|------------|------------| @@ -38,7 +55,21 @@ Tests insertion of small encrypted JSON objects. | 1,000 | 1.45K | 0.69s | 27.47 MB | | 10,000 | 2.22K | 4.51s | 45.33 MB | -![Ingest Throughput - json_small](ingest_json_small_chart.png) +![Ingest Throughput - json_small](ingest_json_small_throughput_chart.png) + +![Ingest Total Time - json_small](ingest_json_small_time_chart.png) + +### Ste Vec Small + +Tests insertion of small JSON objects with SteVec (searchable encrypted vector) indexing. + +| Records | Throughput (records/sec) | Total Time | Avg Memory | +|---------|--------------------------|------------|------------| +| 10,000 | 4.03K | 2.48s | 31.90 MB | + +![Ingest Throughput - ste_vec_small](ingest_ste_vec_small_throughput_chart.png) + +![Ingest Total Time - ste_vec_small](ingest_ste_vec_small_time_chart.png) ### String @@ -50,7 +81,9 @@ Tests insertion of encrypted string values. | 1,000 | 1.86K | 0.54s | 16.19 MB | | 10,000 | 2.83K | 3.54s | 18.23 MB | -![Ingest Throughput - string](ingest_string_chart.png) +![Ingest Throughput - string](ingest_string_throughput_chart.png) + +![Ingest Total Time - string](ingest_string_time_chart.png) ## Query Performance @@ -84,21 +117,14 @@ string_encrypted_10000_gin_index ON string_encrypted_10000 USING GIN ( eql_v2.bloom_filter(value) ); - -CREATE INDEX -string_encrypted_10000_eql_index -ON string_encrypted_10000 ( - value eql_v2.encrypted_operator_class -); ``` -*⚠️ = Query time exceeds 100ms* - | Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|-------------------------|---------------------------| -| 10,000 | 422.00μs | 415.23μs | -| 100,000 | 400.64μs | 427.65μs | -| 1,000,000 | ⚠️ 8.012s | ⚠️ 8.012s | +| 10,000 | 423.36μs | 457.02μs | +| 100,000 | 424.13μs | 409.56μs | +| 1,000,000 | 448.81μs | 422.23μs | +| 10,000,000 | 419.44μs | 420.53μs | ![Query Performance - EXACT/eql_cast](query_exact_eql_cast_chart.png) @@ -128,21 +154,55 @@ string_encrypted_10000_gin_index ON string_encrypted_10000 USING GIN ( eql_v2.bloom_filter(value) ); +``` + +| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------------------|---------------------------| +| 10,000 | 400.27μs | 427.53μs | +| 100,000 | 394.22μs | 409.15μs | +| 1,000,000 | 386.27μs | 387.07μs | +| 10,000,000 | 409.12μs | 408.84μs | + +![Query Performance - EXACT/eql_hash](query_exact_eql_hash_chart.png) + +### GROUP_BY Queries + +#### hmac_extractor + +**Description:** GROUP BY in extractor form on `eql_v2.hmac_256(value)` + +**SQL Query:** +```sql +SELECT count(*) FROM {TABLE} GROUP BY eql_v2.hmac_256(value) +``` + +**Table: `string_encrypted_{rows}` with encrypted string values (carrying an `hm` HMAC term, configured via the `unique` search index). Index: no index drives `GROUP BY` directly — hash aggregation is in-memory. Query: `GROUP BY eql_v2.hmac_256(value)`. The extractor's 32-byte HMAC group key fits in default `work_mem`, so the planner picks `HashAggregate` reliably across deployments. Natural-form `GROUP BY value` against an encrypted column has been removed from this bench because the planner estimates the hash table against the full ~1-2 KB ciphertext payload, exceeds default `work_mem`, and falls back to GroupAggregate + Sort — see §5 of the EQL query-performance guide.** + +**Indexes:** +```sql +CREATE INDEX +string_encrypted_10000_hash_index +ON string_encrypted_10000 using hash ( + eql_v2.hmac_256(value) +); CREATE INDEX -string_encrypted_10000_eql_index -ON string_encrypted_10000 ( - value eql_v2.encrypted_operator_class +string_encrypted_10000_gin_index +ON string_encrypted_10000 USING GIN ( + eql_v2.bloom_filter(value) ); ``` +*⚠️ = Query time exceeds 100ms* + | Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|-------------------------|---------------------------| -| 10,000 | 393.98μs | 397.50μs | -| 100,000 | 392.83μs | 404.50μs | -| 1,000,000 | 401.06μs | 408.97μs | +| 10,000 | 9.94ms | N/A | +| 100,000 | 96.16ms | N/A | +| 1,000,000 | ⚠️ 933.17ms | N/A | +| 10,000,000 | ⚠️ 11.466s | N/A | -![Query Performance - EXACT/eql_hash](query_exact_eql_hash_chart.png) +![Query Performance - GROUP_BY/hmac_extractor](query_group_by_hmac_extractor_chart.png) ### MATCH Queries @@ -172,18 +232,16 @@ string_encrypted_10000_gin_index ON string_encrypted_10000 USING GIN ( eql_v2.bloom_filter(value) ); - -CREATE INDEX -string_encrypted_10000_eql_index -ON string_encrypted_10000 ( - value eql_v2.encrypted_operator_class -); ``` +*⚠️ = Query time exceeds 100ms* + | Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|-------------------------|---------------------------| -| 10,000 | 1.07ms | 28.26ms | -| 1,000,000 | 17.53ms | 42.35ms | +| 10,000 | 1.23ms | 28.20ms | +| 100,000 | 2.97ms | 30.93ms | +| 1,000,000 | 17.76ms | 42.96ms | +| 10,000,000 | ⚠️ 163.65ms | ⚠️ 187.56ms | ![Query Performance - MATCH/eql_bloom](query_match_eql_bloom_chart.png) @@ -213,20 +271,14 @@ string_encrypted_10000_gin_index ON string_encrypted_10000 USING GIN ( eql_v2.bloom_filter(value) ); - -CREATE INDEX -string_encrypted_10000_eql_index -ON string_encrypted_10000 ( - value eql_v2.encrypted_operator_class -); ``` -*⚠️ = Query time exceeds 100ms* - | Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|-------------------------|---------------------------| -| 10,000 | 751.37μs | 27.53ms | -| 1,000,000 | ⚠️ 386.64ms | ⚠️ 418.49ms | +| 10,000 | 702.86μs | 25.88ms | +| 100,000 | 1.34ms | 27.30ms | +| 1,000,000 | 4.90ms | 30.45ms | +| 10,000,000 | 39.34ms | 65.04ms | ![Query Performance - MATCH/eql_cast_firstname](query_match_eql_cast_firstname_chart.png) @@ -256,56 +308,21 @@ string_encrypted_10000_gin_index ON string_encrypted_10000 USING GIN ( eql_v2.bloom_filter(value) ); - -CREATE INDEX -string_encrypted_10000_eql_index -ON string_encrypted_10000 ( - value eql_v2.encrypted_operator_class -); ``` *⚠️ = Query time exceeds 100ms* | Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|-------------------------|---------------------------| -| 10,000 | 1.25ms | 30.30ms | -| 1,000,000 | ⚠️ 132.59ms | ⚠️ 157.06ms | +| 10,000 | 1.10ms | 27.58ms | +| 100,000 | 2.66ms | 29.25ms | +| 1,000,000 | 17.99ms | 42.79ms | +| 10,000,000 | ⚠️ 161.83ms | ⚠️ 186.51ms | ![Query Performance - MATCH/eql_cast_lastname](query_match_eql_cast_lastname_chart.png) ### ORE Queries -#### exact - -**Description:** Exact match query on encrypted integer - -**SQL Query:** -```sql -SELECT value FROM {TABLE} WHERE value = $1 LIMIT 1 -``` - -**Parameter:** `5000` - -**Table: `integer_encrypted_{rows}` with ORE-encrypted integer values. Index: ORE index supporting equality and range queries. Query returns LIMIT 1 result.** - -**Indexes:** -```sql -CREATE INDEX -integer_encrypted_10000_eql_index -ON integer_encrypted_10000 ( - value eql_v2.encrypted_operator_class -); -``` - -*⚠️ = Query time exceeds 100ms* - -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 464.23μs | 495.74μs | -| 100,000 | ⚠️ 1.905s | ⚠️ 1.901s | - -![Query Performance - ORE/exact](query_ore_exact_chart.png) - #### range_gt_10 **Description:** Range query (greater than) returning 10 results @@ -317,21 +334,23 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 10 **Parameter:** `5000` -**Table: `integer_encrypted_{rows}` with ORE-encrypted integer values. Index: ORE index supporting equality and range queries. Query: WHERE value > 5000 LIMIT 10.** +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. The bare-form `<` / `>` operators inline to `eql_v2.ore_block_u64_8_256(a) op eql_v2.ore_block_u64_8_256(b)` post-2.3, so the index engages without query rewriting. Query: WHERE value > 5000 LIMIT 10.** **Indexes:** ```sql CREATE INDEX -integer_encrypted_10000_eql_index +integer_encrypted_10000_ore_index ON integer_encrypted_10000 ( - value eql_v2.encrypted_operator_class + eql_v2.ore_block_u64_8_256(value) ); ``` | Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|-------------------------|---------------------------| -| 10,000 | 2.39ms | 29.57ms | -| 100,000 | 1.53ms | 27.97ms | +| 10,000 | 1.52ms | 28.54ms | +| 100,000 | 1.20ms | 27.98ms | +| 1,000,000 | 1.17ms | 29.11ms | +| 10,000,000 | 1.48ms | 28.54ms | ![Query Performance - ORE/range_gt_10](query_ore_range_gt_10_chart.png) @@ -346,21 +365,23 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 100 **Parameter:** `5000` -**Table: `integer_encrypted_{rows}` with ORE-encrypted integer values. Index: ORE index supporting equality and range queries. Query: WHERE value > 5000 LIMIT 100.** +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value > 5000 LIMIT 100.** **Indexes:** ```sql CREATE INDEX -integer_encrypted_10000_eql_index +integer_encrypted_10000_ore_index ON integer_encrypted_10000 ( - value eql_v2.encrypted_operator_class + eql_v2.ore_block_u64_8_256(value) ); ``` | Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|-------------------------|---------------------------| -| 10,000 | 14.33ms | 51.92ms | -| 100,000 | 12.35ms | 52.45ms | +| 10,000 | 6.69ms | 45.93ms | +| 100,000 | 6.87ms | 44.72ms | +| 1,000,000 | 7.26ms | 45.68ms | +| 10,000,000 | 7.15ms | 43.42ms | ![Query Performance - ORE/range_gt_100](query_ore_range_gt_100_chart.png) @@ -375,21 +396,23 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 LIMIT 10 **Parameter:** `5000` -**Table: `integer_encrypted_{rows}` with ORE-encrypted integer values. Index: ORE index supporting equality and range queries. Query: WHERE value < 5000 LIMIT 10.** +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value < 5000 LIMIT 10.** **Indexes:** ```sql CREATE INDEX -integer_encrypted_10000_eql_index +integer_encrypted_10000_ore_index ON integer_encrypted_10000 ( - value eql_v2.encrypted_operator_class + eql_v2.ore_block_u64_8_256(value) ); ``` | Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|-------------------------|---------------------------| -| 10,000 | 2.71ms | 27.30ms | -| 100,000 | 1.66ms | 28.69ms | +| 10,000 | 1.62ms | 29.18ms | +| 100,000 | 1.05ms | 28.56ms | +| 1,000,000 | 1.10ms | 28.33ms | +| 10,000,000 | 1.11ms | 28.18ms | ![Query Performance - ORE/range_lt_10](query_ore_range_lt_10_chart.png) @@ -404,54 +427,56 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 LIMIT 100 **Parameter:** `5000` -**Table: `integer_encrypted_{rows}` with ORE-encrypted integer values. Index: ORE index supporting equality and range queries. Query: WHERE value < 5000 LIMIT 100.** +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value < 5000 LIMIT 100.** **Indexes:** ```sql CREATE INDEX -integer_encrypted_10000_eql_index +integer_encrypted_10000_ore_index ON integer_encrypted_10000 ( - value eql_v2.encrypted_operator_class + eql_v2.ore_block_u64_8_256(value) ); ``` | Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|-------------------------|---------------------------| -| 10,000 | 14.85ms | 53.07ms | -| 100,000 | 12.49ms | 52.96ms | +| 10,000 | 6.95ms | 45.12ms | +| 100,000 | 6.94ms | 46.61ms | +| 1,000,000 | 6.91ms | 48.31ms | +| 10,000,000 | 6.77ms | 45.41ms | ![Query Performance - ORE/range_lt_100](query_ore_range_lt_100_chart.png) -#### range_lt_ordered_10 +#### range_lt_hybrid_ordered_10 -**Description:** Ordered range query (less than) with ORDER BY +**Description:** Ordered range query (hybrid form: natural WHERE, extractor ORDER BY) **SQL Query:** ```sql -SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 ORDER BY value LIMIT 10 +SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10 ``` **Parameter:** `5000` -**Table: `integer_encrypted_{rows}` with ORE-encrypted integer values. Index: ORE index supporting equality and range queries. Query: WHERE value < 5000 ORDER BY value LIMIT 10.** +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value < 5000 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10. The sort key matches the index expression syntactically, so rows stream out of the index already ordered — no Sort node. See §4 of the EQL query-performance guide for the natural-form sort-key trap that this shape avoids.** **Indexes:** ```sql CREATE INDEX -integer_encrypted_10000_eql_index +integer_encrypted_10000_ore_index ON integer_encrypted_10000 ( - value eql_v2.encrypted_operator_class + eql_v2.ore_block_u64_8_256(value) ); ``` -*⚠️ = Query time exceeds 100ms* - | Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|-------------------------|---------------------------| -| 10,000 | ⚠️ 633.49ms | ⚠️ 655.54ms | -| 100,000 | ⚠️ 5.453s | ⚠️ 5.495s | +| 10,000 | 1.38ms | 27.91ms | +| 100,000 | 1.02ms | 28.22ms | +| 1,000,000 | 1.16ms | 27.73ms | +| 10,000,000 | 1.02ms | 27.23ms | -![Query Performance - ORE/range_lt_ordered_10](query_ore_range_lt_ordered_10_chart.png) +![Query Performance - ORE/range_lt_hybrid_ordered_10](query_ore_range_lt_hybrid_ordered_10_chart.png) --- diff --git a/report/ingest_comparison_throughput_10000.png b/report/ingest_comparison_throughput_10000.png new file mode 100644 index 0000000000000000000000000000000000000000..f7dd014ae0a1f16c802d34afdfa433f13e5ee8f6 GIT binary patch literal 36246 zcmeFZXH=Biwk?WTQNSF?h$0y!N=6WYB1+DPI?ImbBsQE?_<7JQjj7cCMPB$A|jEIzOPI~ zbQDcQbXei!arne^zW6r$Bj6;d>7-(3>f~bRU_vBs==8+e&dJ*1G3`?m2S*D#TQ2rH zx7qKq(waLtJ#iG^;IR4EH`whQ%s9U2IJd!3PCb#Kee*Q{9E*XaK;r_Akt)W{DrbYcn;mq**{mwk8 zifjM9*g4dpKkq(|o`icvUO((#!JQ+o-*?5C_TRZurd-^AClsWFj1Ro1r5KOxzYC_1 zIQ-|`vwGxkhrhkPaO(ymV}p19C;RtD<6^nY1gMVC=IDEGm~1Vyetv$0|B2W|l{{Vk zEu8uCL~C`mAkkR{IO$nQbFp7nFPpobl@8W8^8TYkmA)p&&vLJI4cAf+g00)$4gvk- z=hrY+EzZ~1xYBRP$EoVOjbFm|7iDOXxiWv(FE$S?w!`Vaxx~UyU{p_vUD){Qdm62b zMuiEvIXLQ(5bKm!-t;Ga1>fbadLim&cbTlYRW$6CEepWUzU9H$B#7&-2;pF7vH# z&g3^^4Sd)XlY~xTz5Shnf-keh_3tI{JE8(FvyJ6rc8Rezhl#4_{i5fu5E0QT<0)*t zF67v`>*-;<^`6dtH)JP2e^y(>09WHRcdsrxzlQu&yXK>-yw)+>%k82+D}q{0x$ZUR zXcZ+yB@4MJ*KABs#PZoCZU3$%Q-1&8?QPsdB#TCx!+6t|ukl`6Yq8Bk<&Gvho2y~` zj;0x_M~ctmcy#~@$)vDd@QG=cA4#5v3_kDM`m5_#Ew>34I^mVK3jcn6p;^bS`euKj371_! ziMZwJbg%xfqQR4yJ~o+{+bP8s-QNZ)e_bigx@FauGePORyY1EwA3El98Gb#QA%@Bh zTN-PmU!H7_-q|9=<0kz`DB^C*WJi5XwHYj36GO2?50qG$iKk?$WW;?&z0|Hw&ebW4 zW4?j*Q4D&nT4LENSJJ&S-rV|BF)h%}@g;_qZHr4sw zY@~GlJ-x7ZpMbDm&`PPu)-0D!sdaygw{c@w9k2EG+k>_KWD>&Eo7JNN!|HbQW^D-* zy!!6=n}a84JReoU;_UXqd+A_1y(*s0#m(&yaD0O^s}7TGHd{;094~kDBiM9!dnS9G z4aD7p#4A2g`-jLS3H9Rz(5T2ly$UC$?@u@RxJ+AO9yRZ6FDvSVGss(WV73c4Dm!uG zRc^}z?kiJ5)#BGvl5N@8_8mG4~1GCH2XSF6( zGSF01q2HfISX~1Tf~jphR(myC zafwMBD;2O7`ReO?0~3x&To^GLUtgD~m|76ioH8QAfA?Q2)ZJ_APM5dBr5o1ztvPGt z>E5Xy(8gwK~1>ZiYd+}o-M7Tx_`qY&()nT#>p!7x5dedU!Xl1$f$OJ>)rh;ekSa$Rik zn!%|qj8sbqDQdRAOd4d-$g}p=Saso*d~bc@N)MyZaG! zjJMZ?&zgOCdRBqd!kb+AM%8D7nc?rRN%6a@Z)>YP2;$XVSR+ecUa?s z^}CCyDXK4zlYCtn5@CrTp1V4=ywI@NT6COfV`=>KqWk6p4(38TR@0_v@FwpMru_YFWIvX5EEJ7(`*RNehpVs|wG2$H(hnF=X{yU3~pP^$HyA zr_s8}^&#v*K8llViCpzlT7&Ss+L=B(6DZeNe+sLgyM*$6I-83*q@h!0>pU>wPviYW zdtsfB*RH2|hDKxv&&xAZXxb)_ed zN}ayK&OMpfQHouzg&2Otk`cZ4a;28GenvAT!u!L;E*ne64>SV4PP$*0_pT8Mz5VGy z^y8)X)*N3ZtQ-7Hsxa5uY`;;I-AI*Ism&n6P1z`J(O?Qb1@E0zjjdJUi;T1oRPOA^ zdGBsaD%lxO;NZ7qYbgv6{KH=yJKeN6THoqGbvdP4!pZepJ&libsiU=eJc|Z5PWVzYATx@C~5ZI61ZRM+>kgD#9N~_V2-`u)F2HrTs}XXgn~C_gaH+Qe8#>v zg@vxuD2~rgKU1%=6mN81*xji}H{N2#@lmES`b`A0T9eQ%cY{91j6n;Um@A7AW8zZ; zVKx@V?DUT2R;zwR5oTKXaNH8lSKQU@Zti%)WrV>>c!Vu?!iQZe{LmT~enaNE<3vm7 z-tJa=4icGK7i1x?4ZG_Kv?%+C7N2;#_MzY|>5QAcDE*wBBeKfcH@E#(?uw_j8w67e zw=8FInzk@5R1=b}z2G+bcBZ@N!4@;#NXTIb-`edx8&N>7e`OE?B?l|wXL*w)vtazK@+ourPIk{ zH>j~@ACTKB!Rm7n5(S*6&8UlH!WsH8SWJd?iDlzxeen1SzIzFVz2W(h6A7i*(bW2e zREf$Jf?~Yc%x@O-PN>Mvib^+TO0w;F`}q+gv~bDFf&`&Cwf!||U6CJJ@;LUv_GTIN zK>L8KjK3S+==6-u^hfob%AzTLgDq(-ulyXF+9Ddra(5>d%k-ALvbw+y6ACFsxW!lp2PK{koCKc?#+?(rko@lwY%!kIP^p#h`bx*i_4HI;+ z(F?VRzv zWFnp9!WpHnAJtE~r7ENR=gfIxyYdCjeAUj7$P%ygqMD!7+(>b12p?Vkao1B4-`*!M ztWZYQY=1IWpsrw(_TG!5rGZyC{ItCmb5NPK!xjD59hja9GfwNK=4JdY^ST+MS+)0a zoZpi3I8-V#v(6-$ZLQ5IV0-EK4bf_LeXCBI5u~pRrfxIT4?0t>O|IWv)zoZ%zuPwR zgx4yOw7Mv()ak0qeHy!Fh*(B`{XrCbZD)9>1e`u}&*7DlI_8@fU9PiY0*?`2{K$dL zqSmOu^tp-qxA2cdk3Qkbt?Dt1>Jy+^v(#%Jc6_AyYEsje`{=slE3|S`NtTR%68|(d zKe^jo7%LJyx*_5Jw9+Bxe)k?ds(mJiP-HtSkTD|{&)aHIy;}K0lV?i%+=uq^QD*>c zSNz_uZCmQ(I&`Plj&cF`-=J>DGN0pk3#Lig9jffTg^)v)_l9J4SH}tJ$NhDt-268X<~b zwT@!U4X{t>(-l4DGPYi1n=yzvS)YkyYj!4;bkBK5im)Im!2t|5vxmy}>6sNxes!*? z;+28f?}d(&3X5v$=%C)ewKA&6=I#pG&PcQTwGzX)lju?vlvk9Ml0zIHAT*-A_%6~< zTdxyxD%aK{7!3JZGbwennzU}27j-?xE3s9caGm5bGUmLR?EAr(WerGxwW6CsXfh`w8$n`$M3Q4 zB%ANpbz@}f9Y3k-X{osdiENBr*xGv=!dye?Q|~NF$>Ou>p?A5fG^qHn%AQ}6^9Xh? zQ=84aGwU8U_B>n7`rb9MACK0liPmXnNb>9KKlqVKd`z!$iC~bAGuyR3wQ$B+pi0XB zh|^48>zV3~%tmMP7d)zsi*=vcoT7Mbv=`B%SI>J@wF}zjNhIm|kj}j=nu+JOIvK!H zKgpNVKDQk7d?qBhBj`D)RDoZ~tCe+KAHvtI@A?rlvqnJ@8%gzxZf7jM$FXh0uB({~P#@awzW_mtQ@d7 zblY=-o|li>_;bH%zXDVEBqdbJKVIsJqDz>MQ(EkulDfj7@3g6vF-rQ{$nIQr*iS9t zq#Qo~&BNNbv!07}S0*l)=053Y28iEsdI4fNJuYxhWSpZPa~BR=yWE8;`7Kn|E_mF~Yug>8{qV=th`aL{^YL|yi~J(I^)*cA z}2oiUHf9+wt&K48DAL{^_%-+Px z+nTkn#CSrVnr5keBw!gWz^9pvUET`hq_a2-ZhLNK$9AB&aV3+2+gvHY=T?xRl)2BX zbE{=muLF$6nFdaGgdTr3aH2W2I-V5*udA&n(+n@qJEZ|BS)clx$$JvQ^^fQQ`=reK z)7S5GjGC#D;a78%rnRv4Rr$X=YLv8prWZR%dpyvZyf>$I7fOJw(jbhFyKpW!@!M6O z_Ei`4;I~Gr?^){ShK2oKt!+)Z+Byp__&@cj+5FeEWwLoTeV5V-Fvr9N<3L^;(%1U+ zi}I<*PYLL@u67k$s4QFL^$uwm{FsjC_bSM1?QxDtuDLda!(etwDdRIMYBGCfHVZZM z-RhXQpLp3X{0Rz`HH}J}=_8z;>%W!!%gmjhNlIL)R~(Y?u%&;)Tj63Yp4Xa8<^Sm} zsiM87=fK(Tn^ZlfUjg>6q+)0UE;bh&DkL=^$wY|<4?@`}VVzpzFpkRL^VU9Ptfu(M zmf})S*(GHG-iu|-ikI1SuUc$n*qJ-iK#6M?7iD$!UF&ye*PIz#&CDIgZK{qR^7)hN z6C=*j7WeH5nr@?2XrGy&OHT)mj-*QDQnBc-49zsyPp!7Za?Le6haH#N-21ZV`AhSQ z@o>8OPt8d-?2P$pYZqE}PSomB+$CuYl&%UGmLLgE=dWi1NlUs@k~ze0c|1ulzUPCX ze0jSbCrWaY=d;5OE?rG>6O()Y^?6gl`jkS;h7h{+Pz=4zed;c+sSfS>^xe&MD*r)0 z0_88)5iAiZeo2ShnmD)9Z9lp{WI9IVog*L5J0V%B7MaTR1s{JbQ4OjuZ{kIP%?ILU zG~Kc3Ieg}usrnvu<{ju{k(rK@a}p^Wea;itc}!cba&aYlE9cfytdRWWN3@BzmOkV= zbCzW;Ii)BKf2(4X;eqHP;U@VQK4ZQwW66EU>4WdgtOx3dFw1)P8*1UazId^@#bWDz zPR9g^8NSEDWqmf&J5v;lR9{nznD}c7f?3&gO1X>9Y8QR6U^KKpL+`}PyTd&a7nvm; zdfjw_IdQIo=jxNO&8^Olh7!xi6?{aUO|vIkPiE9hnZ@+bHcsDsZ^!M-%d(SoFOt-( zla58;%mZ8ib7DVgkC*#Q&*XiA!GexIn!hdP!}HfxxZ8F#c32{*ts52`%p?Ul{oM2~ zlZ=X`;&$h(q;u^&OE|yXp)A>5EAa`pHLH&8BW4!HnD@RBxe|m~CTFcsKmXvOOK_wJ zFG+gNX#S*(aPo8^Z~^?j$J^s_JF?CeZeG^PSuW}2ll9Ty`Fp-QBiISwRmX}YzLjg* zb?r1}YhIA6J5h})o6Ez`S6{;{rsy!caG!u|>TwB`bh!e%47vy-r8GLfOXhf7#F|$3 z-VyhT zKB859b=4w7Z&e#Y@DB-)%5($YP+*hX+MC~AGc?%~lqReF6N6ttIjK)Zs$-DQJ z3XFC@=uKEdids6`O7qU^!7VkD0*>nDTy?(A>7NJ7>;?hkFSm^T9)w4Y1$UY!_rbT;QN%4%IuVEqCiQmd1or!h)aDCRidq;S$?+`xx}W| zlY~Pp&Ia>1jGb&euT1~}p+R*tr>vE8wM*RR7YcTF?sjRdQkpe5RNqiYxZ8pe%=1ak zo4LN}s*$bE_V=8w*&6X&jc%}{tJ#Y)c!d4qqE8)_GjLlPbDMCU?#(vy0Jw8H`ABkI zq7m9@0uz##!A0=(9bITDVh_R?33R`k@h+zx9dC|4QJHThOqzJ8SSdxkeY^5WB3^NI z0VmosGlgsI$y9l%C$(n^v<&(5Dv&Pct<$T_?7eDqFLCG(S$u1Tur!Fp@1+1OD@s@w z+zrAPI8?QUw4Dlq*kzs+4u$HqQ+j4!96i0M_R1>aZX1dRl*O{^3Ftr>Dj~!^zwL9J zNYN017rwa9@Fj&RZ)$o}L=NW}|sr-KE;TX~7aK%q#XYce0dH zUhtC&^e}L5R;EXu(pF0m4jf7;k^$nR_IL@gL^j2Wruq15^+@we5p8K`ANrtTOBBnY zlIya`r@cHkh0J}UMNAVPDr7$vx+zqz!(!mHSK8-A^Ak z2BCnau>>njH4Eu;{_f^h+GraUJ)~W?=ZZ+nXZHnbf7|w-<7@UNht4q z_mzCwXw{B*t`((;4>@O}n#=v6(@-Hmh|;c#kxD#A;(R3OO!wIfM9)6>B>|F~EPgB{ zItR2u@rJ4@g`ky5fKjAM<)NkIdB-d6`kCCn1KP~__jRu66^HtCpocU}8Z zOnBYKh~CjF4r4CdS|SRFTS*{;vq~xcOB*U$`0pALcifX&Sj6K%{)NHf>~21?uNCdR z_p-Jdt}rou9(0*)#hp={iO-xC-JP}nXIkS7#pEd9BK!-Zl$zMI=}f4G01K46(C`1+ zdkRq$V(Oa|#U;=Y6ghMrLIXaYY?Clhuf6hKj6 z#=)0=)RWSPuwr&Av=kEWGAkwvt*y<|62CdeRchQEs>7`Mf!3lcZEw_WFe(U*${f|)l6 zZ;fxpWpB#*jVbT7PM>Gf=C)fnpZZ~i10DKe!?C%AKhUH#uD2^qMkRQN0~7k^eCu?H zcXlUMS(YqcUq7nsns?X!v25p8xAE_xKI0?R9=}c<+~;}<&;+Oup*w1~#Wanjlhu=i zyct1JxTHwCFUfr-6ZYQLe0)Ec{ocKMU;0YsS3)m(mz1to^e`U5@B5{R@rN=kF$3d`3_w&ZHSGK|bQ$8rY1=ZZ%;Uz(SsP(D z?8RR*`voO1>XhxlPeSKDf1wZKx4VY#^9Z=l!!2;)&;8hzyDZfF{g&cZ7e%S4=eqRc z`k+hJiERuYqQ#sz&eVJ3c74zT@oZzi&@7x5)4Fb(Jq)7{)`B?=Z$|EGkw-r{PI90I z+h}ClzDC}#uXqubp{a%!H7*u%{oP?9NHxK0Ig4Fd{M>%iC=Ywnt4*VI3Cb%JA=nQU z$9nTdZ*v{mh;WE=Zwqa@bs=N7$iTo((T>mKIdRx+d2c4ARKI@qv=m=VPXCQM6gKpg z1#!btxQry_yFrIR^~(dLjFlLymeLJFi@u8Q`q5%%wax>+tl}$jM{MYSY}|UHO-zqr1|hF2BV^EnMDZ)f1t- z@$lHchJ-~UU#2VVwaHjV@C}Qw`wr_3r>+S&ynw(gldeEHUp)7U3D?9@N8B{FC^5b` zddpM`ch8`qIQH~dxX6O+bI)?)#`bJ9?p^1X`3%Em+d`8;1^i%k_*he@ntEP8YwO@D zh)fq`OPWj)#0#luNWw*EilfiqyJL?J8QwA54d(pay|^Tk%&wg3N>^^bT)JJes#xwk zv*wsTm^nz~mZ2}Nb=#^c2Uo0i{0tQfFn6J)Y~(Sk^$H154!tAcRpmv^#jk5`GHP>Q z&{fMH)LpYSuwX8CVl<4+B1tnE{MPkOpUts)h`-3ULU(nFOU~4DtJ<^Yef32SZLw0D zy=F?q+!uxOIu<3G-K8{5TU2q4KX!+2x)r7^u>!*z5+y&={5iN1HGe&_)v+(Naj?(~ zNB5ffK<7UBWMgS8qTO$$bZ;A0*?CcKU5nm=;J+w%#D3KUS{X!h%RJV)yCu7I_G30S zuNliVA)8Dl(BQ8(7-OQw9L0MHmC>G1WMDU%KWN;~F=NtC=uUI+#kLlr#tp)kudp|U zwAVNhqx1AIbfO&F14o&D78qe|8oc*Izfldl=2#QGmP;N-D`(=$l)K|`X<+Gn zy<)7P^M#tLjJfd`t0*;ALe@~Vi-F(U1apiXy0!iUVUA%Hmvt_^{(UXE|H{J8V!4IE z#ocOz!AD+4?^22LdUvrhX%?nmtGOboCSuW7ni2bDVf}Tt!k~Jt>OkhL&XJwHrkyRa zH1$$v9T_NlL_ETxddWDeh`Gqr+~=o}U*(U1ATx4ym`- z)Q%Hu1Z#N$bra(v6TH2b-)1>X3?188nBCaJ?CGSbmk^()f8exLW2L5*vh8L($xbkx z*TGmc?_u(p73$N(`;{4T9M7z(t}>g{B`ZOF2QRT_-D1=457CdmBhcsdOl7vXP<+wlxcZ2@55+Bp-sPRy8hbg(drT2uh{;r8C=;#u3nqPynt?)+347k- zZ*TB@yZYr0!$)7>3nPi`cYMs+WYf=Z#4eO*v)y~K{!8&+Q!LO&+k!dKk97TW&FtqC zdOF(~0ehV|Zl+cZ5}Pixyp4hP;?kvzIj5<3Ql>47FA-<$_|%&A;w9UM`+qup(1~7? zZyj&xKVA4_(E-orT70TSWWIkf7F#`5h`GY9XYcN*J+4;mpk;xbu6~4d=3_<0aTmDd zP^h;=YSJCm;V(2P^`TKSZ3&eACog{TAkawX#I&U}xCADc)t!FJyW2-CE31*iCEvy- zny)!ooJcCO^>~~6H3+_A?eQwt2W9cfvV=A^lP_e=V?Qub$(1{b%~({TcI2EW$A(*E znru9(D?`=@x94?&Og81P+YOLbQ$`e8V(z?b)xJ8gv}A&c%h$-$Dh+5FZblKw}RVCSN39=HJ$Tg3F&3g9!YC=e{RsZjD z?C>YI_-kK3)IT2n#>VOLMKQgxvSe>ZbozR}S`G&f&Xz4VzJ@+i`DQfGV9gV3f@7=7 zlH7kj+wC%Wyzb~RiDxan81KQ$KD>wR#a>^tfXDKz$RQ#%vrP`?7pH& zN+V1c@4Y2alg#ySTPwoGN#yb0CspG5a&`E&3bzOgvKb1AH=v9PqrG=HQzJh~_tTRv zcz5_PERM$t1=1>FH0dgu+#@gI9{}IXMJDC@kS5tcP6`Lr(S6qb56C*(yE51Rkh~}R z=1YH=!rDHxP~wGk(r@~0Yz`Dc~p9((IDAiYJ{iakDsHejKq3zjge9W1oTDE7hR_vGOo)aVq;Js{bV*5-EGD#s?? zHVrxTa>Qala)NDJ>$vw&Z_5X>#;BX&+oexaZYajxA6ej+wyYl3-Xz@>pC74a*;w8- z7>_=#g}5vDMl4wJ)pIy1cl!w~<3Fp#-;c zo%?X9ZuWbD1fr$OL@yLfR4)#$ zBO@3eL9$Va9_R6Cp4gREvaUk;TW-J$57#7qoM3opyFLOY5;T}5IGv|euL-Q|p$IF_ z<&s780Jh$`#Jp{nFb-~k8=!+tkmZ6EqR@TSvLEAv$h@?n& z0&0)qPNAJ#lSnbys+nObj3po>xPe_o%eFC+CEBXft|OuA>)REiH9-7FD#LW?V_Wyh=PylsvXPiI~0C$E{SUD92wP zQeGUb3%``j+cY_v9-EHmF!PjoKssk*`X%tik>az&GlX%;<)DxHd?;UK#Igg5ee6$< zytZUfJLbf&8#2F&b&oLWnc0k9mDZZcb#5Pc@G{+lFfTLo$^PXq0W2sc9q;aai882g zYFsH_GFhBIo_vl-Y+bL)HMACNdCwRnag&zxi-Ki#@ky`GI>&ka8(`(!^G@poYIXF1}G z3oYd=Ipqowe?~t2i2zHIBt}7(gz+zKE6_%n;kv&~pfI+$nqmCY-2M&9 zGW)~=MW4PWOliza=%N*TT_mqoS-RhfR%k-hk>_70+mQ?SEvQv!9J+ogydl|VE>gR< zNy@$CqUT`vEyb~g;S)DhCagJhpIzu9NIhhT$O2g&YOi_=Eij+S;TUaH^CD&L7=7a| z8V6fQdyc5nR7iq=GYS>SY~tOQ4<#el&nUH$caa+Iw-Ngh&J-jO1;YD5&9Xmn=b2~# zwQz;%2TjSSo$Z%GZdDJ6FSS6}yb*o%PO66o_N?T0>+8WZqEX#uZOuWVF3rB#1oXq! zCF;sO#tW#MaxqF^ikU2C1<3?4<83Xe=W53qIyHvf_M= zGM%ZC<6yD_!ypNl-06>qO+h(L+K@fzvaylvw(f#*GUfT75$26Na*UHs ze6=z09kE~rL|*@oeoEwz|3BI@|L@^o1peQxtCgg!7P&VRhz@lJV+Iib*eyF?<#C40|ijp+>c=asx+-YAa zlKpeKzOatly>AH1EgZ6w3bu!HaGOt;8zm75B1#H@U_L$@#K{bv@{=o+m2bLNNQ znvUU&YE0wO*-4k#w2{@LL5XQ` zb9ZY2tyN@NXwl7ZL9WDRu&*Xj{k{dw2QVf#b-tIn3BK0QQbmX;q13|e-+lUsSpG>m zG&L^&HR%vNLlTrHS43Bhq5ypovv%8XAL0ho&Qb93FDE}23NGKNZ z5F2CiE7~?K*&K%+)S^SO(jwZrGOlPqxZ;8|esOG0m}vXOe~#J4*Sq)Yy%mCrQ&ARm z5nYBp0^9BOS6cy@%Kb1VIn-n0^i5c*;;j*m8M$R5qWgL9NYS-pSzuwf#%0PqN;U}q zhl0;G0$h%C#eFMDYXj+GxP;9i+AYS z!$41RAk012?*sah>xDIMe5(XuoUgdE+|P92uVE}jV(>_1E6n9}U+N8%yT_kc{W-%S zoDrvT;Dg`w|NnHvBSZFoBl!Q+O~CFasIdv=<}m`!2eETELr%ZR$S4hIlnzW7Q5ptb zYQ&eAFD`oQkM^_Ar_t>CRg4B+tC1~9!a52`LQK5z@{o*g!ldHC!F3(Sc=>aYX#OK$5*!7XX2marOux3Te!FP;Q5ePc1!J1Skl*I}- zXBoG~sX@5Duo1l9 zh#2j6=Gt|b>ZHy)a9ZQ3j+CD@!*Itk&krBF@i6uNgmRWD6Jk)AohgY$s>=UXYW^Q3 ztDhqp`{#DO8!=F1790Uajh@xIz$?*UpYz{(iYy)a2Y-bm3c55U`|L7ZVphG~+Dn)l zH0yI&7}1Mj*JB3Q83tLbvA@V{JhyD5&|nX;3PXtd`tKC${z6Icpqm`dICSLr_cDI( z?N9yb;ALNeNg!KhJDdiCRA||o^<;r#|0=E*be3m>Z#m}2q}B}NA&U9IUac)k2m^> zc=(N>lK^Rt*!UI5(PA^T>H~&Wh-ZJP=4$f{ZJpUaJDC~^W~Cy`nDf5`;#(Pja*u+9 z(h%5@l>v7CW*CH)+akG1zzB&e#iHF@E=z57)>u)E+`=D8gANDTS=eU=<ynu@s}j& zpLre70NobXIUdVnWgSI`9U0F&@$oQ;I6=;J@4evH|rTR_^IuChUkp751pD!rij<3Gzbz2%xF&I z23qjXabuTFTsWu*kdD3YnQi@9<^ezy+;Wg$LjUYW40xIKI@$S7Qwhgap#qA4*(Fo$ zzS>d&p`j5_SIZMov_T1fg*vOI-C1momeC9P?D|OCqQ`Z_8CxATIfEx71~(M}g;%^5fs|T^5gbalg;Tyt zu!KRXw2h0l%8YI+F0&tfpjBcS2@1R>qBJu{fkVLb1;d;T+AyrGDg&V8(gf(tU`%O$KG9M_uyDGn2d05B zu)T0XQA3jn*2;J#RQGKX{|c7{b|~{nuydB5&?G(WiGpV09}XWQjuFcOYlrC$m={~- ztk4naiufEiB*^Y;0$_0Xfj&;nv#|47NP?Hs&iA%f&))czeTOX{@)0)^je`V3_-!H3{npoD7!Sm{&Rc4!bhDtycKoA48q=iDndobp`pTTH5{1+1W z9Ul~$G@I@r4M1VH6sZvkWTPC`1Se>p0fVv!7jUUeJoD4iGrhc^ zN*IS(cdjfN9MhWL9-g>QP9l>eRBqud0`rU?T!xx< zm-l~lh_NLl;{CgKv`o-o1Hn`pyrpzdIYvT-sSGV8^hkb+Ht^O$o-tA*z$1~|*58N0 zw7zaHog4V|&QJcB}e@}0!xc?N+eoyIv zw#{)!^#yxXP+eJI^AgkKVwIaBS#Cl1Kyru&r*Q~G*O-N1O8)D>5dvA1^&M+a?XCtqIhDP~sr~WA{OX(afbt^@a%eLG zmY|<9jN3vPsjt0uz(RIYDv0vmlV(LJ%MMqw^!uj-;zW(Lw}V<8c**k~kv&jkp}}8% zt~!7J$S22?m>>Lgl@r?69PJ~a3l(~7Jnzp^?EiH;LPr?A|Mr=5euO0u_n++U0+vlz zOrCEO*}vV-?Y>MA+8FQZQ?Zo8)gBt)`!KG-KA4<_@Hk-wKCqjJrx;UqaKeP29=8+{ zLSTpoIbdByLwH6&A}f@i5y-j<^u}c<(jZz*|H1SP`1oKFz-TCNWzA6DCPrmQhkoT2 z#XdomX;nVW734dZyP}io@0S5O$v}UbxSqkMCx%7)Q~?nZJPVB*$6yMca^8Wbh%CDK zA@2Q4I{Zv0MHTER#&CPUSW|J`SM*T8gM)!*=^KSz%;zk~F8{v%p(JJCUBdyoHGFvZ zUheL=)5|-L8^C~UT)ICVMAum(l%ehX9DXw3~0$%zsdbmioNnx22>dd zixM%lwVbU!PD1{Q06nP4>+FxO!z#?sdg%acKX5Z|ekWc7lyZ?nU-vwN93u$9VPM;8 zN|EqSC}q;fODMOi5476Lf`~5z7u{MjJ-0I3uR<;AJzLxg54`ov3lLPI0HQWR5ToB- z+&>HLVTwd>$jQU{zj@9Esz#)0?FWUxB5rr86L?Vc8z2JfEd+DB1fV|MLCV{$id%|F zF=Ep{YyBb6UXJCliaM155$_T1fdtR+{|=jB>7 zX-m+84owQ{N{|g213y6rQl?Ya$1JF<*HD>|SQ`OmNmK>3Z6iiLe(3Rq*f_u%4_&z{ zV0|0Xhb+}XK;{sHmx26@+OzrlG>+%I_kYkhA+T0ob5Q&{8%JK;8x;yYM_tK$&S zvu6%mf0e)1dD{kk+g3H;Gc*8Ldu95mcFD?hr%4IovWd1t7NjEz`c$Ro21?LAd%LC| zk_I5rjlS}xL6H*|sCe3k;S}vr z5g+!G=O$0kK3*T)fcf&H4o6dd358es)G);~zDdM=!+ovF zL37$)(j-=#y#5PO)Y{?+u<7=odZu#SD@EX7LqqAM;s&Rnov7Rcn|_k zb#fEwe0q`+8+s7YLOB}J$7O!1mf7mTAO>dgcGUo(MHaE<>JDwS@^vboo-#zF7$cAb z=4>;-9kl)Ew+Rsdlt!BZ)f*G>3{DQSb7_&<0)r#4(vV2pm7~RV?at#@e+Ml3TuaF7 z7LzqQ+e7z4;AQfN)O`h;snZV@h9{5*D<155vu=-dd5x6FJ2k4z1(x#X_g~}UKdCX5 z01LSB<0aXPW6CJArfxdd_fo;6ggFron(nixg)KLyr!|*Y)P)@50f09e`0QMoKcFf; z2RdeF^uV{1`g?>Rz?mK-8rrYonXs=xGxWsET~n97sg2aW*CpS4a_ruZASa1zNpR3U z5uyqa3+diA{ekr2YI#p}&>>L>8nq=E6cVm>ZXJ*+Vx(yByghQ~U7hXk=05A93jOdK zpf#caH=HX8-aqPZF37=Iz{RFNT!*r^)!Ie<UzLF$`niE z6M$~|F}qBWr0flBq29(z5JOPK)zS{IrdMreg{A&+&BuJ4IulX zB|Pu`ACOc4#%NBGHVMc1A^z8wTXW<06Q3B-6Bd4Et-`dH1b!7LG%r~Xzopyvag{Fle^CkcsiL5RzCH0j4j91<3y@W>LKU*}EkrK_ z)K)YE!5J{ZIIvbxFdC98H3y(NM1o1J+`$A&z5r-al?BJFX%r+zH9)_aWw0MN|@q|^B!q5Y$8CqTM}r8o{ggg^8O)RrxE z4*~Wek>)?2EeTGi+P$O-I$5C@NIDxIX9k`6st*s+^tsC@V15wPd~Mo2H}!xByUrca zMVtwv=3lW3u!Q^Hb=he&BwYqX@NE~_lCvH9WEdsvwb|412@B#LQg%5lj12$BP-l0# z!LA#vv+f9700Jz|1V-WlkS#z=gd<`;w;(tPpY8R3ocM^;iEiU8W=O^V%+604Rm+(B zX7i^%jht_UItm%_5%(Fk?kURsApn#<4Pjro!pXv-JN+#vH%W%>2Y=d5QU<6Q4){t| zNl9sa;Q#_XDeEj>3x?AC(uo6_Ch0VKld!-6qmz$kS_M$s2*`2_9?+LRA^_xyS3Cmk z@qGCk6+V03uq}uFhe4#bKQVsa0QoH0ktKrs_9LQyAmWdHB}>rw=W$RqA+N(p|A8LK z(0*hz>_C8!65isf+`4uDFb$v>x-g{gN6uq;@!yQ+71Xg~$6}wzaQN)3Mk5=86hdZ1@DIe2I_q#ybP-SdS>TaqS)dgD0I^YpW8q0 zL)M6aVvF!o2~O%5Q12RG0Mj7V0cS|H#S61M8c;+N)K)EPNL5xg;@(`d`+v$^G6##A z{yEz-v5Uq<{nqCt0hBkY3RtYG!V)UCAN51ZC&U#3fTFa2;>VYlNKZ4eGQfYY?7cC5 zB~vXs>Qpx33MoaN+y8*#7P4VK8Zb6EL+Lc`NSJ}cg@IGJNE9@o^9H=`3qbpUd%=B- zg=yC;7LwBM3nhQ!tTi3KBUqi`~R{9uEkCmjcj&j1?0{0B?wPCg3i0n_a z`yyrT2;)!xi*WxwFs8;eQLtyk_Z=R)ks(h}aC(G)vVeq3gVkCtc4$s5+QoNZkS%{c zqFBm+Pco%(|4@8b_Q*djkCwAvAV&A+YsI zb%Xc*wSNwVViO5j$i^72D)h1ci9!WD?Vu9ss`hX}@SYH08{L&Hz@3di8n^rlt*%Be zE4_PmD&<=+jU9Vu>JGQJ3A={L8)O1z z;n2KlLU(Wou~($HnePSfhXBqY+rgB(uV%$Mx38u~s_qYo*ef;E+(@+!Y^%iphkrUb zz5n^iC$?%Rq`vJjJV@Zk1VhM5NWe`H3Wv)D_P=>pH^y(_Ew!+~_rjy6&P#&<2H7|* zj85YCYw$Y&K?O-R_>=HHsug?Wt4!m)ZunsaTykfBIsCKbT$K`|Gi*@x(fWYcy06O^ z2?+P&@WIMBtM#^Re|QkK%^?z0ylyUL?h1AYmtmktFac*?Y=u<-cj)Hzt$l9rnOJ@V zvrcJFtk(jpHl!~JF_@H35h~=cz$R58Y;6tYnJj00OaKS#Ges@p*j3Lvr@gOug~ zQ0>tS;Lmd3!VnPHgag!M{BBEWT2V|Y3^MV&xyw|rIat*GoFw9)M5;pvlGOd5 zJv&K;F1AzE1nHAox2zIK55&YfJ5=7S`iM=d@IJDYnE{|*$L>eN51|?`0gYuXIUhtA zgx>^=hAKAiOar$ECp1gS03!5?hk1qAtc`&VPCry>i-R3Dp3JfApH7GpWpVdn98_>+ z5}BYtNq>293=N@bsZYnw_me!>09t0fqku#c%(d(J5PGT@hM69O#xP*orGe2m8L4tJ z-GOP2&?3s<7e_!D;;Hb*)Qd4>WO21_5)>?y!NQX#hV6$Y_lvL4F&DS5+ zO_G%O07dhwPxC;ir$c|{JA@~X@&fH1(F`_Ve%*xo_!!32$8i65k*NEQ(KwG6p1EdLRjW}zZ3g; zp6@;Ocf9XE-+yn%v5$T1owclW-}iN$=lPp1*Ukb3l3=~XXfcQg7@7yiR)|NGDD%R* zXB(hz(hF0cP{weBe8%FBbnmC=e7E{Z`2`f{wrN=oYk`I^PDZ<~-(e02LOR@jRxKWK zF}w6W_6LfeSmJX+l&klHWhm_?>US5n130fgP+}uJCb5zaO73B_Px;TnuV%SxV*7!? z&L`s;o^7H%FRvDA=%M~V$#ur_qMo9??!|5bEU(Q|lA`q#9b0-&67A&)MEOlON-6ve zYJPR%wx(Ta>Gy$3Raah^!Q`K>Yzka=hHW2iEfl*0U-G`xxHS^E@)E*>w6rOV@MUQF zHn^XtruKEi-t~-jOQ;2Y?Ui7iy>al+j*ZsE_s$LtptaN@RRlym}i@qz%`@i;GH-wo@%bdhg{;rpi#+~Aq z1%$P4h+lv&;gzRe)#2Rk=@&6@1kLV?Ro>a(4Pa(lwUNrjcMq5YMk(?;cPTF0E~8u! zwn~Z7(>Iv1VB_8S9^RkNG)&6*^9bWvj*8iOsF@3oV+G;yp3?E!nTX z6Q~(ob*is0cvc}zAmNaRo^{lHo#L9grKbisNA$bDt<4K9yb`Gt))np+OueC0puP7# zEU-n88M1ez%6e)m7vJ-{>iav3kZDp?YsS-c58=;MoG zFdI>u(S~E#hWeLxzJe6f0%n4VWKeB`n;f^&JcOey1^T7Xl0L-Q{hy>VGa5v>7Pt#@ zj1Cr0m2&nUr_rvdp$p=Dq6NiIn2qi9Z~XLtfZs&L05tu_9(IfUzmYx3;H;mhO<@l! z9Wce6Xkd@MhJjuY7tmTHxF}Rb<^A&sQ~r44IeB`-sn)8gkIsyKqjrs>-M%7#D{X6@ z8(@B4G~c!Tta(vL%`$i{6JQJ6OJLx?n3q^RDX`m*4_B@zYd5v5MnJ(iltSoMZqPIK ze{r=Q$99e2KmD9mY23~`#MX>K3_{UJgGww4Rs~7t&>}GM4SqLt z+!IVqo8n>S-SJjXv+mRnf72JIbZq5!Cv@W}a=Y;_vuFl|~;akJ^)fxo}+ZD(hhnO4p{3 z|El=v(aE*$)%k48f~1DtA=15kaj>5wHHJLaosxKhb^D+Fl)+P5;}5A$iQfu?cN4Pr zboW@VwKu863E79l>g}%?gV7v2w&ymB{e1x z3$>NX$DUq~mwuv{@3uk}H`NLDdHUnwA@p#23}mvUh)R7^J+=h6xkbi$*nbjCdOufU zQP^pU%h)CLP-Bg0KK>z?*dtSbC2#j>8OqvikoQ~Z;Q@5DtpyDX->j9YrEDE(dUR3H z-=g&jeoDPCh3!pS%p}tD2H3v0xHZ8~KLA4WU9rc6=y{@{!AdxP>lpoV3wXWsXd9vw zL#$j4)A-LN5S$)@w2TG^O>9Ukh}ljI|8^UY7tzG~=~8P!jsvw_Xe?S=U=fkT)wzLM z{1zSGAqY%XBP+8HiNZ?1W{q9KYaep9B<7^+`Iw(a+a- zJy`*jM%K>(>N~!y<=#$6v8iidLH*x4W%XBm8Ij8KC{yTZ_ zUw#AjMTgwfUSdT^HiVo`OUwz^(Vds)N9_Wsmgt5G%|g}3 zvYGQC-R%WQt4dQ&S|T&)Xrzd|tySRNWSa^mr?q-1DLt^V))}aet&tO(qM6ai8r09d zBV#xGf%g)?mnE{6g}&(D-=f?^fKg?OH^csL2M@2J--UwU^_AQ^K#a+~1$xkJj#acx zmJ_!(%>-gz^O$Ht_z-EmGI?yWWAL#cM(N4_V47rN1N%<>G?8FyEG(y@)KKW#-avoS zuRg|iF?u#dkGY>2JbYu;*#E{7^1tq!zjHSJXZY<9^&rNuNWKj5-oK86qX4Ac+Yg^{E&qE zjPvsT=mW=Ny6RO9*u7nVoemGL+k9o%g$L8&9W*a_=qsoK)1&Lu5|>QUbA=WpsvqEr z#$@&eCH5N_Y)WyXlzG?wrpUccV|3ctHx25N{9$rCPmnG)05RD4K?=IWo!%ak9WTd@ zehZshE*k1X!@q}?lrxdlG(&2qCMmelE6W>TSAPBL<-*Yl#vVSiSLLsec%h)`tM-h}^H(bcGpBUsR0{m=@n*C+Hcx7}n4ml{l$S+-Ev-pJ)(3{2 zhJy4aK2#p^M!x?WuCFX%Fe@d8nn&%LVI_51ZFv=#*tF+MoBi?6JMOJ&veq_W|GBvI z&znvFMl*zJ1PcXecFWivgL}$pn=(UUpE`+I-eQ1S48HKjsSMJ-0WVr>z#LOjNRIFt z|Jr5kzi=~nzSAzd|4+F(K*MH<3~-<-v9h3M-!d_%!E- zaUaNPYV>}6a%tO2B^dYH!ha96S=zfdmbK?`l8U`kDE;>OY}~$m0txQ4DtPKw3;DnF;uSk z+ZvPp=l@z`#v0X;lQHP}{O5l6|G)H@s$SG1+>Z35)Vu;N@WEs1;&O*R3utHcOfNmE z)>vq7mWH~DL)v!}oh%cx^LGfSK7Cp<`hyw531Q`UxLKH!NJWH!`#KW$jqx)}Yh639 zCZ8T<5i;8*m`ij+P5A-D;mF3djHF2oFa)jKj~w;?ppL<<{yyQK(J zAK%lV(ftcsYiBp6<6p4&bsXxktKp1j`->+1Zn!qWVxkj#<~9JC4TJ!{d#gTo3=O*! zac8)rIRl__*gFw_qKmtZB=}4U!Lrt+;4tEX3qR_T;1H<|0u-E08XB87Xx1Sj** zsn6v07XnVY3oQl)hHtGkO47m;WwswKz<@n zF~$1XJR!fv;u2luzD4ha^cZKao*d686l6FKG0cR`T|N!Ej=n&Z`|=+p3S)rD2El(m z1jaE7E#G&L&!Qu|fNG|=FV}`f)E`nkN!9x-lb4skT!IQ$WzFyq%0A3UXx#XLoV8>;0HV8gB|}|lSGx&Ux`Y>=0G=77EWxm) zh4^@#1*~xfkhl~)2ROt82AY<3nGw!VQjnPYB?v&DU7G+yhK70aaiL9>pplQQ6BJnI zjBbB}4C6<*8R zNm*toF`tpc8x6yd|NeAvTXmU?aW?N0_LHf%kH{CJAw-E2eOSPPi2KtgCB}|Sv@hC> zCpcUt0FxLdJ&oT(J!W=oe+aGc)KgtFg_jp-^369OUr1d-GEx%q8*f=TA(J;EmNy!= zH<#)R1OxR~8^FA*)l_9Pm)yTN`zbZ)=Oh_o)NriZ0_fuXPQB(yHT|-6S_q^ObcBo8 zJnyy+xp1L0Bp>ip?Qy*sXZ{*i@hQD$ay|;jP%uF(nS)%=!%+(7Bo{E6jw!j-YzM7K zN8#|W8J zNSAs+X`;{v(Fe2WtN<_r2 z-&)-=qlg?bXvl;1*??o(TYZ{wLwM)zvpc~~e+xeS=>}n4P^af}OZNXI3(~aSVH2o- zowZM}t(*)7lo_Df4B&8sk}6}T9;C>%+}o;L^s3KT&Fn_Gv-TR6cH<9=U)q&+L13Vw znaL%&@z74@xEto!g4t>vSU?3+@*sE(n!TD%rqUNf8!Lhb1fG0*i%18G}VYv$W4hwDRi% zU6UOj`a7+qQc$^96@C4o!bxN&iWhV5Z(3^Cw%SAU6hI+3)vooqLk`VmGF6I6{ggHw z;q^hWO8sIR$rzSpICg~h?Ype}#Jf4lmrJ~9dJ!tRzn%$y1W62)Tg%T(BNHoxwf^&j z$PSI^B@Y`2PXt3nW$9YZrIO7NCTpTAgdphgh2zqnSE5xZ(rlos>7ZBRGSg?pU6+bK zuj_xQC%rh?_nW#{i}xWRbKrZ5k%)7(Ldsl|S|6p*Fb^vUHm=;eM=&#k97M?5 zv1wDo%(J^pV_U7IQPOaP`#n~?p#A$0fl7Um1JgCLgb~`c@r%mT)~WaXb|`wvK=`s6 zewf5{zPfs%V7{d{6a|xF!+wu?!6^nq06(;;)e%no^-T>gDEo6`nS)eMmr=f6J^kK)%_YsZrDW0}F?#comu0eg2p4O{xyFcCwwND3& zT7OIX$N}3Dg}eRgCs3{HH?cXFQP! zYyhBA!B?d391=xmx6EgyEwI-NaWA!oLj0C}YgNV0ohFC+nU){Rbk!YPjvV95JQEmr zxM=NAP$l-htlQ}~%0qTws99ZYwKA@{t>(op@OI|vNB7Lri<*$BatMTjr%u0OIEK~w zHZ$p^@q1oa#Kb-kWNlIrN{)#eXO`8jw1BHIXjAJK_FL4j%K{MyRF*HGK0c2XW%&w>QyxNvhTfw~Ok z{>FvVHLVZ%8mf>|iv89J5)$p&b-_vx0KT%TOo}EbMilWzMW1O>DR1!M0I2y;=)yFF3wuCPaD{VZ+k?sA-q^&R>Gxq^ZxXO`Dp zM&(v83e~fTzXR_^(6lOi>7X;bOs%%=O)PikuuxBd*{eOj@^Rn8Zv2*xRfB$MP1uw4 zlJbC)u@f5=P5a1r^wZB>Vl0;^_U%%?`B zPyOO>4!ra4Url0gt@kh8@7h0aW6_){fme#UjCAi|TMujs{T(^;brOGp0);_!Oa5b` z(*e*GOxYTYlspeaOI7*Sx6Ei`3Q&vlIw_^F-=ueI}*e->h+`?=58q{&w>5&56r(N%FT`(cDc~v)UL!EyL z^epx{7k^)m_t;nd1`xyrw$AVitkSu18Yk(!TpBET*l`9r=QOsr=Zf&v+6xp}C z%i%od)`*BUAz+W7s+E0Xh?ky6JkGxh5sOgpR@5lOVIbd7IxTVy9td99RvWA4H&MT8 z;Ov=cs{2Bu?X9jE?)ZsQi+n2&Z;x}^XP=gyg&jJwNg>kDk3jhVPEEHwqgQzDf%|p~ z)oGSW71Do1DvSfe&Rd5=!$|ei+BdtQ~5*KZlXkI7Q7(Evi5hlf7A| zc*$VN#>*DYN>*Qg0crS<9FN{BKUAf*>wK~D)c$kRJ%-D2w@PaVVk?*&GYJ-?7>Osf zAHiU0XP@8??n>25vf42lr@u65^Z*2?vb%^)YJPu~-*=!fY;`@X6f=pTI81&Ogz$Dytj4s_gUIawyw^< zi#xCU#vTMNt(>o{tdf^$SvkY}QC5QLU2?ijY|Nkoll2=w`6rzPr@GkK0m{TTk0uQIJFFq?%KnJPx_9L!}_YiCm+O9_6$P}i+*=;W+#FH_QmHalylzO_H9uSNXN^&W4+uI4*< zhsaC8&*kpzw@pMlZHQA%7}Rv_6i#S)r7*WXuE$GU4{i+Ea!PYy9k(`P%YJSQ(sc`q z&bGfcUu6Zh;5GX4Eqv=JAzEh1xL$?UIjjaRpn-2l@`77ce>W^FDgDDB8o0ZK6P!be zPkI$5-C1>T^XP}D*aj3~Wj4n?e7v+zX{RUWUOCQh8|=Iu9Z~-04zf9N{UBX-jlkI% zj0MGmwOdjcKazBPi z`P}i*)W0g+CD>^8%R7n=HrEyiEs%?P_g27u?KQ(K6c$JL2Jzh(74kse=2s%q=zVf> zp)|LiYTYru2sxj3D`PM-Eh+yAFW9ageu`7Seq?HKtPs;hv*}o>58Li(<96lXpF@yk zupgyx?s5qkB^jq|v%lvSf$RcN+q8)WpmL9yaAG@o8N&#LSWfy6>q++-_=5S=#@je+ zj$^c+v9cGK+@;!#fnrs52Y^^5IIXK-{XlaQjDX5d+Cu`2Kjy|n`Uxr8ZmD%FT{y8_ zC9M0x6l?zsoPiiheDe~|=IZ45buue`VdJp$)Z?-0Kkx{GNQhha$!0~O{0F3C90dwRU>@w}2P z4j$=8i!1p|Ca{JU6XA&AU!eOritt()fViScETM!X$w!4=_hlqP4W@4Lo8eJxw9p%XwEW^^Ll|itTY##e}!BVELCcNV2 z>ej7VeHgMGT@-LT*5T^$T+{d!>$BC&)Mman@T*sYKYA@r!2k3Z?HO4_ggJkB$cSf7 z9K5s5^QQPFUfEkAh9oJS`-O{m>Zf z)`%sk3RLJDUoT=XKC4Px@Nis}f`BoKWOG^-00At~?4*q+aV=z8H}G$Qa|$kN4JGMo zNIGla+CPgIi#1+@t(PL<ttV#MmUYQ5=@_rn@oMGSJWi88}Sm@1S zb&-4-J|``RA4xY#siKB z4te#z$&I(8 zz%@Qs!py;(1Rkp5RW;MK5|o5Jd7ipt@8B_|!(K``!nZ}36%Y69CilqRoe-gzg0?yE zw1yPKz+ZmBtrmDma>!Q}x{tlCxK^1#It9r`sx8hag~_%d7jzFb5@u}s-V9ERJ%3oN z;B&0?-l@ziOXI{E8s`RW(-Ls*@{PW#s2vMC)sKVN8gbxHWK|8C2Hk4zq2_CH6fz9! zDsn)IrV4A~_?6mJ3nQG8-Is#B^B2I$z~8q_W|Mtae;rG<$L4x2Vu#!9$1#M|{M`hV zTVWuvut-A_NU~b(%o*!X*$zx81g;wxiZk;L-=+uyS_yl1+O$b}wc>TpfZH#nf~ix0 zLF0%Q4&@jhi}pNdvc5e#jn2lqBn9@+2A`-0-zL&}VJAVFG_f1_ru&Ox3#N2hbVGJt zO_VkWLD7guD(yK$)!ZTA5dsC-z!$}U*~!QA(0X{IRJ?w`}b;C@!+(Y4dkeees(HiD54SaDAiYC zKW8cHnk{I)oC5$W7u1;fSnG%&r29?N!(`MkJKHEvWtGokcw~0L#h`^gljetCC0phP z?03SvbQ>=DK*4x>qYT5{W~q)Pd_%+7dC%2Mq-8brGE=gbzcS1TzN=ekl&Vsr25A`q zd%OwVb^OnTK-YgB=8p3&)j}g%aB-L7{!0&K3}SrU$YUIEsRgrQ2i@d9vEEL;EEUeR zQH_!9ux^{wIz3DWC%CKbJHgL}1Ht-SG}b)fpgL>j1792S#6yDd;^}NU?#Ob`D zg7+JV`}@exPRc1qU#%k(jiD}Z0n@Uz!kFWD74P>=-1nSrns@och$^2h(23ZC{vb2v z2y4`9wUQO)yO#hmuV!nRXrQP5s+Wv8Sk$g^iWhZ@g|AcO7S?{C*Y_&VB=S%}&}!Ev zg75jLa)yX@G{^@nR8GpI0dsl8>!^XI^=n)zZ&Odb_Q`1PppUmOybIVm5NPCfI1O-U zM9ZcnSW`ylB!knE0fvt>IKbQsR$H`8U}Vbju!LAh1ag4ke!40O>{fD3k@)fSC#Nk` zkKeTiMe*qEhbOz}sDDJE7JLO)I`KR#gE-*pZDHX16L2T9$ zuMSdsTh!2&i2HUMq8=yfB7`f%PtvFC3y5iRfdZtZ?ZyMor!Kj1wu#gkShr`xOWo%L z?Jv2P(Rf~&%<9^706?UUUpYalY4eiQqPNw=CX$TbQ^CJ9M2{Nq05`aejYL%$j18Uw z*Sz)MlvzOSGI^BKaYh%Z7*e}RwJd_SRSr^yN5Ju<1`QwrP;jqX;#&oQpyZ25FrUf* zPOW$kjl$=;af~`OHF-si>^%7T)tMK6Y`Q+LMtOQ6L33Dgw?J|z9*I{u!}(x&;@7vW zRJ$Y-Aux)WvCODgi)twTJUhRgcduXs=KTFqp%ivQmbApWkI3x=!E9$yO*R!!bML!c zi>D2M@yP?ZUEo__vfK|CS;(f5H*w|5?y0L#Wd`|X(AWdx?N%IrZrp=J8~=D>J5dsY zR>oj2x(O~QagZt_N>s?Y(O1t3n~|zMJ{r6u6RbB29&hq$xJVpos(SKZ_PZY1r$cE5 zz#EXn^$pYzI-Muu?vB#B=@&n{wDZmlsf1XBB=Zn zRntO(P$+QR>D}mSkK?t{Nz<4voBbe9RPL=CZ=CA*C_iwG7M6nLxfu9w-at*lf|8M~ zH|k316;_vYylSXs5NBdQvRV>7qHknM8OBQB8pvk%%K0#H!{C{{WjU&@Qps*ta@0Y3 z-Z!usClK`}yHf_wI>&*s!H9-KP0#<~a)~|qjd}&8SVG@PWr+WOz*+0a$7eg>R!0KH z=vA9~g(sa>C7^-&%Kzc1o@pIa(+^l(d8$J;TwZhwD;Hr%=@<4KybVExrMC z5)5T4DAS1MLF6wzA=3>jKmbx&B9MV!oSzdsLF2q@YJl)A58K_j<;Z7CzSska$i_qT zc`_qm6Wc?Ek>M0f?8vpWA-;=;^|BGqHMKp-q32OB*AF3~M1DFmWd+vlu~+R%_>{W< zEQ=HMIcwEj6&IKOu4rT)82+j+kj9E$m4zVQ)^Dhq+p5!GtXq=bk9zZs5SD5S$^jUD z_8cAvGVPl#1rE_V$19#E!DmL0^a`}#kX5j)Li2xp~#Gd;E zs~}49<%Xvq*>dsQf*+p2_CSTvII?&-+Cq+tc5?TI)8nMCw7X3pn&9t?#T@v-vYk@a_FRy zqA3;mowCWWbxv}5D7O;iSCH|;Y}xMT_*%E1N2^LM@rVV!u;gx;kk<7KFG~~2$j{V4 zj3XE0d^(goDBbsX8p)#M(aT33K?K0AM6zpa%Y!#%wyhJ2Vg6&lMAdf?%U|;G=cM_r z`^@C`Wik?LaPQBzRwJOKppqX)vmc>gPU0iohEV15f8k=kzXPYpyJeWnLfk&!$`w3@ zt{BMz)fQ&y`1FaU*Ux^ZZ_PP~k8be-OJmadqv(2`x1yqMt3LDV?NW;xw2-zCJ}2Pc zg@&n)$E$(Z9r;{>jHZ+8NoDe$`bifgBLqL4g9&W8gv1*>#j6HZw>XiVpf!)0*vlZ| zT2VKWWDWy@U5;#@r@-9T*H{4Qvjs~h(BTNxdej9bE&4Lh&Q|@xO;jW;IBB?J#7DGN zL+zr8NNiiF(4?5$=Zy&ov;$+xyL(g?q5?K=E}bnP>kIz$Am3oI@2wcg*oT-0l0i|5Hc5qIprcpP9*?2tN(yA=Il0 z)j61xHKDoJ*uXZq5uw53U=(gBZq0gs+53;>fzf<~l?KPWNYZPiap!9DT&$bi4GOm@ zAQ#>mZB_+b2ip2BO1}ZL$k(n{jx_0GSDX}6vcT-~1k@6P5z2N8McA783K7?3X6YY2 znTioDXbdfa(53|4Qy*Aro%zkNWWOVwMEqQbU(M8d<=6LTm=~W~hq4lmr71~&JKk!^ zN((j}zns4eh^CNjKub4>BTKI@O-~hn=(?n-S_1URlXj40DkeSGNdl>-=% z+oetX?pNql9n{R0IN~06^{+KPrMY)~to%PqB=Lq1UtKXJBjM9ttLh8i`vC;sAQi`6 zZ4>K=EWe4SCQhvDwSET=`8^=TDU6f(9i@9sr>dP-k8>}zk;h@84-BuTbr!DwoW8uJ z!>UN~Ncg;)kQt}8E01S*yxD{k`51$RP|z3biaV!=nPE+Kanjqq#Fzf<#ntw8M0T*Hd{N*c4DzLL0 zwpf(JwXsHKZf@jEL{?@hta25^t~RqZG6@HY=wG;>=I?9x)yiX)`5Pah@ykx1n-jN$ zQkH*YmxzalH*d099EL%%D*52xFVSA+79nQH+JZ)(`At|k7?{PPJnE2Be zR8DjG^k$sM_X|^cfU!XL@#am}GdO;{lC#P`y8%OK1_eVqs+oJ=CM2F(wJnU8xz@zG z6SK^R0Ws^cqjSCFU3-twfh{`Erpj7qCkD%_Rff5XWO{A^EuiB-32|h^w6Lnes@3t3 zb^2vq#$9s@Jjh}oVR5scMrwSQdtcI=fM)825})41_Z4xwD?Od14Pyy>Pc2rq@zW>& z=BmnxKTITNPHU}T@#mppyOqsvc@UqzI&TvA$yy72 zK<=1BZ9=$aUw##j;bp{prheo_>k#$#0)KVXY@38P%7 zkg4XKo872;<+>@5UDo^n`>qyLX6MNQj`txMfa9TIY*Y=!BQnf+vS83Cmoyc+Pf-WF zPBgm*FBfV;lPv?(?>0#=!n{nT;+f?dxfBfXV5HExJtK!7I<#-zFzh(fK7c=&osECn nsQxDn6khQ^)rNN@4NuZp^~xh*ATNx5)7DMfHa=9}ckcfH!(Js{ literal 0 HcmV?d00001 diff --git a/report/ingest_comparison_time_10000.png b/report/ingest_comparison_time_10000.png new file mode 100644 index 0000000000000000000000000000000000000000..abe32121d01f6cfa89e2774713d272eb82fb5407 GIT binary patch literal 30675 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 QMqb`@hvoKsqkS>|1FefsrT_o{ literal 0 HcmV?d00001 diff --git a/report/ingest_comparison_time_10000_filtered.png b/report/ingest_comparison_time_10000_filtered.png new file mode 100644 index 0000000000000000000000000000000000000000..1240015b07ddec5638f2ac6e1adbf271ba3b0114 GIT binary patch literal 33601 zcmeFZcT|(x*Di`Eq99;HRHP^tI$NrOGyy3}kzS;z^sYcaFd(2m<2k$tqR{sP3r|7R`>2KoW>>qgdp%at-U4LIsAAe7` zdx8+BhkkB8-ZGMx|B<{RF6ip-@9U>1CFS*>Z%Fz)bdhSc3Fre?Iq0in<;TRtb(itq zo&wc;HzuZtQe91T)1VJHH0%3gqa^xT)lJr=CQ_M0c7dSQaZ^oCOD6SJHhDEuaY4&3 zQCY(0&J{TD9A_8Q|C}v&Lj1|c*e6%%R8^t4(RRq`$};6|Fu_jJ&6`}ZU+w@TpcR2ZLm~e zRhe4&*qtC^VyRF!-YyXK!863N%2~f8ZQmDdj4nOU6f;rcKjDr?zxfu9Mo_F-Bo}?)u7tAR6Wu40XNss*Nj_=+Nb>bl_4vi+pXW8(<-t2d=E0D zduc)__S!uP5f{BkEwP4mk%>4g(l|?PkC;i`>-0yzQiwlzeLiiSY)Y~-DKC{TkZ_Mj z!tb}o$Oc_!EhZ~Nz0uSf39WO%%x$^?JV zbhtk%BB#o8qH{z*dDvA0t-tZlP2RsJMa=pBG(%+a^k1g|S;gi1i z?EtDF&_&Z@V^s?uDO?Sc!b+w1*>t3AtqW}XWmlO$|rRVp4; zyN{Kndxi*`6`9^b#mDdM37mT55+y*Q;9F2j`I+7xV`chB&J1XUTd+WnCmc+MQ==v8 zg{{=Em@qo*(fY5tXz$Exj~-Tfa-z$!Mr$ykX)AT1eapp>#*;CJFS;ynl z12NFRN|~=+{1=Bu`z zJ-KQ3cugyi3EdJ#pPt*Ow^P$YJ?jg?Qg3~@GRRVL+<$m|(LwI=T39C@-$b&jjI@EW zg30s}c>FuOA#*CTQnFelMwPaCsNAs0hhP;9g`s(^i&WIqVQD_i6A$atl>+z6u;0V= ztJ3{5(+l)nGNF)?w1ga4@5yo7N*Ti5F8Pg-a(hfY1m}L?W|DtPAz1n*C~?9iiBGt8 zh9!4I-YczZ^^b`v31Q>IQZ9DW+A8}W6wJfo7Bh*QZe*mF5wdzU!nh-pnJK1AAZ$B( zIJvdE;%=MqW13VQ0`t}Q5*@PW}*YY<9q=-mgh>)Z-?K_!Hx7S zV#>eMDMZsY3QK>Sqef*T5s zyWP@0fEvlOu!qVGeAHqeOFDW%Z=YoI=IodH0Icz~@+lH<6lV%d@?$(gO08kcTq>Im z(_g~(c4qkf`PnJL-{3m<@k?&9-RS~rSW$@Q;76^!mogtebeODtu)3CAEg8JAc%;Ct zslFksHG&0wA64TcP`lozv^R{lmEVx*ZRmr3-q82eDlmH}xSxy(LlJSPy$WdmcuEgD zkK_tGhhg*RK*I89IM`SnrKI~YS1%3}n&f}^Gv93jRYqI%4`-?GC0(<=#K9|nX!1cj zUwChtg3BT_<6)ObCvtN@gNp?imGPtxn7?pf$O^M~ZFj6cZF?&mY=wQxqs0qT8goD1 z>;-mJ*?$MSi5jC(vC&ZWBj zPms;}uinUR8<;!yo#rq)O|3UoF0zIZVD7?{tLcL-bA#}?794P^Hwjlk)ID_txcW(A zyp+Alm}((DT`|DDi2Ag|zGcdbhur6$zCFObkfwL1-?M~IjvXwUhzorH)iq|t9;f=6fNU;b6W0Uiwtl~A*om` z)Z{V4Ycrwo8+RW4`S}2v${+Hb+oBfJ;j8@n%ih+p0r_paXnOE+Ve7((53Hv5 zWoTp*s#?;##PaP*Kr@Z(Q4^L;Jwy zC-KxOxTQbo)b$$smI3)PYnZ4n2;g-z-AowS(u>Ef)JNH_C7rSBp=t1!I>gUEV))WL z(~D!dU|@rNiC|%m7^9ZQBfk5z$MCHNT4mORdTj6w!apu-0khgWL&mqzCj+}f-mpv7 z3Vw&$0iWlH`%V9aN7YFE9x*XwF;K$E)=Z6X64;T3+q2P9LyytEH4Ph^HKo2PX+AAf zdEYh;h1!6;W-AI0Qj+0U$%a(O^FR1DECKF0adZ*H#H@$&UE$xpX^u&q!O3p`H?}Y8 z(5cx_B^Xzhyj#;^0HVw`Z8_w&YO#D!KV`xt^BJt~iR)QmmNU6REPT~|gTRaX2cEI6 z@#Y%`PAe+XIC4LS9w`**mZlWwZ5nADEL8~8QsP3UtPS_syOVH3xi{-sGXv297WH@= zB_&$ABH!eawrW#*5bK|-XN3a*u*h{yh9p(bBcm(lWvj5upYgEc1+l;ul!|xS*>?$Ffs)0=zkOU2Ze7>21^nq$S zR13d?=Xl&Nk0n7%))HF#84=-J2ixHC!o4Of3R6LCUIK1td!_1Z)=paJb=FXBG4or5 z&up^K#DuV-RT0M7Uk~buRLr8aS$$|(FC%nm@~=5vgk1{hnTu7;Sb-gXO7tF9N6)l9j};Y$`7QK0)}WyzbSHoD zg2myBP5rl7@6obe@SHR?x=`9a`LJ7}m9qRH7TLR%P`T~B2ENN`%< z(qx@qDt2CHPb5Gh`@hcP1-Kpb^lyY68_ir)4zBUASvQz+ZE3Ypc`*CUu{_72mfT-$ z*Dmn8|5cW$HRVutrq+4&!i)N;pXz&ai6LuKA^5tiVD}an?TLLYg`J!c96RXK|L(%g zn9cXE_vIeIRaH~{S2Z#_>y5!b&$>Dw z$tmh0Ed4_^E$$|Z__#2E=36P!tLID=GU}dkvASTgyfkpE_A%Bm@yB zn^_$%b2wR6yWaj?ALX46yfZv#ZPtOUdZ;p>g~u+a6^7B!;~4Kh4o`00 zJ|RJ3Q!1K<^k*oe>xU~2jH(a0%m{?$&j{1Ten%C*h%)=08nu4MuUF1n>Gq88Xu45- z;}F&CvE_Gd!h|Y)dwrFLya;CdcuDCxfc~}Fnx~`ApGIbFgm7R7>&GfCa3~m4(}2%w z_?owrq8b)jiG`9kIx9gal09#vkx-3ZQZ9Cm2-31NTd~5g73OC=L_LquHoN}`1dl?M zOuKTsrr@$GaQKnY9|QG+mw5_@o!S@K2Vsog`-Cvywc}g@`Cb18uD0wM)jM zi=$&hzC~Z3u{U@b6BIWl@@kq1O+>aik6LqZu{$j8^)kwt-HM&@h3}&9j>=?s8im*9y_!qj|VE2MHJj3F{V7-&H(z`+7O{stw#T zWu=agN~^yIQii;{$~4GR_@$f z0CvzPDvD=GK?ieW6nm801>u!(%-~9EpEBtVsR3Ys*QS{_p*|n4lJ@0H~QQ8S|NH)$mp4-)!YtW}GlxKtb zcqun|C0eSvuA<@l&*4iI2AMwqUK5F?{ zPxt4<&g#r7Aw*A-QZb<%cL(KLQlq4QBb%lPjU}_-{FXvWp!~g03cczo9id?+AGZubDTGd; z$O+oK2rxa=u{6~E^ft0gmHnK5?Nj15tJ& ze+nojkER%R-CB!cTP*K;_o$}OmY+jxJxPo@p4oXURpOWGv0VRPpGUxc-@!~=$c-rf z{as2Sf$O~r`B#KiY67t4fx1}bt^Ox2rsj@%ZdaZ!0N`W@NmB`njq(oamTLU{b^0NP z%X*T>m1NaO{fT`vFM0n0TlWO%RUZxawpQa~OC%xxba&VE@!)ihpjr`&LBN}3u|z&wt>hyIkP zUjZ^&#|eRKjm!kOO6T6x=>VsM&Hn3@=MR^|ByLJj&Toh}h8>6|pQ3wpB^|W5F=n=C z^dg7bATL3+SohS$Y}wb{4Yt(rw@;m=&>{GyPVcdSV|1LIz&u_^uIFNcs+gJA38%(q zoL+sRjOk?(^|O(Co|3$`#r3h!D<~L5K84TZVshB# z)LTTdcFPP6!|SB~Xv6mEYVBM^jR!{X4wK6?n-RjOY%Pjeif>W(fI~~2mT4gL(mEdQyR{+ z4Ca)jFtf{h91o_?j97`rRvy{j9t%*VpBnTPj#P8$4luWMDf4b3nDbr>s(8b%tT;hU zz#WlLtSU+|*9@apUEg9qM9IHkF=L+Iw7&TIw!1&1Q>pu+V$RRZhn6n-%8GmEOZ$fn zlq72J3>SC=JEb2%ScN(z6$F*^#r-Z0!DEgtCFlcm(Wka)v;(DP>wy0j|DX$H_$0T%M8=2;Y zB4u7seFrKc`&}NJ5T94FfJE+IveQR#<|e6hWrEASNB$@7xFD3t_T9z}<(cq~Yms6{ z!)P|egzeXn(ik?JXzz;Z5v4)*`!K%|f}S{)eaP17Yc8Tc7lxm8q6du#co>K42%`)s z=d)Yx(r%Uc^<8auT6TU)C)u^+kS7~)8mAPyqGEoM>?j{-_{7SG-!ox(7a_>6B-K>SW2G4n=e9Roq7M1Yk0*Yd43}@D{Hr@ zTJD*-Ves*RW|kLnpjda}4_-W)vty`%f3-E;wcT8){`4y3{M10Y>j8B3AN)5lIaC#t zLY$^^i<;^X-w$AEg!s3SqIhi!R$OZ5Ew4d?6iAlr&4j2bm=9(Omk`n>_mG+8;I(X% z%M_n=<6jzM&_zf}hA-rf>`IT+Wcsfja;Rpd$`C5%dZ4ccYR0SKbWG6*6z?D@G3EPy zMAmiSi}dxjMgQNkd}^! zZKc&z5s`#2t1B{kOVd-T`~KOus!<-&e@a(rJGQgK!|7?1j0Z$Dtbz{Gm%#8FEw49Z zXw5(9wL&aD(#2f5xR6Eq8@7D=-y!pf7L&il@HN)qV<5xpVd>mJ_m(V;3sLnqTo0JJ zP8+B{mG?q^qA1SnAN_g+NvkGWY-eiUP>J@<9qZphE&4o1WJa8uS!p@*(qLA^sQ9eg z>EPVy7-!T*X2tM7)as~+{0miKcxw3ZFeXc!S>XY?E^pYh=sSqxJS6b^>92*^^)oBH zd9dE1Fb-TiSUE*xzjU#I9#cwqDp)Bt<>JEATuZk7I`EhugCTMXjgic6Zd*h>ha9>m z$5NSmVSY{E^;V+r?XT&4B=^Ic)b)Nx3jMeKYWk#+Ho7&_`?DqVMx5(oV0~-#dTe(_W`u zK@yIL`iC6ydS1g<6ceTGB9d>IxeC{2iSeHv0HrLUX7j~9*DL-}R;-eW(Z%8i)3Xtf z($h!SmKSf8HS;RYE!($eiGO`?gxqoLx;-J=Xomx1^~m$VMV{_F(Dy zyVHD=qS&wOh+r7AauN3Df^t4GdpfGX;05_6o=H1g4JH9=-^?XhBZ*%N1&-;--9o}V z7An{M2jo2vCDSCkQzmwqXUJ6Z-$G5aZ|rQF0t;cWRuj)Z5tR>>wm~?$?2T< z>?6J~;t;twAh&<@<)sW?!l=LTdF5<%4ZcqnC6<>>LXT;sION=TqX)kQedX>ZvaTpw zvCKEZzvQPIEB$%9k?j8wZ*Gm1Yl22?s6>~H2d=R`8VwCo&aNifOJ9f9NOtuNF67Wb z!@x^KXd82cP{Ssif5AV^Fcz*cTK=b*-c`2F>f#^KkvV^oY-{$*(LLb(wzOYExA18F z#ayk|V8Y4wvHi4ks{I#=SCKzV%K) zQ&&qnF%&l#5DP#{K0NX#m&&6?zT@;b1)t|%?Kk8ajL+UIKbc2!cR?vR7@aV&R{bq{ zWr@RLKoMjli+!Isr>k>*vizzR%2`0fJc+uwbPkza|NARDny%>Z`>Be(J6845@NX@j zlg}abjfZ$uIS5A6CK?*Cnxxy8jmjMwE16BF$5pSj=TsH2?OT4b;@T`=rQ52! ze>3_-w8GC`I^RfZ)2p6WoQh`tvSN$3>fkOM9z%g0VvkGGAzpJxB7rRWq;&5ox=U$5 z`Ccb{NcO#6S{1V1$NZ(gEnlHP51V2I>D8vY5+kRsXv+2?aCw*-{ZQQ)4>Py!Ut-CX zb+lwRmP&53RzV9?4g;sK@oUiNTAn6;Whj0@AMT_+{?c*0V z;b;2~NMDbI{^`7AoAj2%$FJyLkT!k&_zRQ6y_A)J>D@}N;aDs zkr|q^VUz2St?FBNSIzEnF!dKBld&rHUh&$e^|(*#4CAAc&GKINS65!$rW_J|g`;!klB^uz z1NYXEDoyw%gTtH8Gox;5jEx9jA6<`RVLQKNSoXB6MTqd0=4IC+fZX2*6>I_JN>Qy7 zD{l*$?2PpG`08Jry-lC*Kgvd36{(%$)+P=6BqR^MPeIwvyb2P!qEmCW zR09tSh|r`|WM4YBLA`wz5?03?OXe~>f9d>_5=|qvj_YJ~^AoR}RgO{L3wtT}LoWN2 zG}2io1kaCHSDTiups#`-Nqm(^m5GNyRjL4zPAd**Tz-z}$b z*9A3y!5jfc-1g#=J4#22RI>#9akU|=(p^IXD-wzg^U}N@vZ9gdqcKgK?y{&vPBytly%dO|FJfVqWg|utRqLF* zHZ+8P`_o^?r08O`S$!2NjDD-P9SevuLp3T0eFzIN-~Y~e!dUJ49>Lz(pPA5p-r)Sb zn35jzSN^tJ6m{HFk9J$UJE^%q)!f!5&IQ& z(*L=8{r6=g=eCSD1C6gz<_T}fwnkYCpl!p&NkXWXsZMi?@SPF$>*`)KZpjvx;kzc{ zn!8s=D%u!t!dk}mTVy)NlL@+C@uWFLR^xq5*|y9zQPg#4Em;H_8q7gx1BvK^^6ZKF zjSMY~D#9IW0XAmxSZQ+&8=KS9%Gjpqdd?H03T|l8Cs|MIt&e{i3pB~BqKSSf#T=%u zyvS~SHX^K(h2fR*Gh|)JZr#!W{x&n(qFlS}*@&u#YaUTx#C}n!sK1>O;}){!Zn_kB zJ@dH&dnzXc1{J}s=~z{g`xe(p5k+0bi2E?*PiE`g6!AvPK0*M}WdP2D)OL|$dBV-K zRtc-_JFYpZt3JB%$Jw;|fO2xE3?appclae&Qxut<SA0m(X zBsQBM6*gGU5VjT_KahC{^sWq3^El}r0oRQ(J!+48l31Tn)jtm$@`RE$(4^43stYoOWVBfuSCf#{^>jvIBTMWNG>4mJ;4Kz;3~I|of6e~7OW&V<{^Zdr{IfpOmRVY4OJv(>jih8z86Ns)>{qHZg z^*Z`}A{YnxK*2qrhX=BuIealp_ z^Io<<)YYLCt3u%Dm#8Ns?_3#$_)Il!y(s6cFMT>}-vQbl@lb>8WKg+OneZ&sMmGNh zhHMzn@JG^mA-hUsS#HC631;KPk$Z|Z6#Uxx&W9@xW{-^7TI0p4W5>i}QtNs!VIi_g z8DUX1)soq$aaMuHam&Pa$Xjny)k{F%Vo9aNnTYo5@E7`G| z!I@Q(avq3V@@+1`+tA00E5UDR7v1;Yrn|`d{km0i2U7@24Xnu?&SouOo}?z`u1k?^ z4=&WuL8nZYum;)@H|6j9xYFMv7S52ZG^Hta!2Uue!M05HjFP3lcBNVQfJRf;w|)iK zm>%{cJ}C^+IdE!XDD{!K3<9*&=U((@B1nQlRrqD&?CZ}QTh#e`-zD3HB_S3v-r^*c zmk3LR(BytaY)J+2GZiZ_dFs9pI!Xo9`5dcK`InS~Hc-ZO59ge?av5nXI>kEOY{<$z{kth5qOW7ICu+ImX-4>I1@8|^ZQRz4Rtc~whgRmmUz(@R zE9Mjh^Ytr}KA=Hw>gufD=)}d*n**nmn*>IW51#S~lfUlnk{}SgcsB5crAwLrMIF3t z?AR%d^s{3)>jnOF_2G)6z2w|6BfVOcz3EpGR+=1R#>6EgagslS zBMFHu9V(q_=+g<&(g}#NaEYg~JPCjpcUSkir5W>%IyVV;d044qwWtx5C;jtmus1W) zq%Zp;EC|;($g~-L#rUEbWkud%d9mReJWzbX=K{}zVf(erU-;XKL~5ikD+-;_rIzZr zxke&VD)UEJJ(Lhw58;>29mY4bU4Lb?^y#~6=#P#qQnEdzoGujEk1Z75HSXFs6ev_3 z^TtkNV(;=L0@6Ja`LW;5%Y@g2H!3?=f>DnQ(RUhKRw|$woMP>|H6&h`qSc~g=bR)= zY323KX*O}8CE|)zvO!~M6;lk^;%NKAm!VMj~*H1{0C5FkS z0(nGt0j&usYXw@r+y~DqgCt|j5h}k}w-Htg6VRlMi(DivJmazRwNj_e&VGD-8@KM3 z{>e<^whW>WKUfj0+(PD4jt#|B>ldm1?Q*6_w!KAqc6LqPER`U8yQ9WHg)alH0Mo#m zo$^P95>8<$zmkC~z9Dkc3^qCvxZF^Vx$ISA2MH91pM{1l^TNtY#AT>N55DEl`m#f^ zPC3sE%(E8I6?Zj!LtgkN=?E5|7nV+R>gQxyIv}ySIH+Eus`E);NQYDSiSN?%jW*Us zzUdD~$F+#rPhN1waH|a%9V#cD^sNQ}5`9+cpLs6kb7a{Bi}1HbNQ>KF#?ua|?~(Pf z{O54Dmrh%Y*Wk}1J|;(()69i@VI10nzc~eE++53| zX58O@jM^@6cwms}E0k|?d#PI5T~6FUMvDfGjZwT1k{YK z8<1hD%HhDv{8htb>`Dp|ES_nFdKk85Iem+GeV29J0&Xq+Ncg6jg^8bAA`#toT zovYq)S?EibbnA#7{`o2^LBY{*k4OaImoff6`+XYHd%&H*%=m|3%@yD2CtfIcFCZ=* z$L0yLvc6&C7InO!m+(T@%X{}XKLyj|y($5B0VP!&3WKt8S_&SrmfQxNyl3PG^2pqP}iYdM{BlNx`StQi1(yP*Nkh0fNLA znYyt|6m%ciR%`ow=`Z14l0gp!y| zb3~K0M+WR#=^G~=e6xJ7%414zMY48VQ_V)rS!y{ug*N!1=WW(;#?vu%z=>3neNp#1 zkFbM&8m!{zg_~C1RZ?#P-lYPHf{pRe-R_uOzFb@z6+X+;K&y;i83`W6eR7{KUGKbv z{FMJ=pHB<+2euUJCV}fVJb`5KGW>k3IH_uCAsrX>#R~%;-A}}MNw}NCt5Ov{Tgglr z5GOMq%c9DfYm3tn6-f>KPU%Qg{`$g=5d)6rNGk`YXoQ8#`u4@p8oPjJltW-BPHTcbCA@#9k1580o{?<5ROy7H zT{c8r{{CvBUNyAlO_-MsBvT?y9x2qe3it47>izSp+eHXpkM?e%xhuqDbn`#B^Vkof zrh>P$8mcgIh-xdpVpCXZ$YdrKVcihpGLcC2t^_T6p1As%Khd~nr|>q>=K0UiKSbu* zCl+T&*5z0VYI=t2uT76XUky|*4A*#msi7P>ihCu7OSNIO07% zYKXF~d&P~T*4WjAq8ldC)>UD_Z%(6>V_(CSd}@ENoe*`5e6BjpZ_#Y*gdHJ#HBF9Y zcCWGZ%eD1=WQYx;*utIWZiLK+--Y{8;L{!uq3 zX$wd>$U-ES4aLBv!AZgBCfi1}EBc3%bJNz)&x%OnF2!K-%=41|H#PN7-hM!? z`gbR*wkS()NMilwdd)wYE=^OVmeB2G&5zWg5N%T3VHFyHL8r{6>Z}zbvYZ4{p}wx* zFV22q*tAiU7H$9_xuXW_q$}0CrQ3b9)J33?5LLSUpstC!#$%oz8aeG(PKCmhDVsv_ z!9&sBTbH$>t!K_@O;%iQ8A)Pg-jmD%L2U6LUtFGx=?fv_8%l>CEi`05oSOeBkGli? zWFNM5VSSPs|Oam{G7F;6&!cMPh6YJ zT-xTZL%ft}D)9?n%|uuT$#O35(l}0tztTA$&Nfxocz~ZF;Hsan@7I2#WJwz=iKH$ z-`_tMIu#IB0%<+T;iW`f>1&;*(4<_s%Vsa=)wkTwzg5MSNVhQTEZ2iAi!gh=y;9ni zvRWB3WJ5(HIzt~9ZfNX>buvc|XJk4kOhWRzzjbl$y6VH1K>Fm;YXgH9 z`CbZ9)=!jW)xRpw9IT6Wl5bPC`B(#wgBG0W%hk4yAWEAcnPNFahdW_YJRf+N#!hDcQ*4g?NP7I8JQMcW3q! z@fZQbAL{_D)ib?BTjh#XC_U`Au#9WL&vrj&)FjEJe#|Itxrn{Na_ZWnQWA$kJt3Y^ zY-O0aAnWiUzgW%&)ab<`>#985RNe5!80e&^MX|S;$B1Il0+IPrjzDcc=OsRPQwXs( zVt!uCylY^+z&tUEuB>vefVxhyM_dnx2V}54DJ)eg6_?}l>$64&gXX^TtTbG(x509{ zSWZ0To)iyGJ!{A^8vFALjS4X-@5cQpE`!AKD&Kn_u=22Zw9Ep7o+7;K#`W@CLM7Vv ze-@))R+t|)KvsOM99g-}RPP~8Ev$maf`*U?7Pk6gPF9c9ORAGFDzj%BsN`lMW~vGC ztH;2bZ@Ve92`U{JgAVRDO5VeBkR|=1ex}=)zY?Z5X_5PL=H@S@iHm|4{)H~BT?t}7 zPF;yr3z?56YYiihyY!!SfpoFD! zlqHIf%*GuHVnb(_S&6GujDSn|HPu$YuXX`bR}JS=V!_(*yhg{%nR#)*a;jGSbL|BVGdbcG^4IOy(=5aNcA5U%bLe^oCp{qwtA zJ)5?<)Nv;ZTfRp7%rtLUK-ji-AfcrXvO4Zf-H&mj`m~7k&ZpPgO}hs#UB!f~2awJr z7MuCODq`SK3C!XBErc@Lz@=xB0F)Mf{Qho?D;oCnNmpn4OF*%;UYq^y1xRv$p+|hV z&A?Y`jhhRD{rAvM?_lwKXSq9;k}PmUsgZ~`Lj3M>E6&mM$B&PnmSbNy!#T?{fMO?(fC=;A~D#x+E1p7+tU_+cZ z)P2BHe1-J5A$5uUuLD1mXyVTAQ!bV1Qnk=u{evUTdP|yH0u*AB91fOD03`e+yr9`m zP^1%rM>@5XTf229OTy=P<*EVhzJVhg+;yKCrV>`IlFIPNUOK^p;)x4MN>CVN{+2U) zqczv*BQ5pi!Gn-n*%64mEnP_8)dkDz*Ei&a|BbAIW;e~M#cUujuaH1wOG6DR`+U@& z@6poA2CtW~B1~qrzITg_b6){&Qvb&{ySVVGQRmn1lPqgFUx6UN`+7Ezaxnfh`P4=J zzkBs_HOmytr}){kXTRqH8tP~7(>phpzHQfiBT3xq-g7PiPCG^`64xWsU+s;q|6Xmo z^OYBKS*Cy`6K^XZ=bkWHW{X0?y?CqScQqh=&+%J)SA4(Z8Kk=d8rB1i&7EHzR;@J4 zOTYl-0)wYqBUauh4O$kM7L4sRrNCAHu=scHCjVwpadpfm91@wW&Wjk_J2lfB>&cst zD(m(x9k9O5fwjouWgh<2;Z=DY^lBauli;A~>-2z~adSb^gxybvk~F4orBC(K#Q9f{ zFtHNKg?-H7o;<(o8X%=0r|Hf!%=89%Sg%o@DflPImAt^N_$&-N!FbAtv2S9-_^}t6 z9u#k9nV;Y~o+)Bg`3X1vSqQy(3*M8EdhJnVqL@V==mdONrLr9to|eo$dh8f__qmV0 zPHj;$*L@vtd7~CDbXh4z$<(L_@R~rb1b>~fGe6V9P7PTjjgQtD`Ven~^3LRZ%lAxv zH3Im~-BC_uJ8vECPub1!UWDy#52nKb|M%7ZpXOjfQW$o(Z9jIRDnC)u7RkuP8H7s- z+j?0<@2)ew*ySKs&p(#V+hEYn4Sc2=qYdi zZZn6uo23EOi?0^Tv^OA%)`ah6McM|Uoo*(H ze`aVk{w(zS0QRE61NvJbZ6t8>CgPaJM^!-VB&Ao%c)}->_e0)Be)eWQTyqrE7lJAP zDZOGf`S5{#mHO{(TJr%(Yl6rA@sT@uSqTv)fNJVwnPPmJmX9?3{)#)=y5a8*t{LCl zT=;v9E-rVcHMO-+5m)ePG3D1}GZ=!@<33l}fe z|BVWQeitm68AE#c?~nqEQ%L4zcTzkjfZs0(CM;j}IJPrq()MsRJ&u$Ad^sUy=gFnK z5l1DWe286Q<>Ns7;X!1OWZ|A<$TKIgfR&CmuY=;#mu z$pZ!0)*#{lL?&{dv4SQBSHJ5eiKlEy?97nbD!U#dbl5$b=S~B3j=wsegoK1;DsZx; zV1GbH%`7GW6VIE4?RZBIac2h!)*Qlw07XzK=r%!sc+Ccs&Q=&CiSWV}8o3*g*;Iiv zt=wz8qE&)dIk=iz%5D-}1KLvZfP`2Qw!2Urw~sQ1t4-?!7MYi(0(sVeld8z{@fd)f zknB>84xoSd8FW<~Z`ia2>%$m|1IeJj`?BK>{Tlfc!{WI2*Th5z@OnSKSdujYh=Jlh zQ!ly<`9|-{yxLi9M+v}VLKMbzM;PDbz$m3=8CNs!y7-Q(=U$z}Az|IUUn~H#Yg&3V z*%(&{Oc15TW9ukkUER?G`FFIexn)g6YYJ#Cc>-M5T3y0W`q8%64HYO;Kr-V6gkV5* z(9q*8wPS*_YL;!J>uyO+z^WC3pvxnLk|xW56I%g-pH=)t{grT5{{L}#pl!GZq8z7P z=2gEum^T{fbdy`cdIW48C!oH9I>UGOPo1)`*+(*E>Njc(^M}6^z?B+pks(|;IrSOZ2+W+sBs&g zs(mn50)!7K69zkT@ROL8@UuHvYV=DyTRP?WpWWLXVaYuqVeRzkR*O6H=2OQV9;S; z*&x4CT%1FrcOEWo?!t{fSzr(o+!lA4WAN% zArAxsfxDHcsZfenpiRC(`Z*7ysYY{9<9flrgS4Mq;nY*6ZVW@f`hxBwx&+9x%<~QS zY90gW7;(%#%nFz;4lMAi0(G$Eih-W9lY`^he1eH5Q2Kyv344*Tb0ww+#}kU~)Kx-( zxq$7rj}h!jZ5!mTYGN^dtx*ubk96y}L-*?qp7zh@vwxBLl)mQ*YH zg#LrDUgm;mMp1m#$JqE?!{1>^TYOdMOe} zY}4HD`m>Z>2TvqAD)<-jO)q+;(PWAbcbvN*<$0V33mGf31sr~5)aU!pfsRGIm*RvK z1r>(`U!PeJac&ZbfWR;gGoEET19v-aug_N&H z9vHdzeYh&`Hgui>TEGmrc_P&}F)nV}{TAOFbVFdnLhbA;G2^BtwQ%OuqoS8D5AJ~M z6tUK$mbq#t{sogCvqpgA%pC}1^An})r>v`8?=p~tQxwX(p|{?DX*O!5(18qujSRUi zWNSXzrE7i1o&`f*2n)+WRxE*gcrFm?x&`VN)jzfY&0La+0HS^U*`QLJ8aNOWG|+b~ zuRGHCbXg#9+Ai*DdJNsvEvU+l={Oo5;V>VGYXa`UIn-n4y*M$=;|amQbUn!%ON{X8 z7#h9v$zjsD)6Ic^f{z65aIz#wVbV9!tkC#7_j#^#C?2SM`%C_tR|73WCx&ntNF%`} z_|FyC^q|{o?J1a}JMa8FePnc}w86ymF+=16!#4oMA`-O79RT78=q|D-_g=^dDPzQC ztv9UtJk45as*7--Ov2Y0%v-8$mGhehK#go?aFWhbWG(>#|9Y@n?0TJGTnm-i0MWSoXUZ7ES5a{z)0`-3!(g$yw3WwIg>VG%4I2a%>a~}XZ!2m&sAK%M$%~uw; z3w6k$;@Z$0z?*<)&rg3r`sC~)@wV~l@e9>AVMO;G$)llJgmoXW)X?K5z^fa_Y) z`~I@fD2h4!iGHRE`m~(8f3?@H+y3y%mDrT#UEj%wQy{mh0ybw21SIG`nPIev8?R5^ z1(-9p36KO+(B@z`j+KK_l1}N&R*nvM=Mo#Hj+HD^piuGxF0E|3uJYs2WAtR-#DoM# za0meea0o2H^9Vh1-^;fQf(-UmnGF@p@Nyls6&3{!5%CGWhM$nLBgJ zlyWq|n4@qmMoF?4wf?hn&VBd6m{Lw86ah)Hm~%!FLm39F_E@LMuD{^{{${i(B#clw40S`zMxHk$@6=0A~c4E6B%i_3lJcje$6bs}&8F{j2uP4Z1 zh#;mTuP%I;EBp6hl0*`LxGPOL1g@WPZNh!D$cf{$Yy|*GHUPzV0#He02=VH7A(dL5 zlith9oM7V0(ykGynF1*yFdd0IwF6GK7{KP$35iszf4AqA_>*q>g`k0XiCrgPWqh#j z+WIZVArE|klMmp)sCqmv?M`xt5krat2hd?(c?$tyBOgY495Nlwx&my!2K4q&V1Fg2 z;C9iEw?K0ZNCJyZ@(q3i4>?>4#DMaS9ft#{jG14XYj^pt={VPw(3Pf8Ud%Vofi_7R zv2sc0ZfttI^@rhkdOR-d+<#UNARk5w!YHwTh*H%Ve+dO_5bLh{2p~TXr>=y~|ALEL z7+ydU4Okkwa54zYnOWu61%^6b&S&b{y7jIp)E>QUq*t{9f^N^RzH|=|?J90cHOU60 zRpukB-R?8$CI59n)?CeJy#WW!Djju0W?x>4f$#dS4xC&raTU$G#(t*v{;mN>M;Zgz z4m%=rV;n$7KH@PSfWk*J0LHe~5=|Sg}=A9&Z`Xfqi!*3c-N_ZAp^0?m$Uh1>%+s*zLF!myAx|97f^l*u`5F zKrN{GCu3*24s)p&-juBS#*k~I0Ys~xBK@8J@o#m;&gypjW8y0sM%xCkRXYS*TC>u) z-dFYQTgAK25fJ>87hr=`ygYUZ3EWuR=fE99e6lI(Up76&&}m6hNcb9X0K*SZL%K_+ zQOX;d{FjChKr^qj^eMgs#PlNy1t9ZA)cLt2zX|x1m4M9tpSWdOhq>gOVDvZaW!)#C zdpo3c9}M|CrKp@sg&L~oGmhl2l^zD0)44lI!mo|=_45Bx`f^8sQO@3;X?zUlG7re|z5a9MN8XPz^K+%07J0`I2FOAH7e|J25&wRA{o+0DchYzq0zy z7d)w70Hpx9>)<&cO8UT?mwd@E z&JZj0jfy~E0{xgjj@@PT%c2(f%P~r;I!EGmqeWk$SA;QudyH&bexecx*K3)Vv%7cg zr0To2-R@a54--7&MG{j1I=q6=-&u1tNLK<7Ri`r!wlHrAg^HOKC5Y)r0&V2qVn#E_ z^#9v-&Km(v%rie7k_wu*R$wN;?hdU24_Aj`q^g-vVhRIT1EWfq!0m=dZw@_lCsIUMoqllwXFawVu23=DUUO+yl2O2 z;?7_MIkk=_3{^A%J!$?U3JA-kz;ga)?7Nf^^brb<9w?m3LmD%Vq)C7Lr&AjxzjKdo zg&;g?L>>A(QRUKb_A%HWIX3VIb2k8H$zZs$(5-o%25>NhOhf6;4?23E_4TVzJQ-Ow z8i=Kdpkz_!q#Qy7(ZT_kK@~W%r4wxZ_zACn$IGeL2@;XJAXmtSZVYOJQb|jlq6y4n z3~rFFXa$a@kf}-B9kJLE*4$4zZ_hzmS$G`nJa*oV6FXyOv<#S(aNrDq*Gl89PqtR~ z-}z9`B*K_c6=tAW5Eq?UInU@kXka#F#9n~@buxB(woDHs0m5LM3&|DlIP?fh!|kB*;S3h&E^)Wut9eP70FDEg0Kw%h zh#0XyXPBOdKMeA>M@YnJ{Wf$&$9m{woYj9q5|{UWWeX)FzWi}Yo*Br6-aX&3Q>M2(iaWz%s=Q`W1S)z-@87$M znV0yo^aa?;i|b$J9RXqI^FBGi33_^ZUC5-}Ym5n+{L2K}?STPK*#G8LoszIz=ys6D(5IImo$RqSxH^9vWWDAk zX*(P1iDgf74LIiIMMk53n*6EyutZTaPk`JRu#kNpGZCCiVGUAJ9N2C!kj-n4>{Nr9 zehy@rf&_ulz*)Iurlw0$eZ1)#b$S?NP>y3Dz^f-K!vLzq$9z5|<7^2ONXAY0j<-TyVAF~ufnMB%GC$M9v`=5> z?=j-X1#hI|T7j<}G37}~rHBFL4Ni;m2P4ery@(IJ4~Ch-lkh4JFyT-Dsk$gZRw``-{ha%G z)_VVW)_T|buJyFmz1BJR5!>%~UEkp|e80CnzKRUA`W-zr#R7S_H@VIl`YAd^=vdww zSPsbLSyMDy_6or|h*5qX^<08oazbs~o@)Rdpoz-`qLepjp!8|2MTX4<0+5L7-3WPG z1i;bly5WTj7y7v=`2wE?)ax&_othUo&TYQ#z}V$kQ;+BA)Z;<*o9)%N->I#r@UD60 zQysQMM*uxuCo}_4dBJ`|6ld<5pJmSmSWR$@rq5FOk6-yq1;n<$=8f4R^#(V##n}&I zs5pIZ3Y*1Fj~td_B!yIk%dIb~PVG2>aa|sz(sf}qgUENU$pD}|ax*D$uNIq@jSxgY z|LmhLALY2Tc8Aeq;_oo|&Bo!?_CkF_`s9#~9jrp%!3>m)%@_savNvLjd+A-d>g{q@ z?WS`t^>zT=Z@51j4OZTyiJ|3SEPLDgm%TpdWh?@t6t9XhWlCHfW6+j2(W#!bRnagE1&7_;HLO`4_V1RUmLgvPzP2S|Cqk;+( z>6?klD|9Y(YTyCpseFCB*sJ55a1);YC%cwcT9XG)etpufU^V>-SbCN0h^_8182I5s zhS9CHc!Ok15~Xun(J6x7VZ4X>T7!jCU(VVpY?M$7G%*c*j>DVuX68Szk@t{a0BTaL zYWB21@BfcSeVA_wfkmO>HR;_`Uq!MS=?hSAtv|79eDX`#!h&Y$!hxDJhnZ=E9tMUp zS;BG{C}Nu{K(%ZD5|v;Q9ONBq-Gs;0NO#p7v}jF6M(fPe6gc;s=ZyN7Nt9U4KYx7h zgCQW>JkzcbcFfjqna`CfLG7>T0T_!y&SvlLGcQQlzU@1+uc_|uC$d3`sXsJ>egk}} z%d|J}o~y|6?0Ru$cQdbCLH{dLvxVwQ!`=3K*KZ_0xsx4T`+rD3%8k=WfD&|M?+j8! zm77uSP}FN@B(xOup}RC75$x=Z)1ON{T_a&yWBUITljPxT=m@;G{-Mutsr^|=geZTm zHhIzlG2vg??!*Ee!cEo}`}>o!xhhh*foQ*0Dtl$2`h3iBn0a42eKsx+SMl@8=rK;v za~Cm2J$E_V;gz`Ezpx~GopVjVXvZv2l$j~cJjbsQwD;G6*&uDCf=8(cRvCKD_?+oK zdD{DHZ%e-1h?$iK=Qnl0J&*65=vqU+W;1u1v3#4=CS!e`r(E(Yr+86x8zn=Jj(jn# zKA;~<#^kt{s&FSU=fy5urMmseH;h4RM&{d)DCH+(FqLeOz0J4lNLosx2YI{i$gQE} z=e~dVc}kpGaIsVzM$cW|IB4q zU-2$G$72&t9)+foN{Hv%>^2#a)WrWwQY*jN8rWO-twL%D6{}JjyW2rjWg43PS+Q# z4eW-DE1A`*%`=fzur0&HP%;+1)@SM4z~MQ?Fj4eheYI}ZkydW%=_i`2u0*WW4f0&f z$_o`t91j#xUZKA40uDW8e0GTK)wgkNkS}z0Mc4jY?FlT;ew$U}S)Zxm6Y2M_w?_01 zkLer#E~`!Amg2|Ha$Joj5Bpu6H+jfR-P|3x_b99{PDa;;tk!fU!*gWg0a!T#g3AW+ zWv-v=Q`cdp$Q5MqzT%1fmk(dwjEpSe$%x&KYO_}*OLgkI;5+`;%Jb4>G~*06Z_7Hy zks~n$olGw64vM+B*l18~i2g#G$P;~vmkt-Jhh1nmz2=`d$=i3WGez01zxIXG3%oz) zV5-!{6XQtX_sR4j!kYls``v*cLHHw>sF92=U_V;Hvkis5Mrd+!K&3stZ#(_pgPNy1 z2f;)8k4*hPtP{Kb&OZNlMQH!~)BcCDKdYSiQ^f4PSZx6*%zMptZmhuo#vU`pnWFLQ z3brr6sAD+Ar0^y!kNmNwS~ArQCZLP|)VH8AZN~UZYf~%FP?S;Sw@(e3OM!AGjLE;$ zfp0fUc(#{tjiIXTy(IU1j6V=Hgu%=FRW>+jjFAwU~3xqxiEwy|Lloo`$o z81u2#Cz;lNE*SR4*$hLP-qu>$>NkZfCPxMBIzPPf($oznneEhM-$n8-OYV&=S03&Q zCjV?A13YsoI-F6bew-CAOUey}lOtb*Dp3rJT^pj5Zxe5p$NgsA`p|#f8W(5VvsOid zrFh)Bv(ywR$rgBVwTMQttZjwa?d?9!&=>p_*5ivLMsM+lIJtdAJ1OSX(alDJb!ZcpWNGd;TI#PO@ca87B1O<(>&_hFI_3oZR+|V2Lc&*pBH4K zNW)7YClCy;;Tv=YE#;yx!@xd1?<~yb4Akfz1NyDN>@pErBU!KlqV=AhxOvB`M+?DUT5 z2+_X#Ux?7ZPxN*e!9=NJ;N8=vi~9_U293HC6g*M*c%iOqCdw&9&m$|jC@ej1us;Rh z2J@HT%La6>+&BuSatawF>V>9m(GBj9juHjRiVNZ;{oq*&0ict*aNjc4{NdHTepIo} z%fKIcJF^=OWJ28047{w5o6c`YTIE(R^dY1Wv2NW-X}mQm@bXI=g7Xvj?K19Q&YcAm z33t)L?t`tYr!MvSyrX}tQbTCw38`|J{FQX7kmeF93G_r2+FYR?JFZ1*jQK~3bSt|39+(|^KZg?MfDXgWzVORBXN(rk z!GJZt&MUjf$#H2FyumG~uU=6Z;tQnH8I57ikth7#tbCVNrF~RZG#FCOVL!Zi)iX4T z2)*c}PlNYBZ{sUlv+lV3be?S@8npJw6{;s+6F!-=qvPn5hPq<^_yynh%^#m8dERJvauLFBou_SqYR`4tckSN2eacAq>M1T7snGd--y}C@p3oFs8{(O@b_XpcHHISOsWq~RWqP?Cotk!=zH_eJ|`#> zK6LAQ%m)wll;g6I6RrD-nZ8Y__lg_|^8>bq^KL2c!&en=XJ^Re&^vu6^3u5JF_)4F zlthO73W*ql(K}BRAsBWU($lb#)ya2*-xJ;jrXa(v3Zcw24gwe@C)O|0IsX8RZJf1yL@&}WhW{PdE@yMTrU%j1{l z+4+eW6U`GrUoaTmI)uhs*%$e+dk;}`5e*O;`RvqmP6Y;)J0NF!o#XLbnu$V+NQ=k_ z^nS5nBGG8(>g+EnGw_Vta?e2>_Ehh$55-A>5mk%AzwD0a-n6zZqn{ zGk!`gY3};nMT-Tf-ZiB$7&ZPp%G-`!=3`>ejcfD(c!k0V|GkYZaeEezwVz#Rd8ixe zvmow& z1V>D8)$)+veq46I@j9htTr9P zi?CYs7JOu02FbFmi$VF zquIR$;-O!oCv1TKcva96^Dgo6=44wA*Ilxx2!8Q=Evw~SDc>sQ;2j1}0#FH;*{Xv) zqsm8LP(j1r>RAsy<=v3-8<4|hiX!TldYf~rVR!4An8b^=3}frFF0a@oYj%&W;c~g< z#g{^SikgjW;9!&&X;)cvZXusPs?ZY34_$u~^={ljZ+q#w2T^|g`3f#ATTQDEkB<)4 z!wPPZ=eC-QMim|wo`{f<+>mlf$5!PQ=pvFWu5-n6n4`)7NEC%W;wZUgui7$ym-5Am zpf9o;lcjh&7a)^*l?~O}OHkv}By6`@x<6Tx?(!aL!~TrSI<=!G?z!-VC=)RyDDfp} z_5=^&GR*)Xe%;ocl37>Yjk?12R8%=IP$zQNH z)8-SEAwn1BBr--{h{{qtR@FH`;~;E#IUmYJjxGNYsUD4R!-|thFi%*dA67h|vaBxN z59y>224K%?G)nnOc9o3ZQ17AEBrw&rgM1ZF_X%(i5Z}~gG896Ev+U|O;0W&dc3Z`d zQ>4CF>eH;SU@dm&-A5nZ^cKZjSphv^=FKe{*HVNa@=7?y_p4TdkcYq~DGk00Zzcg< zc*)t)mg{h(RBkG6*?16C;&QLp4Rhk3NRFLh35AT!$GmT|8^9jhn97#-!_+-#{d}wurqW zJ%Xmo_gl*9_|?7@W?z7Ayz-ogIA%Z_xCW;-Sl|4J%@s(oV@Y;pkQudp*>1F|=8h(x zshUpq$}MXR?4?x@9CESX;EAn;ufuSR$S~8+c-VBcHRbEUTFdOtTH!7VeSI0TBq_oO z2bei*RI(q7MgCkxz(+?VIzbBaPzMSrTzD$qS z%IC8^Bm+OMZg|0U$5G2+l(A$>l$?EVD?nWrUlXHf9naVSo@k!ufa3B+jVT_RHbvik z`&cQ6VQ4{ehUsGMMx%-Z#!9|w2q#+atJ<2$&f+US)sG%iID~G;&WM5%uH)jZkI+=s z#lG4=crOo;rtURc;;QG-uY?Me#ESTZZd}K&om^}<=|1x1u<$dNwjvd&dF~KndkCzQ zNZB3TUD*5jL771OC*bC(J<&=Fz9IG%1Q$Vjnf_de)v{-t6`&JC&9l5QmksKtg_TuxY#HHLAq#DOfep?^Tt>M;-oR zuQ`Dn?b1~&E3xFhG!}~7Y_gK?A{D)<)CcSn@E8x$nN9StPkx(23E6*0r)-3|J$7Pe zyw<}Bo*=%T+`qcesDsayKj$5JkNBQR#u#rToY4{*{c)d=V}(hd-T?sX(p3jum{MhE1f9k$(_yqzVk^ddy1>S6K*T2)4JNzSe@(UkRrczJmx3Yk4z0n!PZ;IEY4#p(kSdv6Pq~p1w>owPJLu*6>V&_+ql*shqePHrg zE4N4e8$1*4*4_|rR?89nfMF}a+0^T4|;dsrOUazZ4Oc#OZO;W1eI*o*i>MPT|}OTu zz#*Md3El*@xliTB+_ipU+^;E=pZ@dPG=mrHrk%ZmNS7Ye#Vc&tJ~7;up7n!(`Fk5w zv5+Q}kxc)xZHuNpX%j}IDUYu<7)UhlS-kpaSek+AkH@^p+mC;E_5d3-YCx4aLPVCK zeOYvK@9gq(1LLMwIx3|Lp5YE`SBCVt)q^+1#9zPCc1tf*40{& zOO!|g4XF^)5oU}m2ok?3pnIwu>UB$nQ0`X1wU-=F8eQiPcM7`A9}0qGW1Zf5-UK3L zN;P{BGf(eaeOj&RT$Je)`jHVak2DnDd86~;yPGThDosJDq*gyR@GY*=D&h=M9M7;T z@PT-vHF!0vMb|U7))j4GsaJoC12Sh(kAcwrdX4v3m=T&5WwQ*5 zoYN}Iyt1iiB&Hy#%Lj%9*ya5_%>^*rDLHjvY;t(${_5b>A$|@qXP3J^e94<2paFSrD) z!Zi|^U%@m~U}uQ^M7VyXF}@omRjXSYf&Z7RuYaLpYc!7BFe~efCEAn&F6H;QYn6V) z<2!yxU41G=%bPT%nRZpqNGRz~+1K}KQI=C!YtUD2yXrMSs9^q}U{U#sJ_;cd>hs*K z72^z;tmHAWcBa0HH)O9wK?b%0l=hHW{euU$^lG09ym;Fm!k>OBL-RP}zM0mG(8HgW zX!C^>5c!s^9%*B2EsN2i5xwxCg!oaRx_lx3LYizQ7iFs~R^MF7icKtGdo92(@zus& zTt)PBY?g1|R&G{OAUi;x5DXY-{}hTmB7*i3F(R}(=`UkGAg(==JfaQ^a&Kj*3cs8%24p<|qjJ6|Z~fd?#qWC}I( zvTPxBuNZ2M_>LF%m)q_lUJ~?3)*ws>$O0))b4wdGY0dupd2rjTILZhQou47K%oARp z{6oW#Vm;@_d*mi}EWi-uPREJly-#{y8mjL7boxuXhUsfd`9w-d?2-2ovot*8&`E_K zc_LwGg2P}_S<`cz(y59ElL6lQMW~?R!I(Y22<0UNf_D(vb?10z5UV!LJhR2^A*u6- zzl3Suc~i~5hztqd`*{JSqsZNdWMkO;(nNIqOKc& zpnPX=1iieTal%Zl`RGTP!b=hvag?1q&h!%=es5p;X)Te3Lh^hbe6HoUGuE1>TYeJX zwXNf~#g#I3QRtS)8$);iOZ3m0OVJ z%FR2dY_pw`Ux}i93eZBI_GeX5a#1vJv>^zY^A2S@nx94xdEf#cqxp%hyA+HoI%UY`baCM$Qr)tFZcr3p61+psoy=&ZgAMXb$)`pv5Z@0 zx$Xg30ExtMQz0D9&?u6u3IT#EWqs>C_xOzW+u zMzKAiJGC|VF!J=Vfv%Utf!2I>q3Tfx{O)7lQ8WJ68XWW7Qc^-I5?EWvmGK3xIY9TE z_5&QX64c4;2Yp;Bxi9UgD<(5$l(5g64?#6~a#p;c9F!d1#*$9;Qt?lsfE+0tDxnZ@ z2cc9X8A*o#qD7K6zkecPQ4esEb5k}QW}fcAkH^}IT8UuPXN~?q7{|Vu2`4wbg36{tXhPO!_b<0hZ|w> zmzK8tntd3nn1&hz*Oa0js0Sb{K`;ERU9CmY$^1e*2N!<~yZM|8SH*rTf2bG3 ze7$;zGK^5=8YMDDK))B<@kv=dh%1-3L89v9_m{g?H4>H_&~6TiMXmnW;irJ*TNc=o z6txsWxN-!FR#k04Xlc+Dl3Z5sKFlJ`=C7+mz?}-lBxK^pFB7yPjEfS)9Y7BXC)(Ng z=T1*=LQdEOH((ckM9=5n<}ME4)j}u6f7!9g3!YUs$KB`fBtyu|sK&HH2%wpAUkZVQ z5Hv1V?>$e}!WdBq%BfChxEO&wK61T3ynk83?uJs}^0Lj3`lu)jL&<7D?>16WsE!X9 z7hq+Z3kf>rfn(4jPw)kT#%*YPmgWVg(DAGrd;4D<6i z`)tMIRp@^wa!beC^xu}A_=Em17qcKU}=e~H;_MzQlHA|ITD=B4HS!)y9Ve@Per^l)nB zWLu$LCib;v$d$M0f*pC3V^<~W?U4$xq=MbEWu`A45=SUtT45XF@^AiZD462b@rdZ} zI2(?s)m@7rIpgK7)3Px;l>M3(^%7|jntfvJf+zV3u1PhD@dfWmo&DV9ssdy&k4(VJ zkZ?nkT%>1J+;9)uxXAJKexw^uVc)@aCUH~gb}*s3UssSz6(k@VFKBW{^E=sNh`ai+ zWdX6BIU#qShZHl?0Kcfs(c&E&1NxTQ0O6{Y=~vmx9}LJY?en=ZK~T14S?4fiK>BA^P$(9xF}RV1Vg>H)r`$X zON6m0u$Z72>G>Z->t*o^p}W+eS-}$bF|a#1i~)7EmHNf05T`1^4AzTXS^DW!q6Ihw zt5T08LMvr$f;>OJiOhzaH{+z*&NH-ps1EL;*n$OOsbcf(i+B7)=)g57ltvy6nvLiZ z+A3_1xY=O`bWNHXA6XWo^}BdMRBjmrq#-6}XjLQ4vAY%`kc1M|vWtk^PduAKLG~jf z<5G{tJongn>coEugv1_rU@kEVK=Ie^(r{mO8=Z@Z81Zb5-e6yI15ttlhqhTYi^6ga ziWd5nU!6AI8hh9`hQ+{IPs>FZ=&W2N@XoJ0IkDv!ZbL3yXwS)Otlv8I7*YV35jq0C z1B%m1e3QUvA=#YLwc<_0!HR6iY#^H{l_y5t9fO!yS|WaBk+c;jZ$mOcP0eyOo@mPp zWZFG~1}I4TkdAzO5jM6djvWABVEzejOOD~YGmv;&U@Wu2W6ne&UkA;)4MDSV9lGB` z0A5|?5j!eCTz2rxaiVMSuq^pi$m=~?tSQn0eWcAf9-N(Zvyzl9%LMk)G<7tG&{i(K zRrdkD>m0Hs@D0pnHp2~rFcZEeb`yg4)4rpF&qAopNS~4@v2Yg;^TuKA-aFYSsQR}m z!wlMTNrA|d;g_wd${}bwgxh(kZPCmhq%J^q?@u_mFNXm>#BADkPYvqu+j<0fl(EMvhp_?^(&$6e8X*<~F*`yi`2t z1)mab258W#H|Dmy4ICsI=zfrGt&j#d5J4N^L9D(Wx7DB4S&eKyxzM5J%R^X}%pvY4 zuD{avunlIRT5WnBsZ5+aE{)iicbN2d!~;x@QKo%0VoSsWuc>dMo`MP~0z-p(95so6 zDbE>xQ0ex#4!@KoCWXG9FwmV@{s>6r`g|oinv@41qwd>H|J4ZcSJ`vpBaDbQfr!4z z^b*obt@P`CAZ_Rgv)F4W9{R|@fxoAPbo?rDj!B!B0vR4rV>WXn8 zZxKfhtSGz?qSJ~Ik*8l&Y;JVxA{&*|U7Hp@1kKVwe@p)Cv^p|yaK;Fl|399W!;(3P z&X{OcAT8Y&Y<7@9{Z60J-5hB}tS9FOA7Ha0C@Nv~uLp5Ur$Pj<$|oG3e4Vb3A@y1s zO8COqE5k`*pua;d5St+aDsfT35W_4@A#P3NKow=25c3A3FW?{67fjUXZfe8|I^zwn zL#>WNYTYVH2D_-|xMPli1s+#G18#~F1lGBv8;@q(AlqHFE(%>3k?TS+kkJF>m6t~H zi}!dayMFKRLxs{TX%zDtmY^-4*hU)dFVbY;q~@U9;FQz>aqnJ34f3S=G|N;*agS9FV28yiNI z2)7PA2fI19spZQ!(iSK}`yfO-R@dbF1WvT>+3MAL3Mkspbb+TJ~he0NhsXggr{(^fv(<-{w@bL)+SJA z;oTgoLf>qJkf(4hc6V#gMiyTno)jRx2XD&R>u0=&`ScGkRn#Z;@vKIe>bk?6P9%u= zVO=nB&M$lT2e%Edu8eulX+iOW_u9i{-wU0@t#g;eAriC(Yp~#G?%DzDpgvQ=rWs#t z9VT2$E*|{G#&1MiV1_v8nMfm}Na`%iLbLcjiiCM#nh|m`9eGJv`y=_5=H2i*uOg)6=_{^m)RIq+x)fhU)gA6g( z()UyRU;T=B4eC&Ev;#d~DE(daPo%xs*U7X2LztFJfEWr|g8Xh%M>OO?Nx5g}78yey zjm3${>8Rd9zF#4eTQV*qGB(w1s<8!^?lM#eqPYoSSnOdnAYKPVNAGZhij;5CqDzT) z_cg8pCN;tcVY!r@h$Uq%5{+PR#VkpmVgY+zANFqVekm@1F}nNqA$3Ed^>IioDrsW{ z^IMm^{0bx9N1-b3zfKIR9nc)wUh$Lebw&34zzERg_@nQLK8N^^JR>F7?9rSfzriSc zcZHC$D0~Uha?Suv|H>#}Cwrj+;p`YZop{UR;+XSxRAZThRntp_BBvl`X#b=Yhv_~! zre-VwU-wIQnJg+iS<|E{j@J{q@Q`0h*T6B2zvm$?hKDJ|@r>I8fS$2Gq) z4+@MK3#>0xt1GPWTew7Y&Nt)xyEKP{W})@HVLQ97iN0L^k`X5LI1sJx@+RRFq!d~h zv>ep}nzb@}tp9C33TV84c&AutrLHrve{+UvNe|!+LkA#FFBDcieg7*x}bi zdF6iAR8U9Tx-u@!8~#zlIk@$YVkCcOq_p&<*JLjX<s`TI@AWO zqx6mG&!W}uWJIy65-6b)l779gQT_GhxX*5<4` z$W|TgT66te?0&r%=M}s%WREU`$Lz{17xvx(@IHL!V{Nsy>s}fvm~{0x+Nl?QzC;fU z4SeblsK(1-%#)O}gdea!-xX$1(}hyZdX;JbKjCTOwNN+_VZ3MNitbb0F@yIw^km-I z@(*zr9Nnu-YTXYGk#%D`9EV0^cF*eMqq%{1Kwj5i^MbN)OF25hf~bqp zPDxSRG9sH1ZLdexBI=W9y*z?+*1{z|NOV?<297ErFZQ9b1m(Pip?_wj?RgB!QhIwh zMD&O^_=1AyshJhHfuly*M&|nVk)B}|A0BR;=$)q3Dk@4|>O`$QCK zvV87A$k@NL8(!&WZY%z+@!A?Y>z>dB9pO@zZr=j`kBw(c#q~|D z@U&zT452D3sU(!!EoJo(%nqwemIJyP3Ka~}(no1Q@z^dOQidEB3RM&1JLJdEM)v}fa?=zDU4)Pp zVl*{IE~F!Tm~lQ8s9HUW@p@oJL31$Jed>>(XYI_Cjepn>{?m}~Klmq>R`VoJiGMm% S7q6K7tUX%#JJWX@3iuB|5(_o} literal 0 HcmV?d00001 diff --git a/report/ingest_int_chart.png b/report/ingest_int_chart.png deleted file mode 100644 index f3438f5d2ba4ecb990c84aaff1d1c5c3ffb2d98e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19949 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 E1C@0yE&u=k diff --git a/report/ingest_int_throughput_chart.png b/report/ingest_int_throughput_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..2d256d13d109368495b2c3a4d16426c5ab15b335 GIT binary patch literal 22673 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 p%XWpV{=cLS{d*?mf;?Yba=v;S5-Vh$4ZC6 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�t6X+A@kPTYJrXmm&t6?E0ea*hK%*=-A~=ma zp>?JMzRm0|-aJMyluc5|XA5*Y!938Gf*_}IzCrXcAx+F5+9`E5zLgqh zTfi%3-ScyeL{t@}Q>G;Lfg?;SzXNxfi4I!TZ z#R~VRa98hu`Q_u70I7u^g+UNZEt>x(w|^bdNM`!&Pd>o-l_;1_k9x1nY1fnP0?{+= z)%B3g;ib`lj=p)+J5;s1oRG!9G9WM0uct>ASgO~{-r5Cz80{+64DP@R9Ze2mmil09751NxI(IRz3wwSpN3+_%L=3oV z-${wBW5=+*bXD+M`}SoKrT!_B10FQ$| z3OKwieJ``V1{jG(v&hgLJ^`U&iKok8C{Em#88C-4s!>p-Lz|3EFt3R~H?o%XrTWZf z#56ZPW=uW~;z zA?%hf<|S7OTi^|QMCFHb$TY*)GjnBE;GTU`vo>;|?jrCrHTw?nKaKDNSWq|_-v4v| zA{tmidlvXPT+y&C8a(T)Q1$?yKrtHzjd9DuD0Gx@0PG`XK$ks+A+n1ys|)_r8pKq# znT){>H}MCf>LX3nOXs3tCKT%Kv~PnVQ29DpS`o~G*n4BvAiYl(W z`K5=}>qP`N$!cA%moHF0{C+ypS=mgr+PONrodc}0=Iluz@Qsm4>M>BtR!}8S;nSZf zR5EI-o*IK%Uj&=wy=gL14S|-w29#Y1CE0;Boq6p_iu$aJrW~@%BO*O$hL!m%`;%2c@Q7 znoX@IocO2)%7`ay|7P$n0%$%#;NEITWjA4t43>loNmr;PpihD_p@Js2qr%ZRq9Qoq zCScV55z@}Ay2v$jm_xeMcW1fosPxP$Qb~``Lk2ERNF}Q5pX^``-GgDx z24g4_Fkca*MVK*ddk6Ypk{l<@FDl)cq^&HBHN1gNPs@7&oU<)gpe*on@XI9w!1cmI zQPUr^$<6SDZbvH=D z4Vz%CM>~Mrm_@uj9jxmPeqk8I{da)6472SbRU~-X;d>A!yLzd&#;9583q!CUk!ni8 z-j}Nk9K;v+7KT>iWU%4xmRf*2MLo1|sqsheemThTLXHe(f!(Uv4(XXPhjk}EJbX&S zIvLn(CipUiVy{k1{K7gUTGuFYH*9_N_(xz|PwCXS45rV-+R(%1c7Y9%yqT^8gXlYB zj|JTJs}Y*`%X6~G?Fb7k*Y{N$Wr7Y}1Q5wG|4l2Rp*>LGYcav!Z7V} zq+2|gU~qH|U?5-P4HxOy|L zNDe4`#v(x_quwe$Q7|3ko%1Q_kcgl5jV`;F- z^Ip4Wl&JXw5mrG$z9#iV`ZU>Jw&7;Y)X}HrB|cq7(arq2{m6Gko|?^kJ0k5ir?oBB zAyqGx(FI18{^FKweh<2m9g4yZBN}1Xnf?lq5e|DyeGg5;W9jFxtb%NBEye1^XU$1j zLrDl%L{;B>TtN0j*+9TC(xP|ZN#}i zfszQ954&C{MP|d;JO|c(hsW&_*ft+b1@@3WBhws0xWpbmgxf);)-anE06KsIjZl^(JFvDlSz zTIE{#Yp4JXc}$o5V#FA|<}#DH)sz`)Go%|JcJy%*b^Um8@*;ldsTjevLs9+L=(PZ0^>4)8q<0jovrjs zVd{wwpwl;8oknzzt(8+QmK{)l`^EQ|+|&1SD&NiXW<{WXh?5pvwnJxPP%H&_pB zn~dO>DD1pui0AX>@+|!}%}P~e|BSau(fj$?TI$}o3C4TXfj=0(ep6By&}|_}&pdy| z+I_wBs{!5CtYPM2rL-P O&FiYy3a;Gw{l5U@*^vbR literal 0 HcmV?d00001 diff --git a/report/ingest_json_small_chart.png b/report/ingest_json_small_chart.png deleted file mode 100644 index 037ad2e48519331fdb1408724b1fc6a8814d4faf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18527 zcmeHvcT|&U+h-K(D4?UFQb!ppO$0+UK0>R2?z)TFm%T{QevYB(xpq2n$WDE zbO=RCL@C-}{x_b9TS8`<*>!_YV(}@+8k)uItxs{=BTC!TAgCFBlAl z^Wueb`WOrc4TD*)vt<)JlA(FE7k03v<2E_PtOXz#^&F|+Yz ze*7CSJjqRdUk*jo$=-4)o2p_o2CTRjdMu8Yx|n;>Jg6&+6INtry=Mh4LcD^>tZ+R)_t{=oB=DRmUt7nPPmTBVM|3rh%UOA#2 zRnSzkQFXbwj6d)!`&1=-BXavmL9gM~V*(zndic4~&bGPb`92a=&}Z~XSD|BsJYneZ zeJ+8hSbsL7hyQexm&t64ro=#0Q*s1OUiKZ>B{sX71me)7pb-T{Qa0NrBgSa?4i`;vwFJvip@TI#B<@+DoT38jV^42$YwKMOx zN%W6-_4;{r*(ZhQcNaM^LxmAv4R4h%`5 z;}(v#L(qFDf$(vsM*oCjMX7-2*8_g@KOQi}svUF6!`scS#}L2WWb}}kiUBS^y-qu? zoa@}o$@}~p%&p<^uoir3OnA7J|3WLpV`RyP`Q=EQp~5$n)rH1_*>;OmXBuUompo4k z>S$f^+N!#&PvulC4^sKLnOpE>yM;?R|F7eek!->^d62F$&8;~3woJEm^n7JowV;n^ zj)mWBoBPp+-?3C?qe`6rOp?%ma!w_?Eypd5JXOW#Ua|~x63d|@R~JL1zX+>;o2vEV z>0-3XLjN;-kXX@$%K1+cEihyeYPafB`g+?2#Y=}XGFxUCRCj~fEvl|k2j)nR_uf9P zths@{<-t^EpOol@)u}BxuGv57RqTy(@^b$KgpDQ^3JojvT zUN9EE=gd$N$@tV@XfL^BVdw3|NZZhh_0h7rCYG-1T?DE&^EzpwB*SWDIzq0D#4mSp zbAL&~ud;`K^7}m#RPuf$X?87^dF(z>S19 zBa^V70f$H`E4KzH32G1M9;vb34uyV;vm++Mu)YSEm8;7W#L8{rCGl>w(awC$XqO5i zPN-U(?}W8#x^A3uGJ~3Gk{vB|U55c9bY*S33{Wck7Q>6ad5^e=GADn0U{38lhjzeV zbVQf`_|{#A`99xJ+CTZ{DNcRd z6*lq>hDATqIBR;vLu_!VVXS!1#GYQCPS0*9lVMsZOSaP6ah-~ag@7uSxIhYeyJAXV7!Z~ym;PKP_UwY@21D5)Pm?M4Vr@C+Cx1dt% z{r&dl>B@Tq1s<_kZYGzAE-)JgdYYULF@}2r*Ik6gKwUpSJ zq8;t9SU=*Exv;oibqtT=QazBk>TaaxI1j7OL|I75n~<&4<5IbNyh8@x@;j%Ha#`0% z;wcG-{=`!*!>#GWOPQvLc<F|WH|>lId!V9 zdN7KSHY;vn8zSQ-=C>VVV&WS5;ml?MLnpu1r|rp0uGvYa3NkoPef>@Lm_*Rd;-rhr zvEtru-=jsUCoZ;%s;tcSF?$3DD*Hke+%z9$EVD~J$D$nH+ZIek4GKF9WuAILV)9fI znf0=jd7>ZgbJq46w8mGvCXv0$PEjr>E=_)LA6w0jTNagFlo07CsXon7A0?Anr0npq zcJ<&v0#2sU)o5p|W4KD|()OLdI6h(uuFF2<_o6c7&s|51 zEfV+pW6$jxwZ{q6clNn|42d0jhUFO`HBNc-suMyU`nPU#`$j+HEcmJZ(L620e@ZWQ ze%ychSzMh=q+4bcPtwuNz9dnyFCoXSJ+r*3{~?kKT1-WHh0Vl3piEKh%Ic-%dT*qEM})& zS)nveu3GGq4R))lkIJZBVrw^woUVi(!hnU-$T9Y*1T&TIyX*RunBtOkdt@4+XSmA$ zxVy{EdIj38MJDS-@1jP0@6~78)2jDe-G_TuSG-n=4aPIAR=hT;E=xV;#cWgG{+mam z604v0Q$`_8FCS|}Cb~$g3!T3C-Iv6top1Yb%v5=GiOK)b_VSy3X(FvG`+-@a^4YuZ zq7oS{!ODUhpTivWgwM4Z<{xwCmwInlw`f^-jY5~h?O-~*Uxjia5fCxZwbB)ypWUlT zlxDx#cdsn_r)AaB*SvF5qXJ$%k}=Sn@gE=VBri?LRg9NDZ0C@13?H!wPQi_PUKX-> zTsU-ik`%Bcyc&HpsFxG-C^>~M@ZQ0w)~elBl1~X{8$M1y$Jt4`dCqu+JV_edqndHb zF7&dVk@SI3^U0hFc7_{PuB1U^ySSE~Z7DsR-;U=^~lySA% zF);DUq28zGM%qH@I@M(ZD(Bm?JMS2($8`yl6i;@PRXx8VIpIlk{*fUQxAUX$&^eW{ zeYeCMDuprXlR@k962IJd_}rA_mXcqbyoM_mFIEn+F@uNCJ_wD#{wkbeKUL1E%0 z?;nvx$5OTjovE3FWmt3ULn60xn_OX1S+j&3d$4NoVf*?Btf$$y0aj*9_4SZ--8Sru zEl~sTy7TPrcD4p{`E-C$>h^7ty587YGjT_)7oOjUg9F4@NkZQBc=E93hGB6mr9b^^ zIM%aMk=t9E5t`m=BhH*0v09byNUNT}Za=s8&ht+paV58RQ3-7k`+UWf9kt^2${tJX z^?&)meno)kRn2Bkeh^wYQLOmz*uu}!hZD*v4i=A{IWVmuO=wWAumC&MGk@0@bC&K5 zxyiHaAiVuk{8hW1DZ;86@j>MK!m8&vZ&ms)Pb+?~+j;n4iAMd+yGgK-e;nInC=zt- zqolXj%;0jZ)yh*f4YjQ_Jx4xavue4AjeE3*lZ2dSO0(qmnOBDjxI4Ml74y4ah!|`O zJ=`nvVKi=KCYArhD!ZeS-tp1roX}9(nJn+nk>fRcWHwrAL*p?fKeMpfw__@{dE)_kb!czQt%(fncA;C}Z};>l*6?SY zNK~9sFo=`ouqnHprbi;T+Hx%%b?GsbM+KNOC`0&Z0N)gLX;5YLi!Ax4`*{rMOzWoY z`!07LTpws-__6HDMgcy|@MyS&^OqkADY}m)wU>j^zx=$fzTq>?vpcIHhh*Ne?}~!M z13pS*mx%c<=bC~UC7AD}DY~+lZQAweu{MSy_BsN~cDAjq!>jxc?41S0wqf(kK=lKc2|9w@b2?c1NK~k!XheA-WkDC4fDnZ4pRY%t5YSeeJ$6box-D! zSMN5=J7+MSsPP>aX){^mCNyPlF0fp<&icv@AS(8!dVQH|*smgmnyT9<9HOD^)poma zevZTbQ=oNofjnCx2bc))a?y}f+36s@)7N7>jAOk=mY9t>#m!ag;kIr7Ji-(=vr|0C9h zzSLig?|*^n{ioj~Ei(KTgK65qsXW$x54$0r$63X7q~P@Be={oo!YKdKAM;;#L;nXq z$=Y>0?RqTnnmMecmZzHHFXX+(Ul#THFV0NYN|vAs;TP2IZ@(zy zJ9(zi4`6K88mT$u)Yad|4-6dN{@Sc7!j!fcyKz>&C}Fwj+w z3HQf=j!JAE)(|BAP9qM+;OTWQ@J;b&@PH-57Ww_>e=tz{r7%*Wr&j=b;<{X`1w@J) zW0e#(kMEbd_UeI<|7omyy^P%DI6}+CutlxN69*>pJFi721F%c|z@;EM20Vo^*X^>} zpdtl}GDJf?-SBwwrk@|URqABgc4o_dyVW-Xy5Ga z(XV;<<=GBhfcODaUBEE>RnP=F%NhqFtYQ(H@GavJGw-i1{^srI4P5Pbuj62hmkuyf zog@uXtP42>h*wv!OI$5A8(X@*5x#>upKn)|&PmbrXeqWnZaa14lqTne-KRv$XId5p zp+dNgu>e?$u*`tuQGXG6eR)5n?|PiF-*FDFeTuhk%1^%KSfhRH*^vlVx_9ujvRv{EW3vXB*(ongiGXIWyngT$M z9yQD*AaB?$yWaDL$b^B+&4}WNVn3?#&J+Zg5N##1qvC+!yN5|SG$fJaFqok1J>k14 zSM*NcTVAz3)&@A={0ptQSRpDvW&Zn}ZKX#MDq%bn4o&kF{88q^8Yich(g)yuMa3z` zqN4{fg*&h$zBk5M=3?>*i{I~X>i{1PXjx|U#v!U)GmE7VzHq!!?;QbXCFxCs@5TIT zOEOZx5edwU#a8|)#aNBNY_nPco4ZU?2Zxqd7jYPjDIx4>6KBvLhdC9|y>6Q|__)t` zXNe0S69S9ol^SMjp58ULvb>l|ua8azqG*^MbnKJOqg;gRRY-A-%8NG&Q#MQf>b+qY zSMF^zZZNxVz^|qnW-IWZw8dBL8r!SWz;xq?+2d|Pqx;s0JH+=5Dld*ci}tSm?y&P! zz(TDRJ(vGZ+Pz2{(f6}ROF19H8%A<{zx7DJZG>Yc_v!C}gsD$^Q*A@#4s-II65YJS z=Tas~vgbl8!YoaOhOmWTo-Zgu+SpRhEKBE-ANOng8dO%76c2rUd_Zkl+NRlXNoaLm zV_**05j}-5CG~zDczEnwk9#9wI6c*Pe3#77&fFx=QkUKe20W-8F#kbldJ7#sqUk7| z;ha_nWiNOBgs!Y8ud|gFJn~hE3Ywbr&cpu`a@+sg#qnS1j{kokU_l`P_MZds_}aGV zM5uux@%Dh|ML49H~1i$P#G z=v2^r9>2QG(nU>0J1R|eGhEy}xlfHt?)TZTZdq-p?8^WybtK9r&$37J8(V_+OSOFb za~Bmv-0)L9H$OlFIFc;WZYrzUK_tdXcX7fD0ezH+L~EV1-!dhtxDh(k;+- z^jYIHYMNfsFgp*a=aJ2|nevOH`Rd}FXDApiv0`YSb z7k{KUw2v8>BRVT6P;e2={hh6}a_`w1nQBD0z1fUZgOTfv4SgOVA$2Xq|?HC0w9VD-JAu%u~V0i>B zi83eX@Z>5Ae~DVFy(}n6q?8K44gG$J*Ob?Lb$)+$$30{j1h**CHkc*O!vqcYX_4%b zgXJ)>085-N)ru8cvYBzKFOALd$?~j`mBY;iicvAuu2vwF6JQJnqNcXAXh)yY-gQK$ z?si$mwfd+5Ue;HhpV!MOGVCI-MQ+_?XIWrOghjluPZR_Q^b8gR4|Y#_L2eMH^{iSW zu29S>MvVnfh*bdUZ+}HA%=}fm(;>~ZNpp*^05oUq0CZ&g_N3~@6;$y$zMAlx@FCCn zybWBJepK>k&#}~(Cp*~ODoZD{R zs>8(h@5XOT6-bIj1_S9S7v^o^NLKouZKYdO#aeH)^)!7PHNAItJi^Lfj`buv-EVOY zX@=<+Cd!yPY;YkAIJ_c zTdh)7dL(aI)a$jV&Fmp<#009F9NS9EJ!;?bHs8dl)?`q3XW<7uswMRfw{oOo;>bZd zHT20xTM$^aK9hO@ww8^7=&VChoW9@de1B&MF5CoQ!mL zrI{u*;_g}daKSs}_rU*=;ZEdXdO?e3GVb#^U)YPgb)_)s1}v1LXJgd7HuR`*D@l{M zaC&-AU;&mZigoB|2!wHgmMbEpW%g{X=EL9kNxJfkSBjU-wX}<1L#G&-U}YZA z)9ORd^klT3t@Z&$W|&MSYVG0SATN)5Rc0D<1XK%n^{Wcys7!wrW=_>N1IbfuK7J`# zKj!??hcw%_1^aG{!Up<0a&Uvjkn&gowdLngHbLVS>D^C63{4CE9UVqc8v`Q z3usp+y&y_+On{4IZu94%3a1yao2>KRyj7wm#S!j~*?0MY_mvDgInQ4cIg=q`gjFEk zx@d3vF99%4@n|2i>4yxolnhaSon$i3thZrW=~<9VoEVW2-_1q5%hm ztFhwG+?i(Usw_)`KbP_FOf)BHAOk@pI)(*W{6Ai@g|=CM zaCyz1>vpM(Df(&?)cWenYL2KCaUg7VjXiJNN|U_Rh1Np^R2u~eBlS3BNLsIB6DEp# z{mBw6L~f9Hx@IhZfd}TMVYeE*Mm0%)q^W!`)`w0kLCs-}%;Vqt&*jG@Lw$R7<-`4C z3up47#%{#VMZXUXK&RAFS(zeH_n26&t(O@nQX(E>T{1DZe*TGA7vqS^!o}=$s5Mq) zHzbs%fR7}Bq(BDJO=|R9dMdgLfKOCGAZNHb-j@0qdouylO#Bm^bV&%m!l_EEo@YY3FHcKy@}EAjd7_V`qKw32_2mh*E`AouoK(Jhe&=1dG6poU{aJVr}caOkF?i+1q~^ z-qTc~=7l7$o}R*~{%5-W-6!Fzs`hQA!Myto^udxy)s!fgo*ixzamszSiAV!g@o8+p z$^xP3%;r5N;KO4~`PEpTp9qTxO&~(~SdHsqD)_dRi%1@swK@y0uoq2==!Hdw2W9xB z<1zx~D=VzZ4ihpw89#Mzygkbz^?{(befDf#wo#_>tPuhn_P$9GLY`l*Fy3--*KwqT z4G#Fjtx>~Fa4&Sgq&Zl#1zr>)OjsQ@sl0^DU&`eBZB*oem1P4zWk7Sjge=9Nqr&h) z(Uk-rAl^uFx&U6ou3R)F%8LY9$9B;WUYX+$&~}WE-K>wSDau5};xPLp`VxfUo>ZUA ztfHD_3SfxN*2;j@)*`2FhwfsSK(?q5yhb{<$qz zit_U01C_dwHH#OPXzDhJvfS(kXzP43hIV^-9a@s<18EU%6NIM>c79HftIeaT4N+zS1syD6oc<&5I z8r6-FN@@5eO_7U)2lnSHe%$9v0Vg|Iw%1oGM*$ik6|F|L_}@#W(=H-eIP~;E0Gq}P zs;-K5{`JO&kqC2#bi%uhdw1)dhilpMCoCdE9*mC(DvY3&)1zEeZk3=A%wm<%D-;ua z-rwCCmK5IcveF0Cp}#jzf=_aoagD*k7`h4*3Ezon-Hmw8U>IN0KP7<(TjI?>0AH@QoRc*A@e95_3|!YC_%>#!50u6 z|7&Bx+SI(WnOmoHtjL0khOqW<582)I(At1Dr7D~kQGsZN8+E!VMVs$7s(HhXzZJq2 zWtC=I4Ltnz!z0r2(CpA&N=D{IIkQ0_Jz#Yu-Ko2%ttcn2ig(uRAGchpXxeq)0lz*u zJ2CMf>8hX#YnG*1KW6M7Q6HkAVHB@f2vzl4D_x~5&O_vI&QbN1DE=18#S##f;5Hy7zDCEny{!Fz&2nb z2j5)9wko&`HBZyGP2lbOq#_k3dltA=eK$NBxN$ozS^t=kpENW8K9$BR}97 zC_f`a3i$UCA3Q}N>T#hyYPnYv1~=xgR^($8RY(S$WZ>r{j-C!ji|LvdFRM|6Q#cSxL1o?tI|2woLf zB}j>u#-D7w-I_5sfp8PgZ-mu8q17}V3P^S@VxiL#>Sa1!8R*D;`n#14tZU0)Gjs!@ zyjkNhND(T4n{1tZ4DW_oz*MAJT}SF9j6{0QTB$jhgFDLtc>ThEvAZ_~dTX{a7vKd< zNIr2vUsKE|OV-8k1RjD{bsVYc^Pz_Xb08h^kFq91 z`|yBUS7EHc0BHdFun3tHz}KmFxa5zz_<-p);(Y-=%2c$CoU#azLK}49t9IYHrshFU z{QUQvI%X9b+gXig*kAz|jCh|$@3_%MCN98MdCCO{-7*uAvq2Ap=_&nBHCrI36NU(J zjbDeUZ3tUT4BjFN6&Vz_FDfKCdL+>~6G%BMmet^jZ}4Q3X`38DH}XV6*Y!BRmch6HoKu|rbVc)dzGP5AlK~K=>Ls0To3(|`qdFx+JMhN@!eNKC zqn-m7G;p%G+us#+%E?^N*Xe8S6+GbnmySMn`yx4(q8zioFazTN9O5Uxzhm6ni~GDz z{@izekWr|x;9p#WRW%31qX0O2D$=%H;(+M$Li^wvg(X6aZ4vz@vEF+Wtq)+fKrbtG zHw)gfHox}5PCr5%>&EF}rkJfc^vxkNYx<;wUacRL>{q*VP9Ffx#gj-wmR|wPB%OB( zK2DAlsSHJU23TAws@@as&FXuTL9eW4ymW8)A~S?ySy7U<=P8iLFn~>@Kk==cIzQD% zg(`al>5omhQ4z>M)PV})9d+8(hAT%`Y1VLH8ZcYC#k<6bTV)!pmm>;YdX=+4YeL%m z0&yvrcf{>GS6%>&SW6N~*__-6@bo2zmsxB0n(Yrw2fRn9^>2%_8KLoPl(pC+w%+Su z)L6z(BGF=L6e@V(7^E&V0R$2X{UA0{Z~MGhtguzzz5JiVJn@)cJ$(k_oBznr?UD7) zrpT2lSL`3^A6{Dc~SF_E}1J0*oPFj^oIv=uS6Wk+(nK`ab!$5D5RO~v{4=d38b)V z@#FU!%}0Fh?J>UaK)};fuw)E{3kSg8KezxkP8@3jDn^%Etr!(5b3`gfkTnVo3_hv1 zt;~fbPEYwM8NdRn6AjuDnegM@-Ubh0D83lpkBYR}0mQi>yJ41dNswKcHRM3c;5GXmV?;M1a`;gz;{(kQNAN zY|l7Y$QYh09^)?r3%_z~=F&p8nBZH{aFl#=%KOBFhpKiFki9bke^kWrwEkS{QJl2O zg?bkhN;J-5D`p@KsbAWmH4R0rdaldAM}<`SngOYdP(1J z!txyO36W_}>urJGRc*OwXbvIkJKu%kqpV`FUFdZUP1t-Yh$i=UE_ zK$|*KNh0hL14Im6glXg8Hr+}GhL;&&d5Ce9uZk+G*MI2i1(snh^QB-!f!6mq+{dO7DwsatW zY%&bHW`Ke^HpKTnsye{alTHqlK@c0GWL=ay*rt2`?yo4lC=WUp6%;EI@;K~oZLnEy z@d9JSa-&uelqLUQ9A$J_y*QxQRFvl}dyU#WO?@xca19d0OU^LHzm@xVPk%Y$UO5iB z&as@J6&fs9(Zn^lar!I^W@=3ZMlFEH;>HssgU1U-MO0hkMPBEgjZ*UQ#NyWUCHBUm;o+h9ynEvi znJ^Rw6yPaOkF;$;c~oWaDjd3PP=y+9Dk}pKzm4r&9ghc8npQ-*-3pIeuRF^EKwuD! zSal%f{|ZDNAR`+@bMfpo z!nbdcFw%(b*u!?l4Stw@t*?dkV_=9ljdh-3>ah>-pTMp)@%{g4x9mcGB3IpeNmTH? z|0?*Pe`7Gdn_K_$F01W!+CL6Bq!qmeIXJ8vwEo!p+(NPPo}-a)0^(2UtDhgwK%X#F zr~;`x3`L7kX>TRF4-!C9N;S*BCU#dBR)wl9RaE9CO24DZFu=T4zmoGAZE*_7iC{m| zo};|NnlA&P))bJej=IFbX5{JtZ+=bl^F|00nKw{7VjE8P1>c({!ra>{^7;;iJ{CwI zrvOV4U7jKZXd%TB87@ppW;W&c>}aPHVyA173J@(cyrDz8*(0t=1vL9Y2gm_oG_RU& zJ_D%=(Yv}(?^JD@zpJr8`g)22O6G+QVW+-Y-yzUnTu<3!YTd%#h zU^fzm)x4HQ0Y7o|*dex#K&>~_epGMi3$bfSi5e8l2xxdAbwq;GO#QeRiY7EQHhtkoxf=Q0>(rnB)T2epx<}O25ISMyz{-9K*z8%YAj<5 zC!>X1(C9uNDAOPbGLX!gWl=0X>ZkEfOb7a@E@Eh7U4@#QofZZnJf1rP%^%(t;M>-5 z$W*#Sd>yCu;HDLpenAzkU(HKfFS8sva|(bfnKgJ&6}%q-xHgAU+nH%Mp~?A$wRpvO zh*uD2cS$&QzOlpo6|3NVqyH-;J^t;WP+$FHP)2q2J^-1C1=?P?Mt(puRQzQD{FCFw z2zL`77scd{AE!)Zw^kP?3u{k#&&E585p zlXTE-5rp|-aCZ#eO5Q&YhfiYe%t!!LDV{%@1z#G0mmU(*Z9cpEG-e(~ zb&gki$REm<+gqrsB=>+}PT8Ilx|?}OAD~ahWzIa#3E-?X9U7{uaDL&L zh6w4zH;_A}2}4aNM5lGb$2 z+@t^gSP~S$|H6RV|G_-if3JxDhDzAmM0IV1egAC+;J+fy_g{Rsm;bN3r?mmdwb%PA zzlb+XScIV7MF872;C&gHyOhti*pifra)Y39zO{MXe0Llj!x3=(xD)Lz2Ao0C0@GC+ zRYf4o=3mueI;|z!?9Z}*g+~Cxsw_ZK8bXS-5|xTbo5zA3wyo42=36v{SA8fJ*Z@L1 zyr*wk4^RL`^$&tIg-t_v*Ltc=RAxP#z|%wM%^b>lW)^7>Z8por0KjU*V<71^PB(se zb|h8Ko&M_njky{8nmPP&_SG6Gx-;@?Q!oiv<0ZIgz)`&-~wL}Y{#!>>~ zWXFo|`QXoYvcuHJ=AfHCMXeKzjEZL`)fUFhP*4IHfpG3-@D*m;+Eq)$^Kv2cx?vnN zZofYNkb{I`2&>Fa^s0pHmpbfJxjYwkMm`ooknh~bdLbfFX4nSEed2Z5WrGdQ34Hb! zEF%K%S9$z-??<#l37^prm!7*4RG9)W%~FvnjJ^48BT73GrQtLtxW-9aX-FS~j5jy+ z;*pr=hjm^?A}WOBZSp1)7~(*7i~U)zhbjF`2OTa>BZB)rIk$dGngE7}r{hq3f-5#L zA@gXxi!ZvK^=)ah+z15vn8N=Kdi3UjJS7L>sG)^1^uwAl=$5)jo)b{;)Y25qJI4#B zWZ0lLWC-+u*m4OVg@*$uc1Z4)2RoArrw)B1-pa0>Q$!^kHRl|qVh~S#8^0oG3#LYv z;^k&!{$wNndJYoDnrp%->fz{w+YIVF-MHux-lo%a6Y{%1Xn(q)23ZzuXnHz`+vY&B z!GF(QM2I@lCB8UN;D9iX+ zN=y+>&MnOUW7}lRdT`n+(!B(DWgHCIV=e*FYl#;K5~M&Ip*vo>OV2U*>szPoE9ajd z59XJ9gFcby9IZ%nONabIGT58xZZx1#`=qu%N022BwU%T=OJLGX$&Fxr8YAhD0l0(B zrMxcp^uv*wdfDEkkVSq_ERta;Oe~72ItpQ%xCJd2d}$sXV(1vu^a47A23DE~I{H^w zk-aX&pnjwY{JBej-;OQQWh>Jy_jWuE7qbXo0kzG4%yqa=zJEgG(W?{~Vf({->NAXS z#DRit=h6YX))i2CP%f8z%*aey$?D3zJuP4JY?;jYP82o)^$${qUhe34Au>$wP2vMT z8Ckky;7Bzc(bKa>&3it2WDYB9M@fHatX*uSQ#M_8#!9*V{OHgT1Y~27{?p2qP+SW@dQ2+^Fp}gw9g;|>}TUCsE?~+|W1_J)AuR<13?UJHDa=+Wo_k%O8z!Z81nveO>xOJwApJr2rXVZMkk6Dot$=584 zGsYo+^>V4KOxG#f5pxB(U_Xk7XAe^HKOUw3b4U#nJ`}8TmjlSH31!^{4<=eN0Qxi} zQ@5O~6*WKy48QrmUAOtUvFVk2Ex`7%-ar35a*6Lo?ipMSWR;BA@3{RhBheVYG(VLL zNs0)0k6}YzNt?U*oW4ov2C3o5xhVS>hXLS)^It;w4);}%EXoo6Xn_fd(O{Ru-oFHS zj{1(6H(=K)lSF-?9Yo;3{cJ&Jqme#dxSxmah2`KSEnpusKqSwXa{*3sn0Z6tzXV5q zv3R)2<9=`y!OEwOU9vWvTWOO5K@3ld=a{)ebD}yPB73!sP|n(F#->!lz*k5sXw}yo zQ1SGFjlGtQ7~6+3hB(Kp^)99Wqp3QV*1sHZ<%-E9%Ug%SM)ow0`IGrfHqhSO-fs!z?a)K}%u7q0Bx z=^m^VR3)AxExVobLK*tlGMf+vCXI=>;KXa${} z8R1KMBCLVRTnY+tK^LU+HCl+GW4a<)1^R2k258-t%<1)Sy)METefdYcGyw7neqbI2 z)sv$ke7(MM4h#ZK047(4VLc6h&FkwJF9xqF1xmZhTCxr#jJ0FGT%+5lpcCyKUgXG~ z2W25X6y*!oY+>(NxFH_x%K>MS=g*)lM21rUjBN|BurS1@eMcePFAPT+G{U-NX#^?( z<{=dwDG`GYr zEKJfu?n{^T9nLk5hNP-8CnQP2Syo+0u4y7Elna5MGi=E4T^`Y=ZiJ!JwOF@H~TpSxj3WDMgiH4C{4SxVz;wo70zJ{ zyg65*yfpcN3a$i>sP+SCk&v2q)1;e)htc{`GNvSy9`uAee%bH z)wVDN-IjmrYqv^R@!{;bF^jQ6m@EHu;O1?idm51&Pj-e}g9r*Qhc$xGZR7wVBm-hw zj{eG5-rrqPMyIj{l%c|iiUBE3MjJsz1tKh$?rh@BnEM9jmp%PyP$pi+xxD#uIN5)h zUC&~ALN=BF+XdP?)WPRm@wikrsqQ=!^kc zL-rg6B0Q-Dwc@4y)qr=8W`Q)D45wv8FPqg4j{mVuJgrCg<6#DQV%TBanOCl?i#GJh@ns2#Or^&#K>7s2{Zne7=G?(~b#4jcJk zTb(0hAX=0Kb&Je%N)Zwy3{*w6YaJh@dC&DSHb!(w!am*7_^@@ zu>&*3Ec*)%SPor2ZXjyZo~{gawx>+dp$h%s1%Ea*j^4fnb3z49bcx2>5Az?mfey(A zcpB||<#5d)QVI)2>{t!=d4=&3VK0%>utVILt3v@? znBH>`6rAU=8O{Y~qZc`qZS5!$tNrqHp7~^UBe_rrnnz7_bE+I$mIbPqiWT_UZgE5V z3dGJjwyej_5!Uf7+tL9e(QauMdb{I2 zujA_{f^b@r_^r&e=}i%Mq`eOxVz5l#_Ohv+g>)ngkHao+&YWA^6qo~a;BD~^?NBdh ztTWxcD@9%GeF966veJT8QKLXZHLgZr{Xn zCjiCl7nWfK&mqP*_=GZYaMO(-Ugo|j1^SQBGoOFb&ul+8=d?U}U8T10^OTv*@6+}v zLU&R>VO;d+z`jm)9Is~XNXpWXnnvz1_l~_Bua=>XGz_p$*@cX`GJmI=lbA%5IeRx$ zbMSHXTjEr#tHF140%pazR#p!4JsM72VtVzp4ECJK$=GrgTn0RsBjobT$4mJWroAc` zvE?r(w)~lQE-kq0I|RP1h{HLTv!|f0+q$pz0jxgWm>|HsYBHvR<9opGc43^wpY%+l zaym^Wl*I-gZZ%6qZ6+r4Hv!qhD75Pvn|Mz(*hbKuSiKvk=O`re^8mZ3I&ENQwrx$$ zmQhJDQ?d~2kMKgpX*R$a=E9%Rd(j_VP&Ov>D4mZW9qTu7r`>ng~dcXV4TC>#DfA;^`&;GT&@0~N& z=i4H@1%tux8Js?4iotB?!(i4M|F{Vr$uaz$4u5F)>00@jd0p`fyySBkV|2;yn!A^u zyQ|aQfXhCgRXOS3^O;<6p0k_wsR3cx&t544?ATwbRzV7>vLr z^#8hSEYTH%F%301b=*8CX}WLovz;AW>{n)6q-myf+K23jyLUfq*Zfh~S$2P+o2;Vr zg0TCSt@q?`?Sh7BA0D4FN_*R1cYAwf;l+)$wpSw?<%3*VujyaohIHET&0>Q79q$FOqP89-7P6I7uUpe}Bdx-ghMf~VO7BhPS9*Hy z;)}3p$xz{6k1;eIs~LK1D73puwLfTZkwxIydGytA7$S5|Kii4IUC6a7+u!NgS<=EC zl;EkA_IOraJ?%*z&-&tBFXr5&-1*?7fVNV1nU}=ihp5QS5+R4fcpQ4YJbZ0=5h zqlDrw4I7V5w^oTpoLE+&u=|56J|EF$w3Ez4{oBtg1}{wEIAL?G`h^@urGBD{N1ABV~N>Uj^s^P?^wq=-q|>0Cx2 zOGivI-~pd%?_macGQZ(Q(}Fj zLd~->dN8xPuvJe)ck*){OT7zz(qLx1L&B&iwZJ;K!ZE)ZW|Y#yIE!Cz3J6(6cRGe^f3|i>Uh2O#-dn*63HNGaUL!BX zHs}O>{~9!!9GGSPG@S(&Nthz^|0EBo--)=R9fGLTB~9S>Bf zzQPEP$F$2U_hH(}bNVX}e?95c=ik}%>o-OvGuoG`t;%~8{$}0gp-|H%&xx|-+8riC z{<(RjHvAi zvW8YiOt4%(_rf}%nMlW#-#)}h5Kb=k8r4(ssP+NFPc1*pjnjP1<^?0#n*J;f--4Gq zmq~rR-gnEL@ggGi)gf-ZS&-4FbYHKPSM~hBjm_eJy`9WmnImGOc3Rpg66)tt!WZ95 z_$+FUCi&(}$4C3V=TjXzMrh#m&{tJTdwm*LLi1~uCzPd~m*q!1$%JO>^QJ}9<_y0b zlFH-8^!G(n9g!I9YS3k0#++unXIRFY&`*l>r)XJ5gR_kaF-EF=O5qE0VwV2j-)&sSBBVzsn>`8dbFh36T)g5 zT;(uhoMW_Apn^+Qf@3`w?Y!%Dc6k1hk+^w$>_>QN?=;YY33A`0zd-nPCHu2!8 z^V8MW7pBxr_UJv>eSW$qYR}PwSnSlR_c_z-A_7;oz=T8Pc2~3eE4yoYyeOe0=lbZ5 z&zan|*>*D%i~L}?fHQJ7#eZ=+i<7o$l+n$v7tB@1dsI%BX2J{!nRY{c$`pFbnF7k{ z^=h0%L@DGC@_t)|9xhfYoK>@0GWLk6Q%r3o>@%F>PcU-q1Qj{I9U6o z(Al@iFK1rf);UVqM=n$tlb_Y5Zp^Rs{S9u?OwQG)fza%q!)^U-JBy-YLyuiDq=o-vnmm;}$$nfbe2ZE-4uFw4f9>%*4EiCbkQF_C&>n_hfY zhB@&$`ssS($IHa5nlCKdhF^~uv7TWUxqYSi5;PXm8H()2bNAqnat;`&i7i~S- z4~KWSEIMu-B%g2gE6SR9{UVIU+S*)DHG9S`oI8(yQLQ9@Y}vZzUQv0oEqUEjT#7=? z;(*$>KX>?CTxC;u)#sQ+FW4qG!eWh7K5p2Vm1xF;dSg+NeH^*7l%p6N;YK^gO12GS z%I*tv%s>CqrY9L!nk%i!G%{-4%qLv@W-u$O%e8j8_-vwz+~ygjL)OCCGNkF&1~*p7 zeyN|E<&?Qb=`qB0Lk%U_Qm2|c7+IgjpGlp~#1nEqpQVOI@2Xo#_|AhXX`)}QC=I{V zXiZ~gY6*v03*V~BYO6TQawZ;7e&2uTj@ZD1qs@1}y}vX1kD zIVzWpQ`2(V|5WSvBYbH%{^?}HTmP_2*Syatm%8OwTuD*M#dW2GuP*gc7B^!Tj}McT zUI*g%?MlW&G*ngTAuO#?HG_STmQVFcSF`kD#FO<^6%3p5Xk#qbExA5;cg>$Nmq`kfG+UyLo+d~}opM-!&OPc{XPOs;OR*Pe`)inG z#(0mV9AreMtt6Z0;Z0OUMppYUFBVASn=TffzG~XD)$?YbZd{uEciW%n2TLr$mPZK^Jlv2x#NZGV_M!DaW{ED(VUx1&;dOiEq(X}C4 z@Qm5+E?CFYusq~AzaE5H(qJiqQHYNL#1AIF1 zI&KL%3Vj);xeGM>=_U$orO!3g#9Qc3#gxy6O#=&|Lb>$%sj1+&Z|jBm&{DJQM}J!c)0P6Dm^3nBH4VT#uE!ZhxQ_)t|h~a`0_ZR`+Xv+LDa(pq>6aE}B7on$S)RD<{!CI^MQu z1WY}1i=>4#y7G_DR&|p;vU@Krn1nBz@jnBY;yCNp7M!8eLfTX^p`K4N&-e4)8!G8V z;RdWmw*|)P**ZS)$$FKnhcO9#PHVa?$nUn#FaG4^4jrm%&4Lo$|2nmOA6$kDxl|oIo(A#U2l^ z9<3kBuVmN^b`ovcl->p8h~-bVwL6e9k8MeC)sV+5mX6b4fRD1xOZ>#!WIC^s|G!pQO`#BX@@CF4rJlwj7C29kP^u=P@_zC;vYP?m@h zsg7sBjj4aIX9uthYtNjdtQWA3HQ3Mn*c)jkT$R_Wuce%4%q>}W(fb$jIxBY-m}+Y5 zUSD5F+Bl6k`sjn1QDDan>f*?TtC{QGn$jlP!|^bEsW)F|>b#$~Cg1Q~=yDk)l{I5| zD>fn?q8Qv6!rzoj=U>DMgV~a1!ai}@*Eg%;XgsX9|#FZVj? zjye1&b**!Bn**>kDSmgPVsjdYe~JujYc%`SoIe3PWwP3C8@ zkmyyjr%71<<*Sv~Kt*MLt>Gl^97s3V!BWHM!cD_OTz6ic8wWaBw8a0Qg!#%*kH=Sf z??4|RpA)Rad}R}|*eV$r@?f)gn3ja|r=!%4GtZ4RIcdAOi?prPHS(@~>@cfp8V{yDgnB0Y_B5%=vDc7yNWxusC z4HbcKLCY1wP^OigM*bFAE|g!kfVPqpKmL-6UOpl8R4E%*y<2Wl`k7)Wmq=?7Z+{ zwQfJ#eQ{jIvbtY%@FcI{yT!rKMeh~An49TbA8xu!LDWDJOFohLBmHEc_F;{AJ56TU zbTs8|XMMH(^veGC`YX~{W5bH2<(1FzUeZZ{trF=}jgzzL2K2YLDAm#}b-)fFf1I8utqc(12yzOD^5%G9sEZdW3I91XUGpL}tx{qIH;)#{rnxetirY{k` zeY&SC>JgE5q`S;*M?uZPl_Z_nfoEznHy61FTr7In1C2aUx^1PS-9jSG`SZ&zeBTT) zNhG{{;`VOEm4{Z&^Bn^t;k|n#lYIKMm_?2Kck0q(qV5gG>=DY%n@!&B-+6PU$We61 zbayG-s4wN+MiKkM@OnREeRyMqc5L{+?AEeqr(L*VQpkvxQ|* zGW%-#q0OwkQjWD2yEfZy2O)v%rS&^e?HZ-eiI|H0R4`dG(coC2qwci0$9tH-6Q*c6 z@vL0l2+w@kK^wQPB zprrIKdY3~bPc0?*+fyq$BoDnfZd1+9@osjlzo0|E*jF<9!iFQNrX|19VbGdm(b(WI z-BS`J!t*+N%hm@CXWT~v&GfT-refEEVlL$&aNu0dJi&v&b_=RNeEL}Ua&q8t-iAB>15d4 z%^O?iyNy&G6q%eAiM*ZtPX$eWklGS-{uhA>?U4&qtDNd0Xi+m%|^A|$6qBeYp!EmtT zQJ3ZiW-(aVFko6j6ReCYY+`cIsS^M3>f9P$nGwqejma6Kq;TKyj#jVgJYUxA=VZ$m zZMLSym8OK9gZ&}I?i$yAW=`lIgzy=PV(4=G%=OGQuQr8Kqn~z?Q(D;dVRCpd zE?)3Ry$;9pQwo=2!^&{J6QIoBYrs=p9U9q0|%h}oIoV`_#r*?KXYdTzMe}Cfl zuqw^40iFUcedfKKYRo|+Vaqt}k}Xz6Ud-LBxwNQ|Fy@AsRUTW|ZaT@m=Hv3xl~Wyw zLLV>ORK0iLdBWQLJadB+FB$bN-01gmVI@80V0}FyBw+)0V^k-PJ z9u>oSPfd?qE)UdvZrqIaPspvZ*YJP264I#9sm&IljJ?if9VyFdN{~0jW0$Y`)O>3V z9iAVpQTjci7whDDxfibF5JHZweC&h%(CbPHFLo& zy({DojD@ zc2>JxUUCdt>ag;S>Td;-U!Y|Svdrk7d2a4!uhN<8OQZUPv&}}GlbRsOVy-?krA$OB z@XS^g*qyb3l%f;-y%xlG%NnkN(@G5sU8D9wO}0ugVYvlD;gtF4py?7-*23(ui>@uj zd1bw_rAr@cyldZbM!s^pMhW$X3KXFN%1nSbA2;!g+0)Fd84@;V!b^L3hB(+Y>Uhs_ zs=9H#V=(V#%<#d5al2k$Ub^=*U)jjYFg-mg5RCBWC2M#lQ zw}8&_@9yQR5npC_F=uMJrDf`{yik*naPGQRvPGkvZS`E6VN+nJ%>q3z{!1{=dGPK{ z_Q&*iYLdE)LnyaNEAxwELB;-w9e@AcXzcQv#qaN92HT6|b40&PRu#p>hz00eOm!eE zpQR=#%Y^x_GM$=})C;EtHrJiM!`0%~94YQCAWtpl%0Fl=tkOT_1kcCv2zbaJ0w)1xr)-=y{cvRE9@^ZWC&dm0k$py-n8=hS4DfI{eKHi#T zB;v9aKvy=X7^*4wfmOA|U6t~2Y`PoIdG^Nvo|tX*b9MhtO{VePT(5F%ex13ovG(!s z&@Q*5k~!l5*Q|aJ(3w5u+0aLEBs@Dx6fC3T!#&eif?Yj#J1L-NKz{wk z<*_JUtxu8UDb8j`xfLzSQn$W$pHce2OIFyfqgOuNy{r*?@gb{q z@rrJrU)I?R#{FWJbvE+;Rlz))66v8u1XRy?6;HG%9}HL2JZQ9=QXctk`@pbe|6NAo zydZKXgfgrrOBK`cqd`-xl7s022SeSAnyhC(C8-}37w4K+&3;(4a(ff;u3vu*K{|{V zFMpU>C}P*jmGz6+Ysl{u>y{IX5^)=<%y3 zHCO=^TehXJs)x8eN8p~qL6iHc*br3*5gz`OxNPKsk00Fp<%Y^#-xRADC4OkA?u-Nh zul7iz><(Qtsu9+3WoU+yqesP;pU9;uo^AbRIa9}QieL(-w&)EC7#8yso3hTqjH-YTbK0neE(a|XpO z8kET4LDA5;R#YN5PH#AmTlm?=O&4IYGkivLZa#U!cIg3(rIKBwvLE*Qn+@vcunS+D zy@6WPeR_V>`TN(mGhjhjFnqzAs>kw{sO95XiLd(Mn-k(1&{q)Rv{SXkw zE3!0hO-8BqtLbp(Xk%dV*ai0a&mg;r$pRH!zrdl|X>P2wu>bmG9fikbE`AdTfA&5o zUfzCIC*D55S~Pg7a4D!MLAf!;3nbv6)umAxx*IV$;Qq&0$$Ai3g{<}vLP4@{w}Cygtc3~nEIBPQu7=HK;hr1s$XI~nf|BF6{|JT}&i0$P}P1r?W@C)B7w z3AsFGjO8p$+wLik{q^MS+I5>ne?fF_j!DNd&E|IxhnhyQS3-cZ;z`$!#Dcjsv=I|= zz*4vUxrXFdxAys|l2^lSrtw>nP9Q~#YX$Nyi+pc~`@}w&4C~D>i6JaTpcv2SHGBc4w7H$ zMhY1kkLirPxH;g+Tej2!r>GE24~u+ecZr+$Ub*?|e9#8<6ij*=I9fBcJ368*#rvuz zbbMoiQc{Q*?LfJ}$9ifejlIIkxF@?Xm^i!4U&xmXTC$^E3U0~Kow$OoKbHxXd(|wB zl!J-qT({HmWohV}h;^;St~6wQNOxvR)wKy;nk=A%g{6e)fFRJ3AfEB4#q0$G+@@h2 ziZyvE4i1wNZWl6B=M6qhZGSK`dBZA{-ZOor&0x}| z$$m~?z-&{Bv8sVm*DLevla3ehEKl_zu&7w9$xkYNV=Y=yRygT3oz*88Oiy3h+}zPy zGkpO)axi&f)aKjGWY`AEV^SB1-P2**C>%T6e!&_mY zehNmOWP+-f11A#_3lX<}A%phTR1RoyaCx#ICXgPgdM49!xD+^7ot}t?AgmycKZ|K7 z2`ii40I-4C`ZQWVedysBSbq;hROOAa+_|8cx?O`H@`7=91vx5%3q4*j$VfNV7|*Z* zM{3}sB*E_rtkhS(3*}^0`cHnI0q^ZpeYDtU*XIh~(JycXtRvuu?pDT`SFxHk3!612 zl@?|jALq0>kz3GQq?2dJt$|OE(EYg& z%ju#HfDoDN!X1pkrj#Lg5V@O7z>hp%glUSUF3*3qRrnAsW=ney&mF6_7;LdWe}0=8 z(Ky*9RJbW*VXCXdLLN=Ofetl4FYu!A7fW*1X=)o!wiRDeo&o#(gG!J44rG5{T8*>y zB$a9_TbfMf%KHkmFU-_S)Pu$DYy>Q#sTO@d98);2}N2w=$A|}P4GlR*ap9H z8e|GyhV)nAS-2jvuPLDB_4;?(EBcOn`r=kljdB{15bTimG8q=u3cB{Qu+kxvzzAYg zjLvevC|E%EU1JA1n9WFbi$-qIA~k$HQ6zrUhP^_zQ2mFX5eXhq|x5sc`UKZF9 zMi|CD_aQqYQ-=U?LG^+Se;=uU-RoHU(z7@zyaj>vnJQ5tZqfoUeUm#S2U~2P*)C1Mm=Nq^+DB4rM!$fOa zjMnUFab0a?LzA1;2cXIg#ZSpK(Yf!oD%3&;`em0x(4~?Dcc_&^C!$UUZYjSbe*LPr zSXEluT6%;ytTB3+c8fHgduV|-k=D8dJC~r0zdRkPU`Y*2T%rqtG z?K8;eqeZy7zAB_*d0GXAzpCA0(2Om24hg=kjiq*J2hvxOd!FniVoJ8>3(nE3u_m(cEP(5cl z9ftstu+7-&xJkJ1F2@k>uoZxgwZI)>J2TabX`=n`{F~oyGf+TFrTc37$|9sanrXh7 zu9ab|M7p4k35u%88sK_~n*Q6F&S;>Hb~0`PfgKwrWvW` zxd-$^yyUlrAK@i@`}`z=zTTLrW`-*C!)ShSij+$`pU$(0D}cgZMqT7h+Mf)ipl%>P ziSZ?!4w?!UnQNBMo8RWfSC^>aDIA}IlFv4+xt0ZLfWQVH>5JbpB^AHA10Nr;>2m5x zHUv%{jecAG{$60P*O%Hv`;$8)iM^L^U-<#`Sg?K!Q_6s*VytRg8xvK%#Me3;%I`pK z1X5!&F=LRi!q(V4E5&h)a^Uo)&;t{2sMy7tcOBoEmTj z@Fa%Mb#7J(hX%65G;8G$E8vy>1+Ubj$rp23ZE>oT_x9eoxU;Ko>2f z=tuBvR>zZHq4-h&+!eI)I}oz?WmGlSUT|q{R`r=8q2Ntu_g-ld5m4^B8>jDhUg#NbO>&^zhHXW_w?YbV$+&n=gNz*d@p z=Bjd?%@9Lez<~`=x^AmN)i0aHgD!d>*a)|Bc{f=f(n3o?^iX!xNq+VH#+uW`_ys7M zKpf>y^l|6(6es}Oono{Xp1E*6E2o9RIX!e-E?PKRzMlvLDut@!xl5=`CuAbKrGc_w zl&V@A1z??3`x>!fHo|onUm+2`GE+WqUuFPeYqDt%(3=mRV56j(m22kH0cbQ2AW3kr zV6r3E(hl0_42`f_eD}zDz!qGAK9p<(OZ4bMf3Vj&R8_bllR)5UPLSzR4}p5dlxRKd zesg2PAjHwK#~a~+7jH>0?ej{zrP-5V(EXecLn8Z6;(Eg8(j_{sETPwY`;)OjK9#{1`!+lUw@$3P@$4SZYfP2hAGH#@h^~husLb$P`rhIGAD?s1cs$ zhoQvGUx+%%R_?UhadQ*jeGm%je!V05I3C=zk@HOjP!djOeu7u=rJAt!xFkIqozQ`M zEz_C#HF?to7;~Bvux`@y+7Eu8Jst)tu@7ywBJf!X;%M z5N2RM^hS)V6Ki%~jMfoVNeRsWclTFsH{tu>-`g$i{VnW*zTHyR7KK-}+bZ+-Z5F+D z%x}6|xmlatTMpQfMRusZUWXbyh#(%@F8=@(aeEs%7O<|40=(&%+`@Pmq}>Jqj}hPo zvmq(gF?S7~Ip+na4u#cFf5Cr7X;M78FR$*Va-d5-fZpMjGSB6(sXg#0LX=I3sxfSO zczDYEj)Q0K9yAgnMXJG5?S^n&H#ZAJLtv$zNC>m3@SGj`=-umGUngYie!gcIhCSlI zg{a)DaPFjIJ>XqY?cjw^Mh&q_E`gv{3;^cx{nwSl7LK-O$;pJljkpb6+Mww#)!u9G$NH;-s{r5P`<6xt5&-($ zJmLl5ZNkQ5H3;BC4)iW6EFAz)&$NRB9OyNnobs=KZ2f14ZV7GG-BpLum};wwgSkfA zN&(Z=Lxj`v@85HK2f02<#8Mr%)XNGChwJ?tDqjss4F=Hn$?VT255R1w`ToarG7D#1 zdVjkPXh%9kN>S58@reO|^!KqV-vH`vM^|`atRD)4)!QqXbnQe4h&F|d@|8p9KY^(7 z?hE8s?n@m&gU)Wz1_7%a61q-*J^Zy0VD3nZHh}FhNEUh@SSy1TqGr^E8j!z6vxW^I z9{U5BGnnkW8|^jhYGxfwMl)JGD$1K?gF1bvp@_nIJpt;h$^5c7LVSaXVYWq{$@dUe1rMnpCL*<*O+v6BLQaD!$4o_4=% zHU%B3UT8VORk#p9$hX8NXcEDVK*$PyrfQ#`SqKaut8WyQ9cW?lHLPT2?K4GZTxAlx z^c)sE;bWnIxj+0Qne+>SHZNZ{NVir8v#$b)2!ZOJfmNvo2$>n}BMUM+#Va+Z~_gGHS?4_SNfk+1~Z*KWWf*Yeh`tIHCUO634Z`-7AY(f80Zv0pjH@#Zg~lKjZ)H$ zc5%>9tuEc#Is3*{Duj4I+X2`ZO9h_1xXq1xhfhQZjgQ^+@l51`Re1v2_5ONe^N0sk zn{8(#fNFH!G|G+a2q;2r_OE?18v-ATOL*6A`)893hJ<3yRHMCx4Zr|Of;jqV6M4d_ z3fQ5CCkKGKHkEXPBrYJNqANbf~GC!phf@NykgS&U~#+UAOtF2X_HFNDM;@4HZ7t(4j#cdirDdtSVU7$ z$K0)S^<35RL~h5z(&Au@GoY&|6_4&y5KD6+gf853rDa+4NGjv$SJR_l$rox(*N@q) z?(@457LAagBP}`OYcK$cx(tI@WOj9wW;Trm zu7WpE5{jg*Y(5etXch%HTN@kOSb&s@dabDG3cUD$jsu&M9*D;;0^KMtH6)d;hf7GT)Rq;dem7c7Lp z_MiK(80`fr!V@XBM1Z2LH_=?P$0oQdGzdb!McKg8blglFY z{y)Y295u1%?|P}R^Y=@em1RyOm~fzzv3Eu*2wyzKRKFjeL7br;IRl5bpv25(9|+T8aqjDd!|X z=aw_ko;PUJSNV>~z7(R)*!$ajjV0e)bBdJmo~tA0@{o9wo}{Bz>wCQiKDVyj|8LQ76KuXDSq&yIWgi0>4B+&N{ON4ws?nz52cI%Xfd3#>-Z*0?E6~e4$M?*AET~)@!@Oo0# zkhID0JW!Kbh{T(oLaX=1d*=slw9A7k*6XO*bPM4no)|PVttLx6V^Zlwx5VoAJKYL$ za8>Q2E!FL&hHHRN^c5YhxXLs0>4k>L#?N-XP2F+`aw+}UVjp*6LD=o(`O3fXrYKpp z$Gs>!JA1KV8tIa%ay!uLKDB5E(q_<(D$w!J{ikx#4MGrl_-)%r+{k!}iieGn03wY* zIfy@Vq+w~dMLSqZ{1KuC!PRC=T>H8oTE0v9(d+mM@JsxfQ|G4f5ZXi=9n4I$ccRT0 z9&u<<6uvO#2|ixQXq2$>eY9c9SbM&GH%Jfvdb(z|K_*fPm7vmGi#=+AK}f|ML|dl- zeYh3sP5Jx zOgq*rOyPQ@*gibTFO~HKUe@vpj;tRgyc2PqxrvTkAA2aC!N-R3iVub1>5$k22HNk2 zA}H2`&zb+kN=OOi*Pd(HjSUMKCd1e&@B^{l4JyLFhV3L9;9?TTtKikUEi=i?5J?3j zbUFkAZr`~^5w89iN(PT_8|vJQPA-CJ{-kjBi{m%%A6f$m4_dT=9$xKweffcyrb;Pj zELCtxn39$%Exx!?&{FFGhPllifyb^s1PO=(KQRX3Qz{jWdAkzt0^<-tv2^4dcYKaNlL^&z__aE`5A=h6_^vcqA|T_&l>s6gcN4AF=eDK>Pkkv= zgjY?c!G;+7L^xHr=Apkhcy1KcPFYA}d4A(hIZIdF_G zA->G5Gv9_jt#lPJ@!V`AhL9HN zEy>INumP~NybZnKBwrtpYBMnSEB^7o6fF;n#G3X8t&M1Ud#frCj=C71zYLE>Tqo(7 z-G)aoTi2HHf8SX8|37=p=)T6`$ohvgPv414KV7T8XRE;Y4TJeEcWwqe<$%v!?MDr(C^vt+V>kpKD{9XcvF+<5%(z?aICri*&=Swlx}JWMnTO zc;Ez5W|Pr-6R=Fa0BRpVxZ*!z62V4Wz98%70$=a&^stBHfsLFw2VV|&bUxTwvinlz zEl;cMXA_j9gtv4ausTvMzs|oYLt~ZQ20m!~N=r2uToyVGXwTe_%&sDrURVJUjd<4| zxcL1WupWK$+;Il{I@s_Bxq8&1X67w9$G%lT-{-J`R>6YQ3VZW*AHH}@{MJfJFoV>) z3Xb5A)H_o;b3Zo(G{YQa!*amsJ|6zi3wJfTz&(BOEt{s?r!VGj4jUR(Dh!qYxHto6 zMp)+yXkjeDOQ-{TZt4dlE}9{rv-nlCn6?-9@$1{0zU4@@a0bn?LV^uy#KX~r6h|Y} zg_WMQaG{<@BDmnW4zIRDJmOLczpS<~+L>XOiA4#C?jYgkD+oyqPnsR$fmircU&iE8 z6(}uhyR=~^DtR|{Cwv&6ZZdx#Y)s~^*UWeH`FH@oBu$E20cl*}1F)? zq5se4?*FR^|6lG+5o?DC7z)AeY8V1^V!;2+zxLSw%Fzk`M+Raoi23HRF4`l45zIJ# zi(x2VvHt>SEJ%iX2~;1VP$sgB-=N2zi&1{o5{g73Ab|jV9^6HG*z)}3E~H%ngpp&U zp_iGUmw^CX2O2O7sk~``S-e3N(1oP~yoP+MUR{unU!>rENeu=^9f2GqZ48r9n-~Sv z!r|p*^nz8~cD^?d^4bmLB^uNKb6Y|Rvcq8`?pn*8f>cHmR?;Lz6cE=vvirgu_3!SL zFUfZcF=)H^2=WylFzF5PLEM%4KRD%2Uc*bi_>MKbS4W8Tg6iyCOK z=O#N9c;4j0AEHF!3sljDKtw!%*1h@y{0Nu@BfEDLm_N7^YQIs7zeAW}bWmW=k^R6F zid#CBUwpG_@xKa-&rBkH<=|SB1x}(!hxKDA;qeKUB`Iq1A*JAuxp1}U;=+U7ifQej zOfGpQYTx~4R~$m6(!PZKQiz}a5& zF-FdQ1o7Vq+}a8$3v1l<8brm$TGLsqxgu~?TTwJ6w5_if!mG8Qti0N-!*|XxbJD0| z^8C_uvl{VCA=PoRg+F1fMGS`ujgU8;^Rzz-C5`KhEcNIa85wZ&ug=a}8?47IeDv3I z*ywiA5U6!;;KU=mx9-KQdW!xN?JL*>NPp>qYMN7h5OSz;2H4z9jM;@*m5AP@PBfKgFbRXsy+z24gJy& zb+YE(Mf?g(hnt!uB2?tp>HpN?!aeW~_kn8d8nyMMGAEqZ8`G4d>?1!-fJ?Or=(@~e!F|i~30@{NfPHO+ z13PimIS?9{f)S)1x)u8&*VlHz*24k^O@@C;>Mz)RLJRyUBo9vNQQ$q&WWR>g?*(Jm zFHjhGha#XOBW|D1$mE%mp^=TMGaz90g!jydlR*lG)J7q$XBQN;($8DT{F$!rjUj_< z3P!5WLvavD#)0aP0v;HtbY=MPx~uq?IQP@cGkAiw@%$LspB6xD1WDnqqq3NG3s+3H znX&o-ICY5t>+zctir3XK4{d7dxNN!v)by*Ob?w$D%bijg4A}u#if`P?%36b6PIJhT z`G0nG?sxft;)7KSLbGrWVdZ*)zX(?$Z~PO9)iNWN(H&f!UXK z8>X@$Ka*dIf`uO^MbcokIR)~{ApE*};A4%tQEhDy0YsvYsP8956d?1euEKoxfDIBa zZkt9iAWFCc8Aa9Vfv~^CYN)dYioNjLZ4o_aR_UPmJ66!)!}lOM35Bx{0rhfdHNF=e zlfbj6u%b&uEQ6R3AuJ4tW6g92IlZ8F6b=YUA(H0N5{i->T1L;H7C()_UVkJ~BIWHF zlm*&jfV6xo2x|@iD@pQ-W$>wd*-OWui2EQ)Ih1k{i9fKAVtqt8I@kT;XoM@-2D!sX_}3+BGsfQhP1t|#fREe#4xM)M$kwB$=< z1p#ri2rlq5Hj@j2gh#p~C2R&LM@hHhnp_8)1$LusCY;cufuc{M%e%5(4reWadw$aW z^~Zxtz4l<*pfjaVbZ&OZM3v8!FN9>Cvrt141y`bJ_zWlGHFCZkm#o*lIE%&!2bLv& z!!CQj^HosS^s$vbkbf1!Ru+RG;Wr3z)<$KDlzFKaT}K?UBwwI44DO;V)@dVf>Vp9p36nSF&u(ZqC&Tfb)I z+QkXxL*0M>0_Q47dmXBRzElVqi_v4r&9+-O@LK|F3klLg^Cd zLUZwyl>=A_$QFeWAY5DNgHH2`gVL^OLvdOHA)wne6Z|&IU}j)HUXsFqIrNdL+Vy*^ zDJZ|Y7V*&U9W=o3%E_~ZGp5dc3CCrN4nr2oef0=o}?b!$|CeQtJJk*7`R zUY^sc);ID1!)0xKztTlA36y4oo5CtZ%Pq=-qk!GWxLXQtDptuU7-yWa$%%9Dve9VH z8gWqW0u6zoHCkjBo19P~07r_cDwrq_qR@*3Z?V2Yc|ArJopBd=NZH@`S9d`B72yFE zQm3hXD?wp51DeG4Hl_zttL5h{9jrhcZER|y8QrJ=+?F@%E$qG0^Q7Mkd2TUgW(>hA z@PXJ5uoA^KCiMc+FN93mgR<}5{u}B)2ceAbXL3QDh&9izAY$t+Pi|C$8L@& zNQbmS$OhMmS11*VGKjcIh`S2zkTiZNRORODISu;O%USOUTGFyA8x9A;I=bbR_z=dF zuG(&?u!v9ip;^hw8kx!jW=>0`HaAo$Tq2C)KHz#nwdwqCZtyN#^}uJ7IZU3Fg5pKjOfR3K2fvEZs)p2y@-TdtRACcXDiCo60=mM~;9G-us*dWiHq zOjt{f?|WRs3c}Pj!*f~&>3PH}Lr7s3-z(4eaA6e7Q;(lae4^}OqH5A+H#r_64gpO3 zVe)Iizi4mpksT=YrDH<6bxgQUt7$kn>-(9K1(KeYL1+&xdsxbj zC`B>7XhQqrDaTs@XWh83fC&(9X(c0Z7dj$c9c9JE5tAro7|{0fKPbL2OAxK vi^?i}Qw_^_gfOiNvB3Xrdjrou;BD@F7_FAx`OX187h|And@BFM#XtTVX~*OG literal 0 HcmV?d00001 diff --git a/report/ingest_json_small_time_chart.png b/report/ingest_json_small_time_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..e6cbbd03d947203f4a46781e603784e51616fdcb GIT binary patch literal 18212 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

Q$P^mkX<<-ni_P=dkcr2s5fY+0^ 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%0A)luyw_ zgE%vsOB30}>H#bIl78K(nlU|=`N-hOTrU(n^D^M0?(|K;C~OqZSgY?{Dn1EX_mgBJ zX8)G!iF5j<3KNKKCk4c!@@4i!PyRemMn=j$;4CtzT`a^W%_<6Q*ELxo-*>axf_l~t zY#U_YhOAR4IemxSeV_(k0>nFBcJdS%hO#%AadzI7p;AwN4qw~$%i0e zsI9ip9*f4${*)_&YR4gOVCvXf3EDRuu0Axl7V;Bwxe#gSodICC!ZSvu!H3JJh&H)j z*7|}!(1tU}WNQv=6XEW03T&;h`Lzucso=l2uECcp5UZJqW5=j?X&3gb2Y%eK3Zp))WwVJUPO^05)Q;F4#lW=UzMi zXh(*RdZBqW43p#Iy)Xf+(kr<-BqB_NEPE2@OF%>D<8!^P=}GuN(53jXS?-|p>i3Y~ zp@>v3)yg3A;jJK+fO;k6F_Noo(NI22gLTM*QE-M04l*nW#t@L^sF8%Rkh?53ovNEr zznbQoo!_idYUvQK&xVezX(9ioj~u|}_U#}?$32*ZSl!24n+jq&S%s@D8vDc6MwItD zfO<)0fqLoA;K8bx{=D5CG63n;V-bbE)pyqeVHC9%p~R6SfRJ7@K-dm3>%v41f+FdX z4J6|XJW1yFW#FZ2LG-b(6)W!d(3AvhG=s1oaNUZe6$_Z|afhX-1x-T8tzzaP9}{61 zK{DC0yxi_VEp+NKkMZKc<>YiSwFNgN1uXV(xD4IzRnTmCTIiOj|9H4(u&bJjt=$w1 z+UX%gFcwa4bJx7Z`?!(6QBXWnuge4Bbk-eTz~BwLP@IsqZ3!rTVc_Sy;E^5M%r9!5 z7qDVp4Q7Hlztk>7)kZ)<&wXW7d)#h_@_?0j@kuCX%Ul=+*HwWj{JFJH54I3~Hq4^} zx-uJs(jV2u<+7_~uz)@5t0)Njr5{Pms}o8EapLXZ49vi2BGbsDp#6Rg2dXQHX7~N$ zpZof*#VZgCfaZyjhOh!#$sAb*$)yGZt8-)wIoA(K{&ZmZG7AQL$Ja)fldwNVL2l31 zE&B23U^J4zo{>g9)5xpmDRux&9k`NB@rq=u1CX1efE~V(b->cLo@QY>(Tssbrfo-K zsyVh*L3Ic0A`ML)QYpxu%gAAnT*1{~P&5j}-zdPBSCc-`L1cuD4x|E%n|+Y{E6TCq zP@y1g!|NYc>1BE$9#}IR^GM-tMTc3Q>WkEz?-}Jj48w)?L_CNf29`0V#SKy*`5>bF zkYV=_U@;t;yF@Q_TF%xrnm|TnX+V%J1ig1fOnby>Kw2hIv-3)om$Y1<)pm!BCv)W4iznDIH?#ifD(%_`=AJ>gq|=v zyr%cq@IbyD8DxsW=ZNzs4@AM?fnQM9e+C2RArB+w-p}jPa_Z$D_P(>53`7&Il;7F; z7bD+~Y#LoBVbldh*%LSCb>pTX7z(mWlJ5vx{Y6n(N@L*{&US2%gPOhUI&H5e$=mQbh28#<2p7LLsP4$HPWP>S|?NYEU2 zE4AIWh0deirbZD=t&mIAt`|SeXOlcTw~J+TR6zfPhaub$OMJf~s{I%|B(BbwM+G3h+9)GS6GrU2 zo=;$L5s5MPxWb|!-@{P@rCHyJBsD1$TqPH>eB+WxRE&(~o`9pH?r}RLwYUq&cpe+^ zHy~XjK8+Q3c~4QQz?>W%XZl!G>yKz@(RWY34ud&tGRo{lo86T&F9@zH4zmSvpUg7n zpcRcXi)y1EX(~!8docw|kH23ccdi${r6YP=9)r~)6GDzV5Es1A;jj_V2P{hWer>D4 zkE*q4{0V*&#h_w_pfc)p5i$%C_0Bd^wbW#?*+a|n;p42uml-Hgr z1ZzVR+wQUrLGLeZ!DC@cgHQYubou|33&EQ~u=Z~BB{|8WWI&=U4 literal 0 HcmV?d00001 diff --git a/report/ingest_ste_vec_small_throughput_chart.png b/report/ingest_ste_vec_small_throughput_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..b7db65af305d405a5549e913d7143d07fd29fcfc GIT binary patch literal 24922 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 IzA8HNZ{NX=KmY&$ literal 0 HcmV?d00001 diff --git a/report/ingest_ste_vec_small_time_chart.png b/report/ingest_ste_vec_small_time_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..5b755ecc0e1dbdb20c9ff7dcea1aa23dac999e8b GIT binary patch literal 19890 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 literal 0 HcmV?d00001 diff --git a/report/ingest_string_time_chart.png b/report/ingest_string_time_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..db4a916654b805bc47dbe6cc1206a228c3824227 GIT binary patch literal 20738 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 EFSv5vFaQ7m literal 0 HcmV?d00001 diff --git a/report/query_exact_eql_cast_chart.png b/report/query_exact_eql_cast_chart.png index 5d82364ae9cdd7c3c8987e7cc059a2dccdf75992..6ec9d26d447d7d498598812d0b26c6ad87eb817c 100644 GIT binary patch literal 57625 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%0DS*llP?9xVaywcV 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 literal 48676 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 diff --git a/report/query_group_by_hmac_extractor_chart.png b/report/query_group_by_hmac_extractor_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..8b0d6b1660617d9eae4643ab03b6fd22b7b72b21 GIT binary patch literal 41328 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 literal 0 HcmV?d00001 diff --git a/report/query_match_eql_bloom_chart.png b/report/query_match_eql_bloom_chart.png index 5883abf2ae94fa49a1a8a4732e8e82f32e613035..24a6aa78886092bcf863cc830c492e7185321770 100644 GIT binary patch literal 48008 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

$G0D|eGHv?-J67ybkvcWOovuwIltkQw$Fwqq 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 literal 36390 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 diff --git a/report/query_match_eql_cast_firstname_chart.png b/report/query_match_eql_cast_firstname_chart.png index ff36eed7812d5244b1ba8cf04850e11d2996d6ae..4f6af9151faabc5f853ea4501a0cdda5a0e771d8 100644 GIT binary patch literal 44590 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�!%w}#yl+yfac!|5}e`r`X>@W^Gj}#8dU$; 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 A=Kufz literal 51553 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

p!m3bDp8K9Z}e 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%0A2Wp2+BMPc@CNC2ljb92cS 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 Xw>SwYLR-u@@}nwBnpbcN|33U*KU!*3 diff --git a/report/query_match_eql_cast_lastname_chart.png b/report/query_match_eql_cast_lastname_chart.png index d66ed14bd54b883f924cfbc86437c7c2b63b4413..67ee09a7ea1cac484f48d48b8e612701c9dac17f 100644 GIT binary patch literal 49621 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 literal 52089 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 AssI20 diff --git a/report/query_ore_exact_chart.png b/report/query_ore_exact_chart.png deleted file mode 100644 index 343cd2ff197446c57cf6c0dd49dbc9201e4480a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44108 zcmaI82UJsA)GZuQRIs1|qDZlU5Co)4M^sP_!skqf;-@U63!3xoV6Uxo!y=y%^)gIogHl*oNcY1U3E1>I$1f`3-Jlu z;k$eLs-?5Dqmu+bzuo_Qg3keI!T-(Br43w##_^H969hu{l=9z^Y}qU;2n18|_`yAG z_r$rO6Yf#){<>u^CE6nwPM(W*K6YfL)9b`}uOkoD&mEh|CYE7vX1zrVQ?s-EIuEID zfAU|ucy$eWmFwgq2byE@@|&T|w|V z1_l9Mh=*+$^7DiD{`a`3_uu(r!qh1-054tEREC3hI0<>~gLep*KoA+qt7P^hh!5rE zNI0)_WdGeL`bHGh{<|8u;{SQUe^_3_qUjHcY#KY8B>3kCG}OnBqiy^0X9r91#$NLx zKY#u-TJoinTJmQ(TkpVk@7_JMdg@EhwdvGw*>AigCnNE!3@ohx{8jf!p z!ney1i8Bz0KVq~k^aL0}gIZ@-7il^ze703=WV`k2^t2^0|9Rtu%9SRbcwwuLWp0bf zY4s{9Duj+SMQrm+>Qe=l9oLDwV8|uTlpCvA3}F^gTCCc#?{U!@a^4tn!+@XM+}&Cf zahcWjkYY=^`$FDlb4}y<^Ys1#E2ob7ttr_(EBM3tk!q6^pLNvVu`%qxEw$v_TgmS7 zXPAZm4Q&}e3S}0-O^blQFgS;WgoKo>a}4nV*6YD?c29K zBqn3`dur08DAJZ9yHC2u>ZE>v2@Doecsu{mhwEtL$}*A^2z?3T$>hbkKK$nBD>`Aj zeqp$*AtI-=5C^N!P@OaPiUQ z%&czdjloD4FyeWGDsPW4w(4g;-xU#=Xbo516EM2OO=4cJGJoZBQm@jZN9syS?-*5g zHmdgup%wYn3r}lb&%_woHyTh`QC-77?+A38+-Q+QgNto8o9upckzLi(%7k@3sj3_dvQiRi6L~d z+v>#LykhyATI99u)pkRbzq&Yt6{}daTH;*+47%mbn>Sx#?!|Mw&FpNPK+Y`vsoh*@ z=Ep`fZSR6m4AJJD#yfYmv`RT-nzzR5FGh=-Lkn8A&u9gizbs@j@z%&vP0F_yg4>JF z9|iepg`cutM|ENJD=^MCrE#m_X4NC)mN17Y3>*_vwK>Z}ed5I4f_F=2;VEf1<6upC zPS_XbGK<$v38HrSRB0{ZaEwl?fwcvnxyRsiM;g{NLn*p5E5+BETGm`Y(dxK^eCAxV zWi%9?FCDATY>Cc>nZ@Mz3o`0YE~`8dGp##q)3QxowHs3zjkcQpmDR89XSz#wY79EX97k)UY`)vYbQooKHc3sf2We(1YN?{Eb5>EDV|$yu)%o$? zuG~-z+ioqH>B=H@D6;R=PTi@@;S(;7h&X3MW`{tyyeWCo-^2>61RXB3?{xUCWGh== z8T{J9_LdQBQuC{TX`P-*xk~uW+CYI!F->#X%_ImYIrqQ2Yz-iJy1i6_%^vUyHl zGrSsI+R~;Cr#^P<`H=ahf*DjNH?E32d4-6GHw(=Sj-n~{b+9+@OVKxfbcY%u_osHj z3*@xCxY3*CARm42r{OElP>${Y9#!T-+_mS5_Q{g&`XU)=^>=5{Z_m)<=bXC*)#p|I zOp|VQ0iW1>U3pa9C?}%XS0FW>rY~O1!M;2%C&Hk>QbWgd6{HsZYKPxn?zKy;hS=qb zpXiGnL>X&yMhFJPSY`WOn-U8aQ{HRK3#mAuFjx%vA>Wf&3*ZAwFj(tAnC=3&xX;O)IuNrRvJhZOi5a`ug}av2PsRwicgKiH9` z`TxKy3=8VB8L`Hic=Og=h4jqQNf35xJKaPhBr=~cov)pvsdJ-Ma-pQQzv*uI(GzF0 z-4=&+@G7f!LHTpIOpi8J- zDpJIJak#Q44y-->@~RM4$)5f{X1m*D-5rsm`@h4WK=$0IjElR3>1+&CGspZbDY-mxiH#Ow>uS!J&C@gkF8`Dslw zMdRhUSMk0(oB9D!06@{5VV6M+6g%jG+KLtEW53}Pk`q@J5f#Ni{Mbk&K}AJ-4CJRB z?;>|x4sSy{bC+92#+VVR9nm#&+dVak#uxUeJ5%L~k>3uf#||tQJTyruitFhW8!9fR z+fJ}`Iq0hU+=wZfa+S@}51CW-fpomuyx#RBi4!`Mc!B*jg=}te*0*6yMF6+^L4f{zvo?s9{ZN zA98XI*ZVhbxPF-h?EmV&qj@RbYVB6`AM@n7{Ul4-!WFHoteV={*CTJKp~2Rr-mDG7 zG|%}rPVMs-WJ+;FkS5uhoLqfJJVjsBk~x2B!y}%~+uM7aU6lQ(AZqVUysrai;{Jjk zMV?oh2xyUOx|wk8+BLH1l0d4qr)ODVu0VC$dGdQ2fp8Y_&uNO`Xi)6D?e_;18>$YC zMR9nc0;2RU#-^NC`h$$()~ch;gnhDdt=(UdqezB9>UU&qb2@IVYt;YJTFksS{r5+= z|9j_SYQLE*_fcpiWc>L5CRQca0RSz8TI^b8eFF(%c4Ti?%wh{V{rhWLT^MU~>A_cQ z0yW8T^$Dp2FIDTh$=V(@C+WP3t%Y)^aYYHCLPASk{w1NIKahoq_VfB&Us?~=&`|Pg zP*9M5Jtr*g(*+Kt23;hxFY3jlNSyMA>ko5@ZX-U$*Kgc_|2q23p^B`)U$OMEeR6-i za;oQ)CbU+ISm6V@*9nWSM3`59niI21?d{u7B}usC%V&ck{(Pv&n~aR+(NzWM8;(RG zd*(si(g5iKo~CdHGgEk3>)h69>Ame$olixeEc}J{0KBytlq1#J3HdHS1IAP zU<>C1*j4F%@Y%wb`6Grgu3*{E2Ap7Pkf`$8^92>3k4W|lM+MV#w;=k99UNMxK(*@u znc9>Zjw-Sn$TY6>%+dS$3~E@EyHLI73s~WGVo5KNK&hJXA~sMit_IJFmM1nNRX#mZ zRog4dF4Mp6ef##UXEpHkYwOwWoFXzTMaJmi`-^a}GJAHa{{20LVQw8ZtgMwzyv%?m6hlMCc2AuZhwI` z@PPFZqW^hgu!Y?@HOLcHj2iR!8r2@il1U4VBo7^9;e<6-NON;Hq7$1=KgbvQ^HyKN zf{KaWGOpP)Tsp>O+hlJu*1qJ=aUVc`J;y&N3VZ)s%3YcQm1DLeEtoMe*QDB*!nr;_ zd@qa~Z(wO3xoucJ8E=yh{ls@m`?8RE2+$aW0SO?M(G0-UdrDrIV&2&fS9nMOI9Axr z-xaAQlM`#=+ecgA`|r;Qm1L2*+Zvj-fijR1-u)U*59UNOaucuXY~ zL9@W$5aBYL*)DAch1MA|KAY3yjgcS)e5~5tw6O^h51uTnTCTgo=QOYH~~v|)a;ww^~z>XDFQVQWYEvzMG&Pfa(KP)m)+t^vgRCum08 zEKdCf2gk(A)F}NX3r}SfnpG>nS%y9^?oN~Y-?z8cz|0yxjm_y4ycec_-7=;FWqoao zg8$^>bd5bG#ICjfjKP*7aJjVE%}?2GT)+Mu{h%rF6-~Oa_wvtN0d}9Y4~(=sYh7wO zE-0E;EhPX!8q~Mu*A>~#PYovO(kqyGPNxRvZ@xg)zX=QL0b)SzRX$1jrlA-00EI19 ztcEeZ^ZEBDc(W^I_jxPf&T6F|JHOU>v+vnp=NhzIz~Y4)r;{aK3qB?^ayK>$^t~&%UWgptX&mg5X&mk6*JrMn zQ)?=KDwvz`BJ%>*tyFD$f#?S)<-H=?zGu`H=8p%+urxQV$7b?nd`4y43#Re3U*`ZJ z!FiHqXTWm$iq7U#P0Xeg@aB_vA%X^K(7u>-cM>rXb=hX27p&CWftJok^vBHoSn#?0 zLJ@+3uLLQ#CdVe}qmHQ>$=Ueq+w(TCJ2yd@=~Q>^JO<;k)35nf$(Jljxy8(9+_!eK zHKAIK5&kT?N)u5tZ=c6hqt4X@YI24MLbbD>z;%bF4|kGt%U^R-mTtW7XJSD5NyLIoZnE zH}z4?gNqa2Ul#s-+vcHJXAv`jvgV>!LisA7VASn{rA~$RLlPLK?w@fS-fZDhA5(gT ze~X?eR>{yY_cx76L|tvtCSA(3=J875T9wMA@mS9YjNRHswP;GMCT0edb)-M0$GB+$ z{EB^-wrb=xU#Mfc{_{PP;kB-e>5=N{!qbaDdMohMFyq^6ZWE4c&rKF=hKkt_#t|%< zD|E&-jPu0vCVeyM^d?uN=_^pPcmQaOJH7XTd}*`OdLUxh1e3=1gQd8R{FLiq+NyWm zF%>_e6W{H-vdE?i`>-iOnI`>GuHIMq1Tlv;bd+GrB4Clpnp#@?zty0TG!8JA4>VRS zXI(M_TvZ1_ZR$L*Z5$dVBgkVlzLO(-AwC7kc}^Cg$mjJzBA<1F0EtM z1*%ef+LVZNDD1Z>)hCL8RQ?Mkqmmim&PiVv_shD*|45HF%mK4{RIn>?K$u%>=R?ct zUb029N1Z3{WMTXg42>A7^#E%5BjYbL&IS=h6%2+#_X`U*CnP={#6|B9eD88N;YKi4{{WZ^;)nAqhg~ zWVYsnKzUbH3}b0D2(yTL((3)X zw(>9CBA!&|K=?$?!=Px9_8(cLGgbuXApF2_hg~Quwi~#B37}XZ^@W@IlX{%id%Z(FWv0fkMi62Lb}6NKn>$>`p73D z{3hiu(l%|vCQD+VH*460&9tq#6^Rn|Z5%xpO>#zLW0B8H#PiawcCzoDQ$NGy+k+CB-viZX@@lvqXS^R@M0+%>c zqHv@@-Ecw^jFK)dbA zaph}&61!yO4g=-r!74WC@7Z%-jdMcX z->sHA?_mw38{}OU37`I|gc>rysA#{vt&xf=)$Z$k7KCh#8*MQPjQfu7(d1&`@NI*Bo^{A$BRraVb+p2#*S=!A& zg97)Ci66JNww60^;lc%mbLTz*jm!AXn|{1SxIwW!7LXR`?b|I9qEEjci{{d}t~kupFClf7}(Rw}paj;T6` zM0d^`D)yJWYO}kHdT%K2I@{eyn<{Gi`%?_Bp+PaPNfiRngRcHUo9M*E+|f}djyL~{ zG7!ryN9ua6&*e}$KY;MnhqL!qc&rMWw_H+5l7Nr+Zea%(D#$0ZGBcrf?x=fY03_aX zz^}Y!*zzXrB{S*LTyws6JY=3o#wy(NvNf$Z@^GT!&pmO2)6Im%v7pNu#=ep6D;r0- zYgxp`kQ(#-g>cZBz)%444(K*$08(CH-pV{M&-p{bkDN^2`F4U`8-YOR1V!p+#*jKM z(2D@k8FRgPpIGd&xA6ePPg@D}*lbRf_-TGW@_RtWQ%jwu4B+~xmQ~rcU-zL}nIZD` z?-NR$EbRL7f3E8ZS+r?WG$}_cNQ@x<1GdelOx*uap8?u)+1{_z``G$R;>h%QfoIR2 z<$i(Uo48kj_CnGEz#HpP1@xq%dXW|<)anP1o$U#)%oQSeDy0|bAf}b(PA$hAQS0*q z7DIap4pm>%b|!z^l>4HTliKjQl=6`?1uR3>BaRae?133JAzGFQy>II%jw0sUdM zSFXvhqN01=L%e?PD(T;e0ByeOQSuk*UE`qHut_((a~@z$`o*_6IP{~nP^sFk=G-YW zSIp#D@#*b|7QsRoMHzRlJtH<q(lTp&Q(z#yLB)O06WoHM;toy!dR z2Ij!6)!~%N;lp`O@M+ZY4|=s}Qm;wzcRsBQmmFOAf&@>6fKIMnDrlVOr$*%n3c^ZE zH}9g%d^2Zf*!TVgZ?4Z{rjot*hyt*Ps3e+rHlMYQTq38pV69-!UUbf&AS?wtVmN6zY18%=mA2f(lczUT7wFx`lLxy>D0g!p zx~&=j?4AV#WW%Y0I<@7>_P+N-vtQ48tIgUc)1t{T9cY8yUhr-Rv(dPvv{KkCt4ib( zRV%jZQDp|OtBig(H`w@>1Ca?i?!n~pt>9q{H8x+K`V29wRz%uwp914UcdR19X;0c2#~4FMHKT~~9|$j-)y zgNTk;Do_&>3hV|%F|lx0tU=*sD@nP}YN-V!B!L`%!)Om+Q%dzQfh}?2X5KSSXK6Ah znQrv&2)pjQc+N)byheX=2J_!|Y%kT^NTFcj5u|X5p|yy7SU%})v@T6*H{lsH2KilE zY2v0MEqBtYQVt7RAD>C+YS5mJ1Mo{jA&8a{s8Sr@r<){Vd}jJH?nq9XS;%KJ4?SE2 z47R}2=rZ6-)$BT%ElH5~4BRWh;Z~mVN$t1)2<;@DWtDi&`%NgXQYjj`5q)bFj7PKIJs=S-jlZJ*r$eOtCaIYw(C^Z>=X$Me^M7uI1`gbuGO3__4`*(xXDCmz~HaN&DJzluVz0=D&;!7z*EB-Wz zFn-Riv}|CDC{l;Y$P8O6CHFN?%eS2M22GqUfSc2R>S=JV82~`9zEy#1Q64f{)MnpV z=$$LclL-`+HBr@~M^Kdh4k~E|#-UB2oOw;!Ze~@-yZD;}A5x?}iVlmBXk=-p!Ph2P zK^%PJWwfS*T06vSe?Jjn6ARz++uQK#S@1x$;5;enIT{OFT?0#HXHq~RoDB;)55%vq z@N7Wa3@S0W%Ju$c88^!Gs$bf691qzo-nN(@F4LrwupqveVx}&c$G`=xNl|GeOL25T zriX{j--bJ^)sBy0rq=l8M4I!klOK`}G5knJ5EbZ^`KT*Nc`T1nz~aoi5s}rNgm>5I z|2-d3IqS;#K#&oZd89%g8kdywQZOL8l;L9O3Z)qY@#oo=DfjNB@i|whh)ZEIY;7JW zDH^DAH@b%uoxN4aaxFRsezmQ*msm*4c>VhId|H8RUa`h7rJU`CW2&X+B>ptTafD>{ z6M-5|Y3caUKia3HI9#`Lp1HmFXBrJjm!Y>Fo=qZ(g-7Z7>fB$|PS^@OXfwZ`{>;q% z{fdA*_vm$49v42bV=X&g!Ua0D-(2v%$;Yjdk|+5oPuCV+{G)X9m$b?GBUu1#a$uVK zJOdNYEJjoDR~HN5*!C~Lj+QkT@=V=Tr-amh@Wr(DXF`Sd&oa_1F$sGamqAPOW#dU( zcDH6&Puh6ykTSCDE{Xc&AvkZ)En*Gp+R~6E{wkVa9#71uzT4Y4v0G?)wf0X`nkswF zKAc{iLA)RzdUyQWQPEIkx4P+9X610_J^3>)+I3d_lZph4-Oh_A4Du^B|Iu`JNoi#) zeWebilbk%d`{s-!B{1WeQO@D!wlbg9Vs^4$e_dUBX%l9BjIA(q`E}F>{6sBs_>LYe z&D5DC`asRn+js8#>MvRbT`&p;avA#L$W{IN)XdBbvV4f_8rI;Kf&#rQ;_8KS=SC@h z9>BqBRBvTkclIBRuR^}}yw%>Bb%?pgc#V`*yZF(&Lz;45+9%&t+~bOFhFyhY4MbR_ zJ-cZ$SG;PTK+9SZX)+?TChs}(_h)`j;IDZ?l;EeO3$p!;_X)FhupuD z%=fAc3X=eiZ`Q|S$e&xS)`6ztQKPL0$07RA@+>VeCVKOYi<0>sbVz3&QTsmR-Gx=M2XVx!td=tjdL`6M9KN zp5h&e`3-2Qk{=N8kfg%rd=5?R%84*8vq>fv7T5t*X?V4mbot%jdFAdDOl_7F^)&5ekDp;q2YTy{SiOpR^bpX8MBJC2 zP(;I`0U%I$oVhG`ljsS$+jw7Dr^ygtpu*vd%4aD}#f=d^2WgYH7dV8Sr+-O#7=aK2 zD$3bt#ip{g@I~f*Kh8XBau(jp0zVt_HFWtR55EQG4^s3p7bEu{eCc<$6*w1wqx?jq z0Hw2NlpmkAQyjbcKa&|KI zbA8$>2)qei*C#7M%iKEO=Bv`NM6e1K5d0Pi9mx0$&jqfl#Defrew$>%fz@Zy44as7`U zT;k&T)a3gYn3yblM*DpBJAM)LY!0t=wpp^;#aJ|>r++ffCu2PW*3Z;;9(~6{-t<+f zsH(1b*v|NpOCp{g@u(`RzP^6TfvXTSgKSENfWA)-HZ?4;e9Aildc-N#y*N8kyrA-4 zeshKIR~hZheyG=PGiU~oY@g2$GBGowUv57YD?b+Bs}Ui)-^uW=h>e=<5F26bVQMbU zfe*6m^h)b8QkmMBN~K1RTaw-+hAwD5QhyP&RL9V?IP-0a@f;b>MfwxWjs}WSkE)N~ z4`Bf@hvyF-1iDm$*l!X|_Rs|d!oWSFSImnj`9+({SK!=!hf#+Koi7+}7$JM}HTla{ zEpdO&$3y99xHoM{zPx&s8pRoH-AuSgjC7CkLziP5Y(@Cp2&MW+#)j-`BaZ*RZLB4> zNt^g+0w!Jnx~sWF@JAs~yx1vyLw&dsrCCzFOUfG=91#{UDR;#d-bk4dGsA@gB?|PV z+i4RQfDguoJJ~8?7vO$NU^DX^3l*cZ3`~CN?mHXgc8hLt-lHThc2T}wx%%5aL_`{- zxL%YqO-D`KAUp=IWD}YB&lblO2liFr)7s-a>P=Cl&+SKR0^;vHeM#B^F0rRr>|Af& zh{J*d8r8B)aZ*^r?3v>e)S+9Qp90`{mC(HNl!*9m zH+hc?f7y!~HYrlHlI8t%ZpyZDdf5KTmlNy?>4RwgG_i`lyrn_bcU9eth+pr$4T&zZigov;>oU@iIp zs`FYa`NV$9Jgf9^75dOrs;l15%_y zmp0u+9QmJG6$Eqk&X+MNH2Hw(ox!c4;{O_;Bm5Z#E-i}iwu$iPQR=6+sP4agyBru8 z?c1S_<;{_m%Kn`pP3h6Nj2CS#$Wp)g*~mYRN-moX9oA8a(eY$w+>+m+{Pa(tOUZM7 zSZ~Ln&tBZMwd>r5t%%!VLFjVX`-Z-8UvY!8vEMOUASj5#io10GP@+)#?5mA6#go$i zE1ZE*A29zF&W%2V#@$0#?Wp1f%}x?w^VOy&+1y2P3p?z@tDWQTK5$7b#{h}))gUc? zq@*i-=G2jdlh*~kijDG1{>+^-Mu(2>hdligTMzG`#cK}BIQb|S?!awmkz(c z@I*5FC-GIbv_yr7<|`KbT8UF+V$tLTU(T={vVe`-BB)L#i6`PeKQQ$d4>DT%7OC2- zT>E)D%Ndt;of{i$1D71+G{ha;)x$2 zSYrg!_!i~a@&9M932SM2T-{E_r)QLJB>eY{fRc1!pQ;6a^E|ygna3lu^t$QqPTT}o zvq|hDru9)>?{f=nX?39lGN`6zNSM-qAw3<*o z2xMi)e$hIu&+!O5g(d=!mG1;@K!VO5qSexI=Vxe6tn{ZKp5E!0aR-r(LhWluxB;QH zF=*&BFF+J}JyvC!Vhg%>_yyhRC$^tu5MOmAMIRWnHdnjiBAb&wxJcbs%~53sIq)N1 zQ>absP`0g^7(gx+$h_&tcC(ukul3qW69=s%7hW)Zz%=e43t0Gqbf>hB_NjC43x_ov zOP)dur8f-N6?d|sC#nf|dszr4?^<6Oqv5`x+Z;Sm_Vf$Gg*GxZpZ|e7-k;@>>Z)bG zTQG@`zu0}vzHHd}|FS8?^J*5a9xS&}w;#zWgdZYXg|-Bxq2v{;jN3l?yfT*4xq!F? z$79Bwkum`+|9zZlzX=h$mzyHS+kG@X<3pPY(%i;)!KGw8+bw}2JHt~2rp}c-I9#63 z@h|qceM)R&StKp2-`Er}m#+VA3%~U#8zCmeW%2$g=w&8KjtU;mF0FL9*!@#}cX918 zcD;p)nZ$NnDVpV+sU-i*!{+88&k}^naixb!44Y2J5!?r0OD;7Ul;dudU}3wy<1TMg zaC>DJxo=N48}Sr?)CL;v+7vhrN3+n@}e3qHK5SpjO7Mf$eA) zAKMFBJ9zBK(Fp#-pIE^jRv9}Z{G%PIk=avI5~YKe_3MSkwH1NtsV^;^;pz)>k5p(?bTaY%#>w-!vbUfHF4PbT}k$XzLhZ4y#D|*}2%gGT!U? zvrs*Q>aU$?XRS@+kZZxG!^}+;y;5DtUS4&-#p2Du(#LJKt<9BZW3?AWF&?ED z`5VKmHEM?=!o6b;OY8^+HG{O}Ao5#8+3&@|S22D!rs&nzC&q2X5m1e{Zq!RohgX-f zGp?eD7-hEQxW0|Tx{^sWQZ59{a|aSx?E3)6c{JlXhr5`+{L6za6G7DMs*Eq4cvEFu zbkFWtbx$?oJ;TKaOAw>XRUn?>9Ok;>i^}V4;OJy{f>#MDg1I#!A4fY*I>4 z&B#xVjF}-bFX7P%niZJW1Ny(mtpc|UgT#H$q)QPbl{eI4w?0H`)_R>x_m_v7z?G7u zy>x(SjN;33-kL8qaSWkJl>ziOmk5sh6am#o!gDSAA|E0fAa&_~qpz4HoU=LAl5JW4 zukfaP|oXST#h|Dv+xm5dQ{rfGsbYV!6a2X z&$u$Tc~Rh+b}4d#&wUPvvfZG&RN%YgIpkP-rpIm%FmGo7zh?`3jq%Vg|BHmuo<6Nz z=}9U8?E-MlV2AynE+IbK1&^&&o5?mV*9uDm)y1=Ir)X>jBqFi@5>cWFge(-*^cL75 zq1Ug=16Q;5R9g}WSS5|X!HWDaKtKD@?oFrDPivi@aF!@^oi`YA9kA<(11%iG0PRdR zY0v3sUE_`%t*qSo{ep!^>`h2Dll?i3<gMe#;}>+Cab^>-+1{8S~QpMQ=>lQ?%5& znPci-02g#_zfHsdw;aU}SiL>LuVWTX6OZ7F1wBJ^YMs8)A^V`@XH zu)G}5aRNDi&Dln=szpY7a%y?3-p*7o&m>ouKyjskzYah%T5vvQO;KN6$vh40uJ~7} z9<0>lT5x6oa@Bz)M7pyH)7<;9G_bcbphi$#r8{ zaxxnW%iLaSH#mhtIhhpA?}yVj29w~txn^ZISfZhlAX;euJ|v`Ixcefn!Shfupr_XJ zEllUmJsC20oy8cHuRq*+jGCOCT3oS+qkD93H{#M{?E+mMrTZec&__Wx21WPp$@*fy zfy6j3^;|NUOQ6g5%VmD~6tbwMH!M83T+hNW8%%`NshP@UG*({buzj*>f z8>Puo3H)}RJEUHp^)kvNU6mE)4+rwoV^DM2Qn@!V2Q{ZIJqWHPH}JoT&c9%9MkPCN zb_AG6o63?8XsYK_l3M}DG(Ibhw{%3JXiyZf2^>=Urt?$Ss`Dn#8^LBWOwd9;S8T*v zi0H1T7kBZt-ly|76!Zw%=HwCJ&P)TbHlENu1%?8ticOsCC|Epe(~}RMW!?xKcIAaX zs>!<|eR+m4p?SzPgvxs3V`5*=;*lCg$LDbi`Xx6rv%mow*y`7p!&*(CgCTkG;&{Fs z$Yf4Twh)&=HfK2`||7r;#TZfZ(gvmc=U@Q6=dOMUbuA~_i-H6|Cp7b`;8@t zht0@a{H7%tD1^fI>F%0a7dT~Af*SEAQDw8aZ}vQQg@nTif2qUz7*tcYlO_CgCLFrk zrH%3MIMb^!uv~E6jN#Yp(^C6Ow}S$=Y?C3hbO+^eNek#R7k3>ICVT_wuNAYV^?T)` zY2OrwKIZYjQuT*w$nBJ;`zP9sorRPJ9F&V~m?m0LON_PirCBpUX!lCx*gMTHlC7eg zmB;}AQfypBwu%8+h0q=n;wAc97c|%U&_4Y|=E<9xt-o#o6k3J{@<&OO#)fEVf5^vj z`5P&1jF1D+^vQpKKJrs|?4stjTNmk*X=a`H#_#yptn&9wF11IIMJ#;L+2hSQRB{&& zZh^}mI7JJd0^pkOT;4Rdt8_of3EszOdL>e)Ad$*I_PSeSfaZq_fFwZ>haxw_mjmq} zisOp&{WaaqV4Dx$2j3P6-RWpd-xF~|soOy@ z6jU>s|KG>0jjLQ8ayj{i&`7UL%P7zVD*>XG=6hYuPdV?bDS3MmpyHb7L!!#Ayx}h5 zHXxv4Sf;~knmNsJ$O_YA?4FD8)8#th$Nyqj{9lIeeWYwc|L~jX=|l|a1S4aiUhz$z zw2ed?21n!7m4bL_#wYQyx>hQyNQiIH!HU4;?}NAr<9QRw`x_orgsZ)-hSgl*Lh9Dt zYB-%6jOv*e7wI6?z;{I13A&AKrpud_eP_k1Qa+zZ!ovqV8ZIhiP)A3V|2$V3PZ#|z z`j5|%(cXjQa5X$3Hm~1FGcv|jhu~u}tFb}#utaU3F8wte{$xOd*3vzX;nMf5BcId{ zSdYI{#9@!qwGmqQKIwBWLYeVG#Iq}r2B~C#xd9<;v*pl&sGmFxCEq(W)h;IDS?ksn za+x&wiq9y5KUVSvu|!wZBd`4Nf@m6}Ue4tyHo4S84qQ6AkKV}mFl+)~%p=xsoU*Vc z+GYQ(q|hi&B~# zh@&<92RA$_7$3_&;v#Qydnn!DMAa{P(6yKd13Qw}W4`oIs1dJ+ID%deC7KQYNd%?J zY27p3+B+#cO5YZQx8juS+JiJGBF(L-ix9p;thXzN(2SQcDK{Cx#-&MWWfFZrw*e2Z zWXU+zD`C)1f%}X6jka5mamXPq`H`yiHvY@AVpZIp!BG*d+C;CpR?vn9MwlbwhG%2( z4>;OxKoC?1W4YU2RQn?Si*tg!-?k>*-6`O7sB@JPNl&C22#F}4k>kD_vU&m%dzeUC zE=W1Nj@e;I%ZthFB?VXi>cTywb-LBxrlK@cMr$pm6F{<$91KVlgOpGmgp#(9(lGLN zdvGe2Pouab$FsIjKEOWQ4rWbI1zO6dSyqnVS_>y?h~I$%^hsSJDGvSEX5D713AN82 z9qqpQ++Vpn*p%(p3l@VJk&Hw`Mq>{m&j3APN>5r|F;e>dFB*`?K&NV~hlhb&_F(IY zX2Rd6+yxc^gif>G_q&3muQ{&DV2fx3zwJpZ5sjSh!?@piHdq zE%DYgE1+C|%y{3;Q`@OcnZ68UBenksEH*dq4)0gHczxQNGwEaCHISQ*MO|t-I4{Sb{jNFDd8dazYS#Y zDYDKxn@cv>>9m;kol-Td&UOYwka;5(L%M-{y-x%ou?K34TvY)Ozf&H}M~M32PO#v$ zhdf}&T~8^Ik^(A&Gm+(ePq=Rm#%fVR5QoQU$O;r~U`{rpQCT#nDfuz;m_fEC&V3+m z{DKJMpl>b}afE~V7^Twr^BmOPt0uzyDb+i1<_{HeR9a#^8yPd6xW(JSnndh?wD1k= z#r@3VPxW?x0r|Jz%*?cD+I(feE@D`G(>JX+F=4!AxMJ|n$E-H&6v(ocKP0IkzJdFn zu7NYLrsTHkEOc~;Xc0yv?;lO_0+g|9@Zp5*rauDvx>^78g~fA_f7cG;quaVL?e3HR zyqv07rAMxw1@2l$siF+rSv5sB7=Af_VqmG0JPPpz4pI>5913DQ(<3wwZCqyTagYt|>U+MFE)F)xJKI1L4daKCmp~V%a3Nu51+?!5 z>TJOS5`b|}%hB-*Xd@PtF`MY;jUTH$ zlJ`%0R`xe7c~gP0oY3 z5nbMTk~#{;P_=k+>>_i z(WEwSg7IlECi0Kvf7%qMwA6rwrN6mV_G$!gh|<}UTGl&TQHW~L&s1tuO8cDVBW?!a z`m*1E0yZ4K``le?+Y}4kaJt*DN4=}<_P=HQYB9@SHRv~<;7|?r2{#wlbbfOCF~dIg zUTr1R@fiw%q<%)dTx$<)Z6R_2A_;zeyoxIvvI>2|25I%wI(W{8@K`(FJC4Hr>eid$QzZMj01k09M}1NoxB`i z(HW?FZd|R$4y89Y;`$}X9`SPfnm|kN5W6v@d5lXWD~?Q*t6FY;j7Ix8<|iY0;cvEj zMK3C7mYPF5pXR>nrU-k{upYNTLbziVl2q&&O=S8PpC+P72I)1Ex}#a`%4x5^Wj)C}+d0*HUL zvdV__WXz3s274n3pW@ynu9lym{l; zvYzy((@ul8yM$C)z;H2?gVlfHO6}tlHx@@^c^m~p+g1FsDW_wlb6SYteAq#+wG#mV zwEs)Keap^JmNZW$V0$y3wWVDkvoqcnDKl9R4d>$8?%XXp0T~UyD+mi+Uh=^+_r+CtlD=Fn|CIv(Lbp<)M|9e_M;yBeN%>eaJ)L7^ldyA15ikR`e3( zAPb{9IEBQ`c=4jS2s_WTbjIhjG%Pg#pvCI1>;#NMGKN+6bFOgC__k`gOqKf0wMJdg zHaLO}ZtSzAG&5$X{V_j?w??|0;uFTXq6C`Q44s7>aZzx8i@dg#>R+q)>BI1+g*{y{~kDrQQeKpX2u?!J-&O+c`8smMQ zsvQ=yh-&(rs3WOQH|vVAXix6>sm)6vDobbb#O^oyzUyddFthd?cao-%Q64}>bDkv} zkWp!IckqxF-G^ZyMbV_UxltbSvF=0pE+To~ek74gP_~$<`x|o8+;wYH%I9`<&pJI==f$-S#`M-JB0(h z7>~(j5j!1KPPjn}blI+x5H7vcZg3n@mtyCnO%*(vvoKW7BPiIpSqVD(1{LmKt-G^7 z46IVPk>e2x0`1G6?{uRlnBd`kmv5LEzKuns=K=(+U32DW#^{~4YmiS*UTd28?G)OV zPQ>IAwX#$T<+J^^$Ji-e95&y7Pi=}T+GVzGi%n5V`>2%R+2kH3+T+C`1FI_ijH1`!d_ zK@=JVQIIT%1ZhN4H#sOlBui+Ji~&(lK%ykcp_?RGGNMQZ$&!(r5s;kjej4Yk@4G+l zkK0vKH8pcMefl|1*n91@)=o6*$+rg-C1nzvHQzVZItw)}D<-Dafghvx z^^^#F`X6S(%p*u7NhlHKh4s4qcUI5Kz4w=t-}biH#GXeqtm@v^_hEjO$W0(Y>(|#O5UgwnD}>)} zJ{G1~IMH!?YZI%PZ*5k80-lT|OQ#{;Xr3&@Uu>VT7T+KzJnF2zFpsyj;0rwxSTKAw zPqbzof?CXwDa#@(wnW*8o2s7`K`;oXb3*bUoZw18rDq?FLbGE-2T+%gPg4$i%~tW7 z3=rKPGd9-xfd7rcds6AeW$9bxyyoyjkHi6u5!hHa41bonVdbM=00j9VSr^Q76u_*= z^zCJV}o*^g}RoFq9 zXi@InVcl3t-4^3q`Db;0vKo95d?`;Zhvw{A=eQ$?owJf1i}#K<6HJ^9y4QN;b>A2_ z%G(pIB_jn7tzi?Vfn=pvgF@nS%HTQ^5EvK_DpPT!B0YRo@X=mH+JU(r+xqB$DCGl; zhs$o5y*xEI*7<`uv4nCa9$-1ITyx$s_le4kjy|s`(08p=qgp_@7bD0|TzftV%z26vM@53S3NhnBP99cIOZCe+ABl|4*rJ2H3@A5~aTk$|T0kS%yO zrc@Sw3(fK4Is_@o*KY1WLB8cyEptP(YXw$C8Z+7s>Gs3;>TDkJo%M9A8i_99I7Ti} zLy4s|O+kDxO{77njlWQs zkFrLQ&k$MwO%G7(J3Kwsev6q3aX8C7XLX(KSSi2m_e^jzxpQI_myGA-CH+yBw=zVUeBPBN>`;UWw0uJps!DYJwOl8y0R-$7f1NkPo`)Z#8M%|?CT}3!CV!_Q9jh>FQ^imz@E4|( z*;4QQ;kQAR!Ot(g-6~w~4Zd!WJTimo3<}?#RZm5pVqi#tVCGCw0^D?~e#5X3%8zwg zSt@T2%QU5=(ok9d*p3%cC&hT!oW4YuyuUTJ2v8$ttK!c>)liCS0UxncJ>(T3QcPj& z2QsPA^T`Me#E*%$pX}1EhP;VHoW;LeiXmiC7$&f^EL5ZL?uQvHT`t1kl@d-O>P!1Z z@@=+@;}C%4x90W1aw^x<@Ot>1`iIdcj~9WXo4YWj?UaN|&WC|7JhmYwhgEm*ubw16 za{sIBMNiy6q{K*@80wZGXV%2`XcoKnRX6S~hf)#?7CVsc5Pvr~8klXyP%E(GM)dG=l0YY!<&WCyNt-zSPHN2) zm?|1eBf|#>1xYIKj+ElK>uPpkD$NUKr+W&N%?syVLe(!B(cKFsp*WQU*+$!TV+5)f zyzi@<25W+dZ*S;gz$B%r@8dei)J3*}LS|ZP>)aQ6d|4-m56PXt|Mp4{*d3s>eU`?M zM-8i3W3ccSCi3GdiR@4l z&TV^0UxT{!NI&HRg3qE5Qkp zjLHx`+GqF!5*va{IZQV2B*?#8(xvWBjG#U>0Dw3KW77vYlgO=H zpy(89Wr-4OU80ZG$5C0t|M02^D!NrJ;HB8uS#%+R@*6P9Diq$zO2|$X@X=f}pApf~ z_k(3>P|c#TGF4g_j%)$5^i0wKg|7y?Y#Ak+m%ASu>%gVkeBM-j-p!1EJ$q}Wn^m99 z8E3VRt>~u{w#h8k;}7^!%18kWM2ca?wTa7C9)Xks2L_|KsUwabgdZ$H+=nfFPuL_&sq z!$FSf@ZjCua7egjd7cX6R&v~d6BmcRZNQ`T8z5MaBPdz<^{jAH zk(V2l)rHQo#FgXiBy@=8ZNVluhNhb9#z|aou{;Rg3dZK3${v@Hpj}l+xdTE9I}XxL z=5IzAg;}}n4nNy9cfH+O?$PKRRx9N>BG7$+wano%YwavKNj3ReNXO-vskJL}+!LXl;5P0Vk z%@Jg-Jdy8h?QNTb<<&9WjIKY4Hccj)7Hd~(d@Tx}Fnc-uuMy*Cc`a6@r;)Ug^`)(()cjc7;mpvpPr>oE z5-g5#|Kn+ZHo)og;6*`u&`d4@1Y!h`8&)kV5jnFC4Gkr8g8hj!;8Yrkka?@#Y6sbB zrdI@*VuDgo859#)7K0L-VC~WZnkDHYmmyA(ex!BNVDebeuQhty=C6xFR!`oW5mS7- zerBWHnz*#K9(Qb#X00DjGNQL>hF!7bXXVxHuS7cJ@Bs!ecZ9b$G9jba-;@rXe#&qd zImg!DHt2DI^`8%em@)|_lzUrayl;|0(OjEfC+OUfp%3xqUyIXS%EDVKG1-%SYm1Xa z5U8r?-fdo_H!qZj(>G&g8_d+k(p)x^fEN*8S}I~(i-e^~Sad${g@hi+DJv^W9_67? z-5a24Nk@ql{^ko`#YRAKwJHa}WUpb|nb zJBAATr$%h4dT_0--XX1MDFkH0kKBYuUe9;-7CEGxtGe7#qxT^f0z0)L`)nFqaKytZ zt%v9I-_MP_ZQw;vZ+b{>KT)xa1ssAU=;8|8ORLcM63O;$v$gd1)-PGJyPRu;TQP z2KlI@2jtTl!Swj#!BcJsV$#gmite9&Y?X0(K?7jV*92Y_ z%b{JmIyxqs$y5XGU;Ueck2pTCVb=$Na27UNoHeDHH=K}nfO9i!)!MgR!Lw>SGfb!+wSTl{agRkjRIm)s&7t|Db zflL9SZDsbJ!PY`k$!zZVgGBGp=+STi=JvD-#qiI#6qhv7&bN5dV~18gSWFCmxFBJ+ zQ7y=7adEs^5*$M*##FA~hO3v9YdC5%^15{byMw3b-)ILK;@!J4iyeYjeY&qRD_W^*(A&-{0uX zkVLZN{w=X2B!6 zdy5kM$3N@aT)te1yzTmzgN2usrf){Y9V{U%#Q3$;WjES%GX>RabxB5rf0LrA&z6Ga ztQ>*72}ikj@{)0^&7M_wl=+_9#sRW#uyD)NJ1m)gFkvjMUI>Vktf@!sP9FjSt^1!K z#8q@G11u3^48e#J)c-0o4M={Wd;xU0iptY1qyWb8`Ydyz=k;%G91|vTFQA6ZlDPU@ z;qgq?1Gw-LHVQd6$H>P>kiZfX1~~q}s+&!paZ_y7u%IAZ!T#l4vs6fi^>fkU^@y3a z-EMrx;caRBAY$7rl0Di=Zd>lR^x6ga^T9Ycmkc(!1O|g825BeM@8?`CZ0T8sTRa{| zCHCvI>9o_VW0ztqgiwQBtHz&INDR z8W)eoYVp3r*7Pd-vh4CU4s6d)C7tOmnoh%HoPSD1Fr407$8d+v@LpXufOqIB><`#_skxc0M$9zn(AZv(>gW^=XIIsZ3a>~~=?P_~-R^}KL*;d5bNDzN9cw}} zYg)Upn*x|hhC4SfGQf6IT5c+ECV}tZ2x+My;?WDM?C!&9(<|dRO+s|dlYm4@JsDH# za+`#Nx-+ooF&cabUA2)go-RvkVIQ&Dtjg|zA*wr;7@Kd)mNj@PfJM<08SzqOooRm( zN<{+H@$Pc3gL!W~JWHgHl+^O0k(W-Lxz^9tpuQ2aWX47TH})51KGIu)4<-Y8e$>Uis5tY$S8SSZ{|%wYy;HhPed>6mq3Xn7H zhS!fw(i;DSfPV72i0zY6l0Q@LNr`frq*Rm$Wi<*Zh+G|o@*uSu7eD;G%DwCN!dl;m zOA}_?j}S|kaG$-n92VwZ1yW63(|XWurv=b6FeSdZ05M-W*0+2>Es1gElAgC^G4oFSdPe==mbn5~XI`EIY(U)~X;TM*G z%kr-mAasAs9EG3@JnWxghv9pE2|&;-qrL2>6TOw7?q`tbe*K#gUBJ;(=anZV@v+0_ z_WprpFk2^Z;BI){9IY`Q*>K?e^VHm^hGeqmXL#CG$>=L@_!-pH#Rc9frmxxFnGpd| z4ZPIS`^b5{R2(S(-;>=uiFIDyzg>0nb~BuXIpa6n#a1{OgOx9OK2(VcXBZbsYI!ac z-1AL;&?Y7B)lM4!`TF!=w@#7=E=YYY+f1>FeGpGJ5vpf^+v-!eQ!8 zbzMJ6`ovTPi!SHuBGt5@R@9=|JByOOVjDn7&Uysb>0DXK0XiGvTLZ1#2OWJ|qZYTwFgF%sgenc;!JS zoQG<5U@bZZf>L=v_ET_J7euTO`Rp?@XS5Z#r;}kd-99`xTCM&I6fkD4+J)YX)tP=N z4O|s;W6Zv&78+igsrLxeVO5M*X=ga>PF7A!P1mh3TKV;JFaL0j7k~?{8&}RVYc?yH zDh^aH6V*FS#Ch*^c~#Jmk|UR5Xu5yjWWD+ofjk(NTDYO@v>=@PkfuH);KU^))N*^Q zn`M+DND$hi?D8~JmUGN{$gu0p;v!%x?2q<}kZQ}S48RtzI`zCu7d!7o?NE}aAVb|| zS6DXD&BCV{h7M&$z_F_b=N^GYv(nMU>D)dnCnw_bwt~o$1I*!Mf#+R++5s}AN#q37 z>%4A?h#fwckYmcmYNqw{2XF4L>G#+rC6rDL2PmcoI3(h8=dc74-z?l-K4N*#^`?(WLZSR=GyDfW+jetkUFI)#+&fa*`}%iGNL+ z6cuAT?B3wql}D#wx~|-23COF_0>*htvAjzxkg$)vt}tZ1M~mUrMugej6$#z& z3X=yd9j=e{xm;ArJO3fvzr%a!41ABaC@D7f0%C|uFIgT(z6e7vp|mffoi5Ir)Yoh} zZbi&QJ6kxrnx;7a8$#nnCuZBDm(V)w6D9pC?x9i?HPMz5%5xnpkr80vITbt!#+h!4 z*ct{uV=#nW|5A099IRhLw300eGphg-TkeNO+q_V7izA3(^Ms*j;;L;T?5Otc;KRiF zURkc%yvCDau;-DCobco>-hkBa@2wz8kW&#Qp>Q-Gh{;4CCQpK?t527c>Jhl(uTUi5 zJKG$%H-gmjnuDu4uOdf`qk}Fwc5Rc8(flZYUH)|@?0j;reAjBVU4km7;%x`MQe@*G zO=x3xe5e|M@=Y*r65kpFM;WSv2Ng9m!hoefkh3e&5|@-@19JbpK!~IrS-1g-rMDd) zYdT`x+%ZlbdXvuJedLW#%_e85XW=g-~WN*RfD_haClpjog!ho zG~x6}x6Z-nrs1~nkX*7gOi9I@vnXeCjj+JlQmT%H~h0{Wb#~CCNtsmJ@P65oS zkUzimm=F9D3E0d;r*T><1K0dAH)qmmFmuK4{JKw3W?iB;gfmPcy{&&W5>m|FF z{QNp7*p%Cw*Y!rO@#K-jJ93;mciqeEZx0UDG>nXCb)h`!3_t6bDdYjD5LTx^!N7Gl zk{&+1tbVC|ZQ0t>Aj(6)*QDn6y_cG41K|~{Q)}wXwBfLcV5pL6)}$Y!lmM78Folx< zkKP)20tAEUZ=}gr*^I^!Om73v7RFbLCBWZ5 z_L_dR#_vz0XjlSnUq<#MWLfso8aa+#7nV@4) z0GC_wqz*eRl@jM7!Lzb$i{MdD0=q6`N1I_re@*WdfW528&#GE)#&|ag%I}7NOCYh( zzJE?dy1HVFdtpz@g);I)7c(18;ha#<)LZ;3rt+M-9PxT5+=x&JBsxgnqfIypOcP}yG#tlAKKiRc?Nr%t^$00*GR$PU|q0AIw()%oQ0s53<-sk*TONC+?(TwU?5f@)w4|-Nz+k?-g8ES_qLLa&m(UQOF z*E&^s0cM#Y1WFcvP1X{Z6Y)WuSO%@S{I}Zxu3$b{B81{Y^QyKy%dl~L)EeO7i(nS0 zM*&aC!1F<1Bpj4R1d-|PJjFi8g}1~Fm{K_+)sY5<2$J^w|sk!cdzb z7l~>9__1v5MCCGTp#g}UZ_>?TN!J(GYICDo7G$Q&S33~*MCH^HluFg+1#d(6NN%zV^!5KsiBfJeL zQXoTlwoRez`*%5-p(6!$jCDKwtI_}|+~T99i4^{V389`ae#y8qb2(SBH)8XF*Qx}k z7NLdV>o}Yul}!H!W&_ykLa1EzUvj_*$Rq~={F?%hnUq}>ml}^#)HSw9_IQ{SZL-bF z)h`qtO7#Jwz(g0qF|*A=6-M&^1;`Y7Z~fwjn0!V|)Z-z$R{TI;Q9|hTK-M4c9;(ON z7UB=O+0v)|QtPSP9=Gs-u}IzhN58|t=6~(bXO3@E55XK<8s@#U-T0ulFjN#?Ks$}u zjzYW4#b*3nI-sdE32)6Eful%$nFmyKj|hUOTp&C84@SiK<0XDA&(Q|Cx0;OOw?@BN z@oXKJu)Di3k1e8U9Fz}8`PFsP6K1A}S=HhPg^L?>H%#7V$7q%~Z~7|_n}8n|AS&H6 z+S<=lqj~J+^^mPL@GkvZ6|1>)Af_k+`sDq$f;1~AGBx{(I>e0TGq|#ONU)j^)v{%&dK&&Kaan>vy zKEn%&!F?TONB;RI%Zq}WL!Bn2Sk|`N!kva+-!e}FeAffByFMTi75C3JXh;xY0K}Zq zpt>4b(~g)up1sNqE9SpHUjGJ>$^n*`H-TSh+D6Xr-S0jp0b|`yw$OX;!e1v2@kTSE zHn<4^u=Gy&+S~dsfcko^>@8}v8@cxFS)mdQ=9l_w(s)Sryg*#Cqa;s49pODwqs@j` zx*C)?l0CTcr2+S#f}76o`XAUEpa8F}pnt|8K{g`i!_^BHz8XD&kTW%PY(=k5m6~*1 zy|+DuPM*s82{41b#j^+`GjEc0omaf)MRP>>a2&}HCBbe4#%R~tq5fq!{kT2XTpOaY z(Y7-Hkuv^p+IaKt=)G2=upWt{+7*wnn_9!wnhnU?P~`KWIKahx z*000!1$|8})y^ILlvBU1k`g1_E(e8`l0-2BPUah@5}U#$NhV`?nvdW@Ovxi_vyj)Y zEKxtS9L-;Fqh6`yC)vLWH2F`jrrLi9Pd(|SqJE0VpI8`{BEgc?`kd+j_M1BVt*hg> zuU{-wgDGg@!}>515M%YP^dQT4)M3r|>#JjE#cI_8bSsMD`^>gvmO6QqRSptlrC8v&|LpMdj4RV&(h#o$@t@8NVwLpD!LAG9=DhU4QabUhL~ zUjjWJa)_${=A9QmyaBkAQB&;e>;*^^iV}c#x%sdb$}!MM?P^kp5fDo3$K!&MT_Gi? zj2N;u{<2Z8ofGmG#wB}UjP6Rrdfvp$x>!nhmuW>4b);W=Z&XH4MU8xXPQwTwEx?jP zU^QQzjHL$a;(#XyYHFdDu2U{<+jjj{z=3#JR*{gxV40cAsp4VS>)*SusckkN+q}Ac zJ6m|p?X2b5oJCLmNh(FlnEeED^PK=TrI*bpX4}nH5rv0Fbx>!E^4zBYmM^e^RHc`0 zZvIv@&V$xeD^7-I(@vVK$a6~fw!W3>BWDk0U3ueiDD{GEs63UaMTy70myh}370Nvk zC81KhQ>g`O6Y*k; zLqQ?r-Nwj5o82M41P`-;Q24|GaUmw#Qra?#Q2sMm`vmTu35Fmilh?Hpf{J3asxn*J zj+w8IMxGESvnKYOqA_<)8#+8s!53UN=y7zpea;2I^F+LM0tBv25dLL)5fbHY!Rl#+ zMh)@sKZnYJeZq2dz_*FZz|j9$dr6Gehd6NO?FbxaIAop*0YBM#ddBy9g?J4-u*lCt zac|%Zodox;Y>J&1fmxp%2l>l_jx*#Nr`&ZKj2buS$c2Nq7p+WqZNbxXxPq-GF++$^ zan<9k6F-a*CQ{_3LPzj9kE>LWqnQdkQJ5TcjQ-|+2}b`cjJ_|En8C!7Vh4Lj9se4)VWZid<>Gj_WWy>wYzwtt2Z_*b%Jr1(O{C@ZaPu@IAbKvj}zT)bLR2Ht% zKE5-J8?EZrHmhCvocdm!0tj8c+o(o0b5-Jj%uFB%jMU+Y`u|1LhRUbSuSp^FbR-@6 zK7y>dKOjk6*NT|px)QCIEAS(o_k5YU&`yS-MOwDfS>7k}$*^A%7Bv}35xNU`^e$Cl zkoe4zd6FExB?(a*i(!)J=EsqY=JBr3<%&lOVcsoMV;2rt&*T!snfX1(YZv$6Qzsu0 z{<+ey3K=GbeGdYXIzR;0l`rXjvLuGxptx}l?29Fdicg0F8ZAGSb^W6Rc}hLR@R-MY z(Q~_LS%ye1D4XJ|J#t&wh{gPTz9s?k6`t*cMz2A9M&q=v=k_E@MlAQZsP4f~r2wcH zQu3%6XX30}RP<--`kBE%$X_4CsuvwXG#V&@p)PkU)=T9VSd3;yfmu;8G5W)K=9_j| zB7QGR{I_Y)TzMSJ-g%{^5lH((^;Slhu{kGiTd`))kGs_FhZ0RdKUHhTz9VFlAbGM1 z0(=j^b5K(uc|pm@+`~uXBjNlfSG9?r5m6U`*aCU{b8J&9F{b9 zG+kMu!X88ntDPU=0)fh-W>CB5O-$Oy*SIN|jte*5fj@t|&u>~PNYdEWGkEnhH5 z>|Q!z9eN|IfD@2kV|$W@cLgC`K{tXzk`<{(BQu|(DJg5%6DDiDxh31$kXK=Ix$0Q- zkIqee)TjypE8k%N`yyibp;2E=wOh>(-=A&pxxmPFfURc~Ejj*a_85Qqmt>O)cLFEx z4$a}uWLy=^uSlvqq)wCj+mt997I)H149;}HA+^2Pj7i6Ny07Hzq13rBm^>uS>Q_9# zIRmj;mTbH}~#>Bug9T4QeQTiP{%}onIb}8u*nO1J$ zE!kY-KWlENt+ASiPtW5(*ywDfZK#_QbKqBn12PvhU% zqG4hA3tet^v5pHgQ&I&)wMsG8(vZEV^^vNF_;3ylzv2VCx*)#n4sX zvm$*efQ(^Cu@A*A+20MQX&XsKTZP*hc<=oln~$%msgF2D(jS&p(1s+QfG@m`H<%EP zr0S6%;nM%EzX8``4x(!_Kup`4qwapPIK|7NxuwBE4K#2YV*T9nIcK6?@0;7N^q%=7@2#v`mdJ1wyMMbHP9g9LedBDf> z<`Zs=+{dqA1rlnWV7w}9hR-c8vX-8>?Dk#+=PP+{nxjjmYR~9oh-3_P+t7{O0ER+s zj=%~uLZK^aSuB(JU7M5ArvPMm*zh3*@LxorMn!VKR#Q=bnhK$_-ZT)|DBlAIg(m1d z$9=yP1IYFmpc=ocCU?1R%*dHMQ>y=v7*ZhIHtoeQYPJz~4Xb*KUu*E5X7eN`fmO37 z0RhACoYbGdsaftKo?jcV5ENNJ2O?Eyx|UElBUc{>`#msdk*+Ww@5r?R8 zXxEH%#mdzzztJqPA&I(Cq4v5!rnza%_aPk!GI4QnNOYm9Th~+!$S(zxAyPW+{mJdoZh>K>DKzb!lm7mq_fElp!|EwG-<8QYhg)t3lul-;Vou$(B4&Co7GD zG}s?+$KgRW#0C79)>O?dHGAM~Hjv;sI&(}zkpT#SAH-^9HjF1kf^}c61`GLA3x2Sh z(t#$L$avRF>qy8fc|6iQ+CMjlno<* zx(~N%6rFRqQ=1{V@YI(7phn{vR}GNMI}>A5SH~3>+g?(V*0>r{QCvadqb_$EmDFP2 z3(VzV{e@^z*-`W?f4n~;NFJ#Fkj-pw3g{tNxw#1_^&&_I1Np;2E;s_hvrHk0kr_wY z3B>?p%-OOsH)tB50CQde2p^P630P7Jocd!)$=>t%gh7^B{UvhIvf`rcR1Sl*HMRWj zY$u|Ow*^@~<9GrsJi;d&MK#9D`(yhy2@xhbG9|$&wIt+*snK+F?vptkN=K$Sm~U!A z2|zW~*W?l2p7VBL+0h8JnIh5OGbBvV`fc~@*|X%D)!O~BFev{lJXm&b-*wI)XUkDV zV026QN=!+Mrq?N$aEdccI1@oUO~F5kt^HT;q2<-T=dkb!pgMWryE2hpaaIv}JR~za zK;x6fzO5x5aLz`BiU$uKpk6J6M(`&!+be@g4bNCI7d|u=IoPr}UOV50tg{#2*+cfk zrStXG!I$?i{XAg3))nvfZd-ozMX*snVp>ajw%|p&II%s^X}J6jH`Fz}v{gP*6lHp< zyILSXPEp7Ku7?po#BH5d73p*!d$} z*Uj3UHw9-+v-vs2Z2_B>{(WzszoKRH1M&~US01Q#$c5sMQe=-tbq)j|H9RIt-Az2L zt5X`>HW#40{^dLo6u8Mao&rV7xd?l>7_)k$508n&0C2@(S+#p_>UtV~T$&FBXLgV# z$_3AOlXOySDCKdCPZ}JXBD)^{ds9{3N?5s^aVw#>)8}sHK|TM}8sjY8f3Su6@w(-c`_lW)5q#XcU+FM3KSoWKu9w z-ARe*gGILx!9(M@mTz;F1A6t5-_aln`uK#!Bi7Fk+u6iS+f7QS+BDo!oFRn&`K^MG zjZ>@_M)wv)S&(JpT=N07>kiMzvui3mhPl%!(J`;QT0Th<%+92R{3P(s!lgSwaOGZM z2Elm7hb1ZTlEUp*U}s2IQ8o-WT=5}W)2D`r;~p2Ir$B*QYO>wx+N?{XHSdfkY@7q=Es+3vR_ql?ec!#e0c9v3_^%oaVQxyneqqZ%#ZUU5=lQzJS6 zXTy+2wU{sEWde0G_^84-pK~AZQ=s8?A(!PArm@rYg~MB^WtB0TPI?>z5s*eJ8+SjY z`zD27?kfCvXoxN)VpF)a_xi0O25`SVeny-))wzye{Fa`dBPL$YjP5*yO7t3Ez1I&< zB=DIht5F!iI8*3GtEhvSnY{Yj~G$=7h z`T`L_CDsd^ag_2-+Dfx;oj_SUCdktqk2%K*^}6AjlU3;>SF&X_*>k@bAB?dHGD&Od zVN{Hp>_kdw_*m|Wq6UbHos+;e;uQ62R%T&-wt*7iMPsH*MotoDHa{5!melV=8W>ap z2OkS+D_rQqlC*pWVS;(Z`L1+c$wZyh0_|3_Gf8UYOpZ5Dnu+;k09h4P0ORsh`%IoW zS-ckCGsSDF9&IZa8SQI+Dis^PkL~i+uR+ad+F?p0S@xFB+7;2M6&S|UU$(nFeS9Rz zi>Vx@9b2ae6k+8%=*|4X*mp884AmjXk(}9}ui@~!1?o>TSF)wlulxtOL`V}A#319% zR-)II1!@M&CI)o*sI{oCQeAi=mGFkF=Jh|TOX?QC+^`K{dh>ni+r;r^JG8t+9ze2L zYJSG!CaLavU*qEbixUzR@|5M}L0We;`h7a3Q~Zn5&hIScL%*}oRCu~=%g&rUTxD+U z2e}l-#H0H(aW@#FundfH2W)+If+kEQY?dNV!4&Ud&*^Z@rI($|>`jYaT>w0B(HgpH zjVK4OcwrPHMP9v?ZRzYdfj6vhpCI?-=o%2j_9ykEkc$`z(@lgwuZNO*RkklNzHZCu zFi-j!B{ebpDxE=K{Bp{Vea{Io>rDCVu`eiy9&CNq@Ehmjt_aVxyj$H?npA9V?RxhJ z7(*@lQyn7bk{snp^Rm7sbg@Uvyyty64~@1>ae$tTO)ZC-%bb^tg3e$XZOee#;vfofMr(&(Up6 z&G0bh72|gJM=?Bdpilq}U4H_Mv<7I>={ncG*f6O7GS9v#B+bL`YqA-=v|sxY^a3My z$EW?Pu|WxbF&hkh8<-&{fY&^SRaY6arMwhwqbzC@A01v+AVkIz1$MG13>7s0z}WrE z$t;sJ;zaUQ?f3(Lm^~T@*o1^6K;oxAgzs zIJu9kG|Nd=PNp_M5GTfmX)n2|2G!yqkRm}tc#l`FzC$I0454P{H|wb%@`v5O*r2M8 zY3yDg5t?bU z#SGkre!@iWLSgq#UV(8*@mI?+2}bqey^0sb)@ro3qM@if2|^3G#^{onF(mgxA)IQv z%!)q}G^_76! z-E@$nF!IueC!#=YOy0d`&%y=~vnsEaFKHZD@9Qw#WfYLJ)cv;Ph5WeXL_$*!KD9zO zf2niiX80vEoTb9liNg+~o}QkW&M)2FyUZfMZv)}j5WQ-lQseOxC%{Gu8V5ii{a@n% zD8yy~1v81);hf7W*}F{xtg{mdE?IH~G<(1h^TMW!!}6}Pgn(_A4T15f3!mjgUB9c3 z{k8j*2kt=Kvs910yN>xpH|ez#M3ijhRgbZjO)!2Z($vhTu|!{fr6PAs%$~+4@Ws8q zkNVbb3imPj^>zEaaD8ym&#vTyflZi0LpPt*$V-FSQNB@!W@e2WN-lEsM>eGf+)Fsx zkM8s{*|3QB7XX4O*u49Ixn$_Cs$pmo;0L*xw24VFboTA7b#2O5+}@mZsoNSF(o;Vd zr;$d~)&jV!_KWzQ%gT(uewdpD^7pTCDXUNaI4sQs4EEK(GnT#V zbD@Gxy(m%WR`!sd-#Mt&9q%%I(~{Qu>^vn*)hU(Vo!We`Yx$hEdd4!yTq*&%xeSc}>qxs`7iR^X$HUhj zW`O2VASNjp8lnK;3zzMPac36Euq#fQ_QXvjTR@olKzx~fh)Gy*xnpU08e1^$%(&|Ujln*-(mS-(NBgG7D@sIVFm2{p@He>W39 z6c;--aO>6volx0`*i%)NVfWM8u+Y31Z*wO5kPJ?QnXgUHwPo@Ke)pH^YbNOHV-kc?0)IYX!DdoV=r2q1sj46SY`w#G_%P=@M}#QdY)mC(0W5 zohj$RhA)-m3lB_QHFMK*T=d8iT8L}0aj-4oK06#-zl#nOo*a_!!TM5;6su%S3+8T z+*CI6*<5luetvzTn}g`!<#SPO$M3Cq@-7%zf1vAFKS>>e)%xCbqj%7@OVM z$DDpsV}o+q^_Tn|=c=PrxKUvqh+Aq;yEBkyexdil@C*5lz}q>21@h4X-hupYQ;pc>u%Wg`8su_#I*3JM0kK)$1#Uc{OnDM(}a}SR%a9+V&qT- zfP>#=;6<`Jue8yuqoSG5?IkBKmJaRNTcq|u3&Yd$y~a+IG4D5m!?&=%U3xhp7Ye0>!0>5*MrHPs6}HXHoPz~@H?;na$w#-U9jaFA#`7g&ziVi!w1a_ zgSncfe}_vf{g`@+p`}ZhA-C9Rn<+M$XQHR9(4~~*(s_SPhF)|2?9fm~P#m#yJN6}0 z7yLl!aj^rFS4E9-X4nTF@6@$iBOt&@&3dv*%ZU5Fe4Y8cRh>CKhu*zlrAU+1?*yzZ z1Jj|&EIrDWh^d51)nmH)Fd;VMlXdUj%cM!u8+)7fv9ew%AopD%+I#svq!~D+j2;6+ z1(y2MWj~on8HS&&4L>fM=4p9#E-~-N`}(iA$39q&YKq4HHMldO&%;RU{ZV9GitmeL@Eld38Kwuq>1FqFf zH`byK=);uDOHM>lZ}g7;wpK0p#f^5Stn{UhZ-bx2DrZ8LahvKAI8S5j`lbry^`Yt6 zpR1sFxGK;s?aoH=s^#-Ac+*FZvPp&rUVfW@C@}DWeqkFWO~c@@qO2?7+BxR_&!x3| z10`vt_DjAr?OXc(&9}$w6W6DoW~Ads$FgtkO#G%}xXeD~lhil1sf6>?efi?=xTD-*dQCoZ;ZC1B5cTuFi_iIs9!S?+P~+QJ zrIz9?7E86&8@b%5s9vUaM`XPsR%^ZMg4e(><(a7u*7`qd$OyZ)y4uC;ySd0E#hZ(p zm_U18Ak8`Y8lwMLeN5bg7#pn_giAu97Cablj)DV4#!{vWt|i~)&cf7mj#C1&M$Wh1 z^V|+^0!Ii&4k_N0izDy9Q20f6N%m~ep@Rmv6b5sgx>WYGG*PUkINyo6cvQCu8y)s% z)5B1Kse5_v=gorQAUDO>s;KQsqL+17vGy|~DYcsOO`oiUNvF;X{CPL7HMd#Zbc`!r zG7gP31;q|m#T}ol%%S1vJJqWuYW759B72(kzomt7+#N;jL1U1k*yggBUP-2F5*(CN zpPOHRrSP-sWE%%Lw=c2)NR`lqWn<^0Za#`&bZ^Stf{NIF3fKF;3=VbadUE~^ zzph*LOOIS!_DoEic-_l4NX7)|J6H{~*L3{mTD5C5A!X>NW@R1jTw(}d=}=v8HvD1r zBI|W(WhG^SyE-1jMag-^PX$dM)DGOY-s_j+`>-pQCo<%W*|j?%HuNl}Wo2}rDTB{r zDVP@D)4JNF=6!==I~rx!OV%kX!fZ{5S9MLCf%RNivcePKT?S&k&? zsRx>LyNE8ueef}&iHWsnWjSEYD~1#Iq>&fT+4>c%mmGGnuECMb!fY`bPBK+myG$|S z8P>Ov2Q1}+J~&|4~5 zv!LyTf|Qh$Z%7E1xh*&bS~uQt4Pegh-c7>iNfakt7Y$?Lk?K018F&2Y&JtnS?M#nD zP7WZdX8~$h(8|h_U?GPbWWg~~AI`=cz}~@@tobxsk61%{VWKLfY3b?f&R2z*?%K7hiKKW*6)XY8r>~=YWf;t%Mmol=L)_E8pH|2V znjF^G@3|DWDWn_wu+%&_j>BnZPj?Jx9;dF!aNOcA{J6PXBR2t-=f2_LSD+Gp|rgNDPjroxUZAHxJ}?>V}ipM{ubEfLTbVHxp%r4ni13#MptG$9E{v)}17=PKk6y~8h>{~DHq_T9;H z(;L_PvD(Fjf9>0c!{Izk3yQs7zs^f^dh{sKZYciJD~|9BZ<8cw^20ftI4I+SqjLZ9 z)5`9)ncH;1tn-(?^A|3NL0d9Cs9)xADQM?H7Y7_!#69NDPRxMOU@Zw_jkD&{>MM4N z1A9&1_wQN2lq>)&@~wD^k0;@??#LzHY1^hTEqOK5ZbSJFjPkp_mkP-Kg%y9(dE<%H zy?cS+JXr(sF?Ou8RxbqI}N6HoEg~-VifU{_X$A?bs_9 z7{}Ky*Ia7=(cE$E5o>- z?hM0D^@36R_cnp`&{P+HRk(D=(IQ36L6Kpdxz=>U;1GsTkd_`>nn#&3D+}kZ-%l;^~J^NtbSl@HhdbQ@j=k8 zY4n5&Ff?KJadS9;lqvS%%Gez)qhBVX!plbC_9KtHMfG?ZA^nuO(4FK4TkH(RFi+Lg1{( zXDZ=!hV|gd%RWbLu80(G%uDk<`4!m>jX3$%Gcz;ms$8}<>{h|@Y8VXuxGv>xaqdKz z$EnM?^Y$r#6P_=q&Z^7Y4$6Fo?%9#Mg>zX_t3bAG+Sv`Nw+yo$emc;#3qk|P`3{4K z*X^pm_|`I=fK|_z7Je^*=EMnIph55%biF=tDH)ja#vpE6J$s3hvk@uB>nEqCOxSMR zXagr!g?i3s&!4BjW1dT>17FM9(KK*JEYt!A9vWy~!F=h`XjU+Av1yJSd!VnUNBuLG zvSpX@q*Z~hi%D-T_}hlvh;Uvb4L{~h-n0Mk&?=ueQRb%2lu8na-EwsMzzIT0LBV&} zwALTHi)-=jy?ZyB_h>?E>N?9p*rSG5&&tTRC#&i@$O3?9H*N1d(@&)iJ1^%$~ z{rmTy&Ndooj)2bW_3o}A;y=sIlr62l0Uq@KsqMPonmpIA9qJ`WZL4VIph3lfEHQ|Z zFf6DX*+ZGZ4Ty+T2p}Lt?2%fW2ogdBWP>av>>+Kv6qHR68be4eGi;d!1kU~1>pJHT zIM?|BekJ64zvsE%=efsFh>ga>hYwvwYS`jJA1mj`zV;)dpJ(_>P3|zr{Pr=1yuFH` zs5>-h#f7C0S_=z3*nL4vsZ$09*N1h@)A<#Cl}0lwSFRMkyC^KG@3_?R_DBK=d7kfT zp|9$Hy@^6$9e@6J*Lcn}%WafXbC27_?x|&S2Y<-XeaOZ!Z`T^B{-N--y82j(f|viY z8$QS`5nxo7b3eB8ja7TXg$Qb8Y8M{YPNdTBV|@+xuSlpCOBbev6S}<_R>?$cnAYTY z=1h`l9PMpKZ$4{jQTv7flATlUBz^ry7y6U$#jY)e*eA^lUJP|VccxoVe56gCv*srG z7PU`LzfjcFj7r!*-bsbU5VOvwrwt`=z*#MSz!Fp;PpOzS6g>tEB|YDLdW@8S?r%5< zlD!RE3Suv`HjD^8^Dz_tK=TqWuDLM*!cdG*uQvpvrTu;DqwtA&AfueSL>D|eYvh5s zP|;b$*=|X%tOengq+Kh6s&8y+T7WSrUAPFNNk@Dw?8JqZ$sR*I z-fu5n$)~NBdr~-R!mNrB7?&be?gX_)*<76X@t;JtjhjaeZ99{p%)@f-#tTF!l;XuW> z07gG->=VM(?V${eQnESn6-94oI2TJIJJOf0wUhF=L-VpO>5N)hwhtaWIEV85AUfLb zW%VK|n%OQN=q!~k5L;B{V4E2j@Mq@aH*DBh+~IwzVxoa=$E*Mg8q)aFaeBdyP%kJz zPn+iSbVA*un6lNbnXQ(9d4ye@T zSBNmH_#;8{rUZI4q#>~)ARRHrty^*D&f0KU<#Q<2JBC0Cw@5*dEIW9p3ghr`1hdv) zy^)I8_`_{|q)5Xobo1KJr$$6h4?4SNJIST6&O;28aex2cuREsjaH9atc`c$6tVo*VEZ=}9@#KM$z z%FiDgV(ITYNAMn8YoMW{A8$CQgO8Yxv|WjSm);RLm;>Oj9t}}_{THdcyg$3TdSFl$ zdH?>`!so56tyzn+#QpOlUaN6@=e5BzA~&J`NQbsIYw>EsAaqI-V~U%8gp}zuK7+bI zOIKG^H@W+(k%|fP00c0bWy~}gt_di|`tPsh(XcnTc18lxXY}Q+SFfS4=pi%fhH0!q zOduFavCVOGU1146*Q#%bS-13EW^`1`M*G~J(4grd4I$8?+geRu_HBu5h*BcN zxT9cXsY|6qZElR?OQP`HjKN1TJ*j;Bi6X?I(cmBU6*N0AXtk1B^{P5ax<{H#NJ8Gb zVlP&+-okD8HeU5GmXwsLvze^(PHZ>@@N_KM1(LsxW!aj&y1U7v=w$c`YZ^TZg+D;; zZR@Buv)__xi-uCDdb;&;OCx{#Be3^*s+Fxhk3vI3i#*jUCm(2&GUi?6;^xNXn2(sO zgpaNB(SQDPkI?rjdg0c*it+Fq);mgE#LS0k%E@s$v<*qW5`bfQk&Mh2KlbT!=MLp2 z3CglZAt}_TUDUkaatYz%AFbsFs5l(WuhA48vAOpk#Bz*jT^S?qWh{ z&3*1(#at0LH;|R5sG#tRPI>?D1KzLxaj9fW-_=r-ywtPRcgKH|R*&(dO_<-y+E>!y z{)2Dk=*nfw!tb{c2tF1Di+guZ6T*F*E&3U`Sj0ziVh%d%4TT(i)^qI!yk$N`04ait zLTE`24^PmJ043o0<(NzdG(6JoE!nbVOPkq#(K(cd2J%s|fm)pCqO@Tm!52;=ca2d{ z35;P2yDzm_LGE*8k%{F=b+yH*HBA8LQSAa9Oi8|)KHYC zdmmpjcca}6hcoHSXlsP!nI`(hS*4kDF&5ecR)oGe<;12xF~M)E0gZ`dY9}Kh6}s>x z4$U50#XY?E4xz-F?)+5-Q;bvYA@!!*l`e6E4HK)S)eMEfrD!l)NmZUAE9-J%kQZVX zr{SxV8!|Y9hGj<~cePz@Or_{~Q4=AjMmtNs-7j;VsT9+8$C@n_#b8RJ)nxfwg>sJl z8cfcq)Au5xqRx$|q)*+^RBYbPa-272KP(N8gMj&kyb1fInodW zCKPxtM!^4#n;I(jKsGE)&oN;DzQ&rh!;AuP*}A>{34?F5+@?3AiI{Uu7n zRrDM|s_zTN{KGJoM_aar|1^K>=#M3UzsA_#c}I`ATV@P*u%$1E3uB(E6*F&yFQ1zC zjy{BPploFJsT{bAcF6b@{83a3`HiQmqQo>2WsvJ&X1OVXm&T$8~JdfnrS*}AZ)_hkl6EO?9C@u;B~Wv0Ww1*~kQ)-^*}Mf~Hop|t&^J018nZ?R z28u!zGk$ru^X{8U;T-LZ6SgSDL-}IBms^sos>Lxs zg}xt-gj&|Gg*8 zWFkuKnGd^NgQ*qW5U;e_ZY+Y^P~d$sER9;0&*M!n%-MkEgY4;j{`wQip;jmM-D7e{ zUsHEn(P#bzb(r07AXX>9JKmGI1aM?p6UkNM`iL~t^|9WjzE5oH+r3&QPE!-K;Mn2) z&D(#TE1&Fd-sa|nSi6EtqIY%UbMQp-q^1^l1+JEP%XCP%)fVTSUYJRE#EW$Q1yyIc zj0Kd>_)pE|58tvBWA+Jmd$PLzTuIe5hj*TNBr@z9W9gHFD&OU#r_`1JR&6EFi1Ypd zcl|m$3*D)xNnjV;(ME8AGe=WCyRA0iUGKfS#kb|b-L-||l1*`yT*efk>qZK;K*I?_u_2^!MiRd^2l{%jm%_;=IpmN0D$o~wbc zj`}^F@tYjoG-{?dq@SVXs^?E%%8%oR%A{Mm1>3c? z1tg9|kQa=~Z}>c639!f>D5)6Ceh)auG)qZIhl7V{4s7HXkg-)#Iws;fPz{p98k zM*s&vfM*c7hgg*ZF><;9+v|%KV6vzs?5pFP6)ujlmV^V)=5JKit%B`PHp$u`9-D<+ z;98iIX6mpEF%tJZFv-%9y@o5&<8FSS#s1DK$sA|m^!;HubRm0!+s@2jzDNBu-?Qun zC*C!>w&ytaNr?mQ8V<&pwF9eR`zuLCaGA5J! O&7+6S59J!1y8dtUPW@8= diff --git a/report/query_ore_range_gt_100_chart.png b/report/query_ore_range_gt_100_chart.png index 2603098ede49f4abf1630b98fd1c9210fcbb6d25..5dbcee059b202b85506b83dea4bfe3562334a754 100644 GIT binary patch literal 32833 zcmdqJXH-+&_bwV6C<>^E2m%5M(ow4PCIX=vN~l4UUZqQD7K)V`dM}|DL0W)-iVD&p z6zL)*gf5}iy8{01`Ja34mov_}AI{xlyhC2H+1Y!qS)TdKXRbHen#zzXSe}a91*L*KxLT_cC|2glL$%KXq_+cd&iT;%VvXX6x)E z#DDh=|21%VJykJugFvXwN&lV5mCdn*Kmv+X z@5}2xOIjQyf2QLx-1N8h)R3T2ns&_d=NAmA7}Gd?-n?$feA%LH@uo#v{xm)R6*}(M z)t}ETzdEIRTKD49=WK7Ezf!&=ruLw9PG;HTP)#9{!*M7(M|Ef41g`F;uc`SbeS7_2 z{Px!}UNvwJq~p5M(6+_#kI&gqCy#!5zIYZqHR*UHslavo)2~o%(pv#X<<0+z(=^BZ zHj_tuiS0dQmTGyrd66hSWBq)134gMLN2Kx%Ki$ZvC@gc)msjL!_wU~?Hda@E-Q_u`INa~#&1{{M&@0f7E;g-Aa6AEd{`JjA-d66Z z8VH0%-NMSMWwC0UUrTyjH>H(8_jkZ7z_i9=K8D8txjh|A^h>cX!S)xL#d*kXPtg#% z(iQ7lS)VE9?X1s}FYHSZ+k`Y;&wVH{bN1Mw6dU4N zVYsR!D?1x$>fDtk&*8p)`{F4G7rq=iyO1*xxiGjMi2aBCtmMbt?*~!#-0H%IbQ(%MFM8CG|V`j55Bz)B`3zh*^9M zJlB)2S0FX8o^9S342y)pV7Fvs>hEu!xNQr`NAIooA2uFB-Z|Ugp9A3Je>ieg1kxA0iz-^|j)Tq+I z_WQSQ27UQ@pMo#YKW4i3lx0AMNgCN(GhbX=DB&>|XPGEsZxu=?X*igx)bOLyTCU$M z_87E`H59Syy|ZhO2V*aI(iGYc7CpxP#`%o2-K?gc9yRzPzuk>9VGg|kUw{(H~B|CBJ{Jm^jP<*O#*;05}8JVHXBK9`(= zJnwlA9O*f%L+HxR)?^r#f1n{CplZ6m&~Vc2ddipA^L1e|JDi<(0oCGNmu@9GjI?JU z%(%*_UFcEwFtD$1YtFu6Q^}HfQ{TVeo#xRwIrt&!rXsK9F&RZJ$_wNdu7%@e5FUMc zK@<-uK52cw1jVf0Mj18uV}}JvMmg*|;O9J4p67;);?NjDr1Fdg&x?vV{L;=EI02Ef zZCsHCCW+CK-S6FYn{J6lyWu+!v9&V^_7nLr*fS4S$55Sj7$`PP z+0CTvlV-nls~LF5cg>w0_pJ=7zMkM;5?N|W4<57-a#H#6$zCbFxeptK0|(Mg$NhJU z>NdxGvYjI~=z2ItYTk>b`fbFEchH$UeZgy3_U%H1?tFhy6yH*YoyQw-FrdyV^fy$Dq^ z->~h;Qq9ikeMK!Zo0Q$ubobUL&14DKNTtKzpN(qyS7b6b>~)Cc<-+*RgTl#Yp~OyE z*|c3sh}=C=pi4sySJ=lA@yPYLZIceSlzC)Iortf~NOdU&7B3pr(VFZvMp(xzQlZNO zdb2eWvz$h2oNyI6;TtqPpB*QEe8^6H7%yl!mGO>Wu+^TLt-^I0nws8A3pX)mu$y;b z5VCrIi=90_#S~gaIEzL+n>d4)K=z4I7XJD3XVu|iiTUp*VbU|czMayW&1(c)au|3W z+>=dVVzROaTa&H>re5)B?PfuPxBZr-fB}dvI+z6f{(PdUDP{i)H!w%f3)IX~aRs(W z#C$IBDsuPK6OglBfgrP`{fZVaLvU!NIOKc0jnWt5Gpm;xSi8z+q!Pv~O;KL-;uQG| zMHb_iR|rSP!7@wl;zJM^x0A$Nr&O$;!qHG#orntSPG;h-OTmoduJFF{X0v|IWL z4R!qY*WtuZ`iEN?@E)RxKnc$*`|aC_1&f4Aa65Ji%tdnDa<>JPwlhlf9*l7pt%;v! zfNoRR0Vj`iW=f+=Sn~d$%KX{aT)42o;7eQ}GNDxlq8yDZ9I|NR&izFUXuZ z#q^TU;-aMD99H3~9#Y0lNzIh{v#$Rk13$=phsU==_$Z{ziGJ~8uCD;ClcR}=!KHhp z%x}9kF?q%9c4sOl)+>dwI#!MQ*P8fmPiHIZa_V|{_dH$P-yHXn>95xYYn4QgxJFBB z89Z-$C*}szQtbFs<<2MNUdxE8CJBeG>qT{|7pBT#ZR5{*1%gI%9;IPRObFHp*+eQy z&xNPg?dHx>BnsQI$?mU3xiP_u=W}EDjIXxVpMqR0-g9OFN%(8eNAt!JX05n8tnf3< z2_p7WhX>1tBRkyFv`~zG=t#ifzEk6O5S-Y*EBP=aSJ!+TcKq`4%!$Ez{Qz;KY#xZI z@m2#2Duj=somN9i>HBYmFSIM}gw^S~68)DHzhk(SkBymE|Gw$xp zm&DrQvc*FVrPq6PvLELw1X1{#`E{12B6(DY!c9sl@z;K2zevKNv_GLSImbZ7sq9K|(^~dJ3IzSG=TG@h2GJok0E5MEoyV5&W{=k(YsC^{ZedJa2Qi4P2KvejMlqTo`b(gR1&Wh3d_ z;eI?=yfcpg1c3>FKvgpxV_fc{nNs!b+kJZwZZV+)Y4Wc|Vu-?|^t??iyZ5ov!*4WO zGudciIclERo+>*&FGwxD7Cx|V-<=WESL0!if8u9KmFm0tX1Gk!Ysr1s3X5E?tM6D_ zbDsx6XLZL{+GoSvr_OWH2#+*0H0*zV;?$~i_Tq4rz{*|V5qUht)nDh4VN$CqFE$l7 zM^igLF#CioEG$ULI+vD~_Lo_XwOCRo*ZF!)J~X1xt5#_v#u>s}=Zy zJ-1pp@_vDxdyRgz4SQ=_ypV<^w909e!uMOb__Ou7zT_~FGhBoUd9M&weu%rx#MLVr zO=q@aE08veLlrUw4HRls4UfN55R-C}T;Jxwa1(A?Qhx(63F$mVzg>%Bkkip{b;XT( zzg>xeJ{i@a!+enRtgfN;&kj~-%>l3{CSAPt>9;f5l*M+LpQ#07)6Iqx(@2b;KbXJx z0PC8j?_>%P8Kxg+o**Ht6WeX+!DI@rN^dmsNF3XF36`Wz$wn}`QxL2WCo99)_wV1Q z6N(jknSB=S5@nl&hEA%26aji8A2px)eFjKp+>tk%GS4dZXiT zW&Fg`A#eFzUqav9T1)VdP<}2M6(gsa-@0CX>ppnT-z&AwjFN-D**OB}P;p0#k`F^f zound_SLQb$kmuO{2HbZ`zMltA0)7cA={5Bekd!n&*v8+;GbqgfNE@}bbo3!4ke10Q zU~9!ZPp=^6{)3(35N?lj6d4Rjczpc%l~mcoJsnN)=_{#3HB(MBEiCjD&5auZ>4mG)k&$ZVgAd;{N$Cw7f!Zt;?gZGj?<7YaN>|Y? z*|P@4cm0X|>lc5{qhUH>Y7P!bj>|dT9g|HK^Cb-}vEvRgh|wAqkS)IR|K}R7o$I$B z)Nk!vw;h;-*^U%?t1eTWWV{Ftnzhj>Ls>ELaI1n~|W z7uhNuM!EYm^VC>^o=eth7;_n?XV71@qx)A?DP%>?42=87N~|yDJ(ee2zI2H-Cu!)j z?~erql4$@7I@{dVhAJ%Nee>o+)FWcY*8#M5#WV5hfClfq%^MAgO+4eKFo#b1Tzr>f zTPjiab7MqK~ZczvpMMK{LxPc_0Vlu8B`35wl>^+_0gnoqHT( zHXf#)o-wCy{^wan1Z4L)Z|h~y6D-pGBeW%sw+R?BZbEyZPLA2Z-(wcg^ z;W)h@p(;3AmSS~wB>fe+#YnikD`J1BXL3ZpY%jTLq!PQ)Nb8CV*lAYE5xdj6Hb3@I z#&rE*`i4$ODS?>k0Tm(qDtjZf{Ta(4?2=s4NDy`2>yg5XuiG_e;y8AteVy0eQcunC zFHR>RMbH|J5;J&@8%1mOHdC3ngf(Hrg8f5ul7 zwCE)Z#B|CUPAAD$ce0oLeb;HRsLa#uPjKvLBlpwvlCDRpulvo9)dY?B;0?q**K*ws z;Hd$2{oT_)M(%vBBcBYufO>k-v`3P(d=SW6tKRhimB$r!uH%K`Fjg7F!LRLtg>AfZ zmF2-`t+JJ7@~y@nBdpz)EzR$1n_9OniK&`kTzhI3&#b1Ncs11yH;butV&=9^ax3o5 z*BL0>9JtY-7UCprvC>`zwXn!Km-S%dFsyE^W7l;oh;ADjc7CQKrYUFq<|*a(k&-#G zEDZ}fII{k^v8U8W zOK5S=6SK?9enW~=K){qgM?`v5YOK~LR_fkgO?uaP1A6b>(?Uhx4Xs<7TF0XGZqx~! z3LbaJHub{&^uN!rmNc;RSSP+>D|*{M1ZLzRjGrK%{$czh?z4(%S9%nR%UIt^6JzXD zH!Yf{%ifLI>wD#dN_4tzoHn^K+0PdlAHf=R!(X=ro@W#KVL0H?D*il}lr; z1p|;7eLJ12QB-z^CE`=BK@s_#3cx|Rge1TP;4 zm#^G0jM9d-ls(+qK1;irT+3sRv}G2JCe^Zf}^@ zs>zGkj*SFDy{K-mr52j-hv-D^Bj7w=7+;{~JPmKqTz1@_u_ta3MGCUI3GMB7-9`^9 z7bRON+s9SR_bMmpw(*^^S<0Z$tn}6#KChvafcF$w8q)Ym8T~Ix-@!7B6W@(T+`dt* zwUqiagi+R0HzCy}=6%Dayg2^l`Q%nTb(N>aS_LRy4J|bd5B&$Du70xOuJ;U`;_s-= z^*gh;Ot=1A2w@I44LF?Mlwp?mI6iWi^J%jsfAp~0nWxk!@=9+W<@KLQ1BX1Fok;Zu z)HV8SY&SJTa9JVD(MCDFKiy0z|Cs3IUK6-mT3Y7ZnL@K0Am=}_lYDMU3KML2rs%0o z6=jWn-5@~tN-`W@LbbVj8FzH13_8f+ylNTLj2C|np{>)CY^N_PaZm5dUMIOeOPvi1 z@tazS%7X{N4hM5;@#~-6an^S0F{xR;K@>q_OE)CF;_f^Msq~l|Y!#PYzi%^L5(tfM z-;X+vh-Ij7+u_3Wu-d1{8=IT-VhS)!;z?|&MLPz}_0}2c^@~>CgvHHOljYA1yCcl= zI}B}l1&C41;fKVk@Lj9+7&+D4BsXr>2j(OBX_#)hwsO2Y;s7~=T2Nd! z@rYlVP7KnTPM8CR!7A%mR7qEE*Dx;pTd65Ilk3JJ{CZO3;hxJ63_d=1Zpas_Rx$<~ zDeqDB5pmp}vETl^C`L5(Zx7+I*z*%g($l(8U)vif$Jb%!$XsPRF5mCBmwxW8R3jVQ zvLz-0)Z`7>Vm7@7cD?zIJ1+~swJnalx*zJ>CsqXds$`yd7fDtE4IU-zo-80=BVm>#xP1Edxd#R5TEp4RAyrH-M7Y{Y-&b~)*eI<`E9I= zS#n;q%}uvj^zRL*+vr_6^xI}1tozGjJAiqotCnwGY>@+R#s$x9t7@r58Iy0s9*B)t z^!x0M<@FS8PWOCtp%H56?Ay2e+e);2nyO~8k~^%<;&o4aP&dLd%ewiOPj>t?gRmW& z+M#ng!4|EjA9}HMVD0aw4Ckcsg^0v0Q%6>8i+npy|(W-QdQMBnsXCJZ9lssH7`)WNx`)@s&Q>T)8!Bgw1NIrCGy%k_L+ zm1N_-1-JSNxdb|s`JC(SXk}!!swC^otL-|CChr%$&2afNQ)V^o8t>gX>N@-TgqsNx z@%IMC@z0d+0CppL!u9E4gW$wWI)}wv&pb@1uw(rm$YMT%)-xBpm)UUB5B|qxWx*&W1rx<-Ps8wBHCd3Pi7)qg9~Lx3_NHQgL-H`_@FRB{3TtAo@;f zpdP|=|22y1Hmov9CH`K7;I!LP>zto>Z0e*YFMiRwNn%>6KaA#0D9yP@mt2Up!4CD> z7}kfKi;K(VNB=3g+=}Rxx0RRWKHE0r`ecvu;JvW-6NH_=T%r=vhlDKC_W$UVjWRtP z=I|Qz&fyz89}P2azx?xFf*TKi=+jpFXVcqmn30KCAz@-!XvgGvHUR%t(u+<*SRiN7 zUmqrmvPE>W(Kl(1^_coo-NK7%nOwTl<$gA!lcfM6yPH5~SPs(%X#ZpOEADazZsM~J zzaMXQ0}kOmK4g%yrvhOUx%fu5ijKAYcR>e&=1$6^joisG{=Giomi`^i$uzR|LHcPH z*)t=dH^LuZqMf{i@V-7a%V3e5OF{HX<~*PSl(kY;LxZLD%$_F7<&W1*XZeW9O^&8^ zOku0USj>8*M$=lMFMnB7>KW{PZe2RA*k^zAr@!$%yjA?R$vs&=UY6mccbERDOSgxp zA>ZW_2bCZE8t8fH+=l)Ts@5l`8=xU1-`^c2A9JoS6tlN*$pUi*QQt5A_Y>`B znvVw=9wyG@XoLIF>u1X-dWKuWJTf#9F|-iK6`}pharDpAa_-ENuWsIuMBlh1o>s-= zUwo1EGW@67Bc<>&oQ_7!bad7XmZ!c?tfVW#N)^0I&!_8hb_bv;%q{#W**!3k7qBg} z;kCb#%$VQaTx)@Pohvip!T6pr47IE)nnYh#KfFxOSyO_<@vvPbXUZms)KO?V3s7RK zU*3eU#Kn!D5nRo??3$bcXF-{9PTkcw)S!k(SZbOyb8z4vi_RQ;TXsh-KU=7_{k7H@ zxmRUes^78v$oAlX-(q^NRNMKq;d6L5COTEQ1;1}Tw1Be*%mR*RngJm9ex~^58fq{h}5$QP{=zt?=}Rr34gXAr>RD^Z`wb?DC?8x z&+__ZAr0}G(Q6hLzzj8ujXOq!jR(N_XMd@3>s}}=Xt~MBG}2(!?_X`wqO7c1pkL(R zGnPh)W=77k#sf0tJ+rhC;HxaNJ!ZS)`-@HID@Rr)8m9-XQ=?&ur*13HqLTUIANnXo zMpi>jS(IYiF$4kb@A3g$twPN$&MKKz(HEjEQvPp_0%a1Wr|y3YSOv zBpYZ3baSko)aFjm9=?;*Cd5f$Vd?U*J0+@P<;Tq~E*0&m3vqiU`aEfk>*IVy^~DC# z_?Z&z^JR7GKiQfU?&iWvQcQf>`&I+qjiU~IoN9FoVM;A1z8|tfjiNi9NF!waH`IrU z<$OUuDtAqm$^|<*U6~`g9OkLsG(|?%(g_aPJ0P4_gQTWpuUsCTBC7eDsr#) zVOOJBE+=YB4R^Lk(Hm_q;HNKHY%`J((3jixf+Xb1WrJf5=QVt$=vvK^&JShPL$KJj z^GaEM8jusG?@DjZh^eB#r>|RROzpv#pY8;;TZij~k0E6GxooH-p1RCx;pw>e z3`1p}%H6Ub_-QUQF_zjH!_j+&UQ@p}-THQRkPnTWWPYHOB0Ki2Lp9ZH#qJf2SUIM;@@}{LT&gm7R{+Xmos{ zB1lj|FM5qRar;%gJX2=m;qSH;uEY`tzC0#0L?(37(vOD7Jg}Jhlw|)q+FzILBt0@- zV7$rAzm$(GhDzrz?ABp)8Qvw#`g%RLYwzuu`HIwi~gxC3+9<#F>He~Ff#e796a1K3BG#5|Qt|gNQUExUO ziB@V#=+s+EYwk?9Wv6AC7uRu?lYx#dqj#2#x9!Bm0&Jfa%SUA%_Wg}A*AFC?&exr~ zJmF>5`I6i)##kxFo>t$obOdRE(Y61s&y5Y}I_VJ3^Z*YFFjMUEHQoZ<7Y!XE=z%q( zSdl^wzwY2W`HU-3fZ>MXJCZG%LYV;btynVO7I#-MTProieg_bOw?srlcz-0$g;bWK zHcq@i;~Dl>;o^9QYjnBX5$9e`Q zB?ewbE#hwMub2I51`(F(;g<0NQ!e6Fg2;f!3EP7nHDOIM{de~tP;es01z;j2%$z$C zLO6>Op$(WpjNa&0m?DxBWw#d%|yzj^L#_Ft*ihuJqUeweI;&LWkp< zCg0@S{IbfYSD~r$KYRgMnI^BTtFHOlX34{7kOt@K-w_{6vl?e<5<{0dkKvt^Fe`{& z$Ytm`n20Zyy)t>xf<5$F=pv!LU4 zzqtAj#hbSh@paagma6yf2YL&Y5B>B=kwC8H>gH<8>lYfZj@Ei@*23~Z_skWroo~Xz zsJE#LgY5xnetw&p_xZ~pgv|9pAHoFf#B5)5K?HVQ;&zDqgTOA@3gM(?k-F}IXa(>gwX1E#afE`;bt1X8*g-#4Y8h1fp-Ni!?fAQl8uF$0M z=c>`Tnq`EH*z>fn%V_y;h7lf*e?5}pDWmA{Qqrd_9Vs@M6%2dJi-HZBuQ8c@iUrJI zVmM#P0=o@2y8MqVXeBz~oT?|tY(eLfJ{wQ3lGmOnmgrLy*HZAVZcK`BopH{&%r($+ zV#Nru#RXNo#y8KMtyW|qn0Am&ehTn@`4gW?hc8r12sez3bX3SGWT(Q|`y zJR6td7vd{c9m=UdV<&Ot#KfC%wO9AEQkv}Fe%n0=o%*D#UyLvye>-xs;0~>!lXTe# zL%q+1+wP91OIn4>FPgKksn<{L)*i~!K=ld@9vYR~Oo$fwZm&kh#o1)fU&M-yJyYbz zOkEbz@PU3{lGNv~-+Eju3W2=HQvB04UBE-z>C)cfo;SN{Ix)SA_wDa~n;kjJ_gEQc z>zsaBBliS^eQ;rPnPvX@c))$v`G|@`I@tl%=93B!y8>a`T*j4!zI%V01nv8Ig&ed( zey=YM!$DKfq^Fh)!g;pn}@>2V!Oq0GInbW~oWH4dbm-njMg? z+o%b^=!LB%(EqcG&Sq)#U{*Z;qU*x3@C0oj_o|R)|Km&UW>@U(W(5L?D(5s^qmyBZ z%z?KOmGJYfBpyESN%-`I!n0);5hRuqt%jCht8!@B4uTnL8^$o+dn%W&o5vOrnmw`e zE|nh;=g^Q0GQ+WAZI$pdQ|~|@UVF#p_te?svQO+nb|osXNJMRA)+P{T1it-vu8iA< zUO`3a>Vo_~9x9KrjB0A+?agM_w#-3EUzTGTOqwv6VTU(6lZChKmS(sf_r-tIujW@^ z>#50bfm_WKTdBr=> z!js5dMzzl+SX-fDmEfHlJCZktQFmAGh|X*jj{A>NC!NN^Thx=jRk>El+`QT z!vW|uR`-W+t}*`+>U=b;CNq4jYO73=Ymn+cfgq}~x-__&a4(q#Tnx5YGZ#<*67Aamp^GTf_eix4wVfZ1~_5mnpwGsr5=aP=Qbn&0x*J!ASZF z_$@BgTV?JS9C(;YE+2ggkq`PGzVd&gTnT)~{~=ea{Rf@jynY>i_sNfYIq2-{mfVM# zx9;A3$gP{p0@Nzepz(*A^*`2hv8XHLeYh^xQs+&~0_q$m9LS_RpgW(!i>NaIaGU3F zj~Hg+Jsr(n2|8D#<7|}nTyw-t*HMpwpCBs>MDxHsHMKM~W9ZC$A2Neh9-%ics@!SR zXr?n&z|8k=ki)N!>GwD3kN=vL8A@2G18rtiAlDhm29gt1K|#ThY%#|n-MRiEp80_i zffv$8O%8~hxsuvNk^~9p#Kf$&QgT3|Q3J>b4N4m)TmihqX=XbzCdSH%3Y6M2GLn+R zBMR|L4VH$ihZ2yqTQ2-(ARTDP#S32vn@2Dr5EgK-okJ=pWOin6zWMNh@|UM|TO2Dc zN2^oBZ@k_w+Xb21@Kd7jp=^0XggktW48r=tjSKRW|IG780E~?PrM@AKv~1 zDoOI&80@eGt`GhQ@NF+Qlgv<}ueB zVb_g!t>EJ4;4NRO921Gtt4%ioR6rlh&q<7f#E>e0BOsxiBh zd7_R(s4fJk?ZJ_D=OqVfwTVVc%DhLk2-Pz)4HhESI>kFX%j>w82${G71!6pofw*s^ z4(<`p2_ie(h8lMI=n`@&{|Qb1hxpO|s=yIE_5ZJ)RJ%qo595Z1g8Ce22ggQ8I*Qg< z0k4kbuJl)+aa=w6;Qh6S8M`1!k{o<4h@Pf^Fs0fJui9#AkH6_g4- zXOFM{@p?U;8>k?GEa{eV7_&&@79%2H-y_ecBEQ_GTY*C}iIWt_y7&K?-)lHDugJJ6 z;Uefa>yhH%avd>L*uKB5t#)I`9u49V?EkImT15Y+>cVt(bcj}IXYZCYGAizSK;%^a zfQB{jE|zN+A>CfSq%tK4rjZ~V0Uk{a5Quf4s1vm5Vlk}sEIOAROnH6Aq}Z}G2KLEH zgD`^mwD7A`kwMg9*2720sx6#=%fTnqgT6V9Z_rL+VUy}n05S#vNdCkBGXO0NxL%5> zA7beT!d9Al;M)WSq?m?s`gDQHFnnpWcGr|kFGrI}{Mkwx=Brt5z#|b8uxLij0gq0k zWr0w3923hLXC>>cNWoi_)fh3T)};sa_R%p>WQQ9)M3+BqiH(c9=0?nNehLC2Hyaz9 z1L8acbp?de&zLKam-6@He494C4qtJjdVWlk@(B>eCcsKakQ7K3Z}Py4g%#J<{<6oK zu)TTn2B_?Ql|GsN^G+ZJ+)4CW@xQnNdC83$0+I9r<2`N9#UXZ}@#Jvmk;}IqC|<>< z2DE_C#{0>tU9fS({VW2+XUo;8pX}J-BNKp}oz|ZFPG`0zuBFK7_>AhPE+16BT))ygD`{@pTmlVyWxS>}x|NQ@9D{>{PQ;rxZ=y*Y5KuU`0um7obdWE`%#PnUDn@%Q zPgz#^kphjyW#3}jz5umQBn^_O?YV}it?=i-8Shss})qglX82JXZ`2x zR23tmgmU|V(1Mj?vq-avhNW<5B-{c@5%=?1z-~EAYduA)n?Ab3u>rQ65f3f*17HXI%pYf3H(<0nCo zGX~@Y2hD9w;V|V;MlK+jr5r*016_qz@?p@D;v8%yqvB>c6k1Y_*Ty0}wt=SQR8{Qp z_0IAHQJ_K5$6A8jNMMwDrcJ_AyPL~m*epi>!+kHXtadD$G{+~S{kFzXTsm1m`qc58 z@b$cayS;C{!=Rw}=7`&Wf5kO!pK)K}2j8`BWf;&jV}OJ=iCB)DBRMCC&Zk{v|2_VY zA{Y8Y`}$0t>vYTNHyW)g9u3Feb@2xU6I9&7+L{#RY@aRVL8G~qMx~BF{HmR-bubVL&|Z?~+!;Ecf>DSrBmf z_9Sr~ZoT|lB&}Z^7!W9PnS4N^*<42{?3P9_Ko8FYhzhYPVE8Qn1|<`9baX5MWeJLF zPFil=aKIk5q)7WbqdR^ZP(`gg&~|kDE=~E~MDZqhYuPO}wv5m4ami_v&Qy8`b0iSI z$2-~xt^bz{7hC$IsRiid)U|jVi~U>qs+yzW2ri&P^fpKQ6E`Vvp=$pAxIPWk!V&)a zJ3j$~dgEik^7_)~@Z#T7)KZV~b3`3}Jvv!H0@q{DCMikaI$jotr6lE>QYL!tN1xNMEchzM5G8h00dT)C}Io^e%ip;<%9 zzlw=vM3HN8(|yP`=ZwGeeG5Q}a0K=oJRA~(@|2NGI8n?w20TRqLcf?ap;7C#+~Jm+ zKE?>f2->hzvPW#>fO%;8!G8z3j}lBnNxF7=FTlf=KqW5t_}kexZ{J4B+4W?-IhO_) z<>_{@aTJI!KfzeRc`TM*$cm(8cGDQIa!x&0uduJtKbdu7sJU5Ty^#DlEDU7AD@*_- z|2CPM13dtkLpn;IpASSY(trUC0~iWuvcHGcXg&`uNN3bD0Qp`NzTva_^Y(OteQ^X3 zK8m}~h8tI)5Pl_KwPdQqT>jjr7jsH7Mx&OTEA0Bzzr%A6Crc=&*DFZXI!U|6^-sI@ z{l^bzX%LLzqWFkQ6B8nqtF3R-cmGsQqsjN^E{DG*>&3ypOC zOQEcq_fCr=lNzTh0BD%_4`{d__!EGJ%?9v#fQFszyL>?ca$~_ZA=W-G7Gdk$o*

z7hil|c?_2Ig$nxR{MkmF0RTby!dw8&)eX~xKvBU&Z zHp@Z9EM?=g^GUM-bQ3JrX1iex{(k2;E{vao1lq?7|L3;K?+m^h|Ii^~0<1GeYG*bx z8)mn^v%ZScl8t{3W#{040*i0&TLD&e+p-1q*9&+2)tr_TzU$c8SsTKy(oD>;<3NJG z-23-5|I?#P=`>I7B*a%7p88T6lARk#YOl)RcuckW5>4rbxdS0lHAqf!ffX z1AgE-5k%KgF@WGXPsfh}lL&CIg4Q#7fJk+!T@>{Owt5O%a{L!(X}W_93B|Qbkzk?+ z_?`)ub+Shc7zz-_D=8`c3^*X(*#7;Bdg=@LjSExtM~USkjJGwitxa8M=xnnZ&}>;) zSg6?9<==lm=2gYs?w^sF$4 z10=1$gr)#)W5@EGjerP&CJ+^f*;5~zr~q7#A~Elv7GI=9mpki%x9`_6V4)TD=;+>| zH!0}=y0GPjf@;^YzB)vq>v?2J{yQqUGccFs9J1n}AF8sGpe*2aw}b;T2I#m22)!rW z4gkF11h&u9OLeq77w6X0YRPm!-F%mpU9LJ1#?8;KNs^m@L|eOE*aW=N{0etV4Iw*m zij-^)cN-3c$TbKj)YR0XfZ_doOUu)yw|#U|ob4~MVi&a|Qx_HVpdXl}hlC}T!4Q*f zzV1(T9M50d04|Mn;cx~)3zZ13V>Ahw$kQ&3(N~fN90;k#r@!|!ZEaytrvvyAy{JQ6 zq2Z?oU~uXB)<3>NUfB)Oehwfa6y7x_1)1NLAktd7&)qKJKFjjt$NPv!@GPSOfOF%i zdqF(40D=`kAm_$x{dsq)%IoMJQI8D=V+zMh&0?GmhDYWn|Ew;2>V$rOOFPPM;t60K zPEtjY%2~cQlu2^x<$3-)aC&tWl{-YRa=#h%^e*pFHn@xXQ6h27sykbA1tl?k1#q=o z@|UCz(g?7&%L~^=j;8hGE*h0O#+Lg$t5^&0fAtuDc1CudUmMw3eldI;}nTAFMRLXQ&j zv)?Zs`;EPS|Nil)KZ#TLe62FQ7j)b>z;K_SYDRYY-@kvI#FQ0|2L~x0yvm6v@w-_Y zsYNDl=jECok6`?w3#O2=K-)Ka=ZAd25-umKx5Ug0WWwK~ri#3sc1-)*!PlL_fumW| z_LSS=lIBUX2TpZ=AJD|v*;+#w{@b-xk`34m#jR-lb1p=pnf0Uo{% zfGkKD4_x-{u-j?lhW(AiL29gl2_R$IqvzJV|4dGj5}W&QDq1Zz0e{bT>!TZ1>D|?M zJ7Loj@NXGOa_`BsEDzkMy{x$D%lbVgsb^i~WH5}*K-o<}V~_{e~???~Kt-tm!rUG)MPYAexj zFL>3qIbBbiYUdLfBSZGR>>FTmLswJ$nzjY;E{MH_NulK<dj zPKu~_!&;9T33N@Y#vHx3t@KS?>d*Q{+im{Xn0R*bux;is^h1=scCy={@?{#P=;e)k zz4sBDPLB8ipDg(({a-d_T$HK8XS?N~jprA|(ZandYHCCVC_!6>NgS;wY4l=B_0>hn zOvW<;q-lk7wdGK?SBy+-xs9_eu>#I9-D7 zKmd*vkPE{``f=Kt?*dQ=1I<|Pzu)OB_qP68nME&^l*k~AE}_kPL1pcfqJ=%!nYTKO zhS=*_HzkilwoMnWcOl{BBy{u;Y)M2n_X zGs??StY;8&;sq5En2e!n#dWEK%!=4_eZKIJCl?g?;sKtg;S4`Gi&!Kk-wP$ZK-H{# zJ>TASujn)wJEXW$bj$U^K3K11^{3g2LsGVxUPW0w;l-dx@^;eU`DOx^#=ED^+f9cF zt*1N0L7Gd#@U!IfJ){DoC03Hi!aa2B91=W9y;}m+hhCO04@rr_&Pys>%Gy`m0W4Gn z+^n^r@7Buaxhc@%F7=HNpI7@|jXa~Z;ykxnzVmV6fI*LH9(>f_7-qL(@JDiJqObR*J z3{Z^?^^O?dN{dkX5NNRNpm6)m+Y7$W(;HXI8K3}`TTi9YN&%iN7EJWEti4=S3RwY= zgLcci;!7o&kWt?B*{AN!@njE;`ZCMyS}U|rGGUh4<=8f3}k}BxhOiV$SMT znO~oC>02+Sj(f6|LgsAb2gn^EF4Z80fSemteykEPe?h1fnfBcIvQl@Hu%Ex|PP4UJ zPWt#+$kkP9mOt`gFD`nebd3+0a2X zfP8JVGvxwNWEw^h9sr#rr2V+-uEkRhX56ftNF#6On%uXN@I?E}C6NAy7b(2QX7!dl zm&f=>w7#Ko$%YrG%@cX>wtaCRaiK_kzMaiw=U|b!aA_@Lt?i1VUto@Jf z^<=6;n_RLa2Fx#8cn_34iFq($R0NM;5lfbPb*jEF_V8dgyQXy=8dRJf zkC1nn?Mk2V>zjDZ5DZ3cht&mCgYr>5_carft88&U-mCUvhFnJV%-ujTtAapBsp1RaeK6?S?;TCdQ6olKkvsHtbBD-tDU!MAaf`HOMFy1gw0 z)G}Kv1L4xON(MpKSaMZUvTer@HXqf%cpIw`AO|q_Eje*6RYUITwF@|RW(eqVfD&jE z#v5R zcT`Iba#C+#PyUIwPN9dTx&(ZR1whU=GMm79>{2oeautqo&8$?4fch2MFD<8l^3;|a zsrkr8a|F$C^_7^(dV|i^$p*2b^C9TZU>L3aqAHWuUmux-ye zK&^ws?xc9;g8nc#p4S4V0<%7}x=@@&Iefm`g=C5krFMrky@Hgf5|2m_O>^VVnOjD3OzFCNN?gRYsd2*$2sI8FO;w2Jni4UIHxhGq* z2c`-QvXcL?AzV~w{SpKp7@UtxPIgq_@+(Z&L98Z{B)j0gdRj}g=K$T*O1yjY3(jN` z0}JpF>J>RP6b+5`<@cJ)%V~+b`=pJM4OB)^>}oO1z#r8XCst~6Q2HuZkd43B9={d2 zsjgJELx&AN-1do$f8di{NC+ps2zq|7Y;}6lMhC?#P-T@xz+m%N|2|17I)P|5&injT z-e#dB?$=<`hD3aK;*v5L?n9HPTv7__Hc405G&{u!_Zo2tAyvyzp@x!rYeW6NOXrSm zyZKy_Rn^s>>O?=`j3@V<25-UgG(U&N=}X$4U0)wCQzMOgmxFk!3xs8?q~T1kaRSuA zp)me{MDmT+c%Z@F1~aAnIwr`qSys{}5nw!O@RM~|p+Tv_gD_@3Ft3$e2U5;urbVyv zhb#mF0aoc?$i)vZ-kqwR_XYo^C)7h1J0-(m5@xaI(*RAV0;&-WTGXq9ksPfXd1eju zpqu%{u_o9cG_~R~2n32V`0Gy9@_@`prqz^CZ{O|#wnwLhd&^5%vG&q#n}ib6;b4$) z8obPy+U0uV7=BZ35Yff-45@bZNaZsQ^#&I6IITi&rR2T@fCv8qa z8pL#bHsQB9dixYPmGC_Eb+sC4SRS}0iH|h|y8)oy zYQLSCK3b7L0ZPeoiWd2R{&XKO7V4!b>%Ui>m*g4bST6SYEBWV^A zKu5Q!VdsYEMCW?L2Y~S$u5uPw@wYR`dhwo2n2Lll7Dj6a0`y%a|pPFEta9>7>a;X(IK9tpUXs%DFHGO9 z$4!E50j$1qj4F?AG*Zhtgnl5?D~^WOsFPw^=Z+EBcZ0uSZ}puxvpEx#NygWJ?I!)- zqW~xO!j{EjEA=x|^^-%gJ&msX+)U-L1UqJILJAo#L%z)&G{7V!D5`GzuCy2Q{&4Lg zqYBr9g|o%ND%=+q{T9y#yT_$$G(y$Y-Hji-5^?-dTwZ1a90cIGf@%}OorV*q$l`v? zF+lwQkzVFFEQ)Jw(F1*JH|hR6Kg~b`f3;KgFb*mNXYllJRYG;QYXaYCESZx)+mt0!n)iGdTaiBf0c3b zP+OMiLF(2oF6?sc^sAZD=~9G?GKcfQ{NVvmRA{+g3sICz7?pMJYRQuf#9wcpQksMZmp*y-i`Swm$_tj3T2)ygpG%3@= z7?q-^4`rv6LZ)r2Gt+wk_$4Iy1L&UUuOXqX=_9|Lp}4gM_5N-PB5E1f1BPDGv(US6 zKNDad$Kr2zn_Ek&Jnzff!}Wb>@3+SAX`G3!6zVyEeX{QCsCaKr^Q>tS6!W8eDlPMI z-+WZf1N#qz-X@LmOL&k8= zR)B-41rC}oRoYM=4f}UY$^ti?%V|4bU%EL3Xyd#4xx$596qM;}+rqyH-I*cuGF!bm zTJbZJ4N)q?uHba*w6n-@DE zqmxoDz5@)%@#`(D$_PMmPQ@wsp>HOQ+)O9)TA#Ur4Fci|Hf-;q`wVw#Jj_J0DBzc3 zJjsY|Hpww5w$qVJ?owHZofVLCvftG=g8X3p!^zGt(Q|O%zK+_UiNGmBd~OY*=3!z8 zAw;hAVuchxig0%bQ0d#LNn~qBjaw*1L+nY6t>Ox(@!Qv=RNmNdUsO??Etw!T`)|d z&KYQLFhK5E!^y~vUV8-vVmFeYC-U1eTF%Mnbh=raM|14h#e{P02O-;pr*cd?_<3xv zLWCT)(^4S|1~n_GU;6g#n@Ke6K%bnf?~p!$VhpqeS34w^<1`OL)g)(>68*W%CJifI z!~x0Zi}N9KY?SD)|Ap>uUMT&W-0ET{8Gk?w`RX0BNW9w94Au6yi(&2Muk` z=4+GsSskHU#cP7E0pcUIYW~wWk0ga~^JgT@*UzZiv0co^fAzUi8(Q*J?9pckNwwb= zy>gPhA@UwDaqj2GiT|Xmz%y!8OQ&Z#!zJ5$N6uaPD}rX|U;pAg%7u|JB}^M^nB3|9&?~gVLZ* z19CdbkRfEuP#O_JL?Xvf%1}0yStmnOG?1B;F`=T^WjN)OnG6{c8n9y<$~JFwpKo-& z=li?AweGri-Mj9+>)!sdREE#+e!t$Y=i~W&F$MLWzn=c?oTu>O5aqE6!oRa|x-sp> zDU<8B(sq`XmrEHuUD8<<(3ixfGu~8RmE%#rMEKQWmArT8l6RnMe%ois+S1Bsg$m8% z)QTMrlS2(<3)UKMdWoj^Ybni!()7{Mi;ITT`@8)%2@3j?ijHVF+o9oHOft zjQca^%Zw`09A}nZf2o-nixvA~ivbQ3Ufw#(#+94lueJRC`L*1Jper}nIMx@VY_@1G zzPW2f6w!o?zwcd42?(SL-pEFISyEj5QJk-h+64uYAHE2If!n!Xzvko$#ZOe21h@?; z<}Gf8P;M?n>UZ13<1SqZM5duW&85eNi}mka_u0E9ah+vHTN9Q1vkc~a|p&rFYn^2#LcJq@8r zXr4k!ocWj9LXgpkP_xY_>i~(gC@C*rI$<)syHGYgnlPD|k7`||ck9g8QF9eYxL&zx)hZ$=U25Ar^I7k_-99>J>K`teh?)7s-8un1 zt=Vk4yL)!01P8Bn{u<{O?>f@wP;Yp$1XYw}A}=}vgj59NU>cBRKJ!0uUR$3(g7x_z z8o3=PMuN%yf)mGYknhh8N1}9!nLr6WfQ}=Zi|5QQplzg@f;+4WWn>%CN#o;xqf(s+ zJOM$PH`#rbwg?lf`<92)7Hx9Rt?M6#gP3ZMXuG>>p6=dR^=baLV0m((Q}rw8ZfW;s zKmp3!^=j5WbvTN;RhmAr@VEAuRVMJSNkkO6raT^_W(PGjrE8yLW>#>Gur2*%6Cg^W zJ+HC)DSRzh{O;=nd@nKv4Us#YpJ<>E)?i>WJ9>v7r^*4yND)>)kE4I?7DPu(e{UYN z6&6kvkDPw0 zDJo&YdICEj#Tg?*M4L3siL)RANk)+8t?v%cK0aoNP(#tpcdI1XTKHfeI*i7_lQY*s z<(DNFwNmgTm6EL)&&HC$SyF>@OF%-kGvpLY94cNvww`@7E_wOspuoJ1{#L*z*V&tF zqeTMxT=T|T<5c~Alan(fFv0qmnT3%uXGsFtFolC_iqIFj16@k3z+*BV@~cnNOoN@G zb_q`$j=Jpsc;a-lQn1pN0=~jgS@P`Pu!6xy?QS3)p~viKdm$rih3=t)>?4q;A-Ym5hX72_8XshIzhwu$rYPeb4!(zQNI z-f(z32H@-dMo0?A30f?TnOA~>w#RUPn|(w$OVw}Gx+(>gS!-Lx%>Bf2LO_K zKG142ES+fa@$vV1W~yS!tFX2>JuK1fz`BBQ)NQ9lRW@|s#Jc**WD~5!89yT~Dn*XY;Y=6Tm>ofAu`@?9dmZ2D;7@JxL)ei zrYa@Y!!bE*Sb7JoudL?fHEoZcMg*gz!pIJ&%Ju?8646M4#Y|hbNuKXHO71tIu~)8K z*^X2HcD_dRy-nKbv+vdoU!8QRD~tF1((wo>N!dksHpRJg$ss%MA=(m$RylF=d_5Jf zG|P-w7W#73pttDNI|~B*VKExhBIT`fjGq9aSdv4A1-ZQ7sN;EYnS(>`k?q;;cXahy5JWr^kUA9pN$CKwbH zU7!a^7f`%-+5P^}seE7H>RH)!pm5qVtCWOm&SyD~|BZlHNASRYqkp^0Pg+7E`D!a= z)2Y9i?rFSan0I-TwpwH;+QBR$(2^5gRP7lwh|t|}`1+PF`?Mfhc$G}6&wu$#*nN=A zR!hO-bO5Z!-1o~<DOl_^6t%_EWXWR6%S{T`^1nb@_B9bmu>J_8Nr=Fr z=y&YvZpi4DF2K@98exV{PlpWlHaBQA=exgvQ--$&5>-a?H8gx=w8q)|z;O=F+aQ{; z;GbW5*3wh`Qrbc*<6$;Zh)D2Krk37psmJ0|^$jcCYU`06qPhNe>wn-L`?Y;^Adl=A z;g)wi8%gfwx}6svjg5i!5%-VOSF@hS#QIYvS+!I5SJup}^%7@Ka2$%c;PUzZEEWC{vh@ETHTi!l?5zTd6Ds#svQwa=LF{=XB-3^Z6;*{}!!aZz zs@cp|Dx7R_b;u~}Ad4V6grmm$RFeTd%GrZN$#UYIEoU67SMDJklASa5f}5y~8=uVr zEbL4*K~M4$+`4ru9wiu2hnvuIJlH?$z}ZdH5mJ_S>@OA02*ws$Mi>PMe9|FDNI8<6 zERey7|F39jdqe%=f@KtegMa%Jdc?=!Q#iw(qD?|*D`SrV%S5Z`7WU$Z?i3XNuE$Se z^^ri}r*Z8_Z}V2L2`jtp9UwQ1y+x#oarFku`~`o5$^>6hb{joA>Z21wmS56PMfdpi zNr4@I(_eZ}l;d&zR+9X(sY~yKIlIp+8d|>XCvQZ6XYzG|;28O#-3>fKLNVbqs<@Np zj(N^CGO~4T774tKXPrg<>Eu{pHUKBbn^ll?k z`>nN7zJDnyvrdZM0#}7t_2f+Dt@3jI5rOH(H^hwSAnw9G97cY_0uTb*YjK%a!8UA^ zx5!OLmL92wm`00ctND*ydehsehN_q;upw&(Om^hY-HYDCoA%Cp?ETwMf7gFE_4NOj zis?)Ezxlc)CV8I;{&2~YfemAlCo6+dAghs}=`m0x2{4$}V@5{tNMkKgv>dXSel^85GEdK^-wh%_WGv%QlV{K0s&Z!M2aup0`6hPW>6q*=)*s z!+)dnv4Y$?jRs(aKP*CO9_R`skY9fF6%WIj#e(*x;f_Y$SHjz#8glpt)a|EGO!b35 zKhT|CZ#VJYvGkv+HY)sunyLBWMXRHcJ`WQvW8q_N8Vcw7Z6jz69g0cOIWmlkk)1hm zi8Pxs+H#XbxseLWe#j?efG)YnuC2IeVAHb$&wvoZp;tVjp@J4lKv2MxX(7nu8nbS*d=PhZCSSa z;FO%uH)*#D=F`}iq9>bJ;f$~qvJ0Pd*A0aACCf*KGK8s85g>AuEv!|B+Zo_2-3D3KOQN?Ntg>*`E)#$wY zyk6(xlHVjUcXm2QcJkMKTN98|!DN>nh+g}V&UABcePC>yol?L#FXrCn&E;!1Wgq*i zBv$gtla98{U1K~s??Zm)Pq)b$^Q>{Jdl)5V6j(GqRvTMB>0foP!FelBq#&+R)o?UZ z%cD;*bb)r5Czbn$Cv8gWuOHf%PDCfmPoAdFv2GUMzD+sCTZb>8pl_Z^m+8?8seZZCA!(KebbJb+$^8dBm9$pXDlch<}f|V{o9| zUPblrlH79~22zgxgDY}m=`;-{S7pwjs{>(lTO*HVfl?-yW3$q*p{c9K;E&An%QK|u zhwM!iotEra`MYJys3zY?gZnC-jum$P4S$yNHRO3BQGdnyWBjOFs(z!hM-P-(av-)$E_&$<9dbvB#uSHB?g(iE#ZcfjZh1!kc zh0gs0%kw<^8$78Md0%+X26c_AK4WC9Y8&Nd$R@@b%h2Vd28%~%nl@q?lcmm6ZZTz+ zZCXm%=6ScvtPGn5iUWF;%HrQ~U(GIl=BZQe{o&F<&8juoUa!{$M1|3}SFD&i)xT!s z?Y=_Z(6c2XcfW@fed8Ow+ct84^JadDfxq0nH@o=5Tn3hp3S! z=W+x&uOHvDH>aw0=>D&YbK`E8vAEcs!|yZ}qsBqfPvxlb1Ai3N=N~;mq3gG~D2?N8^mPWyMz-@=Gr8-V%DFmJ{%3W3{E=&0DvA zg|qEeRMa*!fL4lnwp^H?u6yX&B6eu2P=i>dP{Z1;Ri-se4)!O<^Nn9@6Rs@s*cr+Q zJs(6LIN4-e)$uH!78xT<@24vRpRCE)N=V7diI4a)5p9xX;@a0y+9w7d4q{4v<$uD2kylZ&he% z_^R3u&z$cC#9xf@f1X4{T0W8Y{x&RnXG zY^TXZ?78XvPLWC`LCt4I9_JTPCHKr%*_FfgOQ4xVOq{PTmmSk>{+5{951q~$R1OUX z#n|k(NwTq3%pqqsd5>khbF~KsgW}$Mjg*=G2r->{zcndZ=la!s6tCEOuX4KUO!d@! zZVV|5tN) zm^)l_E;h3*rs~thsLUAslTjb6rpU!}RJge{iIw?~QbHdNpO zVJxR#41b)q)APX>o&zGcd0Y-(el(Rzw(mbwgLI6YO26fCezvD(R!46*Si7Ff-P8I) zn*3Qdw!TZ(7@;1qWzT(NoqZIic82cXu}7(Fu8P^=EgS%iPE2q=J#=}GwKkvnty?SA z5BVs@>9NaYcyQ^y3T-nTv1fcp*8A-NMLW1)UzZQx&a(J3-WOroK-{q!RsnXb0$zU# zR#?{HGb-YDmzZ6dax(o9(XYnKaGZL+oU%adc3*u~0B!3H((mn2P0(ZioWa6}2=u61 zq2`lZ^L{>l4E*t4I2(0J`JYpG_@Fs$`(6r>31?s6gRH+@?F&|m@Fl_xIe_kt0`LC) zejn7Qe*lWW&~DM{YR(5x2>A0h%zjR!aHI~h!8UZ4ZV}}Obn{kE&;);p6yG43!^^%VUDY?x}w>LrpuV-MQ1(X&m*|A%GZ;HO)(#Sm<+F;9HYsIA&Cc zom~{JuRe1mxqI;x+if@odE)BO)wY~VW>`czJcG_vf<{4k)l`k}$Rv&&iQAvwdCm2j zMvoER09yI6t*q~_-Hb&;aaTTV;f%emy;3Mc=9l5xN_T;D`r^U!a-px%tBf8k32E4{ zlvP5@x)`{qAk;VM#HeSzX54_wWi#c%PsZ!N+AchO%%??D4LyN|#ey91QkP5A5BTU@ zT_YkiAe}Y8FIZP|QSsEN5dFi-0+$+n(|Nnm9awc`WJj=fDTBjzGK^LbXLrXCTcL-8s7Q=C6!A}jzf8qG)lJTAJ<(WoRyLH)rTNl({lnR-c(=5DXFj;$ zz}~wnfZqmY#a)j%=Ev3y=llM*zUs=Q{UUQSvhp(i!!Pmj+mvqryKq6eF1wM@`=pZl zCK3`Gb@V6#i~c@51?!A*$Eu}pCK_!bg) zxA5d8WGrG(B~E)1PXY`vr=nrWCe3h(z38S0o;!Dr3~M6unV2noQF7FFfEFQ*jYkOs z&;ez`Au={1;;w}>JqAt^a;uyoE{i>l~_%QoJ? zl%GoDym%b5$P6esG_PW+HY8K&(39E$WJyv+2D-=W~G81lNX_e!ido`f|fS~*3Xc@X-8mkV~l?PqLfWW6QtTSJ*mgs z3JZ6@%=Lgh(x5&WLP|I%DhUH+Dm2=9;OY;FN#``YvraD;td*sow6Zc1G0J*GfE#xh zCajd<`9F=5?c=b(`IJW2z8eRb zQ8MxNpPa>=T{k;hk;15Uq|u27CW1-8hPf9XQ^R=? zM7{F|I*k?PlV|tu+h+u0>UmMg3w_4I2&hm~S6}imm5suxiXLB{lAaCwFI@uIWj4gg zhXfyIFz0uFki&^N6$`vwb3S~~579tp9;RsbOe{*6{av*#$$Kh8kJHDsY4JE2EpGP5 zyZD2vlmj^_-VGyzymK8}b1|9=nwSgCmW9PV8!EPm4evVN{*Xt}3Kxhbcu4TBD%$&k z%wymy8=R03V+jh^j_KU+tvkSYoZHt@Ze2Q zMfpcf#3+qUeRZxP$CZFtMwNXXaLFeopgcPnZMx?1H%=P@E#0CU=KN_l7M(PAh-Gyy zy1*%%P{gHoL>SM0fW-_29I|F?lp@fwyVrGm98a$L=L<)7r>somb?g|wMBRD5oH>YZ zrlzm2AH(>X=g~NLIlMsv2cGAq6wU{9&Af)~qv`Mv0x1?!sycT`{=&G?KF@GjT*EjM zNy>a34|=bg-U zckc{*Ic|+7EElHs9pwo(zr8jE!rPsYw}@ zgQo>th7fUMJ@XqUX49Rv=>{`p3X0|mXvX2`+vimonSV#H(#=czfj8*yw%nI^DI7Fw zpICE`G!e0eaf)UNg|nr;1mPY*+>Eaim?f4Ya^HOKP|dAC%RvwPr5$f8NgbS!z&y0f z-<|U)CmLwF{X@KN+%NhcxeT4A=GS>pTJbEUl;zkJKE9U0l&3U`6fpJfdbDjzXJ(7u z52ZG=ZcAsi;kijci2u!?sn601it6^f-@=$oM}oOI2i zgnH;)n$*1^kO$hI*WuT2t{iNyau(t&uyBOHDsx`I6z+EvtRC=LT z&EUV@b1rUfTSa(~@TRBeCPkz!z)$hCQAxvFM|u?0M7iGwrZgf^02dOnmpP|;`C0VD z(*PI0u)Plvx3Ysf#$()?X(o#FIoe=5w(<|1j33+J4b7zW-1lfCVT2&ckK2_^VCJ7b z47O6$G+ zAd}Tb-QOT}>f`W6%83y<-GZZa2$cF0Pw+&3N>yrAKPT3G05vBOQ&(woAB9EdlHVx7 zzWrTMeOQFv5F+#dhLOmoQ(o1hZ-*Fx-LP+-U@&>$U|hLsl_fZanmE;k$6_~3Z!yFj zPUs7QZ}2Hw$UTq0KpA6!LqQztE{uUG{xsK%G7f^nqVbX0d>zWGh$#*iK%v2T1|6os>eHU>RT)A>(rE{OUC~c4L zGH#)`6L78S#O+?tgrKT}{jhp|o1WVc@cNGhOEgY>&LNI^=sE<<8NfbY0#SZRUN2Gf zy(NgWp@I;Qs(6&QgqX;zg6JAT;#xP@=N?Y(Rm76qd32NkPl5zcQj%r`x!eSoucKVD zDi}If8FD8!^Y;Z6siRQx#Z zW(SymNmc`He5Q?+RU*y$tW^@;QsY2gWl@k{!P?ugvC+N+DwNYRet#Xnp9f#bNAFWb z!~}xyfIws`Z=`=A6+7DT9dKNPl!?C3ATYE4)vHSaE@!+mz(X-TI1kKOOJ^^W4r*y#PznqTl$KHG+I|%D0SROo6Lp0XRJV(3DM1^uTU}BY z4Z(2x=2j~=g>rUo;Rr5gFU0lVkT?=F%}KpKlOdO64+>rDJrd;}@P$cm~3)Vc3vq)DeRSvb$>KqOBre$HZ4Tor>8r#1n%g-r5YUQgGQ4%@Cx;5)&jsL#^ghl6e_#V-4_ z5kz(!Gz1cqE%QA~b?(q_2M`#nFLVJ_l8sH5R(?^r9qiC4>)q-W%H& zq~DHg3aPdRL{{N6i{rPzig|2HZ-C%y9^C36RZ(x|j%jD9>xPpq1+&SM;c&EuZhj6y z!k~<`{g~QHG6INuVCi*TVzV4suVPKPcjTzi!T7>fDS>LvgM~M8v1(~yf#>&}911;_ z{P{YYb|7B>q3G6i%D`N%+ZFE~3KN^JzERx$>(90xim<4!{U($_H^|5x2+)YxNmIFA z?&OKd3bq4jM+^d04h3D}S=$?lSO;;EFk*?VrBk+h`#ZI?2^VMUAmJhpmzpmR`wJm5 zX(R;KsMrA4uxgvNd&u-xqkfDo>LODOS&6I!F2`;HAQcxMp!VM_()W`z!F0;XDs{lU zWP;=X3e8AsBj=>%cRa@FQaPplLpa_=S`&cJOC?g-Gk-WO3%290)NpU_`3#tf9h8(n z#H3rU5j8&bEE8`SJ&U+OG@5DDlj$9Kw)e4|=wsH>Knop-Db+UFsHXLypr!%WDH?~F zIt|!nc86nx=m^%+7l%x7=1%WIh*mb?zWS*O!+FrQtu_E+$;4x8Gi;4LhIR)6@dLxk zP}H(b8`}_zU=$u6ZuK5VlG7Mt88LZb2y0b@tvd#3Iro{qIN$pasyxdr!zup@tq!YJ z#p52h3!Aq`Atcan3T(VYkdp~Q0C%8tV#*@75Uz==^yl3|!a_o&q!I{64G`yVo1A(cXVsS?AnPT9%vVH8ecn(j7b3lbvsZ=Fvt1q^S5;#~n>KP*phl(QDoL1l12x zcdO%0Afl#Yt$^Iuw<6p^iHDx;$a-u0ReYCcb~Q?8s-;}7eLSE4va#A$1Nn#L)jbnv zCrCHfn4Np>-Vm9ecu#6?!=p1emn81L(~9SEFXn;zuUntY7p^QdSUsgjpr3Vi^t-Gy zRX)WL8uo6hd}UU2gHI%Pf5>GXnFLn9n(KM%Ht{02gimcCs>(wqrQB*Z_2F5#BUve1 zDCezpdH3;3r<}WeFQjW5KHUk_-kvcjT72UGg`%DNm2AIi-ov&vC-!f!Q!sWPdYAa? zL17<4_~|;u=lR0MX4c2Nzv~(%p{m^l-1kB1dp)HcoSwM*?TIE|RX8CuDEDM~k0rR@ zyd!2RipO4}8Gdxu4(Bgl?O~gKaq#k*G?yCA{jvSnVXCOyc*oxzey?H@6erwbZ#zG| z=*`Ql@YZt42=W~7+KL@K_Lx9I|4VoV4_!&_ zzuuZvJqhbp2k6=J&H3g9+=?(YtCUQ~%JP4PZPQ7Ai`?#cwi4-|f}~5&r}cerPkp~P zGJ?UGO(IVa^T~)ZY5e543`dzjS{qnTnmsZ?*F_{6l$42GS+vJ8aG7E){R2w$m@?~& zR5D-l6B%iGJbmo>boRfQTiv8L1|9E`2Pq>h!_kuEavF$aXLn%wr6i?THl0h0m*SkHu^^IuDRBHp$ zv8G_$7&;Cu!|EgNsLJlue-QWDDe8IZYkXWa$k2}An6EeXxSOJ**AYd=Mq?jLPZ=0Tn*+@_$2P|e z>mPJIQd-!n(4pq4i+*G2L{F2ax*uEj6ebCO+%>(~=*!2e`I%TBg$syh)d6es(`omr z1GaE%4wlZZ7y6|)DZVi0bVIrbug7Ry%GvMn9ItV(y&VtchQMvQg0*SKWKMRJBWLN5 z=T?prj$xtqO9jPn2-&_XJUwI16<;ZY32+@wu(3LCQaR^RdcRndZ;kj7go6j+WImFv6`l3go_TzCsvC|X;F^GlVAmKquBa_dX z?Ia7E!NrQ9m*x{YS!N*8jS9|NcmG z3Ai%df|B(4(ebF(E9m0Xa6fLeV+gfi*cWHm1YU?_%&Ajdu4plSx=UO&p-8<@_P9NA zKZ2{>_!oyLk~SM@5m+Q1c5t zjch77y*?y6ftJ!(dYNiNCAg|o5#SfkdmfIA%qwgZ%2!EG&XoIkz zU`aq=;4`$3tm;kkT%I;RaoK6?8B*K(oX5T)lJQtwOG~DRlvw(hw+^S3C38Kp^zATk z_t+S%=SkT^f?v63AS~#sQ#5=Y$I$nBiZ~wgBN-+w>*XBcop4Q!%kcA*+a#fMx2v^( z-nB(?5@{o{*)si*6AHm=ZdX%g(mGLkn#_?$hL3;uS*Mm#xXDRi s6YdtzznBCA1W1uT|La2>ue40@swu!$|UN)V7HNk$NnoT>ncEwqvZB*y{_h!V90L2@dfst77c zQegrVC1(UmK~j+EC9uBT9;v!<_M9!c6#op8NriZMksPlh(L&VkHPV}|8S2LXD$D5b0crY*=zKZ_+ zkf)UEz`)=@(ztj5z>Oh8iVVptFQ8_k_P|qDSkTGx3!gO zH}F)>XEwP)JbiU8V93aT|JcDF;XW8N^Hc>WhtN;A_0e;O{CQOK2l&)?R}nzJ)zszR z3m?iKeuOu{z`!q)aSVN)IupAKKGMJ4g_p#@5St7K=Pj((?kM2K>q*Y-dO-`1C7k<9WLvr~?B|XZ6cik*@|x+FWa5zEkK&T~Es9%C3TtdE zwN_f{8l$+8=SqyMnXl(;+Q1F@PZdnwKN)?Q^Tx9a+bLM3l{cF!<+VDWoy#q$pUYi? zX2OLE6PRVbJzS!ain?iuJG9!JkF`NV5auAFwR-C9{UWl-+G96K1Qa@3lUp@hX_ zyjh1r8(M9@7H?VhYHL_!v!2scTWFaNTSVbdhnarK7~Z)$>Vw1$bL7q)98&t;=tn*2yLkKH;@ zY|#6&v%^re-{jURMK9}8l;%i%lva{+*_E1xs_$gdi%FF1pT)0#n~@&$ zG?HEa_PFCd%SpDi{>np~QfEuECp&U;c@+FhCXTNa9S9kgW{ER=d|F3yq#?$7VzOd$ z;iJn&WeYBx7xf;UeJmk+r6rR{8vD>NFtpG1y1u!9?gUQreo-GcY#vGIy<6KG>0?Lwerw_OO!0L~Dj> zm!eZ)#r3Q3IM^0mcn6Zv27_@XR#!$U;2|pN7a9GX30U5S-siTAJ_By*S37j1h0m6D z8iuAS1dQQwbW_aMwpVMddtnM46v}_5a&;0PFXA~nP|;c&yz>U$l*!t1QLtrRety2& z01Q=j{d4Q!t>rf@!P|>(`kjg_C;CgBGOTNZLRFb%vcJFH&-+O_M^AA*`}-Z<&Gd7= z-@jDPegFD)QDzIKujNR>JWuJMSC3^V3_`)Vn_phZ*IU*2vzEaee1jgGa-1{kxo!9& z1{W~%`H8tp--KA;#$+ybwMBmMQ|R`+u}@EpOuhTAkyggvv;mdows21 zc$Kk8`TeOF4Gt`KuBR99pFW@9d49pR(TZf2{8{N zLYpb=v6>u9axI*%gh}&aXrz9rrhLd>Nbf08QTXO!leG00-^>huXN7E1hx;rkPj50`j0_PKX}Ud1;$g zDL?=2=(>FH`bTSBG*MFde&z|7e!c{Ehu4wn`&Eg&)UM?es3bNsPqN-}oW*-krTiL=t*B zIclcOh=1cpwJ$55#9O`vT}qMj(M5y1u-$ftUw-Y&o#lIm@Qms%dEDcZFGr%awrHy@ z3RNmx#m6h`$Ec45;*IvC0vS;ohj*XFKr$^)}@UmRN&_xGpB-*k!U$7s_A~No38?IVZ?mz zcXiL!tPbrZZ$ls?tX7^nEgQ-V_CcAuFpZ(Pw?WgTu^oayp zM<$zt*S+dkPfYo9#o3C*NnZ3d-P948kUa55jUoLjq`}tax{_iWe%4#{FWpAkr9R&f zrv!;D7p_cEJ%%5g8LMsJ3Aiz9j!AA`shPux&X8%d73vrnj87Na*M5c70i)&f8!B7F z?6vPZ80EaD6LP22&Xt`L8+5(e!R?fm_2KcE9$&7GeN#u`OiFiGp>5u=-|e5 zaf|z9QyN>GQ=5IYm`;6?Y)<9vmwHND5^?SOIBz`UoMBhfE6PlmJzhJXX+L090zm~k z7=t64WU3XfWkOyOsol@edQ%WBvIy2M%u1WzJ(s&o#v6jSrmPpK?v%B9Y4^NiLT^#l z#9q~o7qN8r(pOEgohzpVP39Lj6BD<6`mV)~h7<7dR+X})^ zz(A&%J*1OKlqFkPzQ*KlvfBjCC-$;2wQzDySon>` zVdFF*DWy5dn{Zh_4>q~$%EFcE-Y75$FyO;yTSo`&xX2Jms zsjyN|Crwcytdym`K0LB*n(V*)JD1$hZU+0iyBJz$o1Tj2-dt)^S072{9*4Y<5zKwG>FWQv>7Gi_IjDK&OIIO6$!b9a9{>d560%4(dq=+T_2Q1v~oC=lPg`q?2j1>&JnP+-^8SW}Wo zZ}83*yT2}=g^!ogvT~vYrk^+Pc#&t{FpAz-I&U-0v_AN*LX?=FZ}DZWz`Wcg6hRL1 zYUOxpz(LC@?}Ak?w@>G#7+TNg%>BSXFv``Pv{Ry8+4xM^ej=om>HjOy(Ix=%^5UtF zd)X}>3K@C#UJbjH_S~LX@%L9D#0GXtPlHrr<7gZI5tQ!-eE5lhnH4^m!%@6SUf)-CXC9pfU9GOH7>dKtXN)|gRyYPY>y-YfbqO%Qu7rDab9OG3Jo zkNQpUuBK$p_m9@wzpcIur>Lk3%_JHv&4v?_;W@Qtlh~R**=~x3iWxIUHWomP^CS1v zNi-!S{!GW5zRp}Hb4u&Qrl^ej7|xoi{c6P6x1S+|?a0?b2-ISfm4wWdjSx`hHnom5VJ^bZXD!GQKdyhS+r)U#GXuOt^-Hh+7ZA*B7tKWYKI zbp$)W{1ES=!2+_$l`Bt&aI1rzkS;I=25s$cQNdtuWK+2n`LlR?`h`1&Va&@ts-;!> zg1ZQ&mB-PMb>pyDbU%vL2G+Ec!yg2*!_VZX$M6saNMs1If0|TX(O))9G|GNx^_# zM}<5&kS$`Zgs&(j=DZL#3P{tnG?Lxulj78VO5Ts|-7!tK;9xeDwS`@X(Em#us;ZRN z1&$dCVzyUZ&3Z>lj<1Sh0tO!TWXI-^pY+So%dk_`Uy7#q$Um@uXW~#bTCq-keaTkQ z*7i=63S(pi!PZopB6&>@)o;QXLyTYR+}x`2*l*!0kGtG>*4FzaBg597YIlPmcJ|&+ zulFkH?@}SScQnf_?pD5Yc7<`RpH_Y^;%gnt4T;sgJHyN-iSDW9!}2e`>~F-Vg|)a6 zh9hXKUh;*e?-#pxgWW#uo3S?7S=8ZqyDPdPk0$-cA@L!t$v!8efYY&pXJi+57pNJD z3YypLBn>7ow$*Xp=p?r~Ga2n=J9gu2p_s(V?b;t2_VCLw)$}^Q*&AHUQ~Xq9O-t(D zr9HfU=JUyt5_$HYwsqDbBTk;Z61(MKHK!;VyO89Vm9mc2iYqsE`@uS#aiROz4T)u& zD#^&J7fz_y*09#fPPmB8^V-a6N?;X&ocPouM90r$6~N9JFeaZV$x3f zZQAUc_yd9#-*@XXKbcN4%q?UTQG76NTPvl>-^HdNpMzItkf^$3wWq8%)LvEfE*pnx z3OkXBTh+E<;9X1a@K;TvJ4_4=9Qd9uvC%ap=6|9OaAAga zDPG3Jyu3U&bAYO()HE57>$23mEJF$z*U_#ensO%jE9@eo=~1hGD%R|&Zi+0bE}F}6 z{Ur{QiB5$YsA@*U#6sC~+lCy;Zqt)c0T?+v){%0!)rJB}>uEte0?-ont?3e;6Rk^4 zu0i58%iZRFwBi=UBnU>2%K)tqakh?>hbL6qAL}Xh-9CxlPI|r&UTVm9#1kq>e3!Ag zu-+i2_;u}#MicU%R{oQC35WLVPP|rpC&{FUqv&T~NP-F#i?25|mS;lMK3*Fa7q@QQ zY_l1vk}<7>-g=1-ii))vX&Km1L%Ep}qpmHMlb60dbcFnTxpr&DwF5FsTefW~JhsdL z(YY~Jpu)|+BKU(?fml!pw`@serZl=QZmW@&1hK456+(Zepd(Z#Iz=@rX8l35nGUEI zJJfk`m@G3vV+x71AKNC7oBXHl`LB05;tcQXKdcL=MoYne>GJ6Ioha6WBgOv|hdrYx zklPmy;}y5pMwT|FigJOuP%5b1-XH+cG6{K1H%mRHxutfYQK(|PGbhQ#Y)-7wdnVDf zw2s|k*4q6(?+x?yv*?|tVoM%5ZQhHng$F&8>TAOx>4-^vu{v8dmm}UHFYYznD>egf zpJ3OLI{8qQ`2$uDx3TmAtJ}ckq0O9~UrmpuR%TfKimHKJSPh?62QtEV5`&<8#41?1e>kNj zFN?m|Z-MV@;0;bDuQ$2oAe>I{nHySE;62g#>egeouvv6)h_`^Wvk3 zL)Apy?wOUNL_|tC=1*P4ZxykOD8%rH}T8fwG=WSi8F?Xpr1;v|(--eat3WS}K zHwT5XFWlLOXSeb_krKG@VG^h=4OFF0DU1PkuuxzR$Y$O3+O=!sxZ>l%8T$OR78HMH zEU$4^*1JyF*-K`0es--*iB?$Y1;*zv-es_|tD@y<7`L%kFcfmSA4RHe^h2rBF;!HX zdXI_Ic-*NOZb9Pur-bz~y{EsO0=iK=jutNuRO@EeOlw9LYYqJh-#LQoBY$SgE=3-1vl*d>-FY(| z{?c=nm7W^Gnt5Pip+bywKfu?2fV6JC8XhwwfT__Nc>4F z10F4GoM+J3IsY2F0pID6u3c|hLiOA7>|m86t;C_D9bm&_k;;k8k|wFo*+B6tA;Dp5 zy(L%|Wrm38pV1ZTCjl!Yq?W@f%bqFwERup->BD{o2E0!KD8uR+dk8jqs`n0Q0E7HT z{~wQasPaSqy>*Sv=mdK7Pn4nMaYbbsk5A)8EGx5tT<+>c#q6d9?qApOYM$V#sEpwI zVfD`$sw5$QG)eovN^V1u)hHC}Pn#+4fKoe&$A2QD6SD7hx!M0BVPF3~f2DD2KO>xD z<_bO3*cWy110@}7iut?pyy zGM#g)`meKg*Ih%z3j5F3u{+(613>FR$%AMjVwQMGBvKO-;uNgiikp(F5>7zRZig6zJ|$^_^(~-Zd*(F%nmFyC~b>b zdUavfON;GVTngvu>C#Gt0BJ76pi7sFtsS3h=&4(g14C&5} z3)Fy8HEROW(wY(_g`COjW5!?6u>amBhx{!qR5@7<%!c!!AB*WJkN>(QW zK++0sZxkxBSY88p2ZyvS+0j^|g%RMSf3pNmu1Q)GeYZdMG*+{Y>fa_uJntn+%(lVT zWd5*wUpA23wdx;@n6;q zm?<^s@-R>+1raB^C}^4V_X!_{t4M@8s^{pXrTW86&e2JF0<6`e#w!3N66O8esg&Aa zYHNmuxEM;L#_9h+st$&D%*z9 zzs6VsqgS3cf`%oX$ zsqrIyfW{L$Wt={oivNVA%fk9EfY-pSXrQrqJoFPfGEo9Icbie{xF8xq4 zj+TR<9i1je6&A=>E=%b})eDV*0V7e;3nQpfPjRdNxnfxG1_> z6Lc4WSyH3-aZO4803AnO+wr<$yz6v_L<_Y%*qUM zDAI}YsFGSD6@L`RprH<_Bei984od)s%Mr6P9=v_V1gUyP*bK~F{oVVSZ)C901J@X+ z95B=4T_6K3A)QFzmYVdCuWjYmdz|j)SWk3M=BANfITEfEUmrDJKJvomip4OphZ2;mmL5P=g<7YEV{$;?qV?QBkl8#_NbO=CECdh??Th&2=HHU<~zCWml?Qo@J zD+oDDG|CQnXe0%YfWxN*u|?;!->zu}#klYMX&ZEX)BYoljI0+Wc61{2FUZ~&)y!TF z%1SO0R)bl}2ffWVx{8A0l9Jf(5UBN0obhEKe=Nc5#9w`TPx7UqBZ!xN_*Z4mHmvSC zLFFz)<3;85Unf<15f9*6Iyh^wu0ShZ1Wl^u)gDmImq3Qh2H-DY3AD%JOcmHK#%mc5 z;{Ul+2d>6mJPk$l{^D>ccSxP{KKxks0mhxmf&i8&;z zwA78vfhA)yWHyv?;aoqLFPudvLi$iJ=fYT?~M`Oodl7JZ+~tE zwXr(_N|}TO=hUc8pGg7(YererUb4rpO=j%89>>$;gL1vJy)!6XqT+liy_8WgtCBR*u zG`Xa<7v+-ifFQ)mfao;H$AltEjKs*B{5@{ zgIkRFt{wrSoNtshK~jGEx5mQLp@whoF=@3ZtXkBx?0h{OeEDtIVb}H$`m@)m1?(|u z3qLKWnO<<$@alt8Pc9>++LgS1eY?PCs#{o6?Qv#4NcNwRh(;F^ll08)AC+?I&iAAe za&th7`h^=tT!#ZCffCk&8tI=(zPVOu#2F%4)Wwqwia3J8qt2lDyUvQT60G(ZhJi}U zcbFND2q`0IJU7OuZ7sytYR4$7n9_leuG~y)H@qlM(1h?nT}jaMxe`h}>0J-FesRAI zHX{35w1Stz;gj&L1o~d~7Z;TE3vz>hfKY0lZANO6rpWK4BeB|ZXKOVV^a*+A=XGpN z(ug^*Zy3X}wLdP>)A3Q5fwpZ9aNY`g?>a-*MJUy6t?qb66LdfQTvxjS;O@A)e;A;-<`H&OOkd zVy|6OixR6|8;+21y5ERLi(2XeORTWHSwFCRsm!ty>BMncwU;9?N@VI5`>*vZx6C3> zT@R}B)m7SB@~r>a?pr!>0<_%5f`});rbs#`^RDV@5*#@2BtRCNLS_*k~L*oH^!BAp1Obz&SiyN1;f-YyfmAPevjE${q?0wxEJ`qUE_jDF89<>~DcV5{cR=K=mAwn(qDhdmEr-rDUk&Vr z{8G}~a_lNLati>UCMu-210mCUM1>a|I263_I4zs9IVN2ZwgwOrJ5puNl~}T2B_Trr zS5^n$R2M&_yxE5sC|nVN(6y=FSyG8(3OYMd%* z2~C_!+-j}ISf$!b1mENyP~m$R{+-WXH}rrcpiHbCKdaHY%@_tVb8)YsGt1qJ$FXO9 zD`0wh^s-{jSiZeG_B!EGd8eV)C@#~->+U(=u(ktF=;1oL5p{iw#k2<$eA$n6Wd&j+-}z2Wjj*yBuv`L*U2x+Zy9)qb`E8Ul za1aw(K8I7>B5T&jEVHGR`ouL=YU>3pLG*s^AILtfQzXOfY7od{A?fOxnFpmOJ`WQv zU=85Qk=j#a&75OnW_9Yphl387ryOG2+V@WoO&xPPDng z4U(1c@?zSKe3)TdkHCgvDdz23B{`{oyb^oYP>I&pvcP@>Z_$>1HYmY>$He@3BucIQ zRrho=BCHIaH(E(Z76~1>|K8^J7MIBfkIOZ<$UeDaRUPO&`q1hD|-wKx{hW#lKj*1eADbztZ;%?jVQJJIm2}U zmv%4zR8x}WV{~?jja9w0;6^$`?asQ*GDe#e z2(>5qSt;Ai+6j=B>idBd;V=6 z4nb&+Gq-cZ)p0y*ozcnRF(d1BESEzM_}X}PLZxVp6<{6S2E?Coy(QJsPKl6tz%{dy zUnS8rLxjU#`W-4Us^3^FT?6ZTe$smI^ zPk=VxsD)G^R^!7>Hhb$-4=YFn7m0C;y?KT_My{?JI>gxUiz10Bu2Adx>Dow$q4$y4 z5bY$KR5;*TQ;h~&H2fgpK=$x@-Kkx<_U_0l*)uV645s0EgVJLi-PEIMXVtmfE&>Xw zaaU`8YM1&HRdu0c*CmPYXJ?G_B6cPCaxsxbfrcdF_#z+ZpUSCF>uLutoRYONTT?~W zp#GA2xRoAb;%#q~=*%%(YOi&^ak1oJm9A@BMnZ&4#hmm|#Y-erkZ>sUZ8XeIX7?FnMG3rn@Wxa9aeDUz`9 zdc-2fOadP!vXO*f7g-%wtu(OIR%FeR+MMeYrZ~)^gl#DSK z)UKIeoYdxWSF$w}@F?qe0uLd*V-H_v=)XmGcRq@AxPvMP#~7d&M8^y-6+cfn`SYSo z*rA^d$Eg8r8RSwiRIG=%KP9Wv!29lw$GB}+IrZ3dtdbYvioVsh{V{cGKTqD`#rhvD zVox2XlNnXOHmUV^qwDZH@Oyz2BDKy$XAd-@n$hR)prosbFHW#5M_6z2NlU~uFdn5@ zL+p-_IFF9%cjK3I8F<;5p&Et(&x|U;xB8jx_t91X9{6L3F_$K?w=)K!h*F}5plUy) z?2a(rpakIYuya8`W7;5|d?6|p%_7eRZl7#OKIFmF=zUN@93-F=J0FcCjmwi+l?1~f#OwEBFS)dcCZ5~c2XG*?I3F4xi6+u-Thn)8fMCTzy(!Tq!{6nONA;^Y@dlmAcc7CzXGJr6Y zQt3JQCtEzAL0L+_I0-yt49ZRmlbw6_8=gpw*-C6fR>&uo-hCDbT-8F+Oea7PD zeji)S8>h^RTQVRc7i_LWM-CQyzD}Z)7_%~&>o;GL_dZ--hz(<&00z;qRwrO~w5AHm ztu~-QN|=S36jcr5#QaR(9aQ}gz-3MVQw#pq964^3qy6D3_IV>=tr7%>Gs574_e(~ud?zmH zcL8Eu?}jtpgZx% ziz##2h%v1J0Y8ez?yefk`-{p(beb8FMqyawXl8y!Cn2C_|27W8HpF!ZX?5#cCoupC zq8zza&nT^HD7wf8!_ppqC}j3?Q{pn^;dfv}-@i7B%$NYnV7~w0;h^t#EIurQ^f@|? ziG2R|;5QxS+*c<3v3W$;&E>$y6kUxWimf}w(tS4U*B_dWm>}pr8#goUE zx?ZZ;tbzpe;`I;40co6w!^IX3{f3V@Bf5F_Q_|qG$KG!zVr8X%_wQ@pGLj7pyu=2BgVzy{2w+C2Y_G^oBxfd8f2vbj&*&ZhF&Zw#%HO_tBU z$<2!mZ_IZM9O3jc$Jnt3Sh6~o^<9^VJjim4j``ArH>}l0jqfX(GbWC$A?IM2j#&Nq zmG$wov=*H`*e;3i>rzkNkF93Pv^jHN5r^QHdYc?f_odhzk9=UiV%=Q?H4>^;M zu1?aLwohHecA|QL#xvE`$$c_1PAivj;-#8vTg+B99D4g{Z^GqG@ z=fyf+{!;SoH>RRk$8;!WWrS-t7b;ZFs1V@ogU!&rC<`r)^$My{564O4R+5McKBq8q zwJ3N?XtnYn%jK@wFf7L6$D2S{m`;dgoxwPZg^F&-)c}{|chD+u1>E{4N@JV5ny-q* z3gyNfAeqYxQz3$cByyY&6{(>GYSymFA2Lhd3W{$}-;ru`5fKv>eUowkPlk17;!FV& z%Dpxx;WT?qI`yd0nhn0X&SBuC+a!?B+K8nJ;@ZkOt&(`a&4+jm?(UYa0n@-S(Tom8%)wK z@q<{ZKB{O~r%Cu}HLJEAOgmH4XRyaI^f4l84966bY~o(Nl*BF-g})L|NrCw$T6EcG zwqiU7XcEbySazi9$X|1T7p=!`aq~i|_wkOe;Z02^F|r`DdW``;)$Hi$r9n;6CZERu>*f%73A` z(H>8ZCB3j|{2C=al+Z88lnEo6E_vmJt7eL#Yqw>Qui}dNA-Vv+ z0{0l!>=SK2?(h=$<&!3+YP;7G1WhgPUVCnHb%0GRL;ro3IZF`My03^Uc!a6RiUXu! z{|^WsJUg!Te(fLV2 z7D=Lcs!JJWraf5+{pua4Hw#|<-_{{@P@BG|cr?rSIjEuEyD(XN=jk5>8ZM*r%j-KG z2(HGf4j^h3DNog(P}q2AINqGH=&%O9mlWpyY`xkwXZGMJ9RmYm<9rbP~>;IP3@> zI89)Itq~|1_%bp8frwz+5bY3$HU7Z60CqM#&^fQtGvRI`N`r%7NJP5VN8Z_qteEDj z+GpE(_32Ag^F*Q38Cddn1nl3>;XzXw=PHni6%3!Y1KQ3jx->fjW3c(w8woL}S8nl+ z2__rxVGf{qk^P!FgfWPcddxZGmC_=7(ALIiWByBCB)1GusE}{8VG3y6iKcrr(qoZ? z0kXqLcCj)T1|49UARk3RkQC-qbVO#RT9cKmFjZL*8UsDy>Bcn)ZX@-h&VZks5PfP0 zjS}smLGuwygL6UBHPBaxY!)t^N+m2Vb@O13?2uPGw|!y=vMh1s3Z&T%;O044kt1AL zpstQ~TjWc|aZR<}4)7ir^J+@Q1BJ|TTmdA1nfvf+sunEXAd>|hNYJK>^~|n6y+&La z1frn*aPZpOB`CV9FJyE^h>{aj^CoypAzzHYazY9mfusV3sk(F|v;bf^N$;J-mVuQCXcR@7p0b#)rc%x+lO z?y+J_>M>=uakSmz2dh_<)~@(JUW95fnlc8j>9z=zs#cxCv1>MF)=|4*Q6SG8p_GN* zfKZ@wP3{mr5i@*DAq82%5C^UH^GS6584M`d_KFDJGU#B3mVZY-loaU;j_pqc0@H7A zwJ7kLlR!W>e^!FI36Y;256PuKrU3y$<$yHuD#(o4h#9WgTKSCDyar+_kc)`4p@W1l zlw7pIkm2AFL-!M}aA@KH-0O*7|8yBCUb6>z%cvz_5^X z?=WvFYIqI^0;a7Z9CcbVBnro(?kL0Bpe-s+k(h^mmwrW+koORoaHzQLXt~+}o) zdY=jbMTkN7kHV9ii!FMlgn!O&SzKOwu4RS zDQ5~gnR0QM;nnvKPvlIZWv8E*`j@o7ph=kE#2OepZ{318)D!!be&Kpafmjsh#~AT^ zA&7Qw2d(81T{D1?AoU;b=9p%RSND}=MQOL;cO@TACm}nGmq9&J6_q)=rxoz1Wb=H- zqMi+cTSF7>uWJ8(UHe2J0sll3bS+aZx|c7V$$mwj3gw?>yruWk$pAP3gM_Od0aR{6 zbJr^B=R-Z`CExzk8oM`+{@QvYqZ6th8Ebyl80gGR0So05L@OZYeGV4~d?Um=9Wo-Y z%{`kZ(KDwHnr6dt4P4MjlyERi1d)3&3b7R-Qbn-#AdNhYhU?I+pU`iejp!sV5XI=S z6R^0AEq}enP(x%~;}EmCh)lq9?@)rtD+0#gvg^p~|{=JFj?0^*w>wPswP z)d#`4w~lo~XKuYGc|I20Ndz$z^qEUV&Iv2uuc7kJ zu7LdC)9SX-^FO^KqE;Zs?ptQLvnjsA4;*@*U5%1C ziw>F5&Qc+qgL23dG}%!aBEztT2Ettc&+EicBxC4LzZ7QJrS{XQNQAV0e=bSKU?F3C z|BAfO_6RUv{_DLJ>?s+YAQL4?4cvT-daID}yaaeTdY5dyBE&o_y-`AL`2I<=8=uhS zWBvFggErSZp(w!Truqw_9&v}}WElrw6)vL*8?}Xu5)!b=h@YW>uGPjCl~?KWvUuZf zi13*f&h*rM&WZR=nDN7{MgTk|D%9l*x4HdOPW5h_8Xyn33Ahd z{F#Z=-(d0t3MDGy{I|`4=yDxBTW`&Ota1Bay%MseV~1}JxHaIBpa2q^8TK>OA^&&F zbj4gJl9Bvrm?+rYfII`Nh=#abv-arOW`jLG^T^VSZF+|sRQ;25HzY@iwb}_qXCcpT zkJNJ@94aY5r?|uVXnc`REkGVTKn^Kzk~yJ~Wg^m(GqP_PA#ho-^ZQAQDbPatc7BIB znyx@XS^rVZ((IsI*bT-;E3<3(PROAtu%c3zdTnEb&pkW{u5h<)b8G%CK)it@Ve%KS zZm8xf_8Kc9e`SdstMfPL)fjOF-^np&ZjVo5li+8gGkj(a_&BzWM7j+cBHT5tzut19 zD(N6T8v0&5!Nh|HEleD&feJc_5(2Js;QBDLd2p&795AVA6lg;=0#l@i9s$TS#iCEr zHt+5~;i1pP(c_v(0AHVjaErC2A#)m{^AJI{z1EjRY zv??KV*&^mAN5Dm=IMG66h*0d$s0SGD)ZIGDt zP;rASp8jCQahw+S82dzD)hJpcaue+%0+d>Su+()lJdN_P9MFQxoSX{G7rjjYx%s%g zdrzPd#?rU|hfX5u5&S|?! zW}K`)(yD=*aEOxZzWle>na%$bB5}~h9Jb37Z71W38yg!Xz&{)q4f`Wt*ZJV&t-3|? zxzgtXz(@W3c;E!Y%xysbEn`#yfaOBRG-Mb9ze4tqzGHX(m38B-cgJd{U!q=!Kf*`1 zky|dkhQ0=wwhpD3E$%-L1b92x6P|Q~Ex6hlq#^=XmIx+AR+1~+^u{T&A{O*}Lh(VN z4Wqc?^Xe=EbuncFM#zBl7v!cprsZORy%VijGW3UTe74E+NH386diSU!Mw1B~hESp6rfR4ueDk8)~qL#a6lm`DSePt2emBb6QII)APyRY49Fp^`+r&2o)z zp$K#|H^^35wgQ&pO z`vdeRl_83C5=0V~`k%&xIRxk{4&4Apf*@Qdj&w6}v2-6kf`_P` z8u}$F0scG62e)3>KRVOpiWHKFD0(p>^^+!A@(zHfH4qy*HF!oP@4?YC#)B?kvHmlf z1;!^ttw*4g548=Fg)jFMT6RF=la|zJ_zOe7FCL>R4=9-cmUsv7Xlj9>=nn+$v<{;J zDa5@n)+`~R5*cCX%1O=k#?)k((&p8|d{lK90gRmrZ2E7tK=70F9YGf;tgMA(j5@Zm z5#2~7Kz=T3?n(X^J0vnULHmOrXpift|Do@%CMM^4SJkWf2{(Es-~MwPOkW+YfeBUt<8MnA&ZM;0tHy(_ zk11JthF-{N0Ac*JYCZ|*QWB&$n|O2?wZU!)?I4k-L3h_ zca3(qDm`jRV*$w2*y678ZRwFjHx0Hy&A`jDGiDyuLBDU>UO&r5*Y|RV$>T z;?91?42$msJP^m}-!+cRlrvYf`yvh!Dx39hM0^OC-&}dSKd}*gwZsvg#^!Zu>i5@y ztcIm`2);p6Y4VBw!hJGcv%M$0W=-eoC@ph7RQQ=N9yHy7Po_VHbBA!!$n*VSzDUds?XH1*x@ z{jwj!%6ged*Q|8O?XxR$hAmtD4L2I+N66t4aGu6n`ozc^C5CBq#lA?$HT;9y?f`Es zz2s`0R1tQCys=ND&0*uq9v=K9-)YZxru}Cd6g{YwO63p7FhS3qU9KgXudh#0D|u<3 z3cZ!e*sVEjU33(8B1eyAh8}3;;0)IZPpKY;rW25<8>D{tXGcTpN zMKW`1&j38NcfD(P?N?-{U}_;v*PRMnUd!>-;Dv&xZcEO4BB9c2Hlb1N+8zh5yIAa3 zI`v}*wSt!x%+tBGT3S3+p;R8X*Fh|`B5u(z@p0p&O=EUH z>X=Qw4N0i=Xf_1lvm6Ul6@lrgMk&Ml3huSLx zS$4%nsAPPngb+=y7*n?P?Ymk>OVit5K-&%$>KUt5+7TN++-LTf|6!73`EQg)wX-38 z--oUVm%H07hyIv90MW-eUZ1F47utVXm6nsC)q-|El8n25>B04hwsC?M^`T+>!jJ6> zo$oGTo=E03p4B_LHMiv()3-bzYMk8VRlDLg93)Rkd^fybET>zlFm#_o*G9r9&o%5S z`*RpN+OqLeoWX-`{K{779)IIm*cs;@@J-i_X5)g|(%O#@Z2R^&hzYxq(}nc#$vbeW z0VC=0!{6DeZ(f+DBpT0tx?tuu+T0R9cb1VUrM{1g z+~T5U>CRA5jahD-+z$-)hoBu%GIpdfrS2DJ7u;84Mq%Y=>9%FvadJvdyM=tDKJVHS zVOVF}BVi!qvx}kgm)KqDO?w=!{9G^~lk47=<77M+wL)>oOcS-y-`XBmXr+?VNL|#5 zv>4mb=Ic8JY`clg5uJx;A{t8vb~|s=(pHs8v>;pdU!J+2VR-fu_7q7EHJ+XB&#x!`$hJxK6>q744Kg}6$g+Ldb^aQ{u}@I~b+OtX+rx143M7|DeVo-I$2Hn-Jc z@+F@ZG_#l4v9_#UWnaPB%MtVMoX3*8yJ`!>;Jgl9P1HE2rfP-@mJuwb6-Vt4pjOn_ z2kurC#oN^9>vKJYx=v)x(tEtck^(((a-2LNk~Qwm8Q2?sW|Qm<`BOp6-xX_lFPLd( z?9$yv2^I9;Idq ztE4dV(zzBNZ6P1SFu%CarTAby*dSo>g4y~=w8Kco$C8L}RdhqjoMsip8wa08S%rLw z=rKNA!&U~vGFSS&vD6sWFKj4sSkc-m-4cc{osd))ddP9G<%0PPjnQ&iSl;rWKAGtgPLXl+?T7GXWPTcPC;T3xWOuu$$;4$$@@V*r)A^NGynh5{%dIOY{?4)q^cMYAzDB>% z=6icAjb|;sH>Qkc_r~Ol{m}d7c40KPV0%$opa)r5@Lk#c*O|8+X%F$Aa`Eq_cWz+ zve8TC^cr}4$+*GBlnC3drt6GdL_IM}c(uBz2Gf#VD`>ACZ~@_`O=cqni!B}*w`^6! zP0r0}YmE=A7KQSZ2d}yi3jW$)Kw`Wx#gdJ@vrlM6!*)mFgtTN4sa~-1GShUQurp*j zDcWGH-Z#Waw%*%#j9w+#x+=n)$5<(MNppAc5~6$5VSV_?&+$apkC7ss?h3Qf*@s@cRZ2 zT=jp?ZXkc_l>de;^U|Er2H`Xq_}bJ)OVs`*W_yX+U0@E@S2B7BqeRsF#x5Rjv(G5a zn_aVxoonA=o`H5%RIAu`{H)!QsxXBkXFhw@OJq77Ge@SmAWuKwy7!+E`9|-8ao6TK zX%PUr8KQ~I{LeG!7#8j@-|OFe@>!IEoBCRHb9*yqbJ3`IM=@atwZA)pSOQj5#{3OO zpEyIe-=4sZQyia>MY!AAH?k(V;c$uT==R+2{0rtTwSlVzVRLWR7n2rR^vu^*FT_A2 zO>O!?LgqqhcCR*Kf}Zf~Qmz`Mye?r4`ZyCmM_&GJc|JJEXnTEr?#@E{Y|dQiDT99Y z401iHMy;9x@VozHTUX4F z@+-Zz4xM=h4)7F&%uK#PklZCxWA^^ka(*NdS^jfSxrvOvlTgH4PPn1H%yL;xEW{Ao zjr#DA%u+bN`RS?n;)|C!+KLX^Lx4lU-xImG9H$q-IDkh!mH(@;^Nfo6PTTO9#e_f< zjI_nxyqG*sNI71aMfCwTeD%hwaVh|w| zsS*P?44u87dH1~M?3X?Jouk9de}3h;ulqs^Ge){^44?=VM)UOVIfwD0)&$fB+Ro#Y zdLsaCQ(R0@2;o86`3)g#((I1jGJZHN+X7H>SC(Z`&5SZw>ziDMYzay^i$KZs$YyC1 z*-(bp+k{ZzvY0jF#k;H10eqe@G*$`M-M~MV+C52{Ou?0dJ#(zK=V@HdxDojTFepi) zR+t{9svpTYf^ufz;3Syccd8%AkU~b(V3^YSRQJq0q#2}My*@|62_c0=6OhtNG$vFD z#vsN=+VmcN9Sbl4<@NZ*lak?J3#Rd>xF>_(^1yO$|5FzuoRQO%xSHkV=4yVSVpwnp zO|k9%(}@cmLSHLY}Tbab2m zM(x};t=FPI3u~my4#152RZifBr5>eX^jm{6kQ|?Xy4ztec|{~IMAgN<<^*nmLu}g{ zsWd~5Zo#yCrG<9Ix5+7>r=mIAy*Wa?pPpRE=5&1^?B&xhlpKofZII9Bbe*zeHYDF(qdh zghBo8iR?V|tFr7<%!OVj3|jO#oas%6 zga|Q;CtB41e>kso0F&;?fZ@ecBX=e|{GV$U+6=zF)%}V0((qjg9jFu)-RBG%TM5PS zg>5B2wz64qwe&5^_Rmz=4j+n-26+lvO6+q#QPNm=TkpDy^iGU-M`L@S$;fL}*d45! zPxIWHWBQI&CAc=X9J9r073RUVHSH)3>QkP^6RZ(h`lQQzLbUFXBI zI`Q@5s{TNN`JB}qIZj#xb^P+X(?u?x2}23y<5^)*UFO1fi+HcHc%L<_VB;Gy0Lx=e zqoh{6Z`5RZ;|)Dhyg&t&wl)5Ew6>Ay(ThKd z-cFuh?h!(WXS+CEn?qmd*7T^he|zn~MbYo5Wsk~)fOo97-cju#fKEe8tZvxflDFFM zd%W`vxAO;DNaTu91)uP0DvXz&nxyGD1#IQs^wQ_Z;|v>LsPVv!xF(90RDPKynKOo) z0eGSokDk!XHS#L=Wn;PJPNbT9Z3aihXDs+3Cx|QHw+1)(HBuHNh zMuxS)15LaFNMz+{CaPQ?4hEk4f!$}q#oDeI?{WBP6?7+#SK(=m=D^JqT?H1!Wd}y< zQuMiZQftKr*-7NE_%S+hm!EK zOgfI>x1$?%Y-=hq5`ml^`&DPty62j47NV+0My+^01ZV?_TU@3wl3Dna!f%jdEH(ff z^|R@^Bol)UHA4*^b__Fwtb4>&)puR!nA=c2d~TNH4!pB}W3aC~k1S@~?~-M0CZ4vr zo61!bunuGM63=sJm%3e;i}xZ`b5p{TY0Ryke9bg;)Hi&d>OQc1g(gOaluMg(^p&vrQXl?srs!q>CrA8x9snOp z?EztWEtovPWG;An=;0#P8*gN$cv?T>A&KslN+lPwtPiLn{nP207o{9eu@YBIz>?nM z4>qc{<^u@_P_SG4Ynl^(CAnvdP@k?-+`={V3IUHqjmxdXeXSS*)zySGQCy(Q##*M4 zomd^K>aAbr%X8*@P=zbEa56bkgj8ztJu_ZcIV(lmZB}7gfkYAZGEr;&1H*8DOSHq1 zQO@zfOk*&Y!i2i4gb|}kpvgT!#fU0eu2w1at!>xgA6kK(QlIZt9b6Z)+~n13v20Uy z410cN>-vE9a*qKQ&fp&;W1-}`+^nvib|xZLmAfNHHZj|QvXnN|OENCS;Ix#=d{34G z8hQR{?{XkvxnODz4_Dv5@FiQAsbhrx&qojPB-fIKM%?%!8MYlf?t#h5ic`X&EAv(i z`2|~Ce3+{pZB9g{eq(t`}sHe`+f!Z?`Rdlcbi-?ohY zyK;hAwW0{Aq`gHP^k{oqn8%7!MKYBrb&B)5OsihqBh9cxHz_bu>vrbUJp?-D`vBwHBFGGDSGasM zu&w_A%TvNtdYaAn;XKnGHqqYoXb1N1bUW7j>z={48E9K`3B_T>0tpjLj+ajMUKxfp>!koL=M1Crx`;Csr1n7uO8(tHW+- zjZ;B=|ABB+GkV|94=db;hL&4#H1IvXr0(X`fU+D6`%}-1Ud5OG-sCvRgvP>zp^*5D zO}@p!OB%(9+Bam0$=YL00m-bQAjiJeg zprC%*8}*3EK+_fw0ac{gR(0LJU4bOL6ZlSh^&^AzLA5k=nyKh{sb(JEf!-P_JcoG- zMY;7xeTi`$g?T}rGm5?th#-hvD!-}OwKJ!Er~2_V_t0o17va-bI;DQPyl_gFoFB2b zfS2@2uwQ-W{vzEqEB-$Z5yNW?hiVIvC7h9kcwG|ApG z9Iu>tr^6B~P5*KT;=HXGdLPKUxtg&$boi~0gYV1Mi@VQ@-bFUsjd)p1JdjZfv8K$h zeFe+8(Xawp-DKcQbiJ~?v$V6yQMMPnJ+c71w7%v0vb+}!pOGE3Y|a z#pN#C#?%eb;72gyh9$MSlyq$iuGc7m5%qG@o?6D-@}=`!nuukip|Rd1oIc81zV03> zl~Y>gf;2s5Y{3xvzfa75>pDU$O0j)$QPhRpm1-Z)&$*DEA^D)I98jnW#Wm$<%JlXv zTleQetu~LDyoj!Hu2OhNW1+^>FY+leOXkdQfC}ARDVd^nj%dv$YDDUDbxv2k&Yuc? zpmah{5IYe6*dcI3_rVvJwlIDiX>yig>|N4Wvi5Y+-aDQjqXXEhT)$!R8i+Z`iAif| z0Mm7KUfV`Ox6ylz`YF;;wLLQV3xG>208;x8e*-f zWW!5oL-(j3_Qeos;#|%GvU6zvarnnKw@HEFG!olR$!JH%K`MtW2hpEboQ&?7O z`^$k~ruYwam;gJOISS|^)XzQlVoAZ*d?WQB-$A$XKB@rUpH(Y20;n+-TuRqH2>EIz za34%QbC(~bQB~0a(a)mx%Ga`H3D-7fZkKbOO4DTvtKXCQXR&Pe_m6HGa&;3D=7H?K zsEqFF9_-Qwk@BoW@@?AjL9kJEIVRg>OuJ{*F8Jl$mu2h-CcpG*1N5;><+b=HZG*_9{Mi4+v@A*b#CpE=H`&7%<722Uw>KiscJEk#}e+_>)5D|4Z}D?P>a9QP<_WY zx46bFMKWq|FjP*^Hirshox!5KGRYUd9*%**xVgP5wKtu|9r5pHO^Y8Fm3Bph3V+AZ zDCn5dY^k!EWrk$5HuMGXh?!&6K0rZcr`D@@%v*IZw+(f$jr`n-Nx|VWqN^233mR}UxwbLBu+BKA{Z_c>Zbz-)4Q=MZ z&$UWk9@9RZa7Qc>Dyf|HHwN5vSh&OGIP;D|hy8)reTN=r7nE%}2Q@|p+YT?efSX*O zxs4o7hlM+B9z@m4vz*1J&J-fJqi0v0B*ole@0(YDR_bCil@#+$umSkJpU3IRM6@z; z>?<>#S~>0vVeuJSRvSfW{g;I(9`(%q$oN5{$uehd0mHuy>vp;xfAAF)tyRcMrD-kg zgpF3qCdHgn(Lyp3F8XNc4e+;GVwxmP(4905lEP*|(Yx*HAZ(F~r8*C{@Ut^BhzCc< zamLR14!n+K$-%c$RPO5p%BkalEku7js~(W4$7_5#((rI-Xx@7C<)ji696E`(%!I^< zNSZ)~_WJ1~I9C=RKvkr7(6l!VA~|`GL|10mQ9gJ-b49aM0#mHR(54DEH>ZA_)2`z# z%q5(>C3cxXUUfyFdG@@0so_E4nCI;F**3x$QsN-%DQp1IWQqS^Y>yIrwLVB+x!m9J zK}rFg_D|{%;!N+{w_h7QoGN_By!t^c_@KeT1r-0=U)bL2N;;_P8(WC$Ve{)bdd~wY zu`&A{sKkj)3LoD_bJvk+s{3^U!O{W6f2%qSGPvD7p!jpgOe7fYcFdX0)}QUd*!yh1 zs0i!#yTNSMcDL1+&(QfH^hM+Q6^y-RZOXI!@$|m{{=nn$BNvZH_754otlix0U7Q7Z z`S0-Fl&1+-&(inRs@AR>&VK8@WRuln;o1BstPpdkDnmri%PM z-6ttaW9R*KHuqXqu@~DM60KXu%*;#>!+_CDg6&_TiY1(CbSk- zjdNnt18Y${Ci>yjTx_vi260`f;_cToC75z^bIn&opZvKW78cg(3Nx>-*3H*fuk~Kx zEwk;8`~CY-)5@ZcQH29_@%^*=OI3ttd%j)i(iYB*yEgWHn72OZHO}IE$A>FHXw`UL zWQHu6J7KuOu|0}OZfZ6?h_@#J0txnBm5Mt9fqW0U#y(Y4w;W@e=EK%9{-ew`vZlba z21)Pto8M=>Qxt7d1#UB@bVuc#r!?Rc-G~MkeQR9F`t~A5r!7tu-pL z*juTYrMK_RR4Cfs#F#huG6j(J;czT47%bcJV^jHU1mT)7tiln`Yt-QDnO0}Jw=wVh zv_F{SOg0!F0he)!-HDeBQ$I>9-8Kgd+P4Wod;|Fgw%%tTRNVi7v7t#1*h)k*P}9W= zc1!dj)YUyrY_5yn?_VQxr|hHCh=Q_dhX3*O}@USsRAuoL2n3r8Ey&+ir~K`<^Q90d)%*( zR@foIGg-vRVQap)>1d%+J>Zh&YZ|^v-kPba`G{Cfn>W_&aTUDPKS>wgijIHh|90?w zCBZ|whIhN(ve}; zD{Kru3r|%|&ysU}18xY}MHQIU4f+JEj5n;caTO<| zDHc&nCnhH1vXm&RT?ntYvX<^iHl%NM0E5>ATp1sh#R@swE2bG zbX)5S8uK|%NxW8@YtyJK461mvGf63E-R5b0e}8MqJ%F`5qm~^S;#@n=W@2$KAdvR` z{B=I3SB3Xd!r#7)Wm8Z3K4hEDqnD@451sHF##a#n9c7_B)i})ZaEJ+hRq+gLta~=i zuZY{Ux<@Tq*Kx2Qny+z3cDT~Xu}J!GqtCfGQp4|eA2xCxo&70{kCq!w3QL{Akf^oC z@mPZ%*wma;9p;evR)aa(aug#N_2kha ze4z<`c9XdEW1^!UB)vZa34X?m0yAe`qaWFyr`JAfzEccsIdrDL7TB1Y z#;aLMkz0E|yj~)Wc`6??pUX8W!;H8s-OG->M_XNJ(KNmxh)`CJ0-KXia18cK@}|_m zAG!35essLK1FgeiAXtW|?Ck7>G&4li`~|dm;I8#-z{Vw4T0=3;kn*c-We=*DFZr*v zvZvx1p8O<96ta(5_nrLq*198se`Y&Z2iw-LJ?{8SB#2CaEnrDP4h9vgfVcAQZ?AaQ zEgL}%F={ue0-pT*NOBEM`d`n)q?4x$yCLeFk~;`fGwv++n8(qzCyTl`V^XGDJn?4n z%uz@%hJt-7aok2Ri-*8~@TFJH>xwEp#_F_`-*((y9-FBRWm@RTkSq0E)SnF~s{Tb$ z1#=wlx{ckC8jc#D_;j8@h{k23#!fHloZis|54DLotBd>uJXlA6PS+9GE}TtAd-=O& z`9c1@g7ZG(-84%zsH7x^u1f5Pl>g2La-VWig)^z6*IDR#IGJ5y_4g8Xp=f_HVY$#t zt%6ZV_+dLu;T^YWxVqYQbk^}ZuI{{B7J3qC)c1UP1NDzWkxwIFbaU6$3?c+&ed~&1 zE#a}$zzd%zI-frXY^oSow?g^_h7V|y{cyS7Y1`}5%XKRv(k@MhUVT;H`O!;6``#F^ z4^Iw#>E{{G4#kfL9S6*ME?q>w{pIPKA#w>n?@Rk;S^>L1Ej-ri&S1~%X#jWXxmj4h zc4?{{*+B^A7A1DVZiUNWFAcwqX|8k{8O0>wG$|m#KUbTyffwXJhF-q4;B}bhx7@0& zQ0g$ix!ZKSFJ0A$sCj|B4Ch$_7S}78SHx*p2*y3!r_5C-!RJ2HLEg4ivDe~HAZuhu8KCF$EA5|Tz!XxgVZ zxoa;#KbKHX=BgAycSXFyzVDmRuy;?I`DOT+HevGeaP=)PRFtv6V}In5JTv;?LGu*Y z@^|oH${gLjYPgE)aUlp_n`*FgM{az(&ZXa>dwzF>ZhzRZI2O1@IQCd_y+aW5Fb^!Q z!1RD_evO8Z7!ekH*^(Hh#QrB{K$cx2CCaGGW*TnIM>Whis_nT2c8O}8*U}WQk|MUX zCgpa~`2D#>x7k$hB*Aep&e3wt97lW+n=a0QE#Pg_!J4W&o4ix4`43BEET^8pCsf+5 z=KRivRIS?0G)FrW1JS|giv}F+&N^3#eVd&lpeK^gy#zKk_6oCN!Zf@>7mINCm}eW? z&v{o#_{aBX=5=A<#iGt%1P}ePqeIPc=g-7&2Mn+Jf`Yn$Qu^Rd%i)RdO2f|gVe7_@ zepp8C))yDIhmc>RINWp(s2?h`^)s98RbtqLH_mh>n-rQ={ zzI@h?4(=5+E?T>C3%EP?fF@QpHe=N|?$&KX2t;N%q47L`3E`2E@wVv!`i+NMCOSr$ z1I)&HS?v{{6}XHrYKadyb!t5q<5nbdJ3nz56#cH3@?6jrEabjAzwzycpiM%fobhy4 zXG4Xr9avOS`Awwg5sS)4i9Q{D8seS0x$_$}*fig^l+K=5{l_)>stsGijuVGP7pL!oSCwVQDRtmK zxH#6rM~Ak-bXm7V+(H6d44ek}=Ht^3Gs89VH8nNk9R~7L9u=(k=G>-1*fXNB9K;9# zOzFff*bvj@eH!aNe$f}v<+5!hmN79gEV%r}t>rPtE{As}YZo9t4JjZm!n)Crk0t$j z#>Ppo3vO0-8n4%AweeePp2@YlfR4B&Zj(l|dXKrug0&{xVc^9kTXCfd3V+&>k6sU` z5uGVwI>zO869o?)@I|TIX0`o3b^2suUL#IKAPh6BEeGI0(`#k?7LFg_UvM!Ve|FeQ z6KV3@=v6}Bdwve1v!7qw$QiJ=5e-bJev+^woA;>eOKzi5`I+u?zSh=O0so!HHNQ*S zr^>peE^hXm#04Lm+I|y(q)FwYXu|QHY6L^KRksoez{cOBn~|kfxf0k0GM$I3zmUZm zPC6{vK5tSVat91PDDdB1TLasoeLCL4nbx;ERUCg%6u39fZjZ|jD=?|j09awsyNm}~ zj?~e~%Eb1kN&2y{vc3Sz=VQrrh-_##I=JDufycO9S<0m8UK>U?+M&WhwdCPfCn&$x zUGDZ6um=$jACixlYpy3KMSiy!35sPtzpYyAY?ci^A{#Gi8d5dXL)5gjwFyvbzocXk z>Dv)`^n;NI!T>Oxg}=Qi8V5#UhKmR!z<418Kwz-8izg`W)6=LnV>)Fe>CTEV!hx?t zaay~eQN6ikj|{hKxOeBSxewNZy*j-1;Q(5wPoFB!&eaN0KFcO4X8tU@dD6e%nbuxnkyD7woGLK9rO^7$~EM+&eC=6lchk9AQ-A;5oE*xJ{P!HZCoVJ~0EOFE>zZK{yz% z^>j393T%)77!L>Fu~^_iHJ!whosumb$>1!}2y(yg92k+0$Gh@sNyj_bvbOCOIX3ph^|uFXd_A!;b7r&go`n34VN{fsn(t=a=i=$K4BainmWCeq8qml;eE85R6ghtMv@cuhOkPOHS))e(8X|%otpuQGcQR7C!$aC4oQBVt zH%;hESSX_sA*XlE6vC)`H;xo^mGNrAN&r85P^g9F`n$kUqJPcUvNi);N3uxP6lM07e|DB1K7{`4O$*K*!ON-XbPf>jH?*md;Qp(9* zrb>;tCCM4aikLDqFL>f=KQ!|Q79O$tgS}CMB|bHkb%LXy&2j7Z5HsG)J9VDRbK(U} zQm!AZvggw9!01uGj%Mpu8jDAqXt>AReauqB{&HOgy$Es5Lzp((HKp4+&+N6qweQy zLaq%BMrf9y>LbjY3 zX_GiaCOexXpZL9%TWp}&dYj>HUtipsDvNDTt)g6Z zk1ja&FDy9PkrU)?=tx+5)jeIbZ?K))=sad38h>7iz@%jA8yc`Vgq@M99nV=jpM?L} z#e`Q8x{!~^H8A&K?G_6YwCT7*b23(saZdQHc#2rgR=GYK<@s!uUCaIAQok00bKPvZ zWSw*qVsN%O#|11=T5z@Fy+<=$iuJU-`py?ywSz+__A(s!b<%8u8w&DPuv-|vCgX2IhEsRi{mQ2 zw7@B*Yltzi@x!y$@FK2rm*bKZ$5>ep3NGMg{ac`CrZZLf;XWdb{m0GvsX^~2?^V`uyWi8E6 zoNBC%Fcbw!g!ZXV_I;h6lKH>vg&h-nR%Ys!T^scmp3&2^noTmG?5^tfZJ#VGnIjaB z#kj7py5EybvGx((ND3JK+s`5vURIe_Y$J))OJ^&kw~tm1Va9wgw>#bIZq<6dvy(%gvV~XFy8E|q2V`p-LG&>%S87Zm z=*74@jnkMc>HX!0Q~c808w6TgowxfqSuNTHBW}6tD?*#Rg6R;Nu@l>)e8P+Uu~*TE zwhg6YX7S^r_7#5m(WdT$`UBaOSiL&0YL|Rj^!3)_;Z54_Z$yu|_|*N7&I}$EU%q@x za=`2}1jy#4>NDf_9jIpWJQ7)8X$c&D-YZhVM~7>ZGb?J0v#r7%Z7wg8X~pIoR&DTv zAetxXA>u@s34!c-|Iv(QW^d98vsO7cI=pQpzB#hmYR$^^3e|b2${75!S7s*Hs943u z2J`4(K{atJT?NzKAFeK~l8Zy18DC}?sY<+~h^_Qo9%`>S_>tSwX3=Who|vxL?E^x2 z=^@S5SPi4~OT(nDM=#7er?q^O3e1keB(^>p-Vj~WPuyJgs~LAWmi8MfT09g^$k(kY zbw7Y63&+32sK?(|;q`V)x3e3}^t`E)==pn&Uxho`F0DzwlB`x!NG)aeOP1RJRBr6q zCsB*Qd(Jic<~m{2moES=8|*gesHAb@Df!TvJPRkznH`L_snyQ8XRwbpfS_|5^jVtz zHnM`607k8$&Kr@7gOZM?g|b8}!RJtAE=_x%#SXg}c)H;uLb~{wMKj;cxX+kajp2Oz zK2eMI^DB+1vwQhc#%z}KNxutx_v}`0Un3Qk&Z?*xue4-0T5nZi<5;`&+LZOWYSf!I zmzv`6PCZ(Ay7|s~Pt7E)a>}r}xkxnWHvZsU@Bq-Hf?gDp=R8$pLqeHWh=h|I$munIfi zd3q{ueQNE0$&S$XilY zz-j9yTRG>e<3_luNYOE3*y4u*Ct8=^wzN-h%3f}>p04|Q)D^rLtASZiRt=&5JiBt$ zcmUeGS#f4d%D|j;-6ECe`MxR3bC;X;q%|A;x;hGRJ`y_1Pwr~qaMxIB=97|DN2lD>Tr@K-Lse98S}VVD(ElL%4Xx<7?ng3NIjq6B8MmleFFu8* zxA)5tdiP>8TNLt?pFfC?g}HHeHhEG$qJf#uSPkf!x<>Cj#0LIz?486AOq!p7G~&c$ ze{b)WfYo^~qXbk`+-AgP+bp{qu0L*K#+TvLlh;Ef{JYJFE}ZQ>t=FvG?pmMl+MzdL z#?j=t%Pl6DUVdA?Ahvxp-Xdye=WMQaU4+N)!LcDi9wV)Y6I;HNDW?v7wdQ5|A1+&} z-N4^OTeeL55b|B<*v@YqGH;Liz9Ubp-KhPcmhV1BS@usoyC6m_jwan#c58W@b-K+U ziVa&8MS>^HnXZIh$(o8>YHACpg1#&7f9|$8=Qmx+zrAZZ-q4N4VB?+F8+MPe>lx|^ zISn5uhUE~?KgJWxS(^7OY&g+EQJn9l#-+LYA95E`a>?QVS1u-I1Of_H7|b8{NoFqD zp*u|y1Z7u6*6)!p;y{F@#WJUKH2G3N0B6Q)f4haU#zIt@a=LLm>|ir`6(%yFYpB;T ziFJH3z1v6FJY&cwlJ@@61I>K}$vgA+#ITDBxE!N(Ez0xvY{*>q%-;_NRqA^kxx5|~ z_bulcx=7?>ATrf(*HOtkZG!S^mE*auLxu>MWr7M3wuqfqs~3vHUr60~&13lDBIK|2 zVN573JBGeUnTTSRaf3#i#_byOaYZ(&d%X&~rlNKgrav>KE74##Jz!xm6F>-+R0xlk z8nWPAtZwOk^DZN~D!n#hso)A}>jeWsUKfnqoEmA+;nB8D3Exa$9%_Ia2v0#X%Z!{hX5x z!%a&IKgJWwDqr-QdqrnJg0H24XZu2&2i)kc|AhBBS=#HdTUT%I-Vjn)>*s^s5c2O) zz1x6ayY`UUPBK2d#;KX&-kmEEeY^qs&lL#es!qn{neya)95*>G&7Y@4fbi`LZwNAa z=4U#)W???J>aXn;n%3dn6^ru-{h#F^wr3>Gi;0-NdfP|jXV-L$kKyNMg1{C zUcH|15}id+u2{}wk%G7~T7!3nX3pcuuGpka@jz+MurTROLDC2=g@KatpnN8t=pU9! z3Z;~Z^#jTrK5i5hP(bwY1|3(b^VWWhMEqc6LWP&hIQTlwN*@_(8T7i}lGK6{WbS}G z62QR&!d&4>f;*~$WT zwCbL=c1~Z3P`O*E9#)pS`%l~A=9BIHSuYFxh+DyIiR3c@{-^y0d?^KAB#gG%StTvR z$82pWxi;=Ed~6IT-OEBFIi)lJAHn1W9)@KvGSE5bEfNeSmVpQcHdG(Z^h$uom^B*x zoLQ{?CNfRAh$P1G6>7?|K}S#JLQ3GchyP4RSKKvMKY1iF++616opi6nTZVJ7BdE4# z=WNJQyo~Z66_}cdsvo(m8w1Yukj0uaTUmDX&hYG!z`a;{KA}Ijs5aN$pPVyOnzI7& zukrge1&cL20Tys)@4C+QMy4D#abGQ~eHx$Q?WSM1S=;{U`j=Z(AmUamvwd!iX>IoC zohMPdXP%p#Y?9B>`ZuQR3R2U{s%y9@6$m#phq=Y^--a7ySt2(*XwPJvhXl>9-lo8s ziL|#x?MKkX9UnI89E~?vL@?k-G*W)=qGNN4nijjcTijfvn{$;6FNo!R^2kFkYA$WY zTl#!%m=bhUEE+gwDYR6e;An$YZSZ_(Evdrdrt_y*4?Ul*FQ@5UaakUBSfy~J$GN(11;ob$e;HN&l*CNcg0?hHx3yiL<#slXmG7p6aFF)#Zr17WNB^1-TEbx(Ek)GpLcBwey*X34TeC&SOfQ}t zDdpP^^4sF0|2#mjNX1`L~gFN&8&Rmn6RCiY#nC)9| zJsXCHlsioV>wKA_d%p%mwsql~xLns$aB72YbyYdmwgTm>Cyw|+jV|EVr6-vF1 z_GuSf`(2aPl`*lU&Uz|jcV8#xA}G$J#VU0zssyHd?F2vI-5yj1%p?k-IOKf*p+YEJ zJ$xqQ|9t(mZl!hW(cwNCuyQzq6&>Ryucp zPkT9%>uBjF=8krJuV>iqpTaLF!rL#-CUGWrzA*K8XEB#j!}HgE{Ia;@c<92DJUtb$ zuC9N68jZ?s5^`;$QWA9klvU3QaI%85Q#nVwx4&$zvVR}Ek;U4!J*-;tHgMv~kzNx| z6fd>V%+gKhDZYxU39(_C=g<1|;DRQ1l*y!3(C7T%=R!eMvnAXpYEIhUvs-u$bk(Bo zE;(9AqDvx4_0?1%Nmb+r7`N~E*PXer>mQ9qH#`9qFQZ}odJFs_4Dz&(Gv&usb^wYl zLeG^8WHT}uJP5Hh9;1#qj6QXB+}QgwSIo(nA?v1?Sme=*kb zo9lt86P8~y)J*oKiKdhT7VrWTwA`z}^;oSN8}c*l1~Z4wo#$8FroC#1AeA(ERIH#) zUqh+ZnLHL3$!Jqj=Af=$n8lD06&~%lA1h%ASWKfzg8Ci80#vQm7r?N|Xs16jD#%V_z4zIf!sY>)m3^Ij;4a6C zYk7lSHZp6pnXT|Ukx`aU;%k>Ww?UF75&npH)zhn3`e(B)XT$3MSb(CRN-U&ZmP>BOgjQNfSV#f>y68 z#_^cUcm;H&h+!T&G>1ZQ8FJ@m*J4;zfnGyT_Kxhy6F}t6&?szwzwUY&Ffz{V1pjsQ zT*Hz~A(wH}ZxOe+K*E!}_rhtTRI9PbB4T<50^8uyFvOIB7^39scqmc@PlgkWzky?x{Zk>POVCWAzvAyk)3v*yGbo4T1E z$-$O*Dy-Z8F{<+_99heddkGH$S)@KRNcOk^_OuNog0q1D$2=LU`Cm*rNbj_;;4G{P z+4@AC9z8OoX&{mLaZ25jFw$8m^?Dy{Y@Y<>~Nf?RMNHxU| zu+0J4lE`5W&^s*~pmhOvKlSnHnHUs`CHg3I;Bg@mjkt0gN=yNrqys>k@_n<&PV=@{ zE?e2k(bD)2c_^I!qc5+nl-~bD3S?4xX-`qZ)vj5)xzsx2*ZIsxO(o_p(#`XghJ!R# z(kv+?<1@&l05V(V?yInvm7SvqX{k}n?@o}4(N&2Bivgq(tmA-KOcjVsI<8AL9A>`e zjiI3COh`i#Gecs67O(%|k(Km6owprWfoyJ~plwomD%{h}M9OdL(G7_wA3$zdO=@@Q zTB3+kQeq{x@6X=mB0Eq(TplAS9?QbO*Atnx)E- zY}pqS$XXBkd3gZtC=J1xd*LUl9vwv`|f0MaEzgXXJn^blz?WKsht9|Vch2G4TdwDq~DT%YVel5Hs zRonpXz5Hk}QPQtc$R79QtdY}5CA9bZ-#u88fntYd=zlUEWZ? zdGn^eAU_G?LqNv-FQXjj>+5Uv5;<(*02E@Sz%Y?I+5Y}fLKK(O>LCVz5)9}BSyWV1 zuFkvsNJ#j1-SqY$^x}V5xbG2}D?7mMMc+g~8Kg{!N+6(Kd7I)jY~M8vgly47spqHX z=g0EU8^8U0lSP5{P?Sbx|^dmx8}v(a-4bNEGbs)<}id z@T7x@yhJbYIKE*uN6q@N)peom~GLR3$Sd1ef-hi#h=6#*+7OA(e%2J2?0 z`|N4Id#Mo>kA{%Gn+vQ!P7}>*R;%pqzw9mU`YVJeyjug(+T?wD=|Bm?$x}_Uj5awM z=&?}64(!lE-;KEkyu;o^O$fNYZx3x#2pkr}T1E53UgjG&d-~RNE68 zC2c28x1G!>Y*$$MAd_Y<&;QH&!{Rkj_Azlgrd*g(lW1h`LytjGK_Lw)C zDB<<`ZRma&XW|?U{Omaw)ak9SI7##n^Fy2E-YCn3G<}u%#4S2bgCcGqH`e^4NPcot zaL!dNj)8g~cc00(qC{LF0NgWCn>)`s{RjNMD$pZ87t=Ux@cQPwAJ`7@;|+e|&#~)W z;@yR-y8xz56_j;RjC1@o8G57?=nZZ^fY09gAFQ?@D<2un6PlXVMGDh^vhexFd>?zl zMT!8t=#w1Srk*Ot< zp$n2K5?enk1sn&tiGmvSJJag=`ug`;K#T^iV2SF`i$b!RtFd@7ronnrAPNvx}F5z7F;_3RqL8emJoWgZ~BF_kci zV+FW5C4d+Zf$I}c|GGa*Ih}3 z;hG3U3;;{#gM?1sr zO`w(}UYW*V6pxP%Q=5R4cFY_<@!Rk8g9{EE6<|JOmQR5_ zD6suKuARS3cZcTCEZ)MsQ`ik`7*zl)SyHmmXcZu<&cki7wl7d)1R z^}ry-Pi_HZ(FQOEh0y8Rzdf`%*e&2}&Ysvst?TyH9|HEhbhMF$#=`4gC9gg^7t)x=D|LZd`Guqg z)U@L5yT+EALUvS-tqs6B2J3AKM5C)d`$`M}Eb7T3P&=8E*^!4I;)*^Iqb4;4aw?t- z6sLA(2n!3#cTkw&JiZ7#|J7H)nFTjp>a{^71MBg2(6Oyo67E(U&@=)4S`!gFrNo|W z*x*d=QNJ@J8U8Nkbzz=h-6bo|8kl*;60r++pWv!}5KMhjD2i6VO8M#ezh-Fex>f;N zPn)k{BL?geMW8%}6PJ9s!vF&4gE{l{3uA~TJ1G04vy8v(F25K11mK3dSusEc0ze%+ z@=Xr~21iBlEiLOrkxYd?aHyg#Il!lV2Xk%>N;yEd{PO49%fuFfZ*y~v#CVQuwPwBz zN>2A}_&_W!Au1HBuEpPidwk!xjEibEp{j5i5fR%Sb?-Df_wL=hPA8x|cJ0ceAPZ{d zGt*3eZeFewW8MVn53IrbT%CXVvu>r4i&AnUDny*E>O}NL6&mL>1Y2S-VKQjgcrhyF z0-{O0r_Y1xpU*C;UD({jTZqR8fK3mAQ|euy#+(MlC0)}*PYINBN!K#w6UjVNAG>rd zb%F(GM_K`}QJZ6NgU#o1;HSR_9j&L!28?!ebjXec0&l4P@!yJ!elSN&fIkpX$;4y; zMCVMSBztP1*OZ=PO~!W=y)Z{N&*qxtwsfq0zJLJ+nFSOI2oH!}-t$YB3djcVXbtF@ zs(J8K?PbPFK|u4o$SN#6VDv)B^_TqYVFaDnZPC%k&&kz<`h8cw(u{rk;InS?PS|c5 z36#QW$&Ao8x8%4%;7Ew^>$;aD^XM(_(Fy;9(Yd=qT74yR9elUC&rnJ*0v{=QFSZ%5 z8fuG~V3Jg)+hVPMetb%VN_SoGf;<|)b1dMC`G{C@#Qm&E)8SU~jhAWMML>W!qvpAH z7d#%Z0;uk-Ehy@l;m7s$rEUWye_F0$-@Y&)JoJmrmqv>wg*gn0QjGAP($&jYA|%>U ztxZdVBGcQ!5B;tm(;nLbKnn4WO}*n^BAy|w`*0Dx3`&KFWhP+r^SR9=+O~mkf$eZ_ z)4gs^;A9a-Ny8OfaDLLSs=|CDtbP3+s7?1p$>qPN+wg|o6;gBMmiFDq$xU%Pd%H+T zqBqx_w%YD}Mm$&{BR>1@G^Jop!{sMJQRjwD{hH}Glaz^WKx&`?nrFL9)BtvX(kx=& ze?!W@nlOpCcf_W8C6$qKMrkQ%F54Kzk-tKPI?{=MKO||2O!M& zAzPw32goJ)S|>3q0IblhvWR85fFe!l!*cv=_Ji1n0FY5BbsmGSAMn=B-L4AffnG{~ z@{8Q(a1*aixhj3M)4Wu{b%`W3Kr=bT!hiKE5uR$eoB*j{24Cqq{Vj~`RE_z!FmAEO zU$!@R-)5FS%j;}rP+i@rmZ&nwRde-mk@ssdXND$~e^%T_*zaWDdvy*;Yi`#KLuV)| zDu&{<5ZJZ(4p`xEF9nMxZHV2!(;QEH7ILv_KhS!{v{Q4}@1-glfHIG=h^?YQs+p1& z`t~bpJ4u!Q(9p~l1XF}KGqbXO)x9nD?fuh!=17TOrnZ9xMr_yj2**dZdF?`%aGT}9 zO7rE4OU+A&?R-a)Zcqd@_qzo>LacNnua`R7v8>v+=fHlIMrd+l7wdry5U}a^S5O~4 zxjE3H%9SbfW)A?>j>%k6f`8wepoz~f+`dv9Bv?n_4O^CSK;n*3eTg8kT=L|kAsb}kH8<%9qBH+{cpx_3Xi)6i~HeW6Qed`f!4t#Lu^@;2pMiN2X}nxlWAZ6Y4r*>=m8pb10DcLHKh?11J~+h{V-+;h z7${{(SQM#{?HC}IApr_aa6sEw0qqn6=(*U*vu?(>rl}YhTq?8n+bn8}##d6@yIgtu za-(U_);cR;H^oR{(-+#n1K>DwL9tpJsE&9hefwlnWJc+8?=lx7U@zTRuN@Sj*5bG1 zaq}*;pY1r%4^Y69CFK_Ef{3Ei37*PB<;x~*Kzm>}H^s*j(fcvyPIBmCe>G85D`kxE zGZxFMkg$KezF6F}S7C<#&{<*Z@a@eFHsA#{hPPq5(8-1dk+gj{w`?wu{14VM8n>aL zZ5wZMr(M(NtgTMEbKUbuBcsn;+c!?q$zhr2YR~sfgj;4o1GenT*K^Vzd+dFTq38_M zmY`b?MH-+F+koKR+V|dWrp``jY3bTw_3(X@=Qj%b-Ok>HPpduWC|uAsu9zNXM=&TQ zN7ZStUfNi_<-wUIg%Qy*7*;j$6P*tmFaPyj=lMCPn&sAXdwg;fOuDFH%UBS)l4zU8 z-;h)Ow3glJ&Pq-i&OY|0$fL(wL%7*IH^0VOi_O5{^Bw#Fn$JZGr5uOLb3>3a>nj_b z8JhC50%@LuMwn3z!oO*!K~~6fH!r2E7qK{Werr&T%|-A>@(Vye#ycf<5H`z z8e*i%M%Op*o)%gBw)XgF-=#`$$|uXVW~9O~{$O`DeMZW+vI*FgA1Pv*`QQ4Ts>awr zu~mG2QEi)=V?WH#Hx8cKmGdAf!f4;pzB>Ex!-f|$rhG-`gl64Sv)=)wW}-Ui85OSF za%`29#jV$&FN_(pJ!;eSg&M%`VQSkq)m{{3B&OY41w^<&alVF9|D6I5o!a@m-F3$H^qiJl?P~*RwJA!-%z~i3of5P{5$s8(W_Q z81{~0K7kYnpOA~D z&?p*>PNd=io;f8`AZEVa#0icu+p>pK0uIu#B_rnAEA9*8WK`Md&u%w&**B6(Q<%?cy4ra?VlG za~C)6<&6XolK`HVPMdsHs)eYlqzP?)NvR6hFZIpXw5z>0mz-Djb^x&8LzSG~#@Hd7 z3(7dif>>_jKv9x=>)TK*IN|E)hYAI~J{+L@7KBX5Z0#&Xw|1VY@1QnLR+8oPhU#&oB7xrjVH?KPX5IFWO0`SuwpvL({f4)JtuBO?Oi5KQ8f`C*7wUei0VJtvT zDlC0?X0USV$u~AhPAg-6y2GM$Kp3;@GWjL!+6?K`*HZ3T@<|G29deNXi$yd{_zYdQSyImOnEuXxcsDH=eP5$km_KF=Z< z*?FGz@XdfYY36EYxmGqPZ!Qfw4kWTz-J2eReV{y@H%swtsi*&h!>=!4rFOlycLCBH zi}O1tF@Yf9lN5A8_z7aHG3WLAW%rv$QVIIX4FIVUOS4t0cYxPWyKMlHSf)3#{KVzb zm#ghAxCx=c$@V<#Y_SeA{5ueP2*CXT34k>jnx(ZKJ&A zdYE7UKoaZ9+5Fvl2z;O_T8AaGYH75l?<{i9bhabW@)`E|dCHk5Zw{6tL0Cd$@*D#3 z{IPr%;~hyvR;0rzddQWwjy^7?0I?^KF!zM6vfTLbEYd z|A?)+1WnQXdj0wmfvW#LLXPdw{0KxDsw0(7ouy!D^!uMb28dRDGd_#d2HC zQ(Qx9I8wc^O_2=JAAuqy+EmPpzk^al!aFR;s(lMF z_LZ%upYslcHsl!;^MV5iFkF8O*OCO{GBY-J%ZMw(sl zMeb`w_TukV`5O9tOaR86&UguGU5e_uMuPz1VsjH%hwk1i!OPm4RV+;|C*Vr{sKuA=h{vr@?1nTWf0bRby=N=aoqBf3*EX2?@h&E9Ghb6sh zq7Ku_`_SG3QovJQUZgDw1S>#KM}aCzEl@{di9-bNZ*-c}xJ}F6IwdR>UWDE?Ay%0hFuiYJehL17ab#TCzxI2po>q|7)SB-r#Q&;ao*`5}$_Z0gQ2nByKBx(A>bGHHMY#-`cs%*Bz6NIUZX>wslV1 zVeDylMg~TR#nso`KKT{PV44s3q$hAV6lZu zphHFcGG&XWCNU-$@~-9KY3nt5V4ScH2*$cX@8iSm>V=hTNO5ptKI z=|Wb$GKg-r97!xnf5uLEk_QE_?$ngkJMt&VIPBA?Q0)ak*hdpfGegXb(Xkew>`Y|h ztuaVE`vX(JhH~q`;DYS|0Jlj>*Oxq;l|GIpIdd*yQ06i%OAYS*Jm4DK%<+FzxX|SS zi{K~$q4x5}iu*=2|18^C@IbRr=M;#?I`}x7)p-fWnjrj~r$stfiItfT-bH9v9fB&@ z#DJ`Ov5wQRMSb}OeCu^m@qi&o)K{*R&V-|Ig6HKC*Z5DI#OLsH$a(Q+RSnF?${+0Y z`a!s-E*vQ$fe%)YqlRKUjMKJaaWG$yEfVfqSyN3$iQj$31&tw{82;B3J8v(|EqN`4 z3p!ZNUV&@NOm?n?;hh|)C`K7TyX~(K!I~sgOzK~0yfPq znfSvVn`*=9A%w!+K>(JZa|6D20^f^t@N3LWOrMr&LlMKOFe(uBWzBm6#qiqim(%a5 z5r`4eX$3!^u7vpy6NpDl2$f4GF?RzpbKfAhN9;KF9 z-(Rygzc&SPGv$h)o7U%FYqa-0R+7u@%~BGN_nzzdwBd-ecN@OgMw9v(Yum=9#-(2n z)tM~X4hV(^MUKZg;F%KzSH)<<{BRV^PJ-Fg7Q3#1UP-3lbh6DpL}N75(=2b{+5SW< zswWA#UW{=YVFw%n+fH9kxA31n`{1;I;!N_t$Fn@Xh<2`966sTF(}tlpyqAiz*%{Uc zHQVmVF%_EPAj*Cs^G3fmu5v6{pr5`Ah1Yqnh}dQmivvwT%sZpzL(Bo%w3!kb13<0^ zW;2|j@zPyL6t89fIfNXu>I0}aH3HjG@+LSeAYokJr`G`%uxzX{?fXp%|3{g@fWhKs zN_V<6L85X|s`oIXZ?$|@4;T!$M{<4&^EY;Bh3puK<~O$u2Ycz#xQmhJqLn}K1XLOb zeX20&p@I?i1~WX@S=zhyd~B(0v%cT_py+aZxd^NGhQONQ{_U~9IJhqo(VX0=3|`G`V8R z7up$oL&Xa}7e5q7xU}bwEuB-XY+;{1RQ3Ak>HJ)PtkU=!4#82=T3=f zigeYdDdkK%fJ;^HW_DpxOuKvpbF)fc84-@+GGY8f96Rl=NzJ0K+-b9 zoZ@pSw@w3kB7QOP@b;?Yvdh-5?F~tM%xPv&>y^;s+a45Rsh_J|2vWp@A<6;mr^NW; z8BvNwyn<g1cJ}19qU>yzFsq@Vp&9ikkfJXs zDL;SaB-c#q&r4R{S3ClaF^BSb zMlJzJ7r(ncn?CwP?F|u164~3TQ8!h?v+P9Cih+MLY4Ed2Ly9S0E-qC8LBS#Q@9T!O zV48BZGGq;>*lT)+Tx;}{cas~=3I%iz0E=o3@WC1!15SnB4=3 z>Zpy44H^2ssWNSj_u%N5xCU@G(*A(IBf#x5Cv-6clH;$5lmNsb3Lrj=Q?tAisL*omtu<*w`P zovhRLWppp*^zQ!r^qf^hL?2`#*qD_fgls4J>;sC*3H<9d5ocF6g{SrrBM*m!I7OSMBnTYc!2ROND=2srT(`(?y^Nw#$Z+ay_qE6Tc6sQ$Q zso=`(b-<*yy7~duOr82~Qje-!YXP)Fq}9@^9RK^>ek}x7HedoL*SB6=q)D2YJ#A2? zM>ZD(eXaFA>r;SAdKU)23SZEmh3?CZ1LE zj(GA8_hN6>OOP`H8U3~I%#jH;|Ep;jV8-+n8bF>HBa7fdFAU_f$D4U2+IyU&D!@4; zk|-olkys`DO?v*Ghn>J_AmlWMp#!o&A@-UnI6Q+Zs`Jz;F}9IiN4#Z_mQvzClk|hb z2-q&t@S?!hB95Wouu6Dopllibxa^SMF63|MS;KBI{A|K+o(L_iaa7) zveqL+vo$!k1eveTqXP23U@%o5KFsVdGBW|( zp{4U_x(V{^9|R!8{cxEI7kvQH&%(>A;k&)e1K7U`qVv9b^Cp+3#A*mJ{RGYc`c>au z?K-)(eoBA}20n zvP^b^?4!NJXt6VtLiX&&+Qwwh(o9*C7);2%^BkvK*YCcc-~BwV`}*^Fz3%?0KSpN0 z^ZlOZaej{X=X1=w-7fe6?%#MzBGkjWC{7JE@_pg_auUwntHc2G7j{k;{d%KX%n(i`;rTKzf)e;(hR90k&JE{=%P!& z;vk_KKOMEUU_ehB_ClNJsD-o1v)INI=nhf3*KUNTTi`623agcUcX?-)yL(w^Xy}a~ z$ag`1F4T=`rJ|fGsChrYl7%zVbfQiH**Hur`9*ZU2O^u4W} z>eyMlN~Cl{aGP3KsJ`lkTJh1-fG z4z2&Fc(iTru6A2wqbUAEI>s7e>x+*+`~H?Tn-X6}kZU59qtNT0q@&n?E7gRYYuXa1el^jsJrXH0WgLuqCVUP;>Vy4C7IdDOX{Gn?H`s6XJn7 zGkc~BBy(LO$Qm)ZqY?vCaN3?LwSab0edUw#*N>KYj`_ViSBqQs4-oHrh3ad*c=CRs z#vEu|@DN~rv-LU$O`q;pjR zcSj}*P>PdHRy_zWfb96wgCNW}gu6c}#{b`+`@_7v=kQ0|L1z9^;1IKeUHl_W^54Q| z6{Kr{ColoZ;W$DgeBqL~4kkvZn3~3#x_{Dp#>uv}`f(>5O+=+OlN?YnjiI^uPTl6n zd@^zR*9&;gE8NzGIMwY_Yc&qzhTl*9iQhF{|Bqb=F4O-R|I|@=D=U-n%B+R&&*P^7 zZh|O7_`{|B{;oIXLxq)zN6m{F|A)jBvc~Z*0(wuFtmH?NnxA{=dGM{i@b`m&MhW6O z4_7SaTMX?Fe1aR&4=wt<_dWy||GrnLbG%CIn-OdNv8hNSnTa;xwPN)iV{M>w&(@Y1 z9)5{WVyVEyP*Q4dRd&~wpZ(*pKfexvU6%Wg!#Qgp&+q!)LH3G{#eWt(yiBRVLDTSeU1}AHdYZzpu8e%jmYl=V zGjc}-=c}lycbL_Mgfid6M#weXGQ7UgouEpP6ClrXa!0ohOT5c3^4)NIq|gV?DOAja zQMwRc0zll;T->OI)Ru zd}Zdh_=wQX1C`TkcdX{TK2Cf3I;{kJKgDUmN219dZE{QZSUl@t8Yp1VVyLb}J3nR2 zb*8i8Qgp~dAA+iXiBPnA(+IzbO+d9k}`Pci6CUeVX0z+ftGnTT%tLKcCyI)l; z>@V|Mx*&ybdFrZ>Q8VmwCU3ciW2Ch4Vs&rGPoeUa0f)BQ+1bU>Wkb@EQ0D^8ugtz3 zrxZ8;o%WRFr2-Fpy9rLlOWVsuPq$=+W!}{$Q`O3(BXuO@98Uk(wY)dV%D*0w4iEA_7Uv7CunHCp72 zFkH#V8zv*Q$!(LnvSivHdY05D>V2rV6g*?ZMDnXz5Zf?5O*Ys+^NBne8{E@$R(yAR z*cB_2lTJ(VUVGwfudCz*W(R)8e)*@U4&{ViLG8DpOw32)^{kdRxW`SD`-Prc@$nJ3 z9uu+4#e7A@U<-@)J7s6qa@|?S3up>Z4iY)K)Q5k~Py%QL#|eNzW;rzR(Z2q&`b&E87MBhqx!QVfy{O!CUdm^tPP4_N4(SkCj`lDCbQ>|kCPwc^2?xlX&Q=l8ImO?!Sm z2zmR&dE4yv13nP6pf$g1IHF?t0IYllL-G3e`%44V)w!0oQO92rYMq?KEEu>ZCa!lG zXhrC4NX}l5VH}L*Rty?VSuRf!^2!h&d#Nkqb4bO(Q2X9v&G=2mU6p4lI#~~ z&T)+-?WoI-BN@SV?e2ufUOO)CvDohsucO)t#`UCHkJ9uQTCXR`Y_WqtFJSL=x9BfU zz&9SxBCiXO`~D@jNwrdWL{FeA`8v&bWA7fytU>iRKeo^ny%TZ0A$fc%m_YL$<>>e? z+oeIfR!pskUB219oXz6Z&}reLNxQeq#i-n|o?q}xWUq%sPk5m-f8o@6KXx+1vLo4@ zl;yHmQXd;KI1Eeg;F8Da44+a!Bz2;`*F}EJxNqJU=SZdvo0~sfU!iX<`h9Bd&bR#W zaq(}xbIUojhp^D9kGpDyoNF%i&KZrnB}9r(f9HO6k4@7?#`A;`D+u!Ba{~`R}OyQ0;r~nTkSsy7= z=!ic4$-v^ax6oU!f4M{s92O14v9kiYmk!%1f^aZVGlsPCB0A^w1#HKdUGJ28(Q}da7GYEPlANL;)jG^8XIQ$ zLBy6-dlCfc>t>pMaUhwmfDT*Qb@=}WRQ^ZHZ-RV^oLZce5rmtETFwDLicsd=gMzML zOz~>DTDcdqde&dRYAi@e11sGO)%YlM8sHz9K!6+?l21Wlpma(GvIHRq3r#k_+Ye+w z^HH5rPZ!+S3vLaO4H9fBivLW}#|mCe(kKU3{j~Y3ie@ zc#`3J-a!qf4@&rV>*Zellew<^0M6ygi3?0BQ={G8lQ-F9{Y#NJiKHz!q0}}lN@aNk zOWs~{v)n!_90_Vbd?DG;t5W|$q}0gg?6c4yw5<8I?Hf3R9s}iZ*M1*i*$@xMqW3f8 zK+!jzP705eyvln{Xq+Z%8HTX@7dsTIIp7Zq9c-7}R;)`N-$*Zqy zuoVyA4CatnpVz}sh#@N%?6qG&U^_MH4_}zcW7_>$A$Cr z`$XF|^tuNhd^GO+?ozA=;n^$BW1rjm47ZhZ+4Tr$$2o}yJ+Z|0{9uxaIG5}^>qOD` z^~xq^eun9SoB0_x91ruUl=sr~x%(KuJYhcjqoCb!`vV8AMdp0!snwrvX%J$jSZ?$w zVOPCG^*P?5STn(J*Tt3pc&y*Lw`d zO5hYpgl`Y-tplK(yOo$}28jDFdZvIH9(v@0e6iagkL=1KF0P#jlNOM+46p2iC;1V; zXEnpqa05r_T+jzTNhLzyI56W+K+r15m>}=RD`lCNy#Uh`a<(D@2#}HugHgZ9*@h4i zMroHxs){Xp0h}8;j!J+Gni;Y$-I4}Qpzn3UjUx4UI#54w67Ctsa9ts*IW0HaRqKDFBu!mJ<90d!cDi1SXq3zh-1g+bR2ZUYd7!r)hcpg z+kSflTm`R2DpvgIzzFBNMF<+cdObW1){s^e4UN@d6kvI}MmZE=dKm~dvLtBFjSdYl zVvT@&MZ%Thr$cX}5P7Q7;5}1di6YWbzd#?}LOOsnCKmXm{7(fACiD(mqkEVCxA$Aq zye9hfBLvLSp)WxR%7q7)0t>}bXPhw%iRH?yUK>L&=@&_vb;r8EOw z*EYZ+roani1R%~U)B(iIa0Mjrwv{K(Ye} zzQx#f8wxmB$*_7p+V8UklR)>G-*raP(cG&q43vVhjsm|137R4FdXD84?r52jw+G)? z4)}|8whcUlks~#W(1xH*$v{SX1j9bjqRzvjq7>6>9p{}I>+0N0&a3{sN=Y9yJ&(UC zVGh@pNJq*wYWpD@W+-ht#)ISZRC2gLA%yCa2$@;rT4+Kx(>-pw|7dkLE$lHQQ(ZVP zKf4=53{T470Kr(n+MPLAF$zQ3I`|=WUjqOOp^xMhPcFL1 zaoR8A`F>skr!?C~+@^qwHFR;7^v0MjPHMKs8A7)&VWU-{!j5kK+$`%Z%-AN!u`3G-yYBTeo>j zqI^1N*!>&LLBqyHg{#v`8^PV=RTdJyknh;pHY|g*`{G_1Zy)g5wM$AG=xQDxG(3-Y zgoNzj`US*i?K%Lh-{XIM4a+yPa5Efe$^#*yZP)7^2Im z{;i}xUD8|f+Hn0h$z{;klz}t(>nkWjUjg^r4inqstv#V}agG{&FIhYLpmTJp0)Xw& z1|9VwEDtOACxQN}Mlhd6a&&9M3anB>#Ob>`Ij$D;v^}%XJcUqSJLt>z>plVgPMEb( zN8N)?sYekT5*wWpRl>%lJ{`m;)MV>u2K#^k&(OkuE-~L@*fhj*Iw*a^ zxnmLb_Vn3VPddWhRz%ezPrQje?hL}$?P+VC(4045tgnyhm_S+Iv_W13#Z7E#68i~$ z30sHG;!h6ypk3*fIr{IOYg>L%@bMKUV98IIp z-G5=^)zUi)uk%-_VohEi-!+BC46?4JQ91qI?80c;6w^J)rt zQ-JMKTscg5SWUKvK{~;+e6?fGI5FeX(2G@tE);UE{}8}zNdSsn4yY9su8mx&gWXRJ zGK>#F|1*Cnd+LD>7$CR4z$g&4{54m;-rV)Qd|~9ltenb)zbbB*>9wBnzwp`rI~x8y zIfQRUMn*oAnpR{rJ1Exa_C()TXrM#4Q}&guK}3`$CXc#9e^%U=N+V;nvDuWX=E1}*IezD^5pe?J6h zt`_=%iLiv6@ySLWZiq1yuo!VeLPxf#YxSXV5c*Z%*?4=IW;dk=aYKC% z1j`>nO+e}_fX7B2zX%vc4WQ=75aEX0ypDzN2&%14cHsnzl7L6E->WOtyS-pXm@u7z zq>rTLW9(>D19G;=m+f;b;%quKS5(URx?owzdGn%WmH7ZZLYCka5PjVY1 zkDcdAbn{uwQGzxt%4-m&z(P_BwkVVo(BPgIsG1gwtcdK%&zq~My=j1Y2$CJ<_ksc- zqLsm7;P8nUiO`?M?!Acnz=z zctH`^S(V(|6j%!Lu=?iM*I@$uUZRsOw-BJDB!HRK@I2>R?1_{axZ|R+cz6>}Ctxs5 zbi8rd3+_tfg5H6+r;bu+eW^5WCZ^bQmmP;eJsn|ysfuJNJFzY ze#(6>9K%vVwb||g=~*2#j8Y$fCaON*eSl;h*C@KT?&_em>zg@W z$-t}?KzV8%q|K7(Wpn*8j+OZ6KW> zX0-z7m396aK!RBhiqmOue5;@J zI-mbUh60#ST1pHIRB7O+rt&$k!$cq>oEd%y_bD)?RJWcv6z3cFNus z&T(QbnQnnGn?xj8)E3UAl&(LtnOK~tQ<+y?aA!|31Ce)NboC}^;7?u(7CG3&hi_X@ zNe+{UCc;y(|Jyi4|0O~5_ zjNsSq-JZ`Ej)}23lSEx-bRXs(DS*BuP@w91p?9aHMp@?4!l%?5A4eE4G6mJJ6TOo{NKibO zQd@rZqp@i%ebBg$26vh$R4%8PIyRmZU|2xr=?dyK5d~_0KU=EAK&Xtvj?uQrB`6<7 z*CohoE)!2WaaCsm>c#3(F?OoipdV0Z4gze&*s0d-f~6N5Mh4hChkCJGEa|VIG0V)3 zo~VFfRL&U zlhU{(aRh8#j=jy<-h>ubhM>|Zsb;LBER5qLV4X8XPPDjSE1O_D9&zU=TY}wDlsn`w zQIsZb87GLU^`2+bwDG%lG}zdrVX&EF)_o1-R%)U_mU)8}(3P$fBb%tBS;+dGp{+tr zYX7LE4nASqZa#yym{izf`mZ%En@FD0BEu&9b~DQHeyTMXdX(s$c&Q##19h&%;FSEp zbH}1Zg0$LZjngjX#Xr{QO*JnoMx{~G+sY@R%myfDV#nSSa=Ul$R!dZaETq^lVK~ML zFA+rony}`CqsbkRnnT`T<&9^M6M4}TcqHR>^J|5OV-B&I?eTCZkCI6WNwfTzD&WAI zsWTu@vFJ)Ov}uUNCUs)_2!zTe!;U8-5lC}If(KhEeNvGj001qIkCOYDc z!$cr}NM|WY=fsp3_EYO>g-C+|p7et9O;~N$NXNt9HT7}QCaRXP5l}xF!KpR7 z*kkyrG^8%-8yg!F78YSEprCaTa0LpIcTiH49h9K`%TS*>o6LYADhC}QD#2C=u`=C` z;ezI+pOMKtEHcveQ>IzF_m6Bc#B*4aGJ0#_v}47v_rz=Xi8wuo56=yTLdqC@Mbt4+ zZyxA_99v%u&WCJNaoB-?VO_Tqq>mgZm8~49LNG;-SH*nrZb(8lu|E)rKCscfvTH^YFG&v#8eHFR`bW9nv5`H zHTQf*rFz2-51vPeyh?*0Dt$OBgK@%&4i!N5PImE!mSrH3M-ET^_|oDq2flvWaI_CY zQl|fcLmD9P))s>cY4EjEpnywg)9c^y0#wx>fYM5${T)1p1OKB38%7@xAi$zwRO5G#7!wWkd7ob`>VBp q9_YXFjQ-X@V0Z(6JC;%I$Mi}>->nJT>uv_<=am&T6f)&6-uN$v6QNE3 literal 26309 zcmeFZcTkku*CpI$t_r9KTtPtb3JL;p$r({Z8%a%)tf1ru$&$?|D5ylqsex{i5(NZI zfRa;#G)c*+L2`!Kr|<9g&eS_IU(Hl~|9tg+x9S!`cb|Tq^X#+F+H0+So@uJ9(C=s4 zkHKK*uU@%?!(et3Fqoa{bbH}1meU32;fJ)V@^x2jM@v_ao6ff}YByc)*gLw~+nAql zzwPW|qqCLJCnL8;80C*UR}5S*7{;6E{~Z|$ z={E2M!dEX{(778+?cEn;e7j`dZ$}A^D<|(C+L_d;NjP;ScYmu+pr~@R>+YlDwR?6D z{=kK$(HUPD-^tB!c4wgIg^w8SM~X`OceJ`s&-3SpOG7=-g zlr!(&w=Abiz!AgX8Ze29WaWxK(Z6;l9YsGLGhuhY4^7Gc+h3cL{Wk`=#>@IQ9Sm=W z>$bi;c@fuN;oGKkKp;%K+dhAxEn!PkEn1Y=GDTSJ*tex!UC4*c2eOsIWb+Aaw~J z1hZAKnC(cg%PC3g+jOj0wJe>hP=vUhhvA@?Wi!KY#jQ=EV)jMB$DIdKM-%+zdtKYqY&xMSt)up(G2a*kJ~|k z87u0S2<<=KS+reblxrXORWg+0xX2vLtu$ya(`~vTPJ|Ju^b?1uS{QRh^L)2}ey_M1L_rulf(D~p4OgIHXV)T!$*eiDyQers{%CiT^)A4*h`DL`iH2- zvz&E%898Hf`#neFE@ze`R|!*?29IP1&u*kmg}?rJXLD{#Q+Ai82h}dr7(l@)NY3|fnw5549CSYdoZFThxg~V zH|EnDB>F$JP$!NuX+nY6jwU)ij2zRzs8 zb;|(ru6L)N9)K9Jsbbc@2J1GZ^;WHhAZI82>k-pj;=D+sWXe*7r2KG1y;jO) zLJ75GG(OYAn@EVTom;BhTFe#2Qwn5vb6}!e&;r$R%T!@8^O@xd!F{Qjkk3u3ZoF62 z<6JkKAHO)$U)iNG01qF(P#DBONH&~$V-riq zHCtR9A{kI=RpE=40kory7pPZFv~54Tbsff;tV9n@Knas?G{I1bT2n;oOmTZUNpMr)p z$=s9W%YAjlrw;zX<-4He1s}9cn1@ALZdzw(VfE_3Z0w&`%$8EPHqV%`G0mJNJ>br; zeX*27JmM>^lr`RsQLH%(TgVH;yT2Z{LGqf}@X*;7J>8hv`P)cMMUn2&E;$gNk(R>#QZgl9%pSopHoZ@`W&|t^C;FDpn12E&QhBf(i zzF42BRA3Z$JYzV+CZBt@=D5qX3i*Mjr{;Q+omIQh-cT?YEYrb2pSv)T^Mu>D41Tk9 ztTE2`^C%bfvG93W$|Colc2^753)`oE{Qk4*#A0bO{;jZ6CJRs(+B9-I1>Lt+N7GAATe2w=bidS*_04)uu7^zI&P}EN4$t*D&G;=?k&i-Q zV`z(K5+1Z(9gfT`-waULI0>6q`I7rVZO3b}=?=Qhya_(9FMfU!nPD7sVGw`p@4h}U zF_y2s8?!aUE3kp;aTb`dh?LhR_X<}G-WGn(fff zC!ecY1>PTWDk^toH`?u>B_QfDQtt|3B;K9Z$tir|gR$GvL}qTr#-CopLAkZ zg}$y0NI97ulnrUl5D+XGdQF)~gZ(Y5&tiBneAGjEh2_()*&40{2AQe1KK=y}mosne z&T`WGp7DTR{~?Fp$}hYjB=iTc12S3GM`=kfG+(rc($0^(`Q=IYG$fF&_)6M_my;AE zSenr{XcgzC7utlMaIQU@UccCsJ3VRQM%I1dFdv$*k=nAD{b8<_Al7M|zvTWQH;=ZJ z6+zk}7B|6O_Mv523i3s3WW@sEvY8`nQQ02rNdcTB-@Yt^e5^OMP(P@~b?}9R!@Mwr z^k+yS?PK!@5s2rW>gbD}Q9Hh#7abjKS?RdBzAV%W+X&tiu3nbvjZqBsTAq&c+nP^E zN6W1w?=O-{GKpt8WPfDFEvfaXe3#p`dPaEi$f;vrKCv2FCsDdbl|FrQptRyj8HvNwaNf z##{ZjBTZ}**j-+mZ;_X}9TU3Gq$p)%h&?s~K;c=f>%(ejWYhV|++DxGx$n*wdQS(# zgCZe|DhDiLrOxveS8NOmu~rCT#->T!ZziUcF_>oY!+rFBp1)DFo}x^(Qdl?GlKK2L zs*`z#s)h*@Mzf?IR`u8eallZr*W~ursVFxEaQQ{?hfnB9Rb6|_{UrfwjNYaL*~j$) z06{MYemiXJj`NLwv1WV9d8%O)hmX)+L#cSKi_r|?wugb0>6m$=er&d2qy3*EDI@KD z-ZODqYn_!v?|bWnDrGx6+B?KB7?S|a{b-4tSpT!V?{$e(a>0=f45pp~wiEbozy5}l z2ZGIGvtB)2%eJ<*t&mzn_c9!hB9Tba-csmIz1RY>#+$!Szc?=Sx30c~2_tz>iAa|^ zaI^}&S}(T^ptChONRTo#C?^;exSu$8|Cp$?=EQ`q*-YiOpM0j8%lA|8PR%ac(iX>! z@1eY-4-%dCwuN!BV#AG=xL-~%B(*9D{>lcJZquB2VKr}SZ8E)Vx-@fX7LtW1hx50S2#h0yr;3n= z*G&1cv|9uEUe{So+ZJV3HHFph8m%HtvZ3*QYvTo7mN5jh;g_!r1g*}d1WWVv`mIyP z5!h#xThR0xjq_-2l$q)2szbF`;tLX%fIF-EHtAwOnoFY;uP@ckO!a`^`x~XxrIU00 zzlI~t)B!!2dqJXW^P0@=ByFl8qzph5%8s-87H+r2#KdfR-aFZ>{QgBOElr+-pu;2v zY*i=p)J_pRNSgVU4YkZ#+Ue>Icpoh}F@(UXSd7{o@;~qAPlbPFb!pmC3T#$!%OArO zrrx{Wez*1QXxZ9240A6&Cyjlx+L7v=@m_Ocbu^*rq)vTEV2PGQzmE$7;$BN#R@$f_ zg2HG5U)ij5fbhlOyR~{-6)1n{%MRu=~*fuM^8T;Zw~*B*>T96Ir?YCY}+$>_W$6ZEJNJQd5=$+ zU56pYzSAORYjfSBL6eV^6k%ZbW@9H9d9&wkQ{gM+b@bByqg`Qw{dXIev~=TexqfFC1p{;s8!xWPew>(J zrP94+dt^ZWC7Xh;Yr@-hSDU84+x+Uw9R3Qe(4@g2RFXbng!MdriZ=WE%$}FBKX=yMJ$@jA+-+I5ey6MK{C`f1b=M%Bw1WL`Me8;o< z27J2iH}r(2Y?Tjn;P`K+kS()+G})7_e08E=ewxoD9bHroGGyRg)9HJ4cAsVbp4)Cp znUu|~9`=f%`iZM;ab0($ogPhYZA7Beu~DIxF%ra12M8FF~N z$W%Vp4=Id|k}PMp+w#Y(nGeK)`sgmD_vGth1{Nm`d-3cCK1b8_Sb8@|hbY_KO6Q1d z>ePBhV&8i``;AG5v6#V^h=!%T4m(BQ4%eBmZl^C^Mxk}qS6041>uh){py<}-q>I{a zB?G5+5`P2_RCVo|Ken6y{Q1l`q2S z8I9D4@MBS8$NUPDqq794F%7zJ#aOD{+;6Z%9@EyYdiHD0#fPW9TB$%P?mo-I?LC$- zow{^{dyS0sqJk;Ky?d>^D$b&4BS-aEq`=-w~9<6g%QbDw2- zH38z_Xw&xoJ!65%YT2d!Sl_kuz=QSNQMP%f^B>#hv2;rqb-(WV={E4Lk)i&d_|(yr zV7gH_KNXSx*qVBF5()o zE8kN6H${phy>cx|t^Smq#!r@c@@}|SDo@zX#L=gilb;{GU&#FWF{?!HySrYf7^R|% zB4XRor7_A81uJ8%i!h*5n72PG{G?%~;os{;4&CoHZtTVAAj(ST+Kna8-!J*jpAY)A zl>O$ccyZ=;wxV0^?l&Sjb)AN9C)g~%Id4Sbv75TIQ(%t+y{R^Qk`B->i}JmfyB^Dj zvqu$*MpZtw&8zK%k7JZnFI^K3PoDavf?MK0^xz|pwa)IrxQ6^kR9@J% z#eSfN;&K^cvFhAAbs52g+>|4_5)%Gdh4@JNgzlbu+jA#4&5Q zYzS$J3e@k-OuEZh;*9KB!h4+?H#%@DVx2G&T}!e_L0fQLeUqRFpV;}BHj$g+EXjqg z-1qf%JItEwOXU6oD9wy>hq-kauMnH=>Absdpej-oEqmeauQrw9PAORGh3& zT6g+<-}wd$?^M?Nk6DB_=6ES4OIYPHyNaz@-O{d&u|RQ)QQUFAYxLwr!r5>`RtH)V zQ|oB`jxn^}MQ#5$)z&1)oKA|f`fRWIv;#*rWa{2upQuLrToW_1#9^MV1hdn7Ekz8a zepV7fchrv`6Jw`ERa2*-4a9~W#72x{+3kFh<_U*xrFBc=%=4MDOxvNYHG>N4Wjfe$ z-fLHEI?A@U4H`tw5l*JyJWc~9#bo^WI5ppVQuoFUmM_$9BejmSrH1Opj4q|8ET43( zAP2@>AL~f%&qqxxp|irf9P115?DCvu z>{rCja)waR9b=jw@64~5PYV>8od1|*dXF3*Q6B-p!Tz4?dCu~gTZH7X&kO3Z+Ey;G z#8Gf570mT>y-<~l!=kPC3^unf!K76-+@s#kQtYr_!}sqPwoD$ov!*Yc*N!Vcth#?ep9c$Jx(Ov8kKYXRiy*G^Z z^@$<}k1cK|X{)J4ci9>?~6>g?iPK(`5fzRSIox-P4PUK=|as;7FT?{{AA_2?|~ zT_o#|1`@5}J$dj2EtdV3J~r3R)^?7-AG8>WB?xZI!w8A#nd6r$XN}f5z4YhU zB@saf)cZ?4z@wD)W#Ie@pb|-cbxI`-3S>cFATgU<(zkvGD2Pg>PZYGN$56MH`~4Ms z*T&O{{6Q8+KbiR0WM=Y{n3!Pjv82k`^lNWgNmLSc)`7qI(>|_PC`@t|0GX#Lvzioq zr%qRHZxyVL#H4qcdJ6~unV(GxV-vI0Spx>IE%Cxb9Mo->-xvLSaKL?4=p2ms5BB%F zB{bip;Lp$%U1!Rdhns*ZUCpD%NyTgBS3nGX>Sy?pnB18Cgtf)VNFn;FeLZA_p+i<& zQ-U*SReI%-9Ol?73nz0kH2DIH5F6q;-yo5WfV2RxCIa%K@HiSe4+wp@vxA?u7*6Tv zoN+@B5~xGLUMQt(etx`fGxg)$>ei=+`_gyp+MC*G<}atPH7w*WMb9pNt|?4|BGj)f8G9AS5iCh z@^3m!y{V!=f+IBv(YR^)rk;d8@dUp$8|k5!7hB)n{L<<(-w^2zoaO@5e{Pg$8cj2h z)DBcv*e;p|@js=i-jR%yU@TD3-lZVq%r8NSs7?XOO~$Pk#b<$VY%uzwMi>w!eN z1aXRWiYVx21+a3{(3(NiL|yj>DAsA(NQlDLT|>w6MZ=!aq3@w>KR-R3uh>h^7FLQV zJyD0A_dd@_nf!caXz_WC0kxA|ZwhIVC5REUn}*IN+4*ZZ@f7nQ0o!5&BoDy9I&Pg2 z15Lw+=zXJ>%iXv%@4El3K$A^h7(r1(zwL$JVDXaNLe7xHouOAMY4qYhP9T1AwE`%I zvuYGiOeONtGA7Dvg%^oY z0*jvy2&JlU`ML%#xd6?Qo)RKoYD#Da9nP8khKF^3CW%x#L&)^M`QJagzC6?Kc996v zE!qpZ#`v!QE_FmJQa4XsetxAbT|nBay`Y7RXpisUiY1Mn%N~+1#=Ia^S z5NJUN`iYD{VLJ|QSP$3tI#;6W7I3s?z!ux|`z|;5CxAk;>V{&{N3R?dFzL+!)=KNP zNi=kG2?^UG()l3L)az`V&)oNtY(YyYW$UBau7{-?6t*`?sM9pLhm2@6lpuY))8pK+ z3R|-wZGrqbQGCh=r9%QUqpbTm_Qr*{%8ac>)4Lc48dc0|Qo zcy1~%l_E$EoI_0PFO7wjy;YpigFYy2ZTSK$NE;zrn`5Xka-*xA-z1JE2S1uyTO?qo(aGnZ}Thhe& z`)Q71EE>5q++7!2)wO8uu2bSBL`ogF=6(BsK!N7k&xefC4&mr6uKd*f1cVA)0RW{j zDr}rbOux;>%B*LEPFIX$#T%CEH}3!YO3Qs`hC(&ek(!VHUGQlydpo<2A8?mxg`K8l zgL;3!fQrSfIhuTpdCSF>n*y|S^X=tHn@$stY~ORFbd){{zA(tR{_AEgld!@^N&DW& zdOEYo-n|noYJ+1#L~t$QmESuJwt}jt?dDb{Ee!X5Z@=chAF4h<=gUJDq1Nj~Vt|09 zdgai)^lFwV5kb~Y&2NJ^JO)5~q4y zK%-jgulE76h^yG7I;K;Lx&_Tb*u?l2C&+e1)Q;;G^eV`9axeG~LYi7kMALf@n2ur9 zi-_XY)sa%Fpol*#$#S5eCvg4L`z@f&!EpWCndGRG&RSkqu&(QFA~9@@?K5@#rC}=M(KU% zX9*`34^xQpoP&OhnJiiq7|L-h!h1HLeqTczwe(`UcH5~C+1K)GV<}xlF@N92dj0;i zk0#qjnE9<1z%Io5ARPg>tD!uE3lH}aaGA$st3KO+`dhgGh|{+4e=qr@_OH*FXaF90HC#b;O-JU2a$wO{ z-vP=NLK+{Mtg*2|bd}9&3l2@8pr>=uEHH>f9zS5VqQoZebC+sS?zMoka&52F zxKv(Zf#t*xyc3R2-KWTnwDG3jcH;9ei^E%Sg{h)+HY`Cn)O ziL3;o;C$)gG;=5!ZUr4zPUQf^$h{nU;K9dXnW!PtiIvb}!6P?1+S`%Wr{3v@_9G~{ zcm+QE{!9dnT=fJeEMfcobfo>~7SlFU^DDXAZC?j0cCMT^E=QAg~ zJQVk|_Ly4j&JnIYTQLX}yL}md8HJe^a^qlfG71gZ9@p^4f>Xw!^8tD?nL%9C!`EKG zdeje7^!S7D`QDCQxCD9MR+QW-CqZM>ptj_knUv{YRi`kcJ1KR`j625^n=tIG#cB=e-3;#%Z87r4H&N?m#E@+YWBtC`l*t z{BD7FUyqDKybIZz$aO(&@j6&`?wii|NJfY47kY_$vkbJK^@1~N9JDknJH9}xCL3ie zueSzbgoTyK!M5zCEeW$4Dm)rhAvGv(vpfd!5Hx6F2z;6H?!*KL(;8+Q1FZ7~d-s89 zhpTLDBGaynBz@8DOYRTBzKh1@mvKE?)e;r2P(jyD-t|dg;}_$2jlz}_$u-&tMa|CM z&Cg{vU-G9l%C_g8xqhW@8kv00vD`!tx{VD(5|Y0t>&Pi2YX0@<0&E{?AfXj3ZGmij zLZIk}`RXNWC(BPi(pm#tBt}#e*0dPfX`%@dUIT25?B6M`C2X%Il&qDCKtN`$b4j~e zGyGYGKjVgWEN~5-<9+t(2?LnK`UtTvQS{@PKDB-7+!8348Q*@Gc;3A=eRZqk@HGK& zGT9(+99iP_>@uL7ml4L!-xt0zX|$IqC}lk%OV2JBgY^x;TMA#QwuW5ck|&DZwWZ?9 zxLu)ig)}de-CeLQxO5x}SN-yYzRuzS_Zhn!0X(>-u7Rh{kviyf`90`+q@~3erpc#@ z0v$)<%-+R^s!P)#j#LJpH(bKpSTb6*0tL-Vw9SUg=l2EpWLg!-TrvXr^?wsVjPmp! zzA*_|_uJ&t&?@|g+3MA6ZnM%4_tIk#MkrtG0Svb)mUit8Zv6vTmrm-ZRL!HE9K?M_ z@^taWv3kHzp53K2Nz+cK?4DmC{19y1du(PHmT9){2jgD%Cb{KQW_@Gf+?xpL+&8Iu zj04}savQk4LZRF!EU0F)ONGrsikep^xG3m^w$NtrmShhKRftf{wphDdHRzHOE~FHk z@qjO=^3>0#=LtUB$dtjKUVHzF$>I1*lg7IR4_kj7j-9-*j(z^!s`s4c0l+tPA-d{N_Rvh7>0Wk)~L*dobiqtbJnid%3&`)wqZi4>Amb zw3|7B2N2MinhQ0|A}KalZt2HD`HZg+S3b?J0gHI`l1s|v7g*#qm=||CI9P6a=hL1S z73p-D=2WnA7$N<2etjKGg~qw&{5!uSY%QdZ!;YjDe{u^HHuCz^$P@QCU!fm{T@u~F5?ai+)pZ0uasDv?9Hs&6p(ytR=W9? z-e~cda`RDUabbPF&*^kZ+%E%vb6cuErV|4&(P0gup-+nxv#yNR{dUdWCl6l^KVXVr z!f|)yaJ}79E!=QQwaOa8^-bSgO!D8HG%G1R_c`&0;QqTx1!C35r%MOkcL@AkZS<(nmI>is5{7c_ z_+5nY7UNlyjE`Gix2byb1Kl_gq%L_3r+W#eU~H zfpJ*gUKP0;$7(2bx$M78A@YWWaBhXKbWn(~9lr7+&bX4pQQe2d*lo%_IU_JIkdUDh z7?BG*k03HhN<{@0eV}`htn3KZw^{*Pd?7s0jx7_09Pa0TXk93v*k+RV;%+{q7yp*+ zr1eL8v?eL#(rK-d#TnT3R2UkQ3E4@1E^vnH9B#!!h1D=E!uNH;5R5OaSpMv=%#`Fn zzUsdODpm&a;}iu+DYeLWvdmONDm3rD+Xpn1k+)gF<;#bzdnmMY=rg1$Nu9}j4}x(Bf9+&2Q@P7>MSx;w0iIFkLA=UPE24nEI=E2vbaV@lF_q;+%X+pChi5wMNc zg(%Ayd4GMgF%kHaS1G+Ca3G5A`N&A~Z|fHT_m}67XCD&Dt|c4NE8m%)@!u}fUC(AO zB4~d|KOz{<-5+zRle%e(ta}a9G4EygV};xa0P0)$_UcPik-9LQ~sT zSoB!XQn|`t$vnf;;+5hhmQ#C|HA4LS^V>5^2X{TUt_!lwpd*;aYZ>VL?m>G?uK%W8 z{2p?c^{*H)JG~e)iM{qJ=b6F{hcUc{joeQIN%4ntjod~rRZV_9G*_Dai0ZqUXI&N4 z`FzL3NlTlWsWizJBc0=71ygx-BcG;#|1@KGLotWcQ;)yPYI^r(yfX8ycJ{y>^TQKF z>r9`KH&(Wz_Ep~W4dwlkIkO+4cIi3v2mKTvHC+zjjFZ+bTbmiEJM8$E*D;_Lsm2bh zX3w7>;F*Z$wwAuV-t_swlULfS?y~X{JBf#OXt=7#fiI{q9Cvc705{_kOMfyYVGBx> z$*o!{9AZX_EMH12dNk`*0u3}83KLN=zj}mOMe7cel*%I;x8-BmL0a#aKWXn)dDleu zun62R6oYQ3j`HgoQ!pke=VX9~r-RmcLeYTIn-gt-19o;x4#?Zj1vb zT}Snw-H;U2!gpxK4hsd_J+}zd6z0p_TB%WJ?8wtEAmL=#cAxqlB%1wB!f+h%;ui~` z4j9(falhT-!G5vEytX1~9%d%|)ZPan$3%FVP6uM6mjd-FDuds=tX5kUrRVygkexr& zT%vbUd2|JWBJ@jP##CVc(qRYXMeW#4p$Y}3yBlfy?3n14IM?#G|!7lgG2{Sr$^f|m0<7x&)y}7Ln`u9;bEHckf{Vt&2tUD8-4+DdVnheJY z*UMU7GVxm-_DuBbaky&l4~e_JWdOZA_9>|y>c|9AW+tdeY7B${ch%6JWuH^;qF4DO z!@R)17hR5u&V_5p<4FOte;cx>Jvn%+b;up{C?Het{Npfnxy5$mgif_e@GYw04AyHx zelG|zhaABXM35meflbQ!R!%`6V|or~CKCN-%Xxt7>d9g-uZq8rcIXk0Upo@w@fO_u zqV&fl&o{(MV?O_0jMfxkl9qB&lf&2jm04uM-Aj0!+3*2*gYjm)gEc; zo4DyxseYSl4U2B*!ftZkDYb3@3yPgrOy4F>df`pjljjp}BVX92)6rmW0a}g!6Z91Y z-?c*j_Qzd}$Yym8)yk{x_9De$F884IfB@DVpnnM0hmp-Ek)CPcCW0S(qd%Nc38RQn4z1Hu- zj^}b+H^-Sz!4dWg4TN7zM^T@IW93Ox{$Q2WC1QGfv>y25Db(aS{=Z*=6@Ga6c!)Aa z-y;ksyNy^e`6Wcz2u^vz>eALHr%Ap$@+7i`71;A%QqKd0RD5m#ez$X8w`ofoR_y|^ z+D>6AM`xll>bk$qTern!c*M=UVg9+{LU?U#_UfVumSAm%W z?H$I0LgNuU9}m@#{~oS=Sf1?b?^KQ)gUCr52OipS@ar`$tB7fO#vl*;II40GVdp|< zL(&-{#g0D}TQ_C@&~)8u_uq$`Q7T-mfQ@(32H4s05dRGehtnU>_5~0!9+gK(_;p2l z(~UDq*}w_&=qptfxh-#^&Z9Wj)~n-CXf+lO`f|GexVgIJoZjK+Hy?9cwu-H`Np3XO zWzIV=aXj98`g^!Bs-YdkHUN)BcQd36pC?tA%i_KavIqjma)mG&6|WWY`E|f^J=bqB zbNn%@>9=)0M~}~c@D6nbt*gtK zvVx~yJZBW5tZ^s3s35O!E4%5YKA24sAE_5gT5C2VndtAXXFy60u>Tz+v4UG18}jUfXO!)5MHKLLWNuVGJ?=*(|XyULDD`H*{K z-u>&QTjj@pwV~1iag#&cul9ZQ_FQODaha__Ze$-B%7oGeN2OZIe!jo&XI$dr=X$te z!o_^$q$#gb)HjA&{5|^cT_L3|Ikku_Ux3Pcv<7ty4gDTPdp`c|0{EZ*(%0FX_Nc65 z)`5np?NBg{I}SAy?Fr#}q~e*VIOh8}gGW~nW0hB!lk}fXWR)*bGM9VwKd&) z6&4ssqQmF|`>c~X=lv%TV)4tmo#2&}mJbVzbGKZ12b2(btGt#kGZlK2#QdF7y!cw1 zsxRS=aoP4_iDw@3N6x$5p8ZwBD%MByDI_{yddgIpl;TAwdT@JUooHKI#<9ev%jMrp z5il}QX5zRiJR|ivLo&v6w?a!R>oQn#x1^pvmC{xfDAcKVfrvFXT8Y0|3*CY1MzRmF(twP>9GJd~&!@-$j=iZo~Bnc}`tZfD%@y zCn}Er^%m6F1ZdZCDl*X1I;pqp{zyk_RcE^pRJ&@Q(e zq$K7)Y%IPs*O^V_fj+O}#xMVoe>U9|N)FK|K$fB3m6A7B6sY$p>M@z6g;>~OXg9o61sk-W3Dn&Acx?|lpVcMM zTdsS{kP@P0cn|||N+tMOh}_b32I#F2aEf#5xZ10${1~TY%c`q!Tg!YIpv}nrTTaiq zG+T_04c`^ko&Y67weDR0HN4Piv@4A!wVw<){(970nV@5^!C{pgwBy&X$cz||Qqqbq z*AC5s$tr_^fmT!DO1_=xbZ($$mit^Tjp8Z?6g4a|{1})c?&4-Dj5>~B6h5GZL7&rs zGYNOlEJQH#&s|3c?L`J_)$x1 z{t8wp7*v+f_iWTL5f0_sOHe5^JSbfW<)kyu9CBW`=`)k(7h#JX-NhAoC_iyvCd!Me zJhDaQSm@|r9dp}ar?E>zPaWmDH)8T#ug)J-C3+mFbQzre;UM_*<5^2#<-=DFuH~>} zt75YxwM|_(RE0Ih6CW~Q!BTD)fB*Q+hS;Zv_)LW!#Qhn@`K8k0x5q(Yp{D#m@jSYy z^{&>dqq=6-!R%~I8%t2``2?yh?Yp4wYlaX~{v}Kb?B*ai=p(Os<_SNyhSv3XD`|U5A zo*0WPmxFFx@)-oG_}c6TZpzo)L4_Tui#_A($5TO985qwFt zpK^VYt<8j1!BUGnwDG`y|28q@9L81|tTajvKKHRzhQB8|Wy}7OTlhBP4vGlslSB1P z0)tb^3vn#1CBkM4-gPewnY9_e)NuJv-Dwu^-B|S~+c0qqfkGlB8v!xEG;XVNuu-J~ z>?7p*4D-|IIz;At27=pZuo`@@0qGOAaZ&IU;X{Z62idp2 zvI{EPcpY6`a+hlIgK+R~f&SQD<}nkvmGf2l)XP9wb5P1wryfxoOeq{#@?tH2ZYty~ zaU|y0fEePbg~EjbTz(sBFVwk8^S&KD>E{r_AtSy|yE%GB6~MZnG;v6ibS^L9@Ttq9 zr5#EaiFqqE?nohFcl|h%xA$;5lHtMc5NXrV&kL+_PeM!_#PXq2;N*~+n57z4nq<2w42S&(re6CJN1L}ag zUeH$53QaTO=|bp{n_xHYI!^DC4ZBFB^Ilt?F`G@&Q5o;;3tL7Y&v`K*>V~`;0jxcti>A5Y5c4i`d9Hgn>?g{qwVnX1Hj=+`0umh@Ba0Eh&_BsoWO0ubcX3Qfyx zws56-p{9L|m);rX&HJ<#6lC)p{E_u^gd<~@bZIwKm>(zLTiX? zyOv6!RVNx{0YhbTtpMS4B!3bauErlRsefC>LnI(W%f!S46269Rj-vNA-%QeZdY+Gz zj2hfW_Y*V148ao6252L8UmQ|A6$1irH^Dd1mWF~^QCNhQd=h_SiBaqz;gSd3LCv#m znnnRLHUe@KVnFgA;|?pL>^Kf+@+weBJ`{&Cs&5(hQ$L?X~B zWk3^Ad#?vHh0)qdFYMz8^Mlg{JQi|jqw|c^CeDLFN8$x2-40VUD#0P~%S9qkX(v&8 zB4rtkKlbAd4n(C}DOUY4pd}$;JsRwWb02Bt|JYkiTd3gU1;PTmk>8GXyKr$4PZ&5T z@h0e&n|BrPhm``bm+?azHfG^Z7g257iFP6~$I;@wm>d1Qv|Ky@hfWDVO@(dHVi%9> zJ}d^eUbR>HZx?($qDmu!6_754;b6hisz9_%A%zLypq;xF_0u6)vjCPSdN8!p6S6DT zCdT0bWcfBib^0SB5`8>zpY`H3BEnVU?ENd3<>&h#!$bhG7iuVKKoax639K~e4USIx6HY%f;X1reN1>g>x zd#lJMVtFmI=mizJUgUWv(aK3=w{tsFh-{^({ar2Ud{P&60DuAn=H$~wTE+>zNJI*7 z$zw;fT_Kp2(*1Q4vbR&;^vYn!%r`gM5@c$sknmaMCUd4dD@5SwvA zq(hwpE#Pi~Bjz#MF=#fK8Pto%N6d%-n?`fb^?!LPVlEO(xt|`PIS$Tu?)_)YsG#0x za3K6&AFlx)`ae3F1GVWvnvleUQey*5I-Ik?*9+RhBBxL|78Sti$moeOIx>`@^D-zl zlY3zFMD|Cxe-k{2Kxg;e01&B;$Y^wyMH}o4Z$^NZM3q-MQY(M|qpJIrYwzg-?RK6Z ztaaKAYU6Z-UZ`)sFsxRXZLf9OAd?xhE|Ql%WzxRLNCzus1$#GIG$prl?SKFLWCPDj z4cX+t$mj{I&8n)AN$>5zJ~X_;2D?ARLN9+9IzHzr_@&ZJM`z7d%J z8;N*o^5AFtR|nnZMTXhO)c@I(I{_v-EVye7%YTi46~&$nv|K~`cU7&gR5;(LD{L;% zM1q$SsiEq$5(9a2(sO7lw}_abIRTz1btEfOsm|TKNTkexG~wFgR6{_Z1Vt}2^$FwO z|9XNndj~fIwm@BCq+^Mw6I`bR5z(dLgCiNs6uDobZ=Q* zIeOt9XKvkT>BCAd{uEBmk3{KDQNyPHKyJmFE#kNh0s6Ee#}aA@bz6E3uVcmz-L2NV$}fr<3QWPjt6u8(!B^dsxtauUTJH9ETAXRyT5WgTck+6^=uyIO<2v- zLhza9P+hms{*`PK|46S$bZP~7Jp)={!+XW)J@pO}oD9LV+=~E}RC#_R&1J>zO2on` zI({-s5a;0EQ`LT}03$NjI zzuy6)Z3}P2h>kN8(1jH4wM<%@DlL`P)lc{7&6FmXI-x)6cJ_|scP|RQQ_F42Rj3py z0_QZ}N-r9)_n9W?!0KewANjgh#6)KYkB$FkkB^(Qdv=ZQGtoIpchmFw;`S%!furm&@d7GAx78j^#&!n6F zdA*n~mx!0|=7mAzBH{Xu$-ni_Eb4YCuWHR$9la`Ihb5+^Ep)k!=T92Y3%R*JKrY_I%~Gbyh67i=SwmzsEE?L(#4jEAXIr zn{i-5cT`N@P2ZzG`$t;K%j`GeUDXdR;q&0Tm5743<4y;REYo5e$JPi@MH`H^NSsV8BaSvJ$O>s{B*_m_)_Okc@+of~%F&9^l3cj*qB z$z}Z^#yqt6@~7awFfoE?c|I#HDcT`4oBe~XUyOaIK%Pr8kC9&!<<<^N;w0`Y`SDlA zciKfnp~LUWq(6Wb-OR#_2ho6cvn#ikC7BU4{t*NqI7Di z+Zx6zWq>eZ-cE5TCp;k#Mqcd&R@)5WqJxM7_i>1svzg6~B+YVJ##S$W;JV*1iX z3%>WEaemruv%GVav*7iOo~gXmBv$Hnp4L#x7a`u2(~q8_AwJK=UA*gkvm50W=+31Z zzx?6&rr{>h&(&ehd&m(fDz4pn@`wUbWF@E-*})fq=n^y4)56?+OZDt<1Wm^8F!Q=T z5llmEu11tw{3&WhYS{(M5Z~K!>FQz*SkDffAS1QQs?Y&NLR#9M-O{kv-#o z9j6`4xZ5=U@I7^Kwvx$-NBWaatwn!9svL#mU>JkY* zNbEczsLO~APMZT*RlA%GT+}$w$5<0#&*yij$g_`n0IY=eC7P5@_&-cK**_d#XJsbk z!xEe@6XvgAvRb(>v<%LLc^b|A62Yo`T{F2H93Mk9h%|;X6@V4o#u;Th`ocRI7wkG1RQt1VkNXAv1YFSM(Kh7 z^o?8I&4ml^m&&LA!me|B#sZmAe1+CClpfu)%YQI4Y~nNONK}^^4)Z}povX>F*H1?u zI6x2nJE~6j-yAo|{PTY_K)_^Ri+h|^%WDRAKLrn^GmZZNw=z0A@Rcd_jIu0y1E@YV$GdLHr;xmLj|6IB)`)#SN%Ah}Qdp9M{kwBg+AhipJk8 zAWl8eZt`jW0u#@*EBzZI67vR&VBmNSj7%legj{0lr5uYfTfi`0L&qg@CRWt{U6+c^ zoz&f*q_ZPUJuVtfTPi%xEjIGMt)EAQZfI{U`)^BdfHBVV@9ln2`aW#mZG`3y+hQqb zrEH}Z_s2VcevW*r1ZWrHrGA)iEDULi7UTE#OxH+=M+aL zzb;vF2l5a#-4fu4o%E#&IA<^do}zv!NcS;4O+YbfqsBU0N4SzqQRks=t-#+Kl!ZVy zKp47S3VsVrb|am@JJ!roQCAXTuUg@FO1olkRj6V?DB}YUdG@Y;L>n*E_b&*QFW~(8 zz*($Y)&SaqEwtp*;WdSX2yN` z;sDuuf|r2>l30tqav=d8s#g;+C#SKvuIX6~Fb!IcF;J$QM8@jE?yrle)rbY1gN5gA zh=V2@^*adRNv*4Kb++UcgVaZMVCqKtYAvbSwcT;;N7}S}ZTEj`?cAfG+}Aih+1-|% zU8<2&(%#yoT$5tEw<`%7n?~hcBpe~Rg`wL{xkS5&ToM|WVNABkxGNPUQRAA4slk-X z5W_fQit{|P&ROgHan?Hjod2yc^S;0L`8~hq`}uy~Jt?~Dt#)+1A^z}V^KHCxw*EW8W~BPAPxmgCeB-NI(1~7qo!Xf zXDyUT!^S01YpA#3Xr$z(n|Xf=eyk)d6rR_;;>^lKod&oCIyF`v;=&pY`1AYU8b$`I zC(K{&&-^I>#{E_c!ihr8jFsOyuO$iE%R+T>NXky&b`qox;Vhy~v*mLx9nBE|GkUg- zOkTQgcceAk<9e59Yr_FpNfB(oepE%le-8U`=OMRx9hN4&)cr=6Kf`L@qIU0@lD}WTYdmyy21(-kNMY z(85hlz*(as==g#S^Zz--xGgpW_ltz9UO}OOKMAq^_JX3X-OPG>gX1{Cdc_8SGIbh; zNw3^$Veq6GP!4&m!0frkw|!H0p@Uw@jq?F~+Z@9G zF5vh|KoFn<5o8(Age7+syz4tq%pE}y79YSMc_D_%Vzye5Qm}AjG2$}f_}LX@A3d|9 zghfVIhrnY_f`xN++Gi`oItf^+^jf=sEjWba3q7Gmw_9RRBx*jCkZy+p2}U3J6((mp zqvmQj>geC2!0If((_0E!;o;)LESv&LPsN@Sk1w*20h%9}t3L*sQ>7M%HRrUi&PMNF%40kybv^b2REYyqt%UMrA9sO$NB#(wI8zJYw6 zC+4o|^BEm1SP)~l*7xb|2G;-sY$^bQN9;W2JiGq1MaUAY9UA>?P?ZfLF#}@X3i05U z#WeI|C=w4Z`(K3{KKQ@RHTP{mryfoVti$;jl_ zD36^3F$Unx1M&!`;R5bseV_t#z=1yvpnldwlnG45^^)(x_ZUOYl>9!9CPX=r)f~rgyoT|vjz9=?Ko!l1k=b+yF)4{d3TtafMFWJm))@=#N*^z3ai+k;3Xv$BdONzuZqpxsimu`g%#1y7AJsQp7NWh1;8yB{=Wzxg zI7WE3tcLo-$5Nsw=Ff?5(cte2lo|uZgF_()56^<4kPq9D5k26xmCj3cTc)12o6;|; ztVDx}G-J`w?O^mUlyYxbYMA5XU||99z=!3j-x0{AVWQR0?*2qgggQs-V}r^|t_H_c z2TX8NF*P?Il>`K=h=E`7=KntP`7M%ghoQdF=6Yd&;?0jqP<7y~Bj@=67cx+#h)BXr z1RoHNA2B1L-f5b~d7MQHB%q0m=Y9pSC#u$|Jkh8bza=r!jz$6VJ~2K_AY^yI2x2`B z`Yn~Sg6$$8nVtg;7WsHiz`(Xxv7o9WeqCVRSThJ`Bw$ zQh5`I^} z?BRl5kiS{L@;x=oE;QU@&^NyT#@A034J#igy{Q7nxgdn3X?nN}FuMYDD~!OUuz_3Q z>VM;V98T3I5>%va7BWgL_M8VGPPiZ%7*RnU#L|*t5HEk+hTA2ue`E*F(++Ti4p-4xi8oJ zW1?m2YkeRXS?Eia82J3mS%t?9MX z77GcOP1iRFI#$$9x_UQ}82k|i;^vSyEUH#Z^kZoIV@L=m6_$t*niWP$%G+AzOov^@ zbx)t|B0jOVoLo)Vaa5Xfom8J&L;t?xFhRHpEQhoF zDBu9C>jOZYDEH&^8dm_V%CfUm@8YK8mQoA(ed0TqK*_?bAOffk3lKS}Oqcf?*x!KG zqJ=Hu_hElir7`S$V0rpaJ$mH}hR$JuF(wXU3C`$28{_K={?3BTTTI^;XdTm&CPC+P zNY@KGT|bFd8AvD8r#F-$**iG~HPfl^(gh$@D%Xn3Tw26BxadHom>&bKiZo$`xx zCxK^(6D@I|5s%S)%D%Uy;O02|E8o^ujuto^ViwXVq4N9RPRKhthB0iLj5F2}1BQE~ zu}}#VNpbb6@ED^p+q~|?iw?=&I{3=1wLY%mujz*ZFh}p5RPE!sFNSDN-Q%6w5%Gr$ z@ZF*J{v@WNtcg~;s=d4R|J8l{jWX{@KjczW^_Qx3Z>HUp>8Zu|>1L<$37++P=Y^6M zZspbE7hJT;Re3QfTUN_17y-8{YK@jPHeJI+{~2^aw2G^mmm7Oa{cBE?7{!d3)p+WW z&iMEH`NS?I@H9Y;zi2HRl%docdx`DI`A3uPIa525G)l--qdQK^py)5E-X{C(89AqL zsXn;-1#2c(?nB=IugaYE&g`9`p!N25H!GjLr>4aRL+ee6624QORF*1A>*-9JCKu}w z%QKX`W2prz1G%%PQ=QIUcc4B`UuF4=W~~y{?#)*o5BBcao_H)s=>yf^MO}`bUOX4l z0MgJxTb!%(hsrgZz|Bm2IIsoi`JTenJ`W+8LD%K8t(@K8e1oSXtF(%j9wFAG*BD+| zMfgmH^Z)%La3*UgqWz|FZMoJd!^Uj+WEW<2K~6r^1yUjzPRR{!^8!3w6DlGhY zrAAny+E|b1EN!6PaE(z+hFRfJIrS(l`TB_yLg?_6S6rV`1(R2M8zHFu6)P44R-%M;YF8D%X^U9S+K{pK@1) z%9#4PUYDz>-pDp1d6>@r=9_#aDJGXi_21-33VsbIuD7ApceTB`osN|}`lz3=_L8lK zc2e$ZKD2S^G?~)Um96eBwt>Nr8@#95%5VX`x$ZSX8B?~iC?VX+0jgZkd3iyV zo{F5_Zj>KeK~T8{QDG-a*5~r;As8o5@}U_qDp$9cib+eXCKB2FUN*kylr~) zLMi@%$+r=kszyqV{0>FyUq1f905F#Vr^X?RyCBa~E6(wt?`aieDP4@!p`S}R5(JF) zHHGBof~|zuo7+`#bEQ9f466TWU@N4}#boG{;q zZb&gGyEA=aDu!E`iJUpYQi@*``SG#@%s3uOI{m;kK3B)ag1enb(DZ>rV%Je{%lklU)7lQ_Nb#88rslkf z#pL*J-9`f;njuO3U_=vWIY65xdGCXyF*eGCY+MRhmQoz2yXeu6FhEOp-oXTJ;tk_Z zu<@zT9yUtjQcA`{Jqym{&gks*Vov}n(<(+bVXS`rPlz{0Rw7Csr66wJ)>h!se)cANY#_^>mk)23BT+8OD=DFC!vu3jc5KJ dlAI2kicPY}Z6$g_Z#?-D%uTHimhL}s`Ja8BL}ma0 diff --git a/report/query_ore_range_lt_100_chart.png b/report/query_ore_range_lt_100_chart.png index 76f36b4249a5bd01c45bba6436097b949b36ae14..be97b6a7e5ca07c9923e6ca7dabd590b56a59c36 100644 GIT binary patch literal 31072 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 literal 27683 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 diff --git a/report/query_ore_range_lt_10_chart.png b/report/query_ore_range_lt_10_chart.png index a5e5de70096cd67d60bb6fe8be3e130387e6eb9a..a89c4ec481900f5be015ff4555076b2901f604ac 100644 GIT binary patch literal 30835 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
naD4VgFf2!u~&=_d8(SoE8Ley%3Bana6^!) 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 literal 0 HcmV?d00001 diff --git a/report_benchmarks.py b/report_benchmarks.py index 4dbca99..44cf474 100755 --- a/report_benchmarks.py +++ b/report_benchmarks.py @@ -220,10 +220,15 @@ def get_query_sql_and_param(self, query_type: str, query_name: str) -> Tuple[str ) }, "GROUP_BY": { - "count_groups": ( + "count_groups_encrypted": ( "SELECT count(*) FROM " "(SELECT 1 FROM {TABLE} GROUP BY eql_v2.hmac_256(value)) g", "" + ), + "count_groups_plaintext": ( + "SELECT count(*) FROM " + "(SELECT 1 FROM {TABLE} GROUP BY value) g", + "" ) }, "JSON": { @@ -323,7 +328,7 @@ def get_query_description(self, query_type: str, query_name: str) -> Tuple[str, ) }, "GROUP_BY": { - "count_groups": ( + "count_groups_encrypted": ( "GROUP BY in extractor form on `eql_v2.hmac_256(value)`, " "wrapped in `count(*)` to isolate aggregation cost from emit cost", "Table: `string_encrypted_{rows}` with encrypted string values " @@ -339,11 +344,24 @@ def get_query_description(self, query_type: str, query_name: str) -> Tuple[str, "deserialisation, bench iter-and-sum), not by the aggregation work the " "recipe is actually about. Wrapping the GROUP BY in `count(*)` keeps the " "inner HashAggregate identical but emits a single row, so the bench " - "measures aggregation cost. Natural-form `GROUP BY value` against an " - "encrypted column was removed from this bench in an earlier pass " - "because the planner picks `GroupAggregate` + sort against the full " - "~1-2 KB ciphertext payload at scale — see §5 of the EQL " - "query-performance guide." + "measures aggregation cost. The companion `count_groups_plaintext` " + "scenario runs the same query shape against an unencrypted column for " + "comparison. Natural-form `GROUP BY value` against an encrypted column " + "was removed from this bench in an earlier pass because the planner picks " + "`GroupAggregate` + sort against the full ~1-2 KB ciphertext payload at " + "scale — see §5 of the EQL query-performance guide." + ), + "count_groups_plaintext": ( + "Plaintext baseline: GROUP BY on a plain TEXT column, same query shape " + "as the encrypted scenario", + "Table: `string_plaintext_{rows}` with unencrypted high-cardinality " + "random strings (`md5(random()::text || ordinal)`). Populated via SQL " + "by `mise run prepare:string_plaintext` — no encryption-client " + "dependency. Index: none. Same `SELECT count(*) FROM (SELECT 1 ... " + "GROUP BY value) g` shape as the encrypted scenario, so the wall-clock " + "delta between this and `count_groups_encrypted` is the EQL recipe's " + "overhead relative to a bare-PG aggregate on a TEXT column at the same " + "row count and cardinality." ) }, "JSON": { @@ -689,9 +707,14 @@ def _write_query_subsection(self, f, query_type: str, query_name: str): # Add index information for one of the row counts (they all use same indexes) if results: - # Determine table name based on query type + # Determine table name based on query type / scenario. sample_row_count = results[0].row_count - if query_type in ["EXACT", "MATCH", "GROUP_BY"]: + if query_type == "GROUP_BY" and query_name == "count_groups_plaintext": + # Plaintext baseline runs against a plain TEXT column — no + # functional EQL indexes; lookup will return None and the + # Indexes block will be skipped. + table_name = f"string_plaintext_{sample_row_count}" + elif query_type in ["EXACT", "MATCH", "GROUP_BY"]: # String-encrypted scenarios all run against the same table family. table_name = f"string_encrypted_{sample_row_count}" elif query_type == "ORE": diff --git a/results/query/group_by_rows_10000.json b/results/query/group_by_rows_10000.json index 6bf775e..c0d1df5 100644 --- a/results/query/group_by_rows_10000.json +++ b/results/query/group_by_rows_10000.json @@ -1,2 +1,3 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_10000","iteration_count":[17,34,51,68,85,102,119,136,153,170],"measured_values":[92425208.0,194063708.0,250885417.0,340870875.0,445095209.0,519002667.0,651493083.0,776053541.0,861498709.0,947325250.0],"unit":"ns","throughput":[],"typical":{"estimate":5489962.599236058,"lower_bound":5283551.123289867,"upper_bound":5596929.341070163,"unit":"ns"},"mean":{"estimate":5378555.742439309,"lower_bound":5201599.384950981,"upper_bound":5544163.079192344,"unit":"ns"},"median":{"estimate":5455754.365546219,"lower_bound":5088261.44117647,"upper_bound":5639388.75367647,"unit":"ns"},"median_abs_dev":{"estimate":348308.5559676105,"lower_bound":58211.0871736547,"upper_bound":480048.9654768387,"unit":"ns"},"slope":{"estimate":5489962.599236058,"lower_bound":5283551.123289867,"upper_bound":5596929.341070163,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_10000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[93875958.0,168121125.0,270922959.0,375610416.0,436293708.0,529368292.0,595072958.0,679767417.0,779669084.0,962281084.0],"unit":"ns","throughput":[],"typical":{"estimate":4956203.416883117,"lower_bound":4773389.768142126,"upper_bound":5178214.761538462,"unit":"ns"},"mean":{"estimate":4947071.800473986,"lower_bound":4812555.0365917105,"upper_bound":5093349.788424604,"unit":"ns"},"median":{"estimate":4874633.062962962,"lower_bound":4722801.253968254,"upper_bound":5215331.0,"unit":"ns"},"median_abs_dev":{"estimate":226732.39012566686,"lower_bound":40744.95735371539,"upper_bound":380651.79130319017,"unit":"ns"},"slope":{"estimate":4956203.416883117,"lower_bound":4773389.768142126,"upper_bound":5178214.761538462,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_10000","iteration_count":[29,58,87,116,145,174,203,232,261,290],"measured_values":[95203334.0,198496375.0,292651791.0,365254583.0,438927917.0,532710125.0,661191791.0,774621041.0,800533500.0,910076625.0],"unit":"ns","throughput":[],"typical":{"estimate":3166408.3062248095,"lower_bound":3093311.3315106733,"upper_bound":3259357.7623192477,"unit":"ns"},"mean":{"estimate":3210778.6135098515,"lower_bound":3129698.1235919544,"upper_bound":3293725.269400657,"unit":"ns"},"median":{"estimate":3202924.4119458124,"lower_bound":3067178.16091954,"upper_bound":3338883.797413793,"unit":"ns"},"median_abs_dev":{"estimate":201415.38475735174,"lower_bound":33888.37808215365,"upper_bound":224066.25851685632,"unit":"ns"},"slope":{"estimate":3166408.3062248095,"lower_bound":3093311.3315106733,"upper_bound":3259357.7623192477,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/10000","GROUP_BY/group_by/count_groups_plaintext/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_100000.json b/results/query/group_by_rows_100000.json index 5c10574..cabb242 100644 --- a/results/query/group_by_rows_100000.json +++ b/results/query/group_by_rows_100000.json @@ -1,2 +1,3 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[122680917.0,263723708.0,379049292.0,498431000.0,628223750.0,742064125.0,863380542.0,1035620083.0,1161070250.0,1301144000.0],"unit":"ns","throughput":[],"typical":{"estimate":63849610.93116883,"lower_bound":62467171.48183358,"upper_bound":64626040.50879397,"unit":"ns"},"mean":{"estimate":63336859.12628968,"lower_bound":62421029.765178576,"upper_bound":64303184.73402778,"unit":"ns"},"median":{"estimate":62998628.5,"lower_bound":61838677.083333336,"upper_bound":64780551.38888889,"unit":"ns"},"median_abs_dev":{"estimate":2100743.392971013,"lower_bound":384364.04317617416,"upper_bound":2570606.223229279,"unit":"ns"},"slope":{"estimate":63849610.93116883,"lower_bound":62467171.48183358,"upper_bound":64626040.50879397,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[128469042.0,264770875.0,391580209.0,531056416.0,651978666.0,797658792.0,1012241417.0,1050300792.0,1187299000.0,1349874542.0],"unit":"ns","throughput":[],"typical":{"estimate":67110851.74025974,"lower_bound":65773267.27302722,"upper_bound":68930390.97605634,"unit":"ns"},"mean":{"estimate":66514363.30293651,"lower_bound":65472008.10333333,"upper_bound":67974507.12714286,"unit":"ns"},"median":{"estimate":66076887.152777776,"lower_bound":65263368.166666664,"upper_bound":66937889.55,"unit":"ns"},"median_abs_dev":{"estimate":924109.4850021098,"lower_bound":206709.46275517344,"upper_bound":2214296.357413374,"unit":"ns"},"slope":{"estimate":67110851.74025974,"lower_bound":65773267.27302722,"upper_bound":68930390.97605634,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[100951833.0,202872250.0,286856958.0,367536166.0,477165250.0,593415667.0,667878042.0,801233125.0,870467542.0,995142208.0],"unit":"ns","throughput":[],"typical":{"estimate":32601189.06926407,"lower_bound":31972674.162892133,"upper_bound":33042398.897330254,"unit":"ns"},"mean":{"estimate":32534159.090886243,"lower_bound":31917737.314986445,"upper_bound":33112239.30283069,"unit":"ns"},"median":{"estimate":32603537.824074075,"lower_bound":31811016.666666668,"upper_bound":33411008.96666667,"unit":"ns"},"median_abs_dev":{"estimate":1166581.4727265388,"lower_bound":56768.329392158324,"upper_bound":1811430.6766692896,"unit":"ns"},"slope":{"estimate":32601189.06926407,"lower_bound":31972674.162892133,"upper_bound":33042398.897330254,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/100000","GROUP_BY/group_by/count_groups_plaintext/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_1000000.json b/results/query/group_by_rows_1000000.json index 53bac11..669535c 100644 --- a/results/query/group_by_rows_1000000.json +++ b/results/query/group_by_rows_1000000.json @@ -1,2 +1,3 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[778493709.0,806914208.0,792225542.0,800485833.0,772279042.0,777750792.0,782215917.0,795327666.0,804902875.0,815161708.0],"unit":"ns","throughput":[],"typical":{"estimate":792575729.2,"lower_bound":784109391.5725,"upper_bound":801025299.9,"unit":"ns"},"mean":{"estimate":792575729.2,"lower_bound":784109391.5725,"upper_bound":801025299.9,"unit":"ns"},"median":{"estimate":793776604.0,"lower_bound":778493709.0,"upper_bound":804902875.0,"unit":"ns"},"median_abs_dev":{"estimate":18308842.793253064,"lower_bound":3309997.1037358046,"upper_bound":24237976.547589898,"unit":"ns"},"slope":null,"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[802166417.0,794960584.0,827152542.0,795630875.0,805123125.0,928408709.0,814386458.0,829157625.0,866151375.0,829016625.0],"unit":"ns","throughput":[],"typical":{"estimate":829215433.5,"lower_bound":808432531.705,"upper_bound":855526027.4525,"unit":"ns"},"mean":{"estimate":829215433.5,"lower_bound":808432531.705,"upper_bound":855526027.4525,"unit":"ns"},"median":{"estimate":820769500.0,"lower_bound":800377000.0,"upper_bound":847584000.0,"unit":"ns"},"median_abs_dev":{"estimate":25389122.764652967,"lower_bound":1486368.001511693,"upper_bound":50099122.07886279,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[476886291.0,1003313917.0,429250250.0,1041395833.0,432972791.0,1014093166.0,421124209.0,1017094792.0,420909333.0,1020605000.0],"unit":"ns","throughput":[],"typical":{"estimate":727764558.2,"lower_bound":549563733.1,"upper_bound":905022818.8174999,"unit":"ns"},"mean":{"estimate":727764558.2,"lower_bound":549563733.1,"upper_bound":905022818.8174999,"unit":"ns"},"median":{"estimate":740100104.0,"lower_bound":427048500.0,"upper_bound":1017349083.0,"unit":"ns"},"median_abs_dev":{"estimate":431288795.6555933,"lower_bound":5204234.288406372,"upper_bound":440679151.71098113,"unit":"ns"},"slope":null,"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/1000000","GROUP_BY/group_by/count_groups_plaintext/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_10000000.json b/results/query/group_by_rows_10000000.json deleted file mode 100644 index 3d5187b..0000000 --- a/results/query/group_by_rows_10000000.json +++ /dev/null @@ -1,2 +0,0 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[11410915250.0,11111635708.0,10972916042.0,10724915458.0,10976860250.0,11053467250.0,10954192583.0,11017035250.0,10620541459.0,11056557000.0],"unit":"ns","throughput":[],"typical":{"estimate":10989903625.0,"lower_bound":10863744679.3,"upper_bound":11116414249.725,"unit":"ns"},"mean":{"estimate":10989903625.0,"lower_bound":10863744679.3,"upper_bound":11116414249.725,"unit":"ns"},"median":{"estimate":10996947750.0,"lower_bound":10848915750.0,"upper_bound":11082551479.0,"unit":"ns"},"median_abs_dev":{"estimate":86086240.84666371,"lower_bound":16803541.24877751,"upper_bound":364048160.3205532,"unit":"ns"},"slope":null,"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/sql/schema.sql b/sql/schema.sql index 7af5d1a..c0ccc82 100644 --- a/sql/schema.sql +++ b/sql/schema.sql @@ -33,6 +33,29 @@ CREATE TABLE IF NOT EXISTS string_plaintext ( value TEXT NOT NULL ); +-- Sized plaintext variants for the GROUP BY plaintext-baseline bench. +-- Populated via SQL (`md5(random()::text)`) by `prepare:string_plaintext`; +-- no encryption-client dependency so they're cheap to populate. +CREATE TABLE IF NOT EXISTS string_plaintext_10000 ( + id SERIAL PRIMARY KEY, + value TEXT NOT NULL +); + +CREATE TABLE IF NOT EXISTS string_plaintext_100000 ( + id SERIAL PRIMARY KEY, + value TEXT NOT NULL +); + +CREATE TABLE IF NOT EXISTS string_plaintext_1000000 ( + id SERIAL PRIMARY KEY, + value TEXT NOT NULL +); + +CREATE TABLE IF NOT EXISTS string_plaintext_10000000 ( + id SERIAL PRIMARY KEY, + value TEXT NOT NULL +); + CREATE TABLE IF NOT EXISTS string_encrypted ( id SERIAL PRIMARY KEY, value eql_v2_encrypted NOT NULL From 68021f1b96467c45dfe9342fbe31badd12806150 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Fri, 15 May 2026 15:50:52 +1000 Subject: [PATCH 14/30] bench: capture per-scenario SQL + EXPLAIN + indexes-used sidecar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Each query bench now writes a second file alongside the criterion result, `results/query/_metadata_.json`, with one record per scenario containing: * `id` — same string as criterion's benchmark id, so the two files join by id. * `query` — exact SQL string the bench ran (template with $1 placeholders intact; sqlx fills them at execute). * `parameters` — bound values serialised as JSON. Encrypted scenarios record the EqlCiphertext payload (`hm` field + identifier metadata); raw-SQL scenarios are empty. * `explain` — `EXPLAIN (FORMAT JSON)` plan tree captured once at startup, before the criterion loop runs. * `indexes_used` — flat sorted list of every `Index Name` field found anywhere in the plan tree. Empty when the planner picked a Seq Scan / HashAggregate / Sort with no index involvement. Common path lives in `src/lib.rs`: * `ScenarioMetadata` struct + `Serialize`. * `EncryptedQuery::explain(&pool)` runs the EXPLAIN with the bound encrypted parameter and parses the JSON column. * `EncryptedQuery::parameter_json()` serialises the bound EqlCiphertext for the metadata record. * `extract_indexes_used(plan)` walks the JSON tree. * `write_metadata_file(prefix, target_rows, scenarios)` writes `results/query/_metadata_.json` with pretty-printed JSON. Wired into all five benches — exact / match / ore / group_by / json. The json bench is still parked on the cipherstash-client side; the metadata code runs after the existing data-shape probe, so it picks up automatically once the parked panic is unblocked. Initial finding from the 10k metadata: the ORE bench's non-ordered range scenarios (`range_gt_10/100`, `range_lt_10/100`) show `indexes_used: []` at that size — the planner is picking Seq Scan over a functional ORE index lookup because the table is small and the LIMIT exits early. The hybrid ordered scenario engages `integer_encrypted_10000_ore_index` as expected. Worth re-checking at 1M / 10M; the metadata makes that visible without re-running EXPLAIN manually. --- README.md | 10 +- benches/exact.rs | 34 ++- benches/group_by.rs | 56 ++++- benches/json.rs | 63 ++++++ benches/match.rs | 29 ++- benches/ore.rs | 29 ++- results/query/exact_metadata_10000.json | 99 ++++++++ results/query/exact_rows_10000.json | 8 +- results/query/group_by_metadata_10000.json | 111 +++++++++ results/query/group_by_rows_10000.json | 4 +- results/query/match_metadata_10000.json | 251 +++++++++++++++++++++ results/query/match_rows_10000.json | 12 +- results/query/ore_metadata_10000.json | 234 +++++++++++++++++++ results/query/ore_rows_10000.json | 20 +- src/lib.rs | 105 +++++++++ 15 files changed, 1033 insertions(+), 32 deletions(-) create mode 100644 results/query/exact_metadata_10000.json create mode 100644 results/query/group_by_metadata_10000.json create mode 100644 results/query/match_metadata_10000.json create mode 100644 results/query/ore_metadata_10000.json diff --git a/README.md b/README.md index 58dcba2..35f4daa 100644 --- a/README.md +++ b/README.md @@ -170,7 +170,15 @@ mise run bench:query:ore 1000000 mise run bench:query:all ``` -Results are saved to `results/query/*.json` +Each query bench writes two files to `results/query/` per row-count tier: + +- `_rows_.json` — criterion's NDJSON message stream (one + `benchmark-complete` event per scenario, with mean / median / etc.). +- `_metadata_.json` — JSON sidecar with one record per + scenario: the exact SQL the bench ran, the bound parameter (encrypted + payload as JSON, or empty for raw-SQL benches), the + `EXPLAIN (FORMAT JSON)` plan captured once at startup, and the list of + indexes the planner picked. Join the two files by the `id` field. #### 6. Generate Report diff --git a/benches/exact.rs b/benches/exact.rs index 4f7e36b..26c6673 100644 --- a/benches/exact.rs +++ b/benches/exact.rs @@ -5,7 +5,10 @@ use cipherstash_client::{ AutoStrategy, }; use criterion::{black_box, criterion_group, criterion_main, Criterion}; -use dbbenches::{init_scoped_cipher, EncryptedQuery, EncryptedQueryBuilder}; +use dbbenches::{ + extract_indexes_used, init_scoped_cipher, write_metadata_file, EncryptedQuery, + EncryptedQueryBuilder, ScenarioMetadata, +}; use sqlx::postgres::PgPoolOptions; use std::sync::Arc; use tokio::runtime::Runtime; @@ -75,12 +78,39 @@ fn criterion_benchmark(c: &mut Criterion) { queries }); + // Capture per-scenario metadata (exact SQL, bound parameter as JSON, + // EXPLAIN plan, indexes the planner used) once at startup, before the + // criterion loop runs. Writes `results/query/exact_metadata_.json`. + // We only emit metadata for the non-decrypt variant — the decrypt + // variant uses the same query plan, just with an extra client-side + // decrypt pass. + let metadata = rt.block_on(async { + let mut out = Vec::with_capacity(queries.len()); + for (i, query) in queries.iter().enumerate() { + let (_, _, scenario) = QUERY_TEMPLATES[i]; + let bench_id = format!("EXACT/exact/{}/{}", scenario, target_rows); + let explain = query.explain(&pool).await.expect("EXPLAIN failed"); + let indexes_used = extract_indexes_used(&explain); + let parameters = vec![query.parameter_json().expect("serialise parameter")]; + out.push(ScenarioMetadata { + id: bench_id, + query: query.statement.clone(), + parameters, + explain, + indexes_used, + }); + } + out + }); + write_metadata_file("exact", &target_rows, metadata) + .expect("failed to write bench metadata sidecar"); + let mut group = c.benchmark_group("EXACT"); group.sample_size(10); for (i, query) in queries.into_iter().enumerate() { let (_, _, scenario) = QUERY_TEMPLATES[i]; - + group.bench_function(format!("exact/{}/{}", scenario, target_rows), |b| { b.to_async(&rt).iter(|| async { let _: Vec<_> = query.execute(&pool).await.unwrap(); diff --git a/benches/group_by.rs b/benches/group_by.rs index 101ac37..53038c3 100644 --- a/benches/group_by.rs +++ b/benches/group_by.rs @@ -1,5 +1,7 @@ use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use dbbenches::{extract_indexes_used, write_metadata_file, ScenarioMetadata}; use sqlx::postgres::PgPoolOptions; +use sqlx::types::Json; use sqlx::Row; use tokio::runtime::Runtime; @@ -75,14 +77,58 @@ fn criterion_benchmark(c: &mut Criterion) { .expect("Failed to connect to database") }); + // Build per-scenario queries up front so we can also run EXPLAIN once + // each before the criterion loop opens. The EXPLAIN pass writes a + // `results/query/group_by_metadata_.json` sidecar capturing the + // exact SQL, the planner's chosen plan, and any indexes the planner + // picked. See lib.rs::write_metadata_file for the schema. + let scenarios: Vec<(String, String)> = QUERY_TEMPLATES + .iter() + .map(|(query_template, scenario, base_table)| { + let table_name = format!("{}{}", base_table, table_suffix); + let query_str = query_template.replace("{TABLE}", &table_name); + let bench_id = format!("GROUP_BY/group_by/{}/{}", scenario, target_rows); + (bench_id, query_str) + }) + .collect(); + + let metadata = rt.block_on(async { + let mut out = Vec::with_capacity(scenarios.len()); + for (bench_id, query_str) in &scenarios { + let explain_sql = format!("EXPLAIN (FORMAT JSON) {}", query_str); + let plan: (Json,) = sqlx::query_as(&explain_sql) + .fetch_one(&pool) + .await + .expect("EXPLAIN failed for bench scenario"); + let explain = plan.0 .0; + let indexes_used = extract_indexes_used(&explain); + out.push(ScenarioMetadata { + id: bench_id.clone(), + query: query_str.clone(), + parameters: Vec::new(), + explain, + indexes_used, + }); + } + out + }); + + write_metadata_file("group_by", &target_rows, metadata) + .expect("failed to write bench metadata sidecar"); + let mut group = c.benchmark_group("GROUP_BY"); group.sample_size(10); - for (query_template, scenario, base_table) in QUERY_TEMPLATES { - let table_name = format!("{}{}", base_table, table_suffix); - let query_str = query_template.replace("{TABLE}", &table_name); - - group.bench_function(format!("group_by/{}/{}", scenario, target_rows), |b| { + for (bench_id, query_str) in scenarios { + // bench_id is e.g. "GROUP_BY/group_by/count_groups_encrypted/100000". + // criterion's group.bench_function joins the group name ("GROUP_BY") + // with the function name we pass; strip the leading "GROUP_BY/" so + // it doesn't get doubled. + let function_name = bench_id + .strip_prefix("GROUP_BY/") + .expect("bench_id missing GROUP_BY/ prefix") + .to_string(); + group.bench_function(function_name, |b| { b.to_async(&rt).iter(|| async { let rows = sqlx::query(&query_str) .fetch_all(&pool) diff --git a/benches/json.rs b/benches/json.rs index 4f774fb..06f1d8f 100644 --- a/benches/json.rs +++ b/benches/json.rs @@ -1,5 +1,7 @@ use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use dbbenches::{extract_indexes_used, write_metadata_file, ScenarioMetadata}; use sqlx::postgres::PgPoolOptions; +use sqlx::types::Json; use sqlx::Row; use tokio::runtime::Runtime; @@ -133,6 +135,67 @@ fn criterion_benchmark(c: &mut Criterion) { selector.sel ); + // Capture per-scenario metadata before the criterion loop. Writes + // `results/query/json_metadata_.json`. + let metadata_scenarios = rt.block_on(async { + let mut out: Vec = Vec::with_capacity(3); + + async fn explain_one( + pool: &sqlx::PgPool, + query: &str, + bind: Option<&str>, + ) -> serde_json::Value { + let explain_sql = format!("EXPLAIN (FORMAT JSON) {}", query); + let row: (Json,) = if let Some(b) = bind { + sqlx::query_as(&explain_sql) + .bind(b) + .fetch_one(pool) + .await + .expect("EXPLAIN failed") + } else { + sqlx::query_as(&explain_sql) + .fetch_one(pool) + .await + .expect("EXPLAIN failed") + }; + row.0 .0 + } + + let explain = explain_one(&pool, &q_field_eq, Some(&needle)).await; + let indexes_used = extract_indexes_used(&explain); + out.push(ScenarioMetadata { + id: format!("JSON/json/field_eq/{}", target_rows), + query: q_field_eq.clone(), + parameters: vec![serde_json::Value::String(needle.clone())], + explain, + indexes_used, + }); + + let explain = explain_one(&pool, &q_field_extract, None).await; + let indexes_used = extract_indexes_used(&explain); + out.push(ScenarioMetadata { + id: format!("JSON/json/field_extract/{}", target_rows), + query: q_field_extract.clone(), + parameters: Vec::new(), + explain, + indexes_used, + }); + + let explain = explain_one(&pool, &q_field_group_by, None).await; + let indexes_used = extract_indexes_used(&explain); + out.push(ScenarioMetadata { + id: format!("JSON/json/field_group_by/{}", target_rows), + query: q_field_group_by.clone(), + parameters: Vec::new(), + explain, + indexes_used, + }); + + out + }); + write_metadata_file("json", &target_rows, metadata_scenarios) + .expect("failed to write bench metadata sidecar"); + let mut group = c.benchmark_group("JSON"); group.sample_size(10); diff --git a/benches/match.rs b/benches/match.rs index 1792aae..35a9114 100644 --- a/benches/match.rs +++ b/benches/match.rs @@ -5,7 +5,10 @@ use cipherstash_client::{ AutoStrategy, }; use criterion::{black_box, criterion_group, criterion_main, Criterion}; -use dbbenches::{init_scoped_cipher, EncryptedQuery, EncryptedQueryBuilder}; +use dbbenches::{ + extract_indexes_used, init_scoped_cipher, write_metadata_file, EncryptedQuery, + EncryptedQueryBuilder, ScenarioMetadata, +}; use sqlx::postgres::PgPoolOptions; use std::sync::Arc; use tokio::runtime::Runtime; @@ -76,6 +79,30 @@ fn criterion_benchmark(c: &mut Criterion) { queries }); + // Capture per-scenario metadata (exact SQL, bound parameter, EXPLAIN + // plan, indexes used) before the criterion loop. Writes + // `results/query/match_metadata_.json`. + let metadata = rt.block_on(async { + let mut out = Vec::with_capacity(queries.len()); + for (i, query) in queries.iter().enumerate() { + let (_, _, scenario) = QUERY_TEMPLATES[i]; + let bench_id = format!("MATCH/match/{}/{}", scenario, target_rows); + let explain = query.explain(&pool).await.expect("EXPLAIN failed"); + let indexes_used = extract_indexes_used(&explain); + let parameters = vec![query.parameter_json().expect("serialise parameter")]; + out.push(ScenarioMetadata { + id: bench_id, + query: query.statement.clone(), + parameters, + explain, + indexes_used, + }); + } + out + }); + write_metadata_file("match", &target_rows, metadata) + .expect("failed to write bench metadata sidecar"); + let mut group = c.benchmark_group("MATCH"); group.sample_size(10); diff --git a/benches/ore.rs b/benches/ore.rs index e519950..7b14c88 100644 --- a/benches/ore.rs +++ b/benches/ore.rs @@ -8,7 +8,10 @@ use cipherstash_client::{ AutoStrategy, }; use criterion::{black_box, criterion_group, criterion_main, Criterion}; -use dbbenches::{init_scoped_cipher, EncryptedQuery, EncryptedQueryBuilder}; +use dbbenches::{ + extract_indexes_used, init_scoped_cipher, write_metadata_file, EncryptedQuery, + EncryptedQueryBuilder, ScenarioMetadata, +}; use sqlx::postgres::PgPoolOptions; use std::sync::Arc; use tokio::runtime::Runtime; @@ -133,6 +136,30 @@ fn criterion_benchmark(c: &mut Criterion) { queries }); + // Capture per-scenario metadata (exact SQL, bound parameter, EXPLAIN + // plan, indexes used) before the criterion loop. Writes + // `results/query/ore_metadata_.json`. + let metadata = rt.block_on(async { + let mut out = Vec::with_capacity(queries.len()); + for (i, query) in queries.iter().enumerate() { + let (_, _, scenario) = QUERY_TEMPLATES[i]; + let bench_id = format!("ORE/ore/{}/{}", scenario, target_rows); + let explain = query.explain(&pool).await.expect("EXPLAIN failed"); + let indexes_used = extract_indexes_used(&explain); + let parameters = vec![query.parameter_json().expect("serialise parameter")]; + out.push(ScenarioMetadata { + id: bench_id, + query: query.statement.clone(), + parameters, + explain, + indexes_used, + }); + } + out + }); + write_metadata_file("ore", &target_rows, metadata) + .expect("failed to write bench metadata sidecar"); + let mut group = c.benchmark_group("ORE"); group.sample_size(10); // All remaining scenarios run sub-ms to single-digit-ms per iteration, so diff --git a/results/query/exact_metadata_10000.json b/results/query/exact_metadata_10000.json new file mode 100644 index 0000000..887d801 --- /dev/null +++ b/results/query/exact_metadata_10000.json @@ -0,0 +1,99 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1164, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_10000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 1164, + "Relation Name": "string_encrypted_10000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + ], + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + } + ], + "id": "EXACT/exact/eql_cast/10000", + "indexes_used": [ + "string_encrypted_10000_hash_index" + ], + "parameters": [ + { + "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "i": { + "c": "value", + "t": "string_encrypted_10000" + }, + "v": 2 + } + ], + "query": "SELECT value FROM string_encrypted_10000 WHERE value = $1 LIMIT 1" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1164, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_10000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 1164, + "Relation Name": "string_encrypted_10000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + ], + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + } + ], + "id": "EXACT/exact/eql_hash/10000", + "indexes_used": [ + "string_encrypted_10000_hash_index" + ], + "parameters": [ + { + "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "i": { + "c": "value", + "t": "string_encrypted_10000" + }, + "v": 2 + } + ], + "query": "SELECT value FROM string_encrypted_10000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1" + } + ], + "target_rows": "10000" +} \ No newline at end of file diff --git a/results/query/exact_rows_10000.json b/results/query/exact_rows_10000.json index 2b693d6..8ed510a 100644 --- a/results/query/exact_rows_10000.json +++ b/results/query/exact_rows_10000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[74991250.0,173599500.0,216787959.0,427694791.0,517642125.0,547974292.0,733010084.0,760262458.0,870843167.0,948152375.0],"unit":"ns","throughput":[],"typical":{"estimate":441103.8625748681,"lower_bound":426893.6484106108,"upper_bound":457722.3891483822,"unit":"ns"},"mean":{"estimate":423360.2499275206,"lower_bound":390081.1911212582,"upper_bound":453404.573008625,"unit":"ns"},"median":{"estimate":433443.02454337897,"lower_bound":379726.7092846271,"upper_bound":472732.5342465753,"unit":"ns"},"median_abs_dev":{"estimate":56625.418070040316,"lower_bound":7320.5375511228285,"upper_bound":95273.2914665518,"unit":"ns"},"slope":{"estimate":441103.8625748681,"lower_bound":426893.6484106108,"upper_bound":457722.3891483822,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[196,392,588,784,980,1176,1372,1568,1764,1960],"measured_values":[90264916.0,159893500.0,245573042.0,378181625.0,433173042.0,569048875.0,717647000.0,707154833.0,768480291.0,913609167.0],"unit":"ns","throughput":[],"typical":{"estimate":463461.9395043732,"lower_bound":444590.9391689512,"upper_bound":487262.37072264764,"unit":"ns"},"mean":{"estimate":457017.25015731284,"lower_bound":437727.18502667954,"upper_bound":477745.9001763392,"unit":"ns"},"median":{"estimate":455763.4441964286,"lower_bound":429827.26802721084,"upper_bound":482374.5216836735,"unit":"ns"},"median_abs_dev":{"estimate":34639.538591275275,"lower_bound":9439.543079557448,"upper_bound":59209.87874792167,"unit":"ns"},"slope":{"estimate":463461.9395043732,"lower_bound":444590.9391689512,"upper_bound":487262.37072264764,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[217,434,651,868,1085,1302,1519,1736,1953,2170],"measured_values":[91007500.0,172267500.0,250707584.0,361935208.0,388329000.0,433286542.0,564109083.0,799206750.0,820866167.0,958154750.0],"unit":"ns","throughput":[],"typical":{"estimate":412813.82392722485,"lower_bound":373116.48300301825,"upper_bound":436740.66501507227,"unit":"ns"},"mean":{"estimate":400269.6556817351,"lower_bound":376961.0252969333,"upper_bound":422818.06144562404,"unit":"ns"},"median":{"estimate":406952.8847926267,"lower_bound":371368.71823568136,"upper_bound":430467.6843317972,"unit":"ns"},"median_abs_dev":{"estimate":41834.87304115348,"lower_bound":3154.459565502484,"upper_bound":64339.658298065304,"unit":"ns"},"slope":{"estimate":412813.82392722485,"lower_bound":373116.48300301825,"upper_bound":436740.66501507227,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[216,432,648,864,1080,1296,1512,1728,1944,2160],"measured_values":[101341250.0,183687042.0,310530667.0,353972916.0,424303208.0,526833208.0,629080166.0,698574708.0,897699000.0,886788833.0],"unit":"ns","throughput":[],"typical":{"estimate":421333.001960077,"lower_bound":406472.9634491597,"upper_bound":442357.0208165187,"unit":"ns"},"mean":{"estimate":427531.5041093474,"lower_bound":410590.7641512345,"upper_bound":446518.1243518518,"unit":"ns"},"median":{"estimate":413304.3482473545,"lower_bound":406507.10493827163,"upper_bound":461779.3209876543,"unit":"ns"},"median_abs_dev":{"estimate":15518.162859914228,"lower_bound":3320.0366850391138,"upper_bound":47929.70747518869,"unit":"ns"},"slope":{"estimate":421333.001960077,"lower_bound":406472.9634491597,"upper_bound":442357.0208165187,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[199,398,597,796,995,1194,1393,1592,1791,1990],"measured_values":[84911958.0,167625292.0,263511833.0,320104458.0,450542166.0,497655167.0,594829209.0,671883375.0,744358292.0,879591500.0],"unit":"ns","throughput":[],"typical":{"estimate":427641.69935391244,"lower_bound":417920.90470154927,"upper_bound":437573.3251099691,"unit":"ns"},"mean":{"estimate":426766.6368088458,"lower_bound":418133.0344779453,"upper_bound":435766.49294249027,"unit":"ns"},"median":{"estimate":424365.2760678392,"lower_bound":416796.6222780569,"upper_bound":441393.3551088777,"unit":"ns"},"median_abs_dev":{"estimate":12100.605316599282,"lower_bound":1758.6388141715122,"upper_bound":27126.793157699634,"unit":"ns"},"slope":{"estimate":427641.69935391244,"lower_bound":417920.90470154927,"upper_bound":437573.3251099691,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[214,428,642,856,1070,1284,1498,1712,1926,2140],"measured_values":[87275375.0,172337666.0,341343000.0,367049458.0,472028375.0,560744083.0,668775750.0,705380541.0,813986875.0,911162167.0],"unit":"ns","throughput":[],"typical":{"estimate":429794.41722296394,"lower_bound":421656.12710887246,"upper_bound":443565.017280415,"unit":"ns"},"mean":{"estimate":435570.9149345424,"lower_bound":418232.655735425,"upper_bound":459997.2100474707,"unit":"ns"},"median":{"estimate":427286.4046728972,"lower_bound":412021.34404205607,"upper_bound":441581.1682799288,"unit":"ns"},"median_abs_dev":{"estimate":21591.6000703524,"lower_bound":4570.35131924943,"upper_bound":36736.43136854565,"unit":"ns"},"slope":{"estimate":429794.41722296394,"lower_bound":421656.12710887246,"upper_bound":443565.017280415,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[221,442,663,884,1105,1326,1547,1768,1989,2210],"measured_values":[94136083.0,193911292.0,270642209.0,339430792.0,459551791.0,531695417.0,560421792.0,737050334.0,832351667.0,896144916.0],"unit":"ns","throughput":[],"typical":{"estimate":404436.84900981374,"lower_bound":387589.97376916325,"upper_bound":415048.6628287802,"unit":"ns"},"mean":{"estimate":407682.94823780796,"lower_bound":394239.0358924082,"upper_bound":419684.9034158496,"unit":"ns"},"median":{"estimate":412046.216892911,"lower_bound":394733.4606334842,"upper_bound":421419.39988687786,"unit":"ns"},"median_abs_dev":{"estimate":13061.750827519321,"lower_bound":2362.9477495274796,"upper_bound":34058.92279397579,"unit":"ns"},"slope":{"estimate":404436.84900981374,"lower_bound":387589.97376916325,"upper_bound":415048.6628287802,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[218,436,654,872,1090,1308,1526,1744,1962,2180],"measured_values":[89855166.0,180286750.0,260995041.0,358812917.0,443732084.0,449782958.0,531816333.0,748331916.0,847915500.0,926995209.0],"unit":"ns","throughput":[],"typical":{"estimate":407441.7356606696,"lower_bound":374718.18888511346,"upper_bound":426329.1657072613,"unit":"ns"},"mean":{"estimate":402219.2504467016,"lower_bound":382333.15203964605,"upper_bound":418755.9963608563,"unit":"ns"},"median":{"estimate":411831.18176605506,"lower_bound":377798.5749017038,"upper_bound":425227.1600917431,"unit":"ns"},"median_abs_dev":{"estimate":19386.606133204245,"lower_bound":1960.08557712814,"upper_bound":44357.133955622645,"unit":"ns"},"slope":{"estimate":407441.7356606696,"lower_bound":374718.18888511346,"upper_bound":426329.1657072613,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000","EXACT/exact_decrypt/eql_cast/10000","EXACT/exact/eql_hash/10000","EXACT/exact_decrypt/eql_hash/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/group_by_metadata_10000.json b/results/query/group_by_metadata_10000.json new file mode 100644 index 0000000..ceaa815 --- /dev/null +++ b/results/query/group_by_metadata_10000.json @@ -0,0 +1,111 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((string_encrypted_10000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 9968, + "Plan Width": 36, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 10000, + "Plan Width": 32, + "Relation Name": "string_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 1678.0 + } + ], + "Startup Cost": 1703.0, + "Strategy": "Hashed", + "Total Cost": 1827.6 + } + ], + "Startup Cost": 1952.2, + "Strategy": "Plain", + "Total Cost": 1952.21 + } + } + ], + "id": "GROUP_BY/group_by/count_groups_encrypted/10000", + "indexes_used": [], + "parameters": [], + "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_10000 GROUP BY eql_v2.hmac_256(value)) g" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "string_plaintext_10000.value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 10000, + "Plan Width": 37, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "string_plaintext_10000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 10000, + "Plan Width": 33, + "Relation Name": "string_plaintext_10000", + "Startup Cost": 0.0, + "Total Cost": 184.0 + } + ], + "Startup Cost": 209.0, + "Strategy": "Hashed", + "Total Cost": 309.0 + } + ], + "Startup Cost": 434.0, + "Strategy": "Plain", + "Total Cost": 434.01 + } + } + ], + "id": "GROUP_BY/group_by/count_groups_plaintext/10000", + "indexes_used": [], + "parameters": [], + "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_10000 GROUP BY value) g" + } + ], + "target_rows": "10000" +} \ No newline at end of file diff --git a/results/query/group_by_rows_10000.json b/results/query/group_by_rows_10000.json index c0d1df5..452ea2a 100644 --- a/results/query/group_by_rows_10000.json +++ b/results/query/group_by_rows_10000.json @@ -1,3 +1,3 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_10000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[93875958.0,168121125.0,270922959.0,375610416.0,436293708.0,529368292.0,595072958.0,679767417.0,779669084.0,962281084.0],"unit":"ns","throughput":[],"typical":{"estimate":4956203.416883117,"lower_bound":4773389.768142126,"upper_bound":5178214.761538462,"unit":"ns"},"mean":{"estimate":4947071.800473986,"lower_bound":4812555.0365917105,"upper_bound":5093349.788424604,"unit":"ns"},"median":{"estimate":4874633.062962962,"lower_bound":4722801.253968254,"upper_bound":5215331.0,"unit":"ns"},"median_abs_dev":{"estimate":226732.39012566686,"lower_bound":40744.95735371539,"upper_bound":380651.79130319017,"unit":"ns"},"slope":{"estimate":4956203.416883117,"lower_bound":4773389.768142126,"upper_bound":5178214.761538462,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_10000","iteration_count":[29,58,87,116,145,174,203,232,261,290],"measured_values":[95203334.0,198496375.0,292651791.0,365254583.0,438927917.0,532710125.0,661191791.0,774621041.0,800533500.0,910076625.0],"unit":"ns","throughput":[],"typical":{"estimate":3166408.3062248095,"lower_bound":3093311.3315106733,"upper_bound":3259357.7623192477,"unit":"ns"},"mean":{"estimate":3210778.6135098515,"lower_bound":3129698.1235919544,"upper_bound":3293725.269400657,"unit":"ns"},"median":{"estimate":3202924.4119458124,"lower_bound":3067178.16091954,"upper_bound":3338883.797413793,"unit":"ns"},"median_abs_dev":{"estimate":201415.38475735174,"lower_bound":33888.37808215365,"upper_bound":224066.25851685632,"unit":"ns"},"slope":{"estimate":3166408.3062248095,"lower_bound":3093311.3315106733,"upper_bound":3259357.7623192477,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_10000","iteration_count":[17,34,51,68,85,102,119,136,153,170],"measured_values":[100063333.0,186215208.0,279670041.0,363662375.0,494079875.0,596129917.0,739891834.0,817638792.0,807396834.0,872789417.0],"unit":"ns","throughput":[],"typical":{"estimate":5581077.32605042,"lower_bound":5293171.383477981,"upper_bound":5974715.418699187,"unit":"ns"},"mean":{"estimate":5649260.131638655,"lower_bound":5443832.438697479,"upper_bound":5855273.308128851,"unit":"ns"},"median":{"estimate":5648215.352941176,"lower_bound":5347976.102941177,"upper_bound":5928230.446078431,"unit":"ns"},"median_abs_dev":{"estimate":398895.23444907577,"lower_bound":54392.14523434639,"upper_bound":549051.6593935613,"unit":"ns"},"slope":{"estimate":5581077.32605042,"lower_bound":5293171.383477981,"upper_bound":5974715.418699187,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_10000","iteration_count":[29,58,87,116,145,174,203,232,261,290],"measured_values":[78693792.0,174495750.0,248799292.0,334960916.0,433564666.0,571137625.0,661864333.0,709607416.0,761953500.0,825598334.0],"unit":"ns","throughput":[],"typical":{"estimate":3003318.442543663,"lower_bound":2899000.5686947103,"upper_bound":3151438.241352481,"unit":"ns"},"mean":{"estimate":2982730.47817734,"lower_bound":2880505.559425287,"upper_bound":3091419.4216584563,"unit":"ns"},"median":{"estimate":2954731.606896552,"lower_bound":2859761.9770114943,"upper_bound":3134481.4236453203,"unit":"ns"},"median_abs_dev":{"estimate":147437.65710314785,"lower_bound":30173.35319810922,"upper_bound":306545.80025703466,"unit":"ns"},"slope":{"estimate":3003318.442543663,"lower_bound":2899000.5686947103,"upper_bound":3151438.241352481,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/10000","GROUP_BY/group_by/count_groups_plaintext/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/match_metadata_10000.json b/results/query/match_metadata_10000.json new file mode 100644 index 0000000..4d88a48 --- /dev/null +++ b/results/query/match_metadata_10000.json @@ -0,0 +1,251 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,453,461,1033,1393,1554}'::smallint[])", + "Index Name": "string_encrypted_10000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 56.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,453,461,1033,1393,1554}'::smallint[])", + "Relation Name": "string_encrypted_10000", + "Startup Cost": 56.22, + "Total Cost": 60.73 + } + ], + "Startup Cost": 56.22, + "Total Cost": 60.73 + } + } + ], + "id": "MATCH/match/eql_cast_firstname/10000", + "indexes_used": [ + "string_encrypted_10000_gin_index" + ], + "parameters": [ + { + "bf": [ + 91, + 453, + 461, + 1033, + 1393, + 1554 + ], + "i": { + "c": "value", + "t": "string_encrypted_10000" + }, + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE value LIKE $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1057,1018,998,1574,895,1751,710,1031,682,587,1845,1637,1760,421,2028,1453,1109,1068,830,1183,1496,582,1143,1735,792,1500,1200,1596,61,865}'::smallint[])", + "Index Name": "string_encrypted_10000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 264.6 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1057,1018,998,1574,895,1751,710,1031,682,587,1845,1637,1760,421,2028,1453,1109,1068,830,1183,1496,582,1143,1735,792,1500,1200,1596,61,865}'::smallint[])", + "Relation Name": "string_encrypted_10000", + "Startup Cost": 264.6, + "Total Cost": 269.11 + } + ], + "Startup Cost": 264.6, + "Total Cost": 269.11 + } + } + ], + "id": "MATCH/match/eql_cast_lastname/10000", + "indexes_used": [ + "string_encrypted_10000_gin_index" + ], + "parameters": [ + { + "bf": [ + 1057, + 1018, + 998, + 1574, + 895, + 1751, + 710, + 1031, + 682, + 587, + 1845, + 1637, + 1760, + 421, + 2028, + 1453, + 1109, + 1068, + 830, + 1183, + 1496, + 582, + 1143, + 1735, + 792, + 1500, + 1200, + 1596, + 61, + 865 + ], + "i": { + "c": "value", + "t": "string_encrypted_10000" + }, + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE value LIKE $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1500,1068,865,1760,682,710,1453,1845,1735,1018,2028,1143,421,1200,1496,1057,1031,895,792,830,1751,1574,1596,998,587,61,1183,1637,1109,582}'::smallint[])", + "Index Name": "string_encrypted_10000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 264.6 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1500,1068,865,1760,682,710,1453,1845,1735,1018,2028,1143,421,1200,1496,1057,1031,895,792,830,1751,1574,1596,998,587,61,1183,1637,1109,582}'::smallint[])", + "Relation Name": "string_encrypted_10000", + "Startup Cost": 264.6, + "Total Cost": 269.11 + } + ], + "Startup Cost": 264.6, + "Total Cost": 269.11 + } + } + ], + "id": "MATCH/match/eql_bloom/10000", + "indexes_used": [ + "string_encrypted_10000_gin_index" + ], + "parameters": [ + { + "bf": [ + 1500, + 1068, + 865, + 1760, + 682, + 710, + 1453, + 1845, + 1735, + 1018, + 2028, + 1143, + 421, + 1200, + 1496, + 1057, + 1031, + 895, + 792, + 830, + 1751, + 1574, + 1596, + 998, + 587, + 61, + 1183, + 1637, + 1109, + 582 + ], + "i": { + "c": "value", + "t": "string_encrypted_10000" + }, + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10" + } + ], + "target_rows": "10000" +} \ No newline at end of file diff --git a/results/query/match_rows_10000.json b/results/query/match_rows_10000.json index cd92fd2..0716433 100644 --- a/results/query/match_rows_10000.json +++ b/results/query/match_rows_10000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[128,256,384,512,640,768,896,1024,1152,1280],"measured_values":[78096083.0,176251333.0,249009084.0,316523375.0,317025666.0,393898125.0,884112417.0,863176792.0,935364209.0,1041164042.0],"unit":"ns","throughput":[],"typical":{"estimate":777523.4605722403,"lower_bound":649675.4034410112,"upper_bound":854082.2346305491,"unit":"ns"},"mean":{"estimate":702855.5277833582,"lower_bound":612588.1129913196,"upper_bound":798384.9134585813,"unit":"ns"},"median":{"estimate":668471.462890625,"lower_bound":565548.9501953125,"upper_bound":827447.0920138889,"unit":"ns"},"median_abs_dev":{"estimate":213801.72444834918,"lower_bound":22978.80798319046,"upper_bound":258052.24129761508,"unit":"ns"},"slope":{"estimate":777523.4605722403,"lower_bound":649675.4034410112,"upper_bound":854082.2346305491,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[97462167.0,229794625.0,303988375.0,426685042.0,530404375.0,595331708.0,732078750.0,806359417.0,908020333.0,1033877625.0],"unit":"ns","throughput":[],"typical":{"estimate":25640360.172727272,"lower_bound":25295885.0441313,"upper_bound":26067160.984504133,"unit":"ns"},"mean":{"estimate":25882988.524355154,"lower_bound":25224321.50907738,"upper_bound":26680871.959821425,"unit":"ns"},"median":{"estimate":25589652.604166664,"lower_bound":25014137.430555552,"upper_bound":26520218.75,"unit":"ns"},"median_abs_dev":{"estimate":993476.7577622619,"lower_bound":116894.14836012578,"upper_bound":1861060.404143949,"unit":"ns"},"slope":{"estimate":25640360.172727272,"lower_bound":25295885.0441313,"upper_bound":26067160.984504133,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[86,172,258,344,430,516,602,688,774,860],"measured_values":[78221750.0,155244666.0,286196333.0,467335625.0,536205625.0,475755083.0,638628333.0,740234666.0,784313417.0,1183791375.0],"unit":"ns","throughput":[],"typical":{"estimate":1145913.9645424343,"lower_bound":1022957.2050790208,"upper_bound":1282364.1895594776,"unit":"ns"},"mean":{"estimate":1097555.152002584,"lower_bound":998431.1819759366,"upper_bound":1204285.3402131782,"unit":"ns"},"median":{"estimate":1068383.4433139535,"lower_bound":922005.9748062015,"upper_bound":1246989.8255813953,"unit":"ns"},"median_abs_dev":{"estimate":226248.96602135935,"lower_bound":19563.40516256372,"upper_bound":292187.30534199876,"unit":"ns"},"slope":{"estimate":1145913.9645424343,"lower_bound":1022957.2050790208,"upper_bound":1282364.1895594776,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118569750.0,216823958.0,328995375.0,461319333.0,554299667.0,634342625.0,735535583.0,871040875.0,987755083.0,1110083333.0],"unit":"ns","throughput":[],"typical":{"estimate":27318013.224675324,"lower_bound":26835560.68504902,"upper_bound":27699153.419767417,"unit":"ns"},"mean":{"estimate":27581897.76983135,"lower_bound":27024155.936555058,"upper_bound":28211722.17949752,"unit":"ns"},"median":{"estimate":27426961.222222224,"lower_bound":26825485.026041664,"upper_bound":28273720.83125,"unit":"ns"},"median_abs_dev":{"estimate":481169.35210503585,"lower_bound":161317.14465583954,"upper_bound":1780243.4857631112,"unit":"ns"},"slope":{"estimate":27318013.224675324,"lower_bound":26835560.68504902,"upper_bound":27699153.419767417,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[79,158,237,316,395,474,553,632,711,790],"measured_values":[111933291.0,228747166.0,255370500.0,368436958.0,485911708.0,624771708.0,730656250.0,628139417.0,795240750.0,987279875.0],"unit":"ns","throughput":[],"typical":{"estimate":1188793.369357225,"lower_bound":1097404.4109719894,"upper_bound":1277316.3258478818,"unit":"ns"},"mean":{"estimate":1233969.032081073,"lower_bound":1146939.1227526371,"upper_bound":1319282.2751312538,"unit":"ns"},"median":{"estimate":1239938.7917721518,"lower_bound":1118482.0675105485,"upper_bound":1367480.4367088608,"unit":"ns"},"median_abs_dev":{"estimate":150318.56821738798,"lower_bound":47603.67746790384,"upper_bound":251570.85715777508,"unit":"ns"},"slope":{"estimate":1188793.369357225,"lower_bound":1097404.4109719894,"upper_bound":1277316.3258478818,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[117003333.0,227364666.0,337947000.0,471058458.0,558344083.0,650044666.0,790789875.0,874748583.0,982759334.0,1152432500.0],"unit":"ns","throughput":[],"typical":{"estimate":27963943.313636363,"lower_bound":27427181.8731454,"upper_bound":28549536.348312166,"unit":"ns"},"mean":{"estimate":28196529.033501983,"lower_bound":27722835.645238094,"upper_bound":28673805.919877235,"unit":"ns"},"median":{"estimate":28202372.76785714,"lower_bound":27335893.21875,"upper_bound":28835708.25,"unit":"ns"},"median_abs_dev":{"estimate":1093357.6437796466,"lower_bound":185843.0186850037,"upper_bound":1446990.0432524588,"unit":"ns"},"slope":{"estimate":27963943.313636363,"lower_bound":27427181.8731454,"upper_bound":28549536.348312166,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[146,292,438,584,730,876,1022,1168,1314,1460],"measured_values":[92479250.0,173058125.0,276712833.0,373794291.0,448625042.0,557350167.0,642605459.0,719978167.0,805475584.0,966127250.0],"unit":"ns","throughput":[],"typical":{"estimate":631911.6470378937,"lower_bound":616910.0677074939,"upper_bound":648956.2597350101,"unit":"ns"},"mean":{"estimate":626862.5082145575,"lower_bound":615967.039070722,"upper_bound":637894.7113747554,"unit":"ns"},"median":{"estimate":630268.4618395304,"lower_bound":614554.8520547946,"upper_bound":636739.1190068494,"unit":"ns"},"median_abs_dev":{"estimate":17523.63037339684,"lower_bound":2538.6161478814606,"upper_bound":32375.36440410371,"unit":"ns"},"slope":{"estimate":631911.6470378937,"lower_bound":616910.0677074939,"upper_bound":648956.2597350101,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[109067625.0,215936750.0,302772416.0,429263250.0,544683750.0,629397250.0,774358000.0,894410291.0,1024704125.0,1069897167.0],"unit":"ns","throughput":[],"typical":{"estimate":27378708.276623376,"lower_bound":26709068.11279461,"upper_bound":27973983.984672304,"unit":"ns"},"mean":{"estimate":27059545.780644845,"lower_bound":26509773.279326387,"upper_bound":27571136.590575397,"unit":"ns"},"median":{"estimate":27113140.625,"lower_bound":26526919.270833336,"upper_bound":27655642.85714286,"unit":"ns"},"median_abs_dev":{"estimate":673258.7906197674,"lower_bound":181369.846227541,"upper_bound":1504529.2217461448,"unit":"ns"},"slope":{"estimate":27378708.276623376,"lower_bound":26709068.11279461,"upper_bound":27973983.984672304,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[98,196,294,392,490,588,686,784,882,980],"measured_values":[84302583.0,237661375.0,265550250.0,391160166.0,462070458.0,582145083.0,652571250.0,701898709.0,865451459.0,905193916.0],"unit":"ns","throughput":[],"typical":{"estimate":947477.6106016432,"lower_bound":922441.9730209127,"upper_bound":979499.6156462585,"unit":"ns"},"mean":{"estimate":965837.5528907515,"lower_bound":917323.2859126985,"upper_bound":1030819.4321655327,"unit":"ns"},"median":{"estimate":947135.489212828,"lower_bound":903232.1428571428,"upper_bound":990042.6581632653,"unit":"ns"},"median_abs_dev":{"estimate":64352.63385394096,"lower_bound":12320.468396744192,"upper_bound":111917.38093517817,"unit":"ns"},"slope":{"estimate":947477.6106016432,"lower_bound":922441.9730209127,"upper_bound":979499.6156462585,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118810125.0,239204625.0,337435750.0,468183583.0,585800125.0,688086833.0,781408125.0,944534209.0,1079700792.0,1149480167.0],"unit":"ns","throughput":[],"typical":{"estimate":29076637.613636363,"lower_bound":28523125.615808822,"upper_bound":29602123.08237748,"unit":"ns"},"mean":{"estimate":29109734.00127976,"lower_bound":28672437.53110119,"upper_bound":29517936.926041663,"unit":"ns"},"median":{"estimate":29275740.09375,"lower_bound":28428325.004166666,"upper_bound":29708636.078125,"unit":"ns"},"median_abs_dev":{"estimate":848188.9987203855,"lower_bound":168043.64925725386,"upper_bound":1254625.7493821885,"unit":"ns"},"slope":{"estimate":29076637.613636363,"lower_bound":28523125.615808822,"upper_bound":29602123.08237748,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[99,198,297,396,495,594,693,792,891,990],"measured_values":[85363167.0,196795291.0,304673375.0,406839958.0,491906792.0,583170458.0,690666291.0,765810042.0,850298042.0,911240833.0],"unit":"ns","throughput":[],"typical":{"estimate":963009.9828151646,"lower_bound":941919.4532712494,"upper_bound":993482.2303748052,"unit":"ns"},"mean":{"estimate":972322.7678507296,"lower_bound":940711.17217789,"upper_bound":999203.6223288442,"unit":"ns"},"median":{"estimate":987759.7713804713,"lower_bound":943688.5785353535,"upper_bound":1009875.9452861953,"unit":"ns"},"median_abs_dev":{"estimate":40229.521086406035,"lower_bound":2257.9076590051036,"upper_bound":78126.34217065698,"unit":"ns"},"slope":{"estimate":963009.9828151646,"lower_bound":941919.4532712494,"upper_bound":993482.2303748052,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114274083.0,222330500.0,329890042.0,443554625.0,581010583.0,677531667.0,830688958.0,849247167.0,1012662709.0,1213904959.0],"unit":"ns","throughput":[],"typical":{"estimate":28672000.414935064,"lower_bound":27455788.946502455,"upper_bound":29705616.9167146,"unit":"ns"},"mean":{"estimate":28353742.984474204,"lower_bound":27721315.169468746,"upper_bound":29024043.637232892,"unit":"ns"},"median":{"estimate":28180002.909722224,"lower_bound":27641074.666666664,"upper_bound":29117991.76785714,"unit":"ns"},"median_abs_dev":{"estimate":850274.734777526,"lower_bound":250712.98879062105,"upper_bound":1861815.8228067856,"unit":"ns"},"slope":{"estimate":28672000.414935064,"lower_bound":27455788.946502455,"upper_bound":29705616.9167146,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000","MATCH/match_decrypt/eql_cast_firstname/10000","MATCH/match/eql_cast_lastname/10000","MATCH/match_decrypt/eql_cast_lastname/10000","MATCH/match/eql_bloom/10000","MATCH/match_decrypt/eql_bloom/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/ore_metadata_10000.json b/results/query/ore_metadata_10000.json new file mode 100644 index 0000000..b1cbfea --- /dev/null +++ b/results/query/ore_metadata_10000.json @@ -0,0 +1,234 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2899e383234942144a69152bae8315e7ef34357c9d0f17cc138e21d413a1ae015120063e02f23eb3efa32aae2bf30ef44a2197c747af0ee1dd8417713b3a7a9267722ae07692de2ce2e59699828c4c276f09bcf0e21740ad872c50e30b797afd367f6cfc6da7eeb731397ca1af6a554fd1164bbddd2db1c43aed32f8cbf93552d2ef3ad2391e2ed97b1d6fca1fcf4151b38795ff6b749f14ae14f0f5971aedec384a4192526c0c575b1268765ed039aec3d17dc378273182fb4cfc47ec69513ff5e2bd963983fd8957200f0a1be9c924b64f938c83d7bcc5bc532254ae39f8cc2fa4d53a67706485e628e94ad635d71a0005e18ab5b95dfbb199b238be236fb1321a0e5ab652ebbb70c768aada6ab7d8e0\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 5050, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 7791.5 + } + ], + "Startup Cost": 0.0, + "Total Cost": 15.43 + } + } + ], + "id": "ORE/ore/range_gt_10/10000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2899e383234942144a69152bae8315e7ef34357c9d0f17cc138e21d413a1ae015120063e02f23eb3efa32aae2bf30ef44a2197c747af0ee1dd8417713b3a7a9267722ae07692de2ce2e59699828c4c276f09bcf0e21740ad872c50e30b797afd367f6cfc6da7eeb731397ca1af6a554fd1164bbddd2db1c43aed32f8cbf93552d2ef3ad2391e2ed97b1d6fca1fcf4151b38795ff6b749f14ae14f0f5971aedec384a4192526c0c575b1268765ed039aec3d17dc378273182fb4cfc47ec69513ff5e2bd963983fd8957200f0a1be9c924b64f938c83d7bcc5bc532254ae39f8cc2fa4d53a67706485e628e94ad635d71a0005e18ab5b95dfbb199b238be236fb1321a0e5ab652ebbb70c768aada6ab7d8e0" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value > $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284a42c25d1436c1aef291cbdd9a25a1853573697cc39c0e790af499de69f8522fd2702825b23999e8344e48e212e2128203c2b4b2d1b9e453e497c511c9e904d3213e9813c1ca0c9170fa56660087e5f7354a8b4d62c466cfc855b9958d0c00a7a810f4739b00f6bb7fb4594a660a1d39d6581cec54b6b15efb47dd11e4bd8c6f42406fa196b0444f74c95e077e9abb716f5d7953be213a707cc8c2b8c6364d95b202b63b981df5a04770ea318c47ec7d44e0576f4a3ec08dd12e0dcc57ec53e31771828004248eaddf185b9718cc567dc60ec6615d8670652102614c1a5db2f8101629f374be801bd8cd6dd883d3b0a1bdb122752398169d25ff8d531785cc138104deb574dd74c54299aa323fb16d78\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 5050, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 7791.5 + } + ], + "Startup Cost": 0.0, + "Total Cost": 154.29 + } + } + ], + "id": "ORE/ore/range_gt_100/10000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284a42c25d1436c1aef291cbdd9a25a1853573697cc39c0e790af499de69f8522fd2702825b23999e8344e48e212e2128203c2b4b2d1b9e453e497c511c9e904d3213e9813c1ca0c9170fa56660087e5f7354a8b4d62c466cfc855b9958d0c00a7a810f4739b00f6bb7fb4594a660a1d39d6581cec54b6b15efb47dd11e4bd8c6f42406fa196b0444f74c95e077e9abb716f5d7953be213a707cc8c2b8c6364d95b202b63b981df5a04770ea318c47ec7d44e0576f4a3ec08dd12e0dcc57ec53e31771828004248eaddf185b9718cc567dc60ec6615d8670652102614c1a5db2f8101629f374be801bd8cd6dd883d3b0a1bdb122752398169d25ff8d531785cc138104deb574dd74c54299aa323fb16d78" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value > $1 LIMIT 100" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28825322305f02d0928b50cc73c8640f78d778e9fa1d86ba454fdeee9dd0d4361cf0b313dfdc322551a7d6bee69a4379865ed0468db7f4cad498d965dfddece44f02d6e906d0947fe148170044f5ce1c140a071de908dd72a914b4e34a343ccdda908f114cb8110dd7fbfea6990ab70a94ae5e1babbf68ddeea9d6391fd34f63478c899eb64ad75ca6519bb6668b28ec1325d5eda6d422fc85ed906b3b52bec910bff3dfb161dabee11b9dcfc2ad9df7cf9fb0bf28341d4737c61c7d4cefafd734fc66e202dd46c11e8436122300c9db90fee6ca4c4ea433017fc40de053f57da385e403ef32d03c35f6a758a65ef6438c35e6db4885cd257843cc1cfa7d3a0e266ab4ea329e7347d6d5b2befe64188d47\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 4949, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 7766.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 15.69 + } + } + ], + "id": "ORE/ore/range_lt_10/10000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28825322305f02d0928b50cc73c8640f78d778e9fa1d86ba454fdeee9dd0d4361cf0b313dfdc322551a7d6bee69a4379865ed0468db7f4cad498d965dfddece44f02d6e906d0947fe148170044f5ce1c140a071de908dd72a914b4e34a343ccdda908f114cb8110dd7fbfea6990ab70a94ae5e1babbf68ddeea9d6391fd34f63478c899eb64ad75ca6519bb6668b28ec1325d5eda6d422fc85ed906b3b52bec910bff3dfb161dabee11b9dcfc2ad9df7cf9fb0bf28341d4737c61c7d4cefafd734fc66e202dd46c11e8436122300c9db90fee6ca4c4ea433017fc40de053f57da385e403ef32d03c35f6a758a65ef6438c35e6db4885cd257843cc1cfa7d3a0e266ab4ea329e7347d6d5b2befe64188d47" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value < $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28274a8d90eb70f404a460640b50f2c7ab222c0553032c63365966d4a08ea38454576df090cde69abee4eb2fba01b2b4cca93c6b99d2b0fc2a2eeac6a7adaf76742899765c5bdd83fe52ee31fe2ac6ab90cf1612d7e274d26d67f6b477e3fedd2c411bba8bf08dfb1d964e9915198794fa59eaaf4b6d1f0d431fac52435f4e9cf8d2176497bab50a9e711f98551f50ad47e0cce11265033f3b7315da554397b6ed83bb0fdadf869df48810084b9df00fa195f5db2e3a77b50e55c3df051557cf1e2995b252a2d5569dd58cb45c08c042af88431f3b26046fa3905863621570a728a3681376bf9343d6ea928e185f1dbc1654a757b75bf72f533435f84d4d27afa674663311da8eda990c767d3ac86de05e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 4949, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 7766.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 156.93 + } + } + ], + "id": "ORE/ore/range_lt_100/10000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28274a8d90eb70f404a460640b50f2c7ab222c0553032c63365966d4a08ea38454576df090cde69abee4eb2fba01b2b4cca93c6b99d2b0fc2a2eeac6a7adaf76742899765c5bdd83fe52ee31fe2ac6ab90cf1612d7e274d26d67f6b477e3fedd2c411bba8bf08dfb1d964e9915198794fa59eaaf4b6d1f0d431fac52435f4e9cf8d2176497bab50a9e711f98551f50ad47e0cce11265033f3b7315da554397b6ed83bb0fdadf869df48810084b9df00fa195f5db2e3a77b50e55c3df051557cf1e2995b252a2d5569dd58cb45c08c042af88431f3b26046fa3905863621570a728a3681376bf9343d6ea928e185f1dbc1654a757b75bf72f533435f84d4d27afa674663311da8eda990c767d3ac86de05e" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value < $1 LIMIT 100" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 68, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c02b6f6e4a3b4a575a4fb86111b39ed5d07df2d6a7bc7f6b7d90f6de1fb6c0c1fb7b217de23f8482e8157075a6127b2afb157b78d4844c3336d553bbe3bb463dacd798a18ea0d6d9ba71ec6709edb10fb7ea4848d8877edded4f8d052f6ad52a43aaf45cf235894aaa8ac0af75769c52673311c26bbb43799e71f41d7fc894aa5aac2df03ce44b1c0d3997ac8aec11bdb11138626b55e7a81c978aa7d1c76d1317dc66b0588ace316bd6f93689c54d5e97c4fbc16b9d309ac874909bcc2b8bdc62ebce4b5e526a3f90701ff80568df3b12c6676adeff15f260fee6af18ea2a1c1fb2f6672d88c737721c36e9cacdce956037ce8ac19e651c2b460c22d93d4fc0327f18f1933bbaa14385a565f231adbd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 4949, + "Plan Width": 68, + "Relation Name": "integer_encrypted_10000", + "Scan Direction": "Forward", + "Startup Cost": 0.54, + "Total Cost": 9829.55 + } + ], + "Startup Cost": 0.54, + "Total Cost": 20.4 + } + } + ], + "id": "ORE/ore/range_lt_hybrid_ordered_10/10000", + "indexes_used": [ + "integer_encrypted_10000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c02b6f6e4a3b4a575a4fb86111b39ed5d07df2d6a7bc7f6b7d90f6de1fb6c0c1fb7b217de23f8482e8157075a6127b2afb157b78d4844c3336d553bbe3bb463dacd798a18ea0d6d9ba71ec6709edb10fb7ea4848d8877edded4f8d052f6ad52a43aaf45cf235894aaa8ac0af75769c52673311c26bbb43799e71f41d7fc894aa5aac2df03ce44b1c0d3997ac8aec11bdb11138626b55e7a81c978aa7d1c76d1317dc66b0588ace316bd6f93689c54d5e97c4fbc16b9d309ac874909bcc2b8bdc62ebce4b5e526a3f90701ff80568df3b12c6676adeff15f260fee6af18ea2a1c1fb2f6672d88c737721c36e9cacdce956037ce8ac19e651c2b460c22d93d4fc0327f18f1933bbaa14385a565f231adbd" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10" + } + ], + "target_rows": "10000" +} \ No newline at end of file diff --git a/results/query/ore_rows_10000.json b/results/query/ore_rows_10000.json index 73f9857..81e84e4 100644 --- a/results/query/ore_rows_10000.json +++ b/results/query/ore_rows_10000.json @@ -1,11 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[61,122,183,244,305,366,427,488,549,610],"measured_values":[81550209.0,172107417.0,340402750.0,463255292.0,469167916.0,504406708.0,609341542.0,673642375.0,734317000.0,996677875.0],"unit":"ns","throughput":[],"typical":{"estimate":1486158.647349372,"lower_bound":1385954.6561576729,"upper_bound":1607391.0028163095,"unit":"ns"},"mean":{"estimate":1520162.86158535,"lower_bound":1407169.4939454691,"upper_bound":1651992.6830351287,"unit":"ns"},"median":{"estimate":1418872.9525761125,"lower_bound":1358984.2184653915,"upper_bound":1699189.8896174864,"unit":"ns"},"median_abs_dev":{"estimate":121056.88162922616,"lower_bound":24133.85756580065,"upper_bound":338358.58021987433,"unit":"ns"},"slope":{"estimate":1486158.647349372,"lower_bound":1385954.6561576729,"upper_bound":1607391.0028163095,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103471709.0,240986875.0,367286166.0,451622875.0,582865417.0,687652958.0,756421334.0,852126791.0,1048919125.0,1198956166.0],"unit":"ns","throughput":[],"typical":{"estimate":28620673.857792206,"lower_bound":27454002.656159867,"upper_bound":29539995.268209487,"unit":"ns"},"mean":{"estimate":28537493.061855156,"lower_bound":27576327.402741816,"upper_bound":29439473.794236112,"unit":"ns"},"median":{"estimate":28894424.472222224,"lower_bound":27015047.64285714,"upper_bound":29973904.15,"unit":"ns"},"median_abs_dev":{"estimate":1711227.698185465,"lower_bound":364025.9344172498,"upper_bound":2590396.565939393,"unit":"ns"},"slope":{"estimate":28620673.857792206,"lower_bound":27454002.656159867,"upper_bound":29539995.268209487,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[92390458.0,185325916.0,276098958.0,363145542.0,447146041.0,591960708.0,657671041.0,725837666.0,876967709.0,987546250.0],"unit":"ns","throughput":[],"typical":{"estimate":6810758.122634509,"lower_bound":6564879.352465986,"upper_bound":6967264.772116645,"unit":"ns"},"mean":{"estimate":6691716.495447846,"lower_bound":6555151.2696043085,"upper_bound":6840002.726213152,"unit":"ns"},"median":{"estimate":6609050.571428571,"lower_bound":6484741.821428572,"upper_bound":6960061.182539683,"unit":"ns"},"median_abs_dev":{"estimate":187301.20981223744,"lower_bound":33357.01680779457,"upper_bound":396333.255819393,"unit":"ns"},"slope":{"estimate":6810758.122634509,"lower_bound":6564879.352465986,"upper_bound":6967264.772116645,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[84447125.0,178379208.0,275191041.0,370173166.0,458190416.0,534300958.0,664221334.0,750530416.0,869699959.0,946884208.0],"unit":"ns","throughput":[],"typical":{"estimate":47005407.18571428,"lower_bound":45951010.238970585,"upper_bound":47634688.7014935,"unit":"ns"},"mean":{"estimate":45931271.19722222,"lower_bound":44834188.59900001,"upper_bound":46916781.12666667,"unit":"ns"},"median":{"estimate":46068409.625,"lower_bound":44594802.0,"upper_bound":47344210.4,"unit":"ns"},"median_abs_dev":{"estimate":1965758.6598958063,"lower_bound":335515.45043840894,"upper_bound":2957929.833061248,"unit":"ns"},"slope":{"estimate":47005407.18571428,"lower_bound":45951010.238970585,"upper_bound":47634688.7014935,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[59,118,177,236,295,354,413,472,531,590],"measured_values":[112993333.0,189155791.0,274495583.0,389001333.0,508775791.0,573503208.0,631850875.0,663987167.0,884636375.0,876659541.0],"unit":"ns","throughput":[],"typical":{"estimate":1554869.9733656175,"lower_bound":1483067.7780690638,"upper_bound":1648926.474818402,"unit":"ns"},"mean":{"estimate":1615052.215019505,"lower_bound":1537068.3648591605,"upper_bound":1701673.7210640304,"unit":"ns"},"median":{"estimate":1611540.368644068,"lower_bound":1518343.065819209,"upper_bound":1686487.2156779661,"unit":"ns"},"median_abs_dev":{"estimate":105526.25339348393,"lower_bound":33577.59438820047,"upper_bound":229742.0632550483,"unit":"ns"},"slope":{"estimate":1554869.9733656175,"lower_bound":1483067.7780690638,"upper_bound":1648926.474818402,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[128383334.0,230169833.0,367004708.0,436404125.0,587805167.0,713750541.0,800334583.0,887081917.0,980764041.0,1215844041.0],"unit":"ns","throughput":[],"typical":{"estimate":28792985.00064935,"lower_bound":27770454.471048057,"upper_bound":29863620.53699257,"unit":"ns"},"mean":{"estimate":29180014.48080357,"lower_bound":28279981.28747024,"upper_bound":30127880.187678568,"unit":"ns"},"median":{"estimate":29080743.7375,"lower_bound":27721309.90625,"upper_bound":30396101.025,"unit":"ns"},"median_abs_dev":{"estimate":1982822.6211272355,"lower_bound":354240.8162890943,"upper_bound":2628708.6944029676,"unit":"ns"},"slope":{"estimate":28792985.00064935,"lower_bound":27770454.471048057,"upper_bound":29863620.53699257,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[89611000.0,169320375.0,285381833.0,392627500.0,444262875.0,516838916.0,656224833.0,734907667.0,810700541.0,850352875.0],"unit":"ns","throughput":[],"typical":{"estimate":6883101.679520479,"lower_bound":6686158.388798767,"upper_bound":7116344.542853183,"unit":"ns"},"mean":{"estimate":6948236.330601344,"lower_bound":6752189.980235043,"upper_bound":7153931.832836539,"unit":"ns"},"median":{"estimate":6911109.14957265,"lower_bound":6626139.948717949,"upper_bound":7211261.901098901,"unit":"ns"},"median_abs_dev":{"estimate":433750.8955993823,"lower_bound":69868.2587236927,"upper_bound":575476.3213640216,"unit":"ns"},"slope":{"estimate":6883101.679520479,"lower_bound":6686158.388798767,"upper_bound":7116344.542853183,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[88509375.0,191508542.0,271223125.0,335732833.0,497671625.0,547968291.0,617520709.0,691051958.0,779791166.0,917287459.0],"unit":"ns","throughput":[],"typical":{"estimate":44735520.451948054,"lower_bound":43574873.650624365,"upper_bound":46120203.0882353,"unit":"ns"},"mean":{"estimate":45121894.18825397,"lower_bound":43830007.07044147,"upper_bound":46562720.73527778,"unit":"ns"},"median":{"estimate":44729270.83333333,"lower_bound":43321731.44444445,"upper_bound":46770579.875,"unit":"ns"},"median_abs_dev":{"estimate":1884860.114605377,"lower_bound":489642.56539211085,"upper_bound":3838340.269230836,"unit":"ns"},"slope":{"estimate":44735520.451948054,"lower_bound":43574873.650624365,"upper_bound":46120203.0882353,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[67,134,201,268,335,402,469,536,603,670],"measured_values":[69483750.0,147088667.0,262988208.0,428069667.0,458733291.0,602053917.0,661197666.0,848165917.0,820828541.0,1004513417.0],"unit":"ns","throughput":[],"typical":{"estimate":1458313.485946889,"lower_bound":1386254.3433836447,"upper_bound":1520514.8945856493,"unit":"ns"},"mean":{"estimate":1376013.8446653637,"lower_bound":1261985.1072594617,"upper_bound":1481373.3762271972,"unit":"ns"},"median":{"estimate":1389578.11663113,"lower_bound":1229458.990464345,"upper_bound":1540022.8292910447,"unit":"ns"},"median_abs_dev":{"estimate":161428.51197735468,"lower_bound":35998.835217111744,"upper_bound":338915.8696057395,"unit":"ns"},"slope":{"estimate":1458313.485946889,"lower_bound":1386254.3433836447,"upper_bound":1520514.8945856493,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[119873916.0,239298375.0,314259209.0,432073250.0,578887125.0,657696584.0,735697083.0,892802875.0,1005503750.0,1104386125.0],"unit":"ns","throughput":[],"typical":{"estimate":27594710.391558442,"lower_bound":27069105.387123745,"upper_bound":28002782.91443252,"unit":"ns"},"mean":{"estimate":27913730.05124008,"lower_bound":27152793.011011906,"upper_bound":28714175.769955356,"unit":"ns"},"median":{"estimate":27754871.484375,"lower_bound":26839460.07738095,"upper_bound":28944356.25,"unit":"ns"},"median_abs_dev":{"estimate":1437957.4985336512,"lower_bound":237962.18629616126,"upper_bound":2409512.6147163506,"unit":"ns"},"slope":{"estimate":27594710.391558442,"lower_bound":27069105.387123745,"upper_bound":28002782.91443252,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[81352458.0,169325917.0,289906750.0,369624667.0,450405250.0,629416208.0,637588542.0,751961583.0,853657542.0,925545458.0],"unit":"ns","throughput":[],"typical":{"estimate":1517131.613908672,"lower_bound":1482948.2875453916,"upper_bound":1567005.312958678,"unit":"ns"},"mean":{"estimate":1487944.4790649,"lower_bound":1427758.688003072,"upper_bound":1550054.0126670508,"unit":"ns"},"median":{"estimate":1491618.6495967743,"lower_bound":1417314.805875576,"upper_bound":1537345.0097446237,"unit":"ns"},"median_abs_dev":{"estimate":57029.73841332616,"lower_bound":17581.583619154866,"upper_bound":177214.3538441388,"unit":"ns"},"slope":{"estimate":1517131.613908672,"lower_bound":1482948.2875453916,"upper_bound":1567005.312958678,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[88916083.0,184725583.0,262525083.0,330004458.0,470647291.0,509877250.0,641814875.0,723275875.0,828706375.0,948050375.0],"unit":"ns","throughput":[],"typical":{"estimate":30472928.601731602,"lower_bound":29457201.45423729,"upper_bound":31104338.04761905,"unit":"ns"},"mean":{"estimate":29979273.237949736,"lower_bound":29168509.453769844,"upper_bound":30708929.61313492,"unit":"ns"},"median":{"estimate":30349553.94345238,"lower_bound":28982604.111111112,"upper_bound":30969549.580952384,"unit":"ns"},"median_abs_dev":{"estimate":1288224.9890494354,"lower_bound":193057.65768365216,"upper_bound":2260944.3352468815,"unit":"ns"},"slope":{"estimate":30472928.601731602,"lower_bound":29457201.45423729,"upper_bound":31104338.04761905,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[91726917.0,183770916.0,272391292.0,377927917.0,469584792.0,550665833.0,635307584.0,728511417.0,833212667.0,936888834.0],"unit":"ns","throughput":[],"typical":{"estimate":6601692.025602968,"lower_bound":6529549.086807036,"upper_bound":6664224.950607976,"unit":"ns"},"mean":{"estimate":6590544.791782879,"lower_bound":6536503.532653062,"upper_bound":6648561.55313492,"unit":"ns"},"median":{"estimate":6559396.31547619,"lower_bound":6504566.223214285,"upper_bound":6692063.1,"unit":"ns"},"median_abs_dev":{"estimate":95419.73056221104,"lower_bound":8394.745800963568,"upper_bound":153120.06951157504,"unit":"ns"},"slope":{"estimate":6601692.025602968,"lower_bound":6529549.086807036,"upper_bound":6664224.950607976,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[117357375.0,237213833.0,351880708.0,505559750.0,700570500.0,863499209.0,936555458.0,1092017334.0,1136195584.0,1371837083.0],"unit":"ns","throughput":[],"typical":{"estimate":44666382.58268398,"lower_bound":43049031.474620685,"upper_bound":45961908.1198841,"unit":"ns"},"mean":{"estimate":43246729.96171957,"lower_bound":41300010.48592593,"upper_bound":45160069.61366137,"unit":"ns"},"median":{"estimate":43363929.059523806,"lower_bound":39535638.833333336,"upper_bound":46102711.125,"unit":"ns"},"median_abs_dev":{"estimate":4228927.13220154,"lower_bound":340294.45907523483,"upper_bound":5314424.948500095,"unit":"ns"},"slope":{"estimate":44666382.58268398,"lower_bound":43049031.474620685,"upper_bound":45961908.1198841,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[61,122,183,244,305,366,427,488,549,610],"measured_values":[99871709.0,180530458.0,252087000.0,352140584.0,440169291.0,504595375.0,652562750.0,684571041.0,778696459.0,932616125.0],"unit":"ns","throughput":[],"typical":{"estimate":1457658.5746220993,"lower_bound":1407970.5899037211,"upper_bound":1503639.494309278,"unit":"ns"},"mean":{"estimate":1463790.561917122,"lower_bound":1419322.8109963574,"upper_bound":1514364.6211520948,"unit":"ns"},"median":{"estimate":1443188.5590163935,"lower_bound":1398533.2618397085,"upper_bound":1528250.0,"unit":"ns"},"median_abs_dev":{"estimate":77756.23051377239,"lower_bound":18374.87525891743,"upper_bound":141286.29926441272,"unit":"ns"},"slope":{"estimate":1457658.5746220993,"lower_bound":1407970.5899037211,"upper_bound":1503639.494309278,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[123741458.0,248761375.0,343748167.0,531091000.0,595410542.0,723608417.0,843636125.0,927393833.0,1144673167.0,1217558666.0],"unit":"ns","throughput":[],"typical":{"estimate":30453132.872077923,"lower_bound":29633235.245192308,"upper_bound":31251557.63571004,"unit":"ns"},"mean":{"estimate":30513664.466617066,"lower_bound":29759107.8976064,"upper_bound":31327932.68334598,"unit":"ns"},"median":{"estimate":30294658.679166667,"lower_bound":29555459.44419643,"upper_bound":31365920.680555556,"unit":"ns"},"median_abs_dev":{"estimate":1068375.6380875402,"lower_bound":229139.5642019604,"upper_bound":2230823.887719959,"unit":"ns"},"slope":{"estimate":30453132.872077923,"lower_bound":29633235.245192308,"upper_bound":31251557.63571004,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[87678250.0,176701416.0,264164125.0,345715459.0,433206417.0,536385125.0,650593708.0,710800167.0,773664500.0,873253917.0],"unit":"ns","throughput":[],"typical":{"estimate":6780590.427572427,"lower_bound":6674656.24668435,"upper_bound":6934294.881601158,"unit":"ns"},"mean":{"estimate":6781780.218458486,"lower_bound":6701993.852325856,"upper_bound":6881203.08509768,"unit":"ns"},"median":{"estimate":6758959.935897436,"lower_bound":6664714.107692308,"upper_bound":6836470.33974359,"unit":"ns"},"median_abs_dev":{"estimate":125949.00470376553,"lower_bound":38345.62358076793,"upper_bound":207983.4545924966,"unit":"ns"},"slope":{"estimate":6780590.427572427,"lower_bound":6674656.24668435,"upper_bound":6934294.881601158,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[88073583.0,189847417.0,301494083.0,364772958.0,448947125.0,564692417.0,605495375.0,717753334.0,800600250.0,852459459.0],"unit":"ns","throughput":[],"typical":{"estimate":44382758.13246753,"lower_bound":43442280.79938272,"upper_bound":45835887.95689655,"unit":"ns"},"mean":{"estimate":45450671.088452384,"lower_bound":44220973.831892855,"upper_bound":46860668.154062495,"unit":"ns"},"median":{"estimate":44877147.9375,"lower_bound":43863730.6547619,"upper_bound":47057701.416666664,"unit":"ns"},"median_abs_dev":{"estimate":1829405.8544590545,"lower_bound":309063.40826303506,"upper_bound":3587062.6440069056,"unit":"ns"},"slope":{"estimate":44382758.13246753,"lower_bound":43442280.79938272,"upper_bound":45835887.95689655,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[68,136,204,272,340,408,476,544,612,680],"measured_values":[86653917.0,164951541.0,277449875.0,407543375.0,454707667.0,619054084.0,660277041.0,652416375.0,851070208.0,883704000.0],"unit":"ns","throughput":[],"typical":{"estimate":1344724.412605042,"lower_bound":1280311.5771790468,"upper_bound":1423339.8719285182,"unit":"ns"},"mean":{"estimate":1347686.9586385388,"lower_bound":1286016.4640552052,"upper_bound":1411305.0956115779,"unit":"ns"},"median":{"estimate":1348711.9490196079,"lower_bound":1256221.8419117648,"upper_bound":1442728.9361869749,"unit":"ns"},"median_abs_dev":{"estimate":91577.88998916742,"lower_bound":22675.764593993314,"upper_bound":201730.2110131315,"unit":"ns"},"slope":{"estimate":1344724.412605042,"lower_bound":1280311.5771790468,"upper_bound":1423339.8719285182,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[110114625.0,220843917.0,243087000.0,353764333.0,495682708.0,620143417.0,620503958.0,764313750.0,859251250.0,899276750.0],"unit":"ns","throughput":[],"typical":{"estimate":31237628.82164502,"lower_bound":30215782.31721519,"upper_bound":32512779.646066375,"unit":"ns"},"mean":{"estimate":32069437.398306884,"lower_bound":30214333.762083333,"upper_bound":33976856.255055554,"unit":"ns"},"median":{"estimate":31835263.310185187,"lower_bound":29547807.523809522,"upper_bound":34875194.43333334,"unit":"ns"},"median_abs_dev":{"estimate":3441379.9341088524,"lower_bound":367336.81490346976,"upper_bound":5466998.773466367,"unit":"ns"},"slope":{"estimate":31237628.82164502,"lower_bound":30215782.31721519,"upper_bound":32512779.646066375,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/src/lib.rs b/src/lib.rs index 84cb252..89aa82a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -380,4 +380,109 @@ impl EncryptedQuery { Ok(decrypted) } + + /// Run `EXPLAIN (FORMAT JSON)` on the bound query and return the parsed + /// plan as `serde_json::Value`. Used by each bench's startup pass to + /// record what the planner did with the canonical scenario shape — see + /// `ScenarioMetadata` / `write_metadata_file` for the captured fields. + pub async fn explain(&self, pool: &sqlx::PgPool) -> Result { + let explain_sql = format!("EXPLAIN (FORMAT JSON) {}", self.statement); + let row: (Json,) = sqlx::query_as(&explain_sql) + .bind(Json(&self.eql)) + .fetch_one(pool) + .await?; + Ok(row.0 .0) + } + + /// Serialise the bound parameter as a JSON value for metadata logging. + pub fn parameter_json(&self) -> Result { + Ok(serde_json::to_value(&self.eql)?) + } +} + +// --- Bench metadata sidecar ---------------------------------------------- +// +// Each query bench writes a `results/query/_metadata_.json` +// sidecar alongside the criterion-generated `*_rows_*.json` file. The +// sidecar captures, per scenario: +// +// * `id` — same string as criterion's benchmark id, so the +// two files can be joined by id. +// * `query` — the exact SQL the bench ran (template with $1 +// placeholders intact; placeholders are filled by +// sqlx at execute time). +// * `parameters` — list of bound values, serialised as JSON. For +// the encrypted benches the parameter is the +// EqlCiphertext payload; for plaintext / json the +// list is typically empty. +// * `explain` — output of `EXPLAIN (FORMAT JSON)` against the +// bound query, captured once at startup before +// the criterion loop runs. +// * `indexes_used` — flat sorted list of every `Index Name` value +// found anywhere in the EXPLAIN tree. Useful for +// downstream analysis without re-parsing the +// whole plan. + +#[derive(serde::Serialize)] +pub struct ScenarioMetadata { + pub id: String, + pub query: String, + pub parameters: Vec, + pub explain: serde_json::Value, + pub indexes_used: Vec, +} + +/// Walk an `EXPLAIN (FORMAT JSON)` tree and collect every `Index Name`. +/// +/// PG's plan emits `"Index Name": ""` on Index Scan, Bitmap Index +/// Scan, and Index Only Scan nodes. We don't need to interpret which kind +/// of scan it is here — just surface the names so the report (and a human +/// debugging a slow bench) can see what the planner picked. Deduplicated +/// and sorted for stable output. +pub fn extract_indexes_used(explain: &serde_json::Value) -> Vec { + let mut out = Vec::new(); + collect_index_names(explain, &mut out); + out.sort(); + out.dedup(); + out +} + +fn collect_index_names(node: &serde_json::Value, out: &mut Vec) { + match node { + serde_json::Value::Object(map) => { + if let Some(serde_json::Value::String(name)) = map.get("Index Name") { + out.push(name.clone()); + } + for v in map.values() { + collect_index_names(v, out); + } + } + serde_json::Value::Array(arr) => { + for v in arr { + collect_index_names(v, out); + } + } + _ => {} + } +} + +/// Write the scenario metadata sidecar to +/// `results/query/_metadata_.json` (path relative to the +/// bench process's current working directory, which `cargo criterion` +/// sets to the package root). +pub fn write_metadata_file( + prefix: &str, + target_rows: &str, + scenarios: Vec, +) -> Result<()> { + let dir = std::path::PathBuf::from("results/query"); + std::fs::create_dir_all(&dir)?; + let path = dir.join(format!("{}_metadata_{}.json", prefix, target_rows)); + let payload = serde_json::json!({ + "target_rows": target_rows, + "scenarios": scenarios, + }); + std::fs::write(&path, serde_json::to_string_pretty(&payload)?)?; + eprintln!("bench metadata written to {}", path.display()); + Ok(()) } From 154b9b7f37d60dcdcd6d2f6e4183299bc7557fba Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Fri, 15 May 2026 17:35:07 +1000 Subject: [PATCH 15/30] results: full ladder refresh with EXPLAIN metadata sidecars (10k..10M) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds metadata sidecars at every row-count tier for exact / match / group_by / ore — `*_metadata_.json` joins to the existing `*_rows_.json` criterion stream by id. Each sidecar captures the exact SQL ran, the bound parameter (encrypted payload for EQL scenarios), the EXPLAIN (FORMAT JSON) plan, and the indexes the planner picked. Refreshes the timing data alongside. Also recovers `group_by_rows_10000000.json` (the 10M tier was dropped in an earlier pass when the scenario was renamed; the full ladder now has it again, with both `count_groups_encrypted` and `count_groups_plaintext` data points). Surfaced by the new metadata (visible without re-running EXPLAIN manually): * ORE bare-range scenarios (`range_gt_10/100`, `range_lt_10/100`) show `indexes_used: []` at every tier including 10M. The planner prefers Seq Scan + LIMIT over the functional ORE index for these shapes — the high-selectivity predicate (`< 5000` matches ~50% of rows) lets Seq Scan + LIMIT find 10 matches almost immediately, beating the bitmap setup + heap fetch a functional index would require. The operator inlining is still doing its job (predicate inlines to `ore_block(a) < ore_block(b)`), the planner just evaluates the alternatives and picks the cheaper shape. * Only `range_lt_hybrid_ordered_10` engages the functional ORE index (`integer_encrypted__ore_index`) — and only because the ORDER BY uses the extractor form, so the planner can satisfy the sort key by walking the index in order. The "indexes_used: []" rows aren't a bug — they're the planner being right. Worth noting in the report so future-us doesn't re-investigate. --- results/query/exact_metadata_100000.json | 99 +++++++ results/query/exact_metadata_1000000.json | 99 +++++++ results/query/exact_metadata_10000000.json | 99 +++++++ results/query/exact_rows_10000.json | 8 +- results/query/exact_rows_100000.json | 8 +- results/query/exact_rows_1000000.json | 8 +- results/query/exact_rows_10000000.json | 8 +- results/query/group_by_metadata_100000.json | 111 ++++++++ results/query/group_by_metadata_1000000.json | 129 +++++++++ results/query/group_by_metadata_10000000.json | 169 ++++++++++++ results/query/group_by_rows_10000.json | 4 +- results/query/group_by_rows_100000.json | 4 +- results/query/group_by_rows_1000000.json | 4 +- results/query/group_by_rows_10000000.json | 3 + results/query/match_metadata_10000.json | 108 ++++---- results/query/match_metadata_100000.json | 251 ++++++++++++++++++ results/query/match_metadata_1000000.json | 251 ++++++++++++++++++ results/query/match_metadata_10000000.json | 251 ++++++++++++++++++ results/query/match_rows_10000.json | 12 +- results/query/match_rows_100000.json | 12 +- results/query/match_rows_1000000.json | 12 +- results/query/match_rows_10000000.json | 12 +- results/query/ore_metadata_10000.json | 20 +- results/query/ore_metadata_100000.json | 234 ++++++++++++++++ results/query/ore_metadata_1000000.json | 234 ++++++++++++++++ results/query/ore_metadata_10000000.json | 234 ++++++++++++++++ results/query/ore_rows_10000.json | 20 +- results/query/ore_rows_100000.json | 20 +- results/query/ore_rows_1000000.json | 20 +- results/query/ore_rows_10000000.json | 20 +- 30 files changed, 2314 insertions(+), 150 deletions(-) create mode 100644 results/query/exact_metadata_100000.json create mode 100644 results/query/exact_metadata_1000000.json create mode 100644 results/query/exact_metadata_10000000.json create mode 100644 results/query/group_by_metadata_100000.json create mode 100644 results/query/group_by_metadata_1000000.json create mode 100644 results/query/group_by_metadata_10000000.json create mode 100644 results/query/group_by_rows_10000000.json create mode 100644 results/query/match_metadata_100000.json create mode 100644 results/query/match_metadata_1000000.json create mode 100644 results/query/match_metadata_10000000.json create mode 100644 results/query/ore_metadata_100000.json create mode 100644 results/query/ore_metadata_1000000.json create mode 100644 results/query/ore_metadata_10000000.json diff --git a/results/query/exact_metadata_100000.json b/results/query/exact_metadata_100000.json new file mode 100644 index 0000000..f83fdd7 --- /dev/null +++ b/results/query/exact_metadata_100000.json @@ -0,0 +1,99 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1163, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_100000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 1163, + "Relation Name": "string_encrypted_100000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + ], + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + } + ], + "id": "EXACT/exact/eql_cast/100000", + "indexes_used": [ + "string_encrypted_100000_hash_index" + ], + "parameters": [ + { + "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "i": { + "c": "value", + "t": "string_encrypted_100000" + }, + "v": 2 + } + ], + "query": "SELECT value FROM string_encrypted_100000 WHERE value = $1 LIMIT 1" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1163, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_100000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 1163, + "Relation Name": "string_encrypted_100000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + ], + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + } + ], + "id": "EXACT/exact/eql_hash/100000", + "indexes_used": [ + "string_encrypted_100000_hash_index" + ], + "parameters": [ + { + "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "i": { + "c": "value", + "t": "string_encrypted_100000" + }, + "v": 2 + } + ], + "query": "SELECT value FROM string_encrypted_100000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1" + } + ], + "target_rows": "100000" +} \ No newline at end of file diff --git a/results/query/exact_metadata_1000000.json b/results/query/exact_metadata_1000000.json new file mode 100644 index 0000000..7cfc183 --- /dev/null +++ b/results/query/exact_metadata_1000000.json @@ -0,0 +1,99 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1161, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_1000000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 1161, + "Relation Name": "string_encrypted_1000000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 12.04 + } + ], + "Startup Cost": 0.0, + "Total Cost": 6.02 + } + } + ], + "id": "EXACT/exact/eql_cast/1000000", + "indexes_used": [ + "string_encrypted_1000000_hash_index" + ], + "parameters": [ + { + "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "i": { + "c": "value", + "t": "string_encrypted_1000000" + }, + "v": 2 + } + ], + "query": "SELECT value FROM string_encrypted_1000000 WHERE value = $1 LIMIT 1" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1161, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_1000000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 1161, + "Relation Name": "string_encrypted_1000000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 12.04 + } + ], + "Startup Cost": 0.0, + "Total Cost": 6.02 + } + } + ], + "id": "EXACT/exact/eql_hash/1000000", + "indexes_used": [ + "string_encrypted_1000000_hash_index" + ], + "parameters": [ + { + "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "i": { + "c": "value", + "t": "string_encrypted_1000000" + }, + "v": 2 + } + ], + "query": "SELECT value FROM string_encrypted_1000000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1" + } + ], + "target_rows": "1000000" +} \ No newline at end of file diff --git a/results/query/exact_metadata_10000000.json b/results/query/exact_metadata_10000000.json new file mode 100644 index 0000000..4dfb9d4 --- /dev/null +++ b/results/query/exact_metadata_10000000.json @@ -0,0 +1,99 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1163, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_10000000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50000, + "Plan Width": 1163, + "Relation Name": "string_encrypted_10000000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 198371.0 + } + ], + "Startup Cost": 0.0, + "Total Cost": 3.97 + } + } + ], + "id": "EXACT/exact/eql_cast/10000000", + "indexes_used": [ + "string_encrypted_10000000_hash_index" + ], + "parameters": [ + { + "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "i": { + "c": "value", + "t": "string_encrypted_10000000" + }, + "v": 2 + } + ], + "query": "SELECT value FROM string_encrypted_10000000 WHERE value = $1 LIMIT 1" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1163, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_10000000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50000, + "Plan Width": 1163, + "Relation Name": "string_encrypted_10000000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 198371.0 + } + ], + "Startup Cost": 0.0, + "Total Cost": 3.97 + } + } + ], + "id": "EXACT/exact/eql_hash/10000000", + "indexes_used": [ + "string_encrypted_10000000_hash_index" + ], + "parameters": [ + { + "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "i": { + "c": "value", + "t": "string_encrypted_10000000" + }, + "v": 2 + } + ], + "query": "SELECT value FROM string_encrypted_10000000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1" + } + ], + "target_rows": "10000000" +} \ No newline at end of file diff --git a/results/query/exact_rows_10000.json b/results/query/exact_rows_10000.json index 8ed510a..adfb58a 100644 --- a/results/query/exact_rows_10000.json +++ b/results/query/exact_rows_10000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[199,398,597,796,995,1194,1393,1592,1791,1990],"measured_values":[84911958.0,167625292.0,263511833.0,320104458.0,450542166.0,497655167.0,594829209.0,671883375.0,744358292.0,879591500.0],"unit":"ns","throughput":[],"typical":{"estimate":427641.69935391244,"lower_bound":417920.90470154927,"upper_bound":437573.3251099691,"unit":"ns"},"mean":{"estimate":426766.6368088458,"lower_bound":418133.0344779453,"upper_bound":435766.49294249027,"unit":"ns"},"median":{"estimate":424365.2760678392,"lower_bound":416796.6222780569,"upper_bound":441393.3551088777,"unit":"ns"},"median_abs_dev":{"estimate":12100.605316599282,"lower_bound":1758.6388141715122,"upper_bound":27126.793157699634,"unit":"ns"},"slope":{"estimate":427641.69935391244,"lower_bound":417920.90470154927,"upper_bound":437573.3251099691,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[214,428,642,856,1070,1284,1498,1712,1926,2140],"measured_values":[87275375.0,172337666.0,341343000.0,367049458.0,472028375.0,560744083.0,668775750.0,705380541.0,813986875.0,911162167.0],"unit":"ns","throughput":[],"typical":{"estimate":429794.41722296394,"lower_bound":421656.12710887246,"upper_bound":443565.017280415,"unit":"ns"},"mean":{"estimate":435570.9149345424,"lower_bound":418232.655735425,"upper_bound":459997.2100474707,"unit":"ns"},"median":{"estimate":427286.4046728972,"lower_bound":412021.34404205607,"upper_bound":441581.1682799288,"unit":"ns"},"median_abs_dev":{"estimate":21591.6000703524,"lower_bound":4570.35131924943,"upper_bound":36736.43136854565,"unit":"ns"},"slope":{"estimate":429794.41722296394,"lower_bound":421656.12710887246,"upper_bound":443565.017280415,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[221,442,663,884,1105,1326,1547,1768,1989,2210],"measured_values":[94136083.0,193911292.0,270642209.0,339430792.0,459551791.0,531695417.0,560421792.0,737050334.0,832351667.0,896144916.0],"unit":"ns","throughput":[],"typical":{"estimate":404436.84900981374,"lower_bound":387589.97376916325,"upper_bound":415048.6628287802,"unit":"ns"},"mean":{"estimate":407682.94823780796,"lower_bound":394239.0358924082,"upper_bound":419684.9034158496,"unit":"ns"},"median":{"estimate":412046.216892911,"lower_bound":394733.4606334842,"upper_bound":421419.39988687786,"unit":"ns"},"median_abs_dev":{"estimate":13061.750827519321,"lower_bound":2362.9477495274796,"upper_bound":34058.92279397579,"unit":"ns"},"slope":{"estimate":404436.84900981374,"lower_bound":387589.97376916325,"upper_bound":415048.6628287802,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[218,436,654,872,1090,1308,1526,1744,1962,2180],"measured_values":[89855166.0,180286750.0,260995041.0,358812917.0,443732084.0,449782958.0,531816333.0,748331916.0,847915500.0,926995209.0],"unit":"ns","throughput":[],"typical":{"estimate":407441.7356606696,"lower_bound":374718.18888511346,"upper_bound":426329.1657072613,"unit":"ns"},"mean":{"estimate":402219.2504467016,"lower_bound":382333.15203964605,"upper_bound":418755.9963608563,"unit":"ns"},"median":{"estimate":411831.18176605506,"lower_bound":377798.5749017038,"upper_bound":425227.1600917431,"unit":"ns"},"median_abs_dev":{"estimate":19386.606133204245,"lower_bound":1960.08557712814,"upper_bound":44357.133955622645,"unit":"ns"},"slope":{"estimate":407441.7356606696,"lower_bound":374718.18888511346,"upper_bound":426329.1657072613,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[91169750.0,185783750.0,279599750.0,355242042.0,499289084.0,552492500.0,651093166.0,742019958.0,867189042.0,917842958.0],"unit":"ns","throughput":[],"typical":{"estimate":427098.9488465872,"lower_bound":419805.2296935464,"upper_bound":436112.147615552,"unit":"ns"},"mean":{"estimate":425532.5983007176,"lower_bound":418171.54167753854,"upper_bound":434090.21998586645,"unit":"ns"},"median":{"estimate":423845.5930365297,"lower_bound":418383.1811263318,"upper_bound":432346.22700587084,"unit":"ns"},"median_abs_dev":{"estimate":6018.376350389985,"lower_bound":882.8398072716531,"upper_bound":22618.305351869472,"unit":"ns"},"slope":{"estimate":427098.9488465872,"lower_bound":419805.2296935464,"upper_bound":436112.147615552,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[98133375.0,179057667.0,263332792.0,366414375.0,470580250.0,553263750.0,634259292.0,754238333.0,833210500.0,1008211875.0],"unit":"ns","throughput":[],"typical":{"estimate":432178.4177548479,"lower_bound":418240.6105542974,"upper_bound":446952.2575458556,"unit":"ns"},"mean":{"estimate":425414.825771001,"lower_bound":415572.1048674078,"upper_bound":436488.97362827975,"unit":"ns"},"median":{"estimate":421893.9941653983,"lower_bound":413544.35445205483,"upper_bound":438925.6278538813,"unit":"ns"},"median_abs_dev":{"estimate":12427.171052490059,"lower_bound":3301.495237239114,"upper_bound":30010.989506467857,"unit":"ns"},"slope":{"estimate":432178.4177548479,"lower_bound":418240.6105542974,"upper_bound":446952.2575458556,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[243,486,729,972,1215,1458,1701,1944,2187,2430],"measured_values":[97436875.0,191348375.0,283132917.0,384591292.0,489918167.0,557944625.0,663515833.0,760914291.0,940025584.0,966840375.0],"unit":"ns","throughput":[],"typical":{"estimate":401108.60236224683,"lower_bound":389894.48810599215,"upper_bound":414781.4798294667,"unit":"ns"},"mean":{"estimate":397384.5744289307,"lower_bound":390967.2304658534,"upper_bound":405912.9484268567,"unit":"ns"},"median":{"estimate":394695.4948559671,"lower_bound":389901.08101851854,"upper_bound":400974.7942386831,"unit":"ns"},"median_abs_dev":{"estimate":8080.776493574596,"lower_bound":2247.229174455613,"upper_bound":15126.011947385581,"unit":"ns"},"slope":{"estimate":401108.60236224683,"lower_bound":389894.48810599215,"upper_bound":414781.4798294667,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[233,466,699,932,1165,1398,1631,1864,2097,2330],"measured_values":[90047625.0,181978583.0,270625750.0,361790833.0,420159417.0,553405542.0,636361125.0,749697208.0,824459042.0,923880375.0],"unit":"ns","throughput":[],"typical":{"estimate":392902.4734072794,"lower_bound":384699.7780776662,"upper_bound":397381.57915422355,"unit":"ns"},"mean":{"estimate":389087.90959159343,"lower_bound":381717.33783478953,"upper_bound":394574.82853055384,"unit":"ns"},"median":{"estimate":390339.1065297363,"lower_bound":387161.3018597997,"upper_bound":395855.18025751074,"unit":"ns"},"median_abs_dev":{"estimate":5223.509301899284,"lower_bound":1272.8828667794917,"upper_bound":11893.854097783178,"unit":"ns"},"slope":{"estimate":392902.4734072794,"lower_bound":384699.7780776662,"upper_bound":397381.57915422355,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000","EXACT/exact_decrypt/eql_cast/10000","EXACT/exact/eql_hash/10000","EXACT/exact_decrypt/eql_hash/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_100000.json b/results/query/exact_rows_100000.json index f07550a..189853a 100644 --- a/results/query/exact_rows_100000.json +++ b/results/query/exact_rows_100000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[221,442,663,884,1105,1326,1547,1768,1989,2210],"measured_values":[104694792.0,187655375.0,291082667.0,367697792.0,478614583.0,554792584.0,607046208.0,732623125.0,809741959.0,934031709.0],"unit":"ns","throughput":[],"typical":{"estimate":414693.26328965154,"lower_bound":406301.34832245554,"upper_bound":423127.8083396735,"unit":"ns"},"mean":{"estimate":424133.9853363141,"lower_bound":412182.7918981182,"upper_bound":437818.62830388575,"unit":"ns"},"median":{"estimate":420517.1981146305,"lower_bound":411528.90673705377,"upper_bound":433135.3692307692,"unit":"ns"},"median_abs_dev":{"estimate":13903.654754371184,"lower_bound":2977.074304103391,"upper_bound":32420.076238003232,"unit":"ns"},"slope":{"estimate":414693.26328965154,"lower_bound":406301.34832245554,"upper_bound":423127.8083396735,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[215,430,645,860,1075,1290,1505,1720,1935,2150],"measured_values":[88791917.0,174156083.0,275185125.0,360527417.0,436277583.0,544592667.0,531539584.0,722045666.0,797484292.0,899944750.0],"unit":"ns","throughput":[],"typical":{"estimate":408670.0282331622,"lower_bound":388325.4759514902,"upper_bound":419216.31342954317,"unit":"ns"},"mean":{"estimate":409555.77868069394,"lower_bound":395550.86958471755,"upper_bound":418975.8229534883,"unit":"ns"},"median":{"estimate":415782.3069767442,"lower_bound":405839.61209302326,"upper_bound":420691.39244186046,"unit":"ns"},"median_abs_dev":{"estimate":7705.247044483542,"lower_bound":900.7079292417762,"upper_bound":17333.80121470535,"unit":"ns"},"slope":{"estimate":408670.0282331622,"lower_bound":388325.4759514902,"upper_bound":419216.31342954317,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[226,452,678,904,1130,1356,1582,1808,2034,2260],"measured_values":[88961083.0,180892958.0,274716458.0,361955416.0,424547209.0,444089542.0,602613125.0,732092958.0,831507750.0,1005565500.0],"unit":"ns","throughput":[],"typical":{"estimate":403680.6300770026,"lower_bound":371706.24840612104,"upper_bound":426012.67983565107,"unit":"ns"},"mean":{"estimate":394220.5500747998,"lower_bound":375567.6366529709,"upper_bound":410750.66445427726,"unit":"ns"},"median":{"estimate":400299.4092920354,"lower_bound":380918.53666245256,"upper_bound":406861.4375,"unit":"ns"},"median_abs_dev":{"estimate":11246.330982196123,"lower_bound":3078.898199542165,"upper_bound":46191.79998964398,"unit":"ns"},"slope":{"estimate":403680.6300770026,"lower_bound":371706.24840612104,"upper_bound":426012.67983565107,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[91820708.0,176940416.0,273376000.0,367707917.0,451000125.0,549027666.0,608749792.0,704326000.0,787731916.0,884615792.0],"unit":"ns","throughput":[],"typical":{"estimate":404642.46619225526,"lower_bound":401202.2422076633,"upper_bound":410905.64389907155,"unit":"ns"},"mean":{"estimate":409150.7845788939,"lower_bound":404070.0952609716,"upper_bound":414272.05217332573,"unit":"ns"},"median":{"estimate":407922.90639269404,"lower_bound":401797.5973617453,"upper_bound":417829.27397260274,"unit":"ns"},"median_abs_dev":{"estimate":12184.280387034332,"lower_bound":1453.6858892603773,"upper_bound":14054.729284839474,"unit":"ns"},"slope":{"estimate":404642.46619225526,"lower_bound":401202.2422076633,"upper_bound":410905.64389907155,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[218,436,654,872,1090,1308,1526,1744,1962,2180],"measured_values":[90512792.0,182458167.0,279856333.0,375187208.0,453473541.0,547814833.0,613563500.0,698689042.0,880557958.0,922802833.0],"unit":"ns","throughput":[],"typical":{"estimate":421631.2456570952,"lower_bound":407467.23016306694,"upper_bound":435809.8385656375,"unit":"ns"},"mean":{"estimate":420151.108914009,"lower_bound":412267.0817857143,"upper_bound":428776.3461175732,"unit":"ns"},"median":{"estimate":418650.3570336391,"lower_bound":409051.9192005242,"upper_bound":427914.8822629969,"unit":"ns"},"median_abs_dev":{"estimate":10317.576325496184,"lower_bound":2066.6762407862193,"upper_bound":23580.662793056785,"unit":"ns"},"slope":{"estimate":421631.2456570952,"lower_bound":407467.23016306694,"upper_bound":435809.8385656375,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[217,434,651,868,1085,1302,1519,1736,1953,2170],"measured_values":[89130042.0,176569583.0,263106416.0,355261375.0,432369500.0,474321125.0,507603792.0,679631541.0,794493417.0,884405542.0],"unit":"ns","throughput":[],"typical":{"estimate":390749.6947872404,"lower_bound":366759.07549131615,"upper_bound":405269.720949352,"unit":"ns"},"mean":{"estimate":393385.3029202326,"lower_bound":376904.1642774852,"upper_bound":405858.36127246544,"unit":"ns"},"median":{"estimate":405481.9930875576,"lower_bound":381399.58717357914,"upper_bound":408064.827764977,"unit":"ns"},"median_abs_dev":{"estimate":6716.795346075612,"lower_bound":585.022448646001,"upper_bound":31535.211169170358,"unit":"ns"},"slope":{"estimate":390749.6947872404,"lower_bound":366759.07549131615,"upper_bound":405269.720949352,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[221,442,663,884,1105,1326,1547,1768,1989,2210],"measured_values":[87260458.0,169942500.0,260332291.0,350202458.0,430390000.0,509154167.0,617165000.0,737354042.0,709403542.0,885056583.0],"unit":"ns","throughput":[],"typical":{"estimate":391020.88745372277,"lower_bound":372505.23123308725,"upper_bound":405810.12520203745,"unit":"ns"},"mean":{"estimate":391475.4473148747,"lower_bound":381813.60991367704,"upper_bound":399991.516949095,"unit":"ns"},"median":{"estimate":393750.87858220213,"lower_bound":384485.29411764705,"upper_bound":398943.11570782156,"unit":"ns"},"median_abs_dev":{"estimate":8835.888423629309,"lower_bound":2346.098175995517,"upper_bound":24144.2588103809,"unit":"ns"},"slope":{"estimate":391020.88745372277,"lower_bound":372505.23123308725,"upper_bound":405810.12520203745,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[229,458,687,916,1145,1374,1603,1832,2061,2290],"measured_values":[94972459.0,175307125.0,288406000.0,399471708.0,515747000.0,572108958.0,650823458.0,734043042.0,809935083.0,885856541.0],"unit":"ns","throughput":[],"typical":{"estimate":402610.6730335167,"lower_bound":393769.6848894828,"upper_bound":419671.138167636,"unit":"ns"},"mean":{"estimate":410671.95454044495,"lower_bound":398466.3299656114,"upper_bound":423740.58422769804,"unit":"ns"},"median":{"estimate":410365.15003119153,"lower_bound":392981.60262008733,"upper_bound":426243.2751091703,"unit":"ns"},"median_abs_dev":{"estimate":20067.124868518982,"lower_bound":4555.055022930725,"upper_bound":36883.7846756404,"unit":"ns"},"slope":{"estimate":402610.6730335167,"lower_bound":393769.6848894828,"upper_bound":419671.138167636,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/100000","EXACT/exact_decrypt/eql_cast/100000","EXACT/exact/eql_hash/100000","EXACT/exact_decrypt/eql_hash/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_1000000.json b/results/query/exact_rows_1000000.json index 0575507..cba8b26 100644 --- a/results/query/exact_rows_1000000.json +++ b/results/query/exact_rows_1000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[208,416,624,832,1040,1248,1456,1664,1872,2080],"measured_values":[108860042.0,176729166.0,283768000.0,355951833.0,574394708.0,579188584.0,603499459.0,683523875.0,769213458.0,841875041.0],"unit":"ns","throughput":[],"typical":{"estimate":426060.10857892106,"lower_bound":410594.23054534313,"upper_bound":461213.8914757995,"unit":"ns"},"mean":{"estimate":448808.96526614006,"lower_bound":421473.8367462225,"upper_bound":481385.084757326,"unit":"ns"},"median":{"estimate":426328.2241586539,"lower_bound":410904.625,"upper_bound":489060.9983974359,"unit":"ns"},"median_abs_dev":{"estimate":27529.859954071824,"lower_bound":2856.149297009555,"upper_bound":80708.4429253118,"unit":"ns"},"slope":{"estimate":426060.10857892106,"lower_bound":410594.23054534313,"upper_bound":461213.8914757995,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[217,434,651,868,1085,1302,1519,1736,1953,2170],"measured_values":[91823000.0,184374917.0,260460333.0,348898583.0,447062000.0,548887042.0,625513500.0,729196250.0,827173542.0,1048638709.0],"unit":"ns","throughput":[],"typical":{"estimate":434607.6232569274,"lower_bound":413225.6892915723,"upper_bound":459419.2797570108,"unit":"ns"},"mean":{"estimate":422225.54554312053,"lower_bound":411120.9682495336,"upper_bound":437667.24283410143,"unit":"ns"},"median":{"estimate":420808.0758448541,"lower_bound":406997.80126728106,"upper_bound":423987.2315668203,"unit":"ns"},"median_abs_dev":{"estimate":9479.95773976164,"lower_bound":1245.037240799417,"upper_bound":23943.49167411159,"unit":"ns"},"slope":{"estimate":434607.6232569274,"lower_bound":413225.6892915723,"upper_bound":459419.2797570108,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[80721167.0,173896042.0,252362833.0,358631000.0,417997875.0,486784125.0,598907708.0,693295625.0,845707375.0,774266417.0],"unit":"ns","throughput":[],"typical":{"estimate":386346.74587957497,"lower_bound":364207.1601744186,"upper_bound":410345.14301816165,"unit":"ns"},"mean":{"estimate":386269.3044406565,"lower_bound":374006.50714772724,"upper_bound":399155.60619318177,"unit":"ns"},"median":{"estimate":385634.5189393939,"lower_bound":368775.8522727273,"upper_bound":400726.59801136365,"unit":"ns"},"median_abs_dev":{"estimate":19601.769304499023,"lower_bound":4682.916690043449,"upper_bound":37475.60922349308,"unit":"ns"},"slope":{"estimate":386346.74587957497,"lower_bound":364207.1601744186,"upper_bound":410345.14301816165,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[233,466,699,932,1165,1398,1631,1864,2097,2330],"measured_values":[92472750.0,186507875.0,273935416.0,386471000.0,462517958.0,496764875.0,525899375.0,728224708.0,844217166.0,929606041.0],"unit":"ns","throughput":[],"typical":{"estimate":384900.1279861769,"lower_bound":359152.29440608673,"upper_bound":400219.5058027165,"unit":"ns"},"mean":{"estimate":387069.9838381361,"lower_bound":369377.23862865317,"upper_bound":400748.9168587267,"unit":"ns"},"median":{"estimate":396944.939055794,"lower_bound":373617.9209585121,"upper_bound":400777.92153075826,"unit":"ns"},"median_abs_dev":{"estimate":7922.3715872468165,"lower_bound":1552.129776435612,"upper_bound":33799.0503841959,"unit":"ns"},"slope":{"estimate":384900.1279861769,"lower_bound":359152.29440608673,"upper_bound":400219.5058027165,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[211,422,633,844,1055,1266,1477,1688,1899,2110],"measured_values":[86142666.0,205171625.0,284393875.0,373991958.0,542437125.0,511333500.0,579911000.0,711172834.0,782448250.0,888343791.0],"unit":"ns","throughput":[],"typical":{"estimate":422232.459284791,"lower_bound":409520.6501585482,"upper_bound":444806.9359810427,"unit":"ns"},"mean":{"estimate":435188.72402805986,"lower_bound":414275.1545849319,"upper_bound":459640.2660837,"unit":"ns"},"median":{"estimate":421163.46765402844,"lower_bound":407964.32332806743,"upper_bound":464653.55924170616,"unit":"ns"},"median_abs_dev":{"estimate":29074.90797362759,"lower_bound":6030.332910317761,"upper_bound":61002.88461011026,"unit":"ns"},"slope":{"estimate":422232.459284791,"lower_bound":409520.6501585482,"upper_bound":444806.9359810427,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[215,430,645,860,1075,1290,1505,1720,1935,2150],"measured_values":[85319708.0,176858042.0,288345333.0,351055667.0,453458666.0,537877625.0,635183958.0,692224417.0,792472833.0,840856833.0],"unit":"ns","throughput":[],"typical":{"estimate":407463.1278526125,"lower_bound":399035.1981602906,"upper_bound":419017.9842908458,"unit":"ns"},"mean":{"estimate":412731.4412264673,"lower_bound":404131.6816885658,"upper_bound":422555.0469052049,"unit":"ns"},"median":{"estimate":410422.2279069767,"lower_bound":402456.05639534886,"upper_bound":421822.01488372096,"unit":"ns"},"median_abs_dev":{"estimate":14355.984772560558,"lower_bound":2293.217543124437,"upper_bound":24619.19233651497,"unit":"ns"},"slope":{"estimate":407463.1278526125,"lower_bound":399035.1981602906,"upper_bound":419017.9842908458,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[222,444,666,888,1110,1332,1554,1776,1998,2220],"measured_values":[95866875.0,182268625.0,265284333.0,334231375.0,437484750.0,458928750.0,621606833.0,707735500.0,796745750.0,904789541.0],"unit":"ns","throughput":[],"typical":{"estimate":395061.63408213406,"lower_bound":378258.25240200304,"upper_bound":403348.51948672364,"unit":"ns"},"mean":{"estimate":396056.9326794652,"lower_bound":381626.9606573806,"upper_bound":408461.4978823466,"unit":"ns"},"median":{"estimate":398635.6825575576,"lower_bound":387355.7539414414,"upper_bound":407562.8563063063,"unit":"ns"},"median_abs_dev":{"estimate":9957.475676057331,"lower_bound":403.1607098094729,"upper_bound":34101.78353548822,"unit":"ns"},"slope":{"estimate":395061.63408213406,"lower_bound":378258.25240200304,"upper_bound":403348.51948672364,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[232,464,696,928,1160,1392,1624,1856,2088,2320],"measured_values":[88243208.0,207612666.0,278799042.0,395484208.0,478571250.0,556672417.0,648775167.0,735146083.0,843516791.0,925698750.0],"unit":"ns","throughput":[],"typical":{"estimate":402215.92814599193,"lower_bound":399140.24467804364,"upper_bound":407916.8365900383,"unit":"ns"},"mean":{"estimate":406558.61342450057,"lower_bound":396630.09316587984,"upper_bound":418335.3029898741,"unit":"ns"},"median":{"estimate":400240.8408764368,"lower_bound":397791.86872690887,"upper_bound":415075.7325191571,"unit":"ns"},"median_abs_dev":{"estimate":5849.9672928915925,"lower_bound":717.6021234669347,"upper_bound":29175.689513152243,"unit":"ns"},"slope":{"estimate":402215.92814599193,"lower_bound":399140.24467804364,"upper_bound":407916.8365900383,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/1000000","EXACT/exact_decrypt/eql_cast/1000000","EXACT/exact/eql_hash/1000000","EXACT/exact_decrypt/eql_hash/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_10000000.json b/results/query/exact_rows_10000000.json index 7036ccb..e0bf6e5 100644 --- a/results/query/exact_rows_10000000.json +++ b/results/query/exact_rows_10000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000000","iteration_count":[224,448,672,896,1120,1344,1568,1792,2016,2240],"measured_values":[96654125.0,178946250.0,266622584.0,352151958.0,470580167.0,548630459.0,639825958.0,805467750.0,866075834.0,1026258334.0],"unit":"ns","throughput":[],"typical":{"estimate":432368.9163961039,"lower_bound":410157.84346198157,"upper_bound":446327.12933920877,"unit":"ns"},"mean":{"estimate":419436.4000258645,"lower_bound":406735.0950063776,"upper_bound":433102.95513358316,"unit":"ns"},"median":{"estimate":414184.0250744048,"lower_bound":399433.59375,"upper_bound":439540.4396701389,"unit":"ns"},"median_abs_dev":{"estimate":24258.810376299192,"lower_bound":4749.40146099375,"upper_bound":37461.7359246087,"unit":"ns"},"slope":{"estimate":432368.9163961039,"lower_bound":410157.84346198157,"upper_bound":446327.12933920877,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000000","iteration_count":[214,428,642,856,1070,1284,1498,1712,1926,2140],"measured_values":[88835958.0,182720625.0,263516375.0,361714916.0,444229625.0,534401583.0,624336125.0,716998666.0,823793458.0,932038292.0],"unit":"ns","throughput":[],"typical":{"estimate":424324.67368612695,"lower_bound":416917.81146165566,"upper_bound":430160.5462172595,"unit":"ns"},"mean":{"estimate":420527.47222481837,"lower_bound":416333.62118899275,"upper_bound":425190.63780373835,"unit":"ns"},"median":{"estimate":417793.710864486,"lower_bound":415167.8738317757,"upper_bound":426917.3481308411,"unit":"ns"},"median_abs_dev":{"estimate":5517.388417467328,"lower_bound":834.6189167246205,"upper_bound":12397.708647817217,"unit":"ns"},"slope":{"estimate":424324.67368612695,"lower_bound":416917.81146165566,"upper_bound":430160.5462172595,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000000","iteration_count":[234,468,702,936,1170,1404,1638,1872,2106,2340],"measured_values":[95094458.0,189608041.0,264719125.0,390219041.0,471933000.0,552052500.0,637328417.0,796633666.0,888147416.0,1059527416.0],"unit":"ns","throughput":[],"typical":{"estimate":420960.0758130758,"lower_bound":398797.60028054455,"upper_bound":437594.6893306028,"unit":"ns"},"mean":{"estimate":409124.02131189796,"lower_bound":397063.83103467134,"upper_bound":422221.46082443016,"unit":"ns"},"median":{"estimate":405765.9797008547,"lower_bound":393199.7863247863,"upper_bound":421722.4197530864,"unit":"ns"},"median_abs_dev":{"estimate":21143.827785020876,"lower_bound":2644.7334286876517,"upper_bound":35318.57608848276,"unit":"ns"},"slope":{"estimate":420960.0758130758,"lower_bound":398797.60028054455,"upper_bound":437594.6893306028,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[94662458.0,175865375.0,261389125.0,361282959.0,459140333.0,527607000.0,612758916.0,713856000.0,779551292.0,962562834.0],"unit":"ns","throughput":[],"typical":{"estimate":410611.4104368359,"lower_bound":397646.0474657768,"upper_bound":425793.1,"unit":"ns"},"mean":{"estimate":408841.01900252525,"lower_bound":400639.50991161616,"upper_bound":418190.0660733586,"unit":"ns"},"median":{"estimate":402651.13636363635,"lower_bound":397869.0814393939,"upper_bound":420416.35852272727,"unit":"ns"},"median_abs_dev":{"estimate":10752.32521444896,"lower_bound":1345.542029975465,"upper_bound":24180.227223192476,"unit":"ns"},"slope":{"estimate":410611.4104368359,"lower_bound":397646.0474657768,"upper_bound":425793.1,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[87659791.0,183150958.0,280923917.0,356074625.0,443382666.0,564107208.0,673561000.0,711632541.0,829367917.0,943494625.0],"unit":"ns","throughput":[],"typical":{"estimate":420659.1896930342,"lower_bound":410588.26424158463,"upper_bound":428456.5603209687,"unit":"ns"},"mean":{"estimate":416485.52455429296,"lower_bound":408847.5372995896,"upper_bound":424291.1029545454,"unit":"ns"},"median":{"estimate":417562.4313131313,"lower_bound":403852.7032954545,"upper_bound":427353.94545454544,"unit":"ns"},"median_abs_dev":{"estimate":17962.393649853766,"lower_bound":1370.4334514767759,"upper_bound":22416.586628086632,"unit":"ns"},"slope":{"estimate":420659.1896930342,"lower_bound":410588.26424158463,"upper_bound":428456.5603209687,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[96807792.0,189640792.0,276539000.0,360274458.0,439090667.0,537887000.0,639866083.0,815004750.0,880072209.0,938338459.0],"unit":"ns","throughput":[],"typical":{"estimate":430610.5619244392,"lower_bound":413207.5996895787,"upper_bound":444583.6966673908,"unit":"ns"},"mean":{"estimate":425566.87135389616,"lower_bound":414574.67861904757,"upper_bound":437507.0519060606,"unit":"ns"},"median":{"estimate":422757.98310606065,"lower_bound":409402.79318181815,"upper_bound":440035.41818181815,"unit":"ns"},"median_abs_dev":{"estimate":21218.245472482766,"lower_bound":5935.815075072785,"upper_bound":32670.86645122616,"unit":"ns"},"slope":{"estimate":430610.5619244392,"lower_bound":413207.5996895787,"upper_bound":444583.6966673908,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000000","iteration_count":[229,458,687,916,1145,1374,1603,1832,2061,2290],"measured_values":[89731583.0,178744584.0,262831750.0,360068000.0,458324791.0,553676292.0,623562666.0,729353416.0,817719583.0,953888167.0],"unit":"ns","throughput":[],"typical":{"estimate":401381.42817444564,"lower_bound":393359.8212932275,"upper_bound":409376.4212820061,"unit":"ns"},"mean":{"estimate":396144.9364781313,"lower_bound":391059.25556597,"upper_bound":401946.62274747004,"unit":"ns"},"median":{"estimate":394922.9944201844,"lower_bound":390272.0174672489,"upper_bound":400542.70524017466,"unit":"ns"},"median_abs_dev":{"estimate":7421.630671995177,"lower_bound":2086.995772555436,"upper_bound":14625.144805941283,"unit":"ns"},"slope":{"estimate":401381.42817444564,"lower_bound":393359.8212932275,"upper_bound":409376.4212820061,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000000","iteration_count":[225,450,675,900,1125,1350,1575,1800,2025,2250],"measured_values":[87381208.0,178159166.0,271754792.0,346775584.0,434954792.0,535140292.0,610670000.0,776223833.0,835427041.0,957922708.0],"unit":"ns","throughput":[],"typical":{"estimate":411131.1177720058,"lower_bound":393317.84709020803,"upper_bound":421307.09807062906,"unit":"ns"},"mean":{"estimate":401246.5212731922,"lower_bound":392169.51302634925,"upper_bound":411571.18171481474,"unit":"ns"},"median":{"estimate":396154.73703703703,"lower_bound":387493.70311111107,"upper_bound":414171.55881481484,"unit":"ns"},"median_abs_dev":{"estimate":13310.788619597357,"lower_bound":1631.6047539665788,"upper_bound":27445.960047166413,"unit":"ns"},"slope":{"estimate":411131.1177720058,"lower_bound":393317.84709020803,"upper_bound":421307.09807062906,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000000","EXACT/exact_decrypt/eql_cast/10000000","EXACT/exact/eql_hash/10000000","EXACT/exact_decrypt/eql_hash/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/group_by_metadata_100000.json b/results/query/group_by_metadata_100000.json new file mode 100644 index 0000000..e24bdba --- /dev/null +++ b/results/query/group_by_metadata_100000.json @@ -0,0 +1,111 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((string_encrypted_100000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 93989, + "Plan Width": 36, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 100000, + "Plan Width": 32, + "Relation Name": "string_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 16759.0 + } + ], + "Startup Cost": 17009.0, + "Strategy": "Hashed", + "Total Cost": 18183.86 + } + ], + "Startup Cost": 19358.72, + "Strategy": "Plain", + "Total Cost": 19358.73 + } + } + ], + "id": "GROUP_BY/group_by/count_groups_encrypted/100000", + "indexes_used": [], + "parameters": [], + "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_100000 GROUP BY eql_v2.hmac_256(value)) g" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "string_plaintext_100000.value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 100000, + "Plan Width": 37, + "Planned Partitions": 4, + "Plans": [ + { + "Alias": "string_plaintext_100000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 100000, + "Plan Width": 33, + "Relation Name": "string_plaintext_100000", + "Startup Cost": 0.0, + "Total Cost": 1834.0 + } + ], + "Startup Cost": 10334.0, + "Strategy": "Hashed", + "Total Cost": 12896.5 + } + ], + "Startup Cost": 14146.5, + "Strategy": "Plain", + "Total Cost": 14146.51 + } + } + ], + "id": "GROUP_BY/group_by/count_groups_plaintext/100000", + "indexes_used": [], + "parameters": [], + "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_100000 GROUP BY value) g" + } + ], + "target_rows": "100000" +} \ No newline at end of file diff --git a/results/query/group_by_metadata_1000000.json b/results/query/group_by_metadata_1000000.json new file mode 100644 index 0000000..ef3ee56 --- /dev/null +++ b/results/query/group_by_metadata_1000000.json @@ -0,0 +1,129 @@ +{ + "scenarios": [ + { + "explain": [ + { + "JIT": { + "Functions": 6, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": false, + "Optimization": false + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((string_encrypted_1000000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 618824, + "Plan Width": 36, + "Planned Partitions": 16, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 999482, + "Plan Width": 32, + "Relation Name": "string_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 167309.52 + } + ], + "Startup Cost": 244457.04, + "Strategy": "Hashed", + "Total Cost": 265857.13 + } + ], + "Startup Cost": 273592.43, + "Strategy": "Plain", + "Total Cost": 273592.44 + } + } + ], + "id": "GROUP_BY/group_by/count_groups_encrypted/1000000", + "indexes_used": [], + "parameters": [], + "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_1000000 GROUP BY eql_v2.hmac_256(value)) g" + }, + { + "explain": [ + { + "JIT": { + "Functions": 5, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": false, + "Optimization": false + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "string_plaintext_1000000.value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 1000000, + "Plan Width": 37, + "Planned Partitions": 16, + "Plans": [ + { + "Alias": "string_plaintext_1000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1000000, + "Plan Width": 33, + "Relation Name": "string_plaintext_1000000", + "Startup Cost": 0.0, + "Total Cost": 18334.0 + } + ], + "Startup Cost": 103334.0, + "Strategy": "Hashed", + "Total Cost": 128959.0 + } + ], + "Startup Cost": 141459.0, + "Strategy": "Plain", + "Total Cost": 141459.01 + } + } + ], + "id": "GROUP_BY/group_by/count_groups_plaintext/1000000", + "indexes_used": [], + "parameters": [], + "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_1000000 GROUP BY value) g" + } + ], + "target_rows": "1000000" +} \ No newline at end of file diff --git a/results/query/group_by_metadata_10000000.json b/results/query/group_by_metadata_10000000.json new file mode 100644 index 0000000..fc0a24a --- /dev/null +++ b/results/query/group_by_metadata_10000000.json @@ -0,0 +1,169 @@ +{ + "scenarios": [ + { + "explain": [ + { + "JIT": { + "Functions": 6, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": true, + "Optimization": true + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((string_encrypted_10000000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 4273344, + "Plan Width": 36, + "Planned Partitions": 128, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 10000000, + "Plan Width": 32, + "Relation Name": "string_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 1673105.0 + } + ], + "Startup Cost": 2444980.0, + "Strategy": "Hashed", + "Total Cost": 2635115.55 + } + ], + "Startup Cost": 2688532.35, + "Strategy": "Plain", + "Total Cost": 2688532.36 + } + } + ], + "id": "GROUP_BY/group_by/count_groups_encrypted/10000000", + "indexes_used": [], + "parameters": [], + "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_10000000 GROUP BY eql_v2.hmac_256(value)) g" + }, + { + "explain": [ + { + "JIT": { + "Functions": 9, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": true, + "Optimization": true + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "string_plaintext_10000000.value" + ], + "Node Type": "Group", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 20000040, + "Plan Width": 37, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 16666700, + "Plan Width": 33, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "string_plaintext_10000000.value" + ], + "Node Type": "Group", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 8333350, + "Plan Width": 33, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 8333350, + "Plan Width": 33, + "Plans": [ + { + "Alias": "string_plaintext_10000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 8333350, + "Plan Width": 33, + "Relation Name": "string_plaintext_10000000", + "Startup Cost": 0.0, + "Total Cost": 250000.5 + } + ], + "Sort Key": [ + "string_plaintext_10000000.value" + ], + "Startup Cost": 1663673.46, + "Total Cost": 1684506.84 + } + ], + "Startup Cost": 1663673.46, + "Total Cost": 1705340.21 + } + ], + "Startup Cost": 1664673.49, + "Total Cost": 3630090.96, + "Workers Planned": 2 + } + ], + "Startup Cost": 1664673.49, + "Total Cost": 3671757.71 + } + ], + "Startup Cost": 3921758.21, + "Strategy": "Plain", + "Total Cost": 3921758.22 + } + } + ], + "id": "GROUP_BY/group_by/count_groups_plaintext/10000000", + "indexes_used": [], + "parameters": [], + "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_10000000 GROUP BY value) g" + } + ], + "target_rows": "10000000" +} \ No newline at end of file diff --git a/results/query/group_by_rows_10000.json b/results/query/group_by_rows_10000.json index 452ea2a..64af36c 100644 --- a/results/query/group_by_rows_10000.json +++ b/results/query/group_by_rows_10000.json @@ -1,3 +1,3 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_10000","iteration_count":[17,34,51,68,85,102,119,136,153,170],"measured_values":[100063333.0,186215208.0,279670041.0,363662375.0,494079875.0,596129917.0,739891834.0,817638792.0,807396834.0,872789417.0],"unit":"ns","throughput":[],"typical":{"estimate":5581077.32605042,"lower_bound":5293171.383477981,"upper_bound":5974715.418699187,"unit":"ns"},"mean":{"estimate":5649260.131638655,"lower_bound":5443832.438697479,"upper_bound":5855273.308128851,"unit":"ns"},"median":{"estimate":5648215.352941176,"lower_bound":5347976.102941177,"upper_bound":5928230.446078431,"unit":"ns"},"median_abs_dev":{"estimate":398895.23444907577,"lower_bound":54392.14523434639,"upper_bound":549051.6593935613,"unit":"ns"},"slope":{"estimate":5581077.32605042,"lower_bound":5293171.383477981,"upper_bound":5974715.418699187,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_10000","iteration_count":[29,58,87,116,145,174,203,232,261,290],"measured_values":[78693792.0,174495750.0,248799292.0,334960916.0,433564666.0,571137625.0,661864333.0,709607416.0,761953500.0,825598334.0],"unit":"ns","throughput":[],"typical":{"estimate":3003318.442543663,"lower_bound":2899000.5686947103,"upper_bound":3151438.241352481,"unit":"ns"},"mean":{"estimate":2982730.47817734,"lower_bound":2880505.559425287,"upper_bound":3091419.4216584563,"unit":"ns"},"median":{"estimate":2954731.606896552,"lower_bound":2859761.9770114943,"upper_bound":3134481.4236453203,"unit":"ns"},"median_abs_dev":{"estimate":147437.65710314785,"lower_bound":30173.35319810922,"upper_bound":306545.80025703466,"unit":"ns"},"slope":{"estimate":3003318.442543663,"lower_bound":2899000.5686947103,"upper_bound":3151438.241352481,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_10000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[95077583.0,172090834.0,265313166.0,366995625.0,438507917.0,529978583.0,676661875.0,758434792.0,813326292.0,901405500.0],"unit":"ns","throughput":[],"typical":{"estimate":4573207.197532468,"lower_bound":4471676.503278612,"upper_bound":4689201.512845333,"unit":"ns"},"mean":{"estimate":4546607.223130953,"lower_bound":4444649.737580357,"upper_bound":4653365.873632441,"unit":"ns"},"median":{"estimate":4512753.45,"lower_bound":4403482.635,"upper_bound":4740217.45,"unit":"ns"},"median_abs_dev":{"estimate":166006.3768192982,"lower_bound":27284.97672459461,"upper_bound":302377.27597672935,"unit":"ns"},"slope":{"estimate":4573207.197532468,"lower_bound":4471676.503278612,"upper_bound":4689201.512845333,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_10000","iteration_count":[35,70,105,140,175,210,245,280,315,350],"measured_values":[92137083.0,167581083.0,254126458.0,352953584.0,458147750.0,513583583.0,621622750.0,694217542.0,781033958.0,882452875.0],"unit":"ns","throughput":[],"typical":{"estimate":2503351.923191095,"lower_bound":2476122.120426632,"upper_bound":2533048.11805752,"unit":"ns"},"mean":{"estimate":2504882.6708730157,"lower_bound":2460385.454452381,"upper_bound":2551589.9963492057,"unit":"ns"},"median":{"estimate":2500284.9555555554,"lower_bound":2445636.1095238095,"upper_bound":2569640.5357142854,"unit":"ns"},"median_abs_dev":{"estimate":67902.78580448443,"lower_bound":11963.607507603243,"upper_bound":143503.3189223061,"unit":"ns"},"slope":{"estimate":2503351.923191095,"lower_bound":2476122.120426632,"upper_bound":2533048.11805752,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/10000","GROUP_BY/group_by/count_groups_plaintext/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_100000.json b/results/query/group_by_rows_100000.json index cabb242..3653462 100644 --- a/results/query/group_by_rows_100000.json +++ b/results/query/group_by_rows_100000.json @@ -1,3 +1,3 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[128469042.0,264770875.0,391580209.0,531056416.0,651978666.0,797658792.0,1012241417.0,1050300792.0,1187299000.0,1349874542.0],"unit":"ns","throughput":[],"typical":{"estimate":67110851.74025974,"lower_bound":65773267.27302722,"upper_bound":68930390.97605634,"unit":"ns"},"mean":{"estimate":66514363.30293651,"lower_bound":65472008.10333333,"upper_bound":67974507.12714286,"unit":"ns"},"median":{"estimate":66076887.152777776,"lower_bound":65263368.166666664,"upper_bound":66937889.55,"unit":"ns"},"median_abs_dev":{"estimate":924109.4850021098,"lower_bound":206709.46275517344,"upper_bound":2214296.357413374,"unit":"ns"},"slope":{"estimate":67110851.74025974,"lower_bound":65773267.27302722,"upper_bound":68930390.97605634,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[100951833.0,202872250.0,286856958.0,367536166.0,477165250.0,593415667.0,667878042.0,801233125.0,870467542.0,995142208.0],"unit":"ns","throughput":[],"typical":{"estimate":32601189.06926407,"lower_bound":31972674.162892133,"upper_bound":33042398.897330254,"unit":"ns"},"mean":{"estimate":32534159.090886243,"lower_bound":31917737.314986445,"upper_bound":33112239.30283069,"unit":"ns"},"median":{"estimate":32603537.824074075,"lower_bound":31811016.666666668,"upper_bound":33411008.96666667,"unit":"ns"},"median_abs_dev":{"estimate":1166581.4727265388,"lower_bound":56768.329392158324,"upper_bound":1811430.6766692896,"unit":"ns"},"slope":{"estimate":32601189.06926407,"lower_bound":31972674.162892133,"upper_bound":33042398.897330254,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[131286833.0,263602250.0,415800292.0,568196959.0,673966792.0,798272459.0,954124791.0,1060360458.0,1213949083.0,1344546875.0],"unit":"ns","throughput":[],"typical":{"estimate":67364826.56753246,"lower_bound":66837911.505813695,"upper_bound":68092186.61750242,"unit":"ns"},"mean":{"estimate":67488129.054127,"lower_bound":66588632.902738094,"upper_bound":68536485.2322113,"unit":"ns"},"median":{"estimate":67312011.475,"lower_bound":66211633.70833333,"upper_bound":68370832.19444445,"unit":"ns"},"median_abs_dev":{"estimate":1393082.1890053456,"lower_bound":185455.68172000718,"upper_bound":2556849.2280818447,"unit":"ns"},"slope":{"estimate":67364826.56753246,"lower_bound":66837911.505813695,"upper_bound":68092186.61750242,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[85279875.0,169874667.0,252936000.0,351706333.0,442164750.0,535677167.0,604400625.0,750451916.0,826759958.0,874071250.0],"unit":"ns","throughput":[],"typical":{"estimate":29810840.794805195,"lower_bound":29057800.70096022,"upper_bound":30535375.522130966,"unit":"ns"},"mean":{"estimate":29319568.268915344,"lower_bound":28755931.097222216,"upper_bound":29949585.44351852,"unit":"ns"},"median":{"estimate":29222284.708333332,"lower_bound":28426625.0,"upper_bound":30049194.592592593,"unit":"ns"},"median_abs_dev":{"estimate":988314.1975705829,"lower_bound":253481.35299980734,"upper_bound":1711138.819748992,"unit":"ns"},"slope":{"estimate":29810840.794805195,"lower_bound":29057800.70096022,"upper_bound":30535375.522130966,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/100000","GROUP_BY/group_by/count_groups_plaintext/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_1000000.json b/results/query/group_by_rows_1000000.json index 669535c..873a07c 100644 --- a/results/query/group_by_rows_1000000.json +++ b/results/query/group_by_rows_1000000.json @@ -1,3 +1,3 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[802166417.0,794960584.0,827152542.0,795630875.0,805123125.0,928408709.0,814386458.0,829157625.0,866151375.0,829016625.0],"unit":"ns","throughput":[],"typical":{"estimate":829215433.5,"lower_bound":808432531.705,"upper_bound":855526027.4525,"unit":"ns"},"mean":{"estimate":829215433.5,"lower_bound":808432531.705,"upper_bound":855526027.4525,"unit":"ns"},"median":{"estimate":820769500.0,"lower_bound":800377000.0,"upper_bound":847584000.0,"unit":"ns"},"median_abs_dev":{"estimate":25389122.764652967,"lower_bound":1486368.001511693,"upper_bound":50099122.07886279,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[476886291.0,1003313917.0,429250250.0,1041395833.0,432972791.0,1014093166.0,421124209.0,1017094792.0,420909333.0,1020605000.0],"unit":"ns","throughput":[],"typical":{"estimate":727764558.2,"lower_bound":549563733.1,"upper_bound":905022818.8174999,"unit":"ns"},"mean":{"estimate":727764558.2,"lower_bound":549563733.1,"upper_bound":905022818.8174999,"unit":"ns"},"median":{"estimate":740100104.0,"lower_bound":427048500.0,"upper_bound":1017349083.0,"unit":"ns"},"median_abs_dev":{"estimate":431288795.6555933,"lower_bound":5204234.288406372,"upper_bound":440679151.71098113,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[819699458.0,788979959.0,817649666.0,804854459.0,802532333.0,793269458.0,781540125.0,769183250.0,773398291.0,778061750.0],"unit":"ns","throughput":[],"typical":{"estimate":792916874.9,"lower_bound":782620416.5,"upper_bound":803568750.09,"unit":"ns"},"mean":{"estimate":792916874.9,"lower_bound":782620416.5,"upper_bound":803568750.09,"unit":"ns"},"median":{"estimate":791124708.5,"lower_bound":777469208.0,"upper_bound":810090999.5,"unit":"ns"},"median_abs_dev":{"estimate":19861434.829089046,"lower_bound":5515148.846286535,"upper_bound":30597156.21549189,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_1000000","iteration_count":[2,2,2,2,2,2,2,2,2,2],"measured_values":[848456250.0,897164750.0,868287750.0,824307208.0,836952250.0,825406958.0,822174000.0,836013833.0,828611583.0,834499292.0],"unit":"ns","throughput":[],"typical":{"estimate":421093693.7,"lower_bound":415049940.52625,"upper_bound":428815079.02875,"unit":"ns"},"mean":{"estimate":421093693.7,"lower_bound":415049940.52625,"upper_bound":428815079.02875,"unit":"ns"},"median":{"estimate":417628281.25,"lower_bound":412703479.0,"upper_bound":426310000.0,"unit":"ns"},"median_abs_dev":{"estimate":7709134.016485512,"lower_bound":909188.866558671,"upper_bound":15893765.272629261,"unit":"ns"},"slope":null,"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/1000000","GROUP_BY/group_by/count_groups_plaintext/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_10000000.json b/results/query/group_by_rows_10000000.json new file mode 100644 index 0000000..7dadad5 --- /dev/null +++ b/results/query/group_by_rows_10000000.json @@ -0,0 +1,3 @@ +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[11580219875.0,11624474709.0,11711958250.0,15689279250.0,11255924417.0,10465605375.0,10513539833.0,10785942291.0,10458338333.0,10702096667.0],"unit":"ns","throughput":[],"typical":{"estimate":11478737900.0,"lower_bound":10784368352.705,"upper_bound":12515877486.799992,"unit":"ns"},"mean":{"estimate":11478737900.0,"lower_bound":10784368352.705,"upper_bound":12515877486.799992,"unit":"ns"},"median":{"estimate":11020933354.0,"lower_bound":10513539833.0,"upper_bound":11646089062.5,"unit":"ns"},"median_abs_dev":{"estimate":826263714.1808867,"lower_bound":62154759.96773243,"upper_bound":1441682623.630017,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[23916872417.0,22643033917.0,22567710833.0,23558773958.0,25181489792.0,23364377500.0,23214148334.0,25178612000.0,23506779500.0,23157295250.0],"unit":"ns","throughput":[],"typical":{"estimate":23628909350.1,"lower_bound":23130622880.309998,"upper_bound":24194394247.602497,"unit":"ns"},"mean":{"estimate":23628909350.1,"lower_bound":23130622880.309998,"upper_bound":24194394247.602497,"unit":"ns"},"median":{"estimate":23435578500.0,"lower_bound":22928591125.5,"upper_bound":24368692979.0,"unit":"ns"},"median_abs_dev":{"estimate":563074543.9005286,"lower_bound":111364878.77867818,"upper_bound":1479337575.4470081,"unit":"ns"},"slope":null,"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/10000000","GROUP_BY/group_by/count_groups_plaintext/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/match_metadata_10000.json b/results/query/match_metadata_10000.json index 4d88a48..3ae4786 100644 --- a/results/query/match_metadata_10000.json +++ b/results/query/match_metadata_10000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,453,461,1033,1393,1554}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,91,461,1393}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,453,461,1033,1393,1554}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,91,461,1393}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.73 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 91, + 1033, + 1554, 453, + 91, 461, - 1033, - 1393, - 1554 + 1393 ], "i": { "c": "value", @@ -87,7 +87,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1057,1018,998,1574,895,1751,710,1031,682,587,1845,1637,1760,421,2028,1453,1109,1068,830,1183,1496,582,1143,1735,792,1500,1200,1596,61,865}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,1500,1574,1596,1183,865,710,1637,998,1496,61,1735,587,1031,895,1068,1453,1751,1143,421,1200,2028,792,582,1109,1057,682,1018,830,1760}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -98,7 +98,7 @@ "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1057,1018,998,1574,895,1751,710,1031,682,587,1845,1637,1760,421,2028,1453,1109,1068,830,1183,1496,582,1143,1735,792,1500,1200,1596,61,865}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,1500,1574,1596,1183,865,710,1637,998,1496,61,1735,587,1031,895,1068,1453,1751,1143,421,1200,2028,792,582,1109,1057,682,1018,830,1760}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -116,36 +116,36 @@ "parameters": [ { "bf": [ - 1057, - 1018, - 998, + 1845, + 1500, 1574, - 895, - 1751, + 1596, + 1183, + 865, 710, - 1031, - 682, - 587, - 1845, 1637, - 1760, + 998, + 1496, + 61, + 1735, + 587, + 1031, + 895, + 1068, + 1453, + 1751, + 1143, 421, + 1200, 2028, - 1453, + 792, + 582, 1109, - 1068, + 1057, + 682, + 1018, 830, - 1183, - 1496, - 582, - 1143, - 1735, - 792, - 1500, - 1200, - 1596, - 61, - 865 + 1760 ], "i": { "c": "value", @@ -177,7 +177,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1500,1068,865,1760,682,710,1453,1845,1735,1018,2028,1143,421,1200,1496,1057,1031,895,792,830,1751,1574,1596,998,587,61,1183,1637,1109,582}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{865,998,1735,1018,1751,1760,1031,1637,1057,710,1496,1200,587,895,1453,830,582,1596,1109,421,1143,61,792,1574,1845,2028,1183,1068,1500,682}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -188,7 +188,7 @@ "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1500,1068,865,1760,682,710,1453,1845,1735,1018,2028,1143,421,1200,1496,1057,1031,895,792,830,1751,1574,1596,998,587,61,1183,1637,1109,582}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{865,998,1735,1018,1751,1760,1031,1637,1057,710,1496,1200,587,895,1453,830,582,1596,1109,421,1143,61,792,1574,1845,2028,1183,1068,1500,682}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -206,36 +206,36 @@ "parameters": [ { "bf": [ - 1500, - 1068, 865, - 1760, - 682, - 710, - 1453, - 1845, + 998, 1735, 1018, - 2028, - 1143, - 421, - 1200, - 1496, - 1057, + 1751, + 1760, 1031, + 1637, + 1057, + 710, + 1496, + 1200, + 587, 895, - 792, + 1453, 830, - 1751, - 1574, + 582, 1596, - 998, - 587, + 1109, + 421, + 1143, 61, + 792, + 1574, + 1845, + 2028, 1183, - 1637, - 1109, - 582 + 1068, + 1500, + 682 ], "i": { "c": "value", diff --git a/results/query/match_metadata_100000.json b/results/query/match_metadata_100000.json new file mode 100644 index 0000000..5612acb --- /dev/null +++ b/results/query/match_metadata_100000.json @@ -0,0 +1,251 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,91,453,1033,461,1393}'::smallint[])", + "Index Name": "string_encrypted_100000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 93.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,91,453,1033,461,1393}'::smallint[])", + "Relation Name": "string_encrypted_100000", + "Startup Cost": 93.35, + "Total Cost": 97.86 + } + ], + "Startup Cost": 93.35, + "Total Cost": 97.86 + } + } + ], + "id": "MATCH/match/eql_cast_firstname/100000", + "indexes_used": [ + "string_encrypted_100000_gin_index" + ], + "parameters": [ + { + "bf": [ + 1554, + 91, + 453, + 1033, + 461, + 1393 + ], + "i": { + "c": "value", + "t": "string_encrypted_100000" + }, + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE value LIKE $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1057,1845,582,1018,587,1031,1735,1453,1496,421,1183,710,1500,1760,682,830,1751,1596,998,2028,1637,61,1068,792,1574,895,1143,1200,865,1109}'::smallint[])", + "Index Name": "string_encrypted_100000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 454.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1057,1845,582,1018,587,1031,1735,1453,1496,421,1183,710,1500,1760,682,830,1751,1596,998,2028,1637,61,1068,792,1574,895,1143,1200,865,1109}'::smallint[])", + "Relation Name": "string_encrypted_100000", + "Startup Cost": 454.35, + "Total Cost": 458.86 + } + ], + "Startup Cost": 454.35, + "Total Cost": 458.86 + } + } + ], + "id": "MATCH/match/eql_cast_lastname/100000", + "indexes_used": [ + "string_encrypted_100000_gin_index" + ], + "parameters": [ + { + "bf": [ + 1057, + 1845, + 582, + 1018, + 587, + 1031, + 1735, + 1453, + 1496, + 421, + 1183, + 710, + 1500, + 1760, + 682, + 830, + 1751, + 1596, + 998, + 2028, + 1637, + 61, + 1068, + 792, + 1574, + 895, + 1143, + 1200, + 865, + 1109 + ], + "i": { + "c": "value", + "t": "string_encrypted_100000" + }, + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE value LIKE $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{61,1760,1453,2028,865,1500,998,792,1031,1735,1068,1496,682,1109,1637,1143,895,587,421,1845,1596,830,582,1057,710,1018,1183,1574,1200,1751}'::smallint[])", + "Index Name": "string_encrypted_100000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 454.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{61,1760,1453,2028,865,1500,998,792,1031,1735,1068,1496,682,1109,1637,1143,895,587,421,1845,1596,830,582,1057,710,1018,1183,1574,1200,1751}'::smallint[])", + "Relation Name": "string_encrypted_100000", + "Startup Cost": 454.35, + "Total Cost": 458.86 + } + ], + "Startup Cost": 454.35, + "Total Cost": 458.86 + } + } + ], + "id": "MATCH/match/eql_bloom/100000", + "indexes_used": [ + "string_encrypted_100000_gin_index" + ], + "parameters": [ + { + "bf": [ + 61, + 1760, + 1453, + 2028, + 865, + 1500, + 998, + 792, + 1031, + 1735, + 1068, + 1496, + 682, + 1109, + 1637, + 1143, + 895, + 587, + 421, + 1845, + 1596, + 830, + 582, + 1057, + 710, + 1018, + 1183, + 1574, + 1200, + 1751 + ], + "i": { + "c": "value", + "t": "string_encrypted_100000" + }, + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10" + } + ], + "target_rows": "100000" +} \ No newline at end of file diff --git a/results/query/match_metadata_1000000.json b/results/query/match_metadata_1000000.json new file mode 100644 index 0000000..06bcc5d --- /dev/null +++ b/results/query/match_metadata_1000000.json @@ -0,0 +1,251 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,461,91,1393}'::smallint[])", + "Index Name": "string_encrypted_1000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 307.85 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,461,91,1393}'::smallint[])", + "Relation Name": "string_encrypted_1000000", + "Startup Cost": 307.85, + "Total Cost": 312.36 + } + ], + "Startup Cost": 307.85, + "Total Cost": 312.36 + } + } + ], + "id": "MATCH/match/eql_cast_firstname/1000000", + "indexes_used": [ + "string_encrypted_1000000_gin_index" + ], + "parameters": [ + { + "bf": [ + 1033, + 1554, + 453, + 461, + 91, + 1393 + ], + "i": { + "c": "value", + "t": "string_encrypted_1000000" + }, + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE value LIKE $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,682,830,1735,1031,1018,865,1637,1453,61,1183,421,1760,1143,587,710,792,1596,582,1068,1500,2028,1109,1751,1574,1496,1057,895,998,1200}'::smallint[])", + "Index Name": "string_encrypted_1000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 1530.98 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,682,830,1735,1031,1018,865,1637,1453,61,1183,421,1760,1143,587,710,792,1596,582,1068,1500,2028,1109,1751,1574,1496,1057,895,998,1200}'::smallint[])", + "Relation Name": "string_encrypted_1000000", + "Startup Cost": 1530.98, + "Total Cost": 1535.49 + } + ], + "Startup Cost": 1530.98, + "Total Cost": 1535.49 + } + } + ], + "id": "MATCH/match/eql_cast_lastname/1000000", + "indexes_used": [ + "string_encrypted_1000000_gin_index" + ], + "parameters": [ + { + "bf": [ + 1845, + 682, + 830, + 1735, + 1031, + 1018, + 865, + 1637, + 1453, + 61, + 1183, + 421, + 1760, + 1143, + 587, + 710, + 792, + 1596, + 582, + 1068, + 1500, + 2028, + 1109, + 1751, + 1574, + 1496, + 1057, + 895, + 998, + 1200 + ], + "i": { + "c": "value", + "t": "string_encrypted_1000000" + }, + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE value LIKE $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{2028,865,421,587,1496,1057,582,682,1143,895,710,1751,1500,1031,1760,1596,998,1574,1068,1735,1109,61,1200,1183,1637,792,830,1018,1453,1845}'::smallint[])", + "Index Name": "string_encrypted_1000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 1530.98 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{2028,865,421,587,1496,1057,582,682,1143,895,710,1751,1500,1031,1760,1596,998,1574,1068,1735,1109,61,1200,1183,1637,792,830,1018,1453,1845}'::smallint[])", + "Relation Name": "string_encrypted_1000000", + "Startup Cost": 1530.98, + "Total Cost": 1535.49 + } + ], + "Startup Cost": 1530.98, + "Total Cost": 1535.49 + } + } + ], + "id": "MATCH/match/eql_bloom/1000000", + "indexes_used": [ + "string_encrypted_1000000_gin_index" + ], + "parameters": [ + { + "bf": [ + 2028, + 865, + 421, + 587, + 1496, + 1057, + 582, + 682, + 1143, + 895, + 710, + 1751, + 1500, + 1031, + 1760, + 1596, + 998, + 1574, + 1068, + 1735, + 1109, + 61, + 1200, + 1183, + 1637, + 792, + 830, + 1018, + 1453, + 1845 + ], + "i": { + "c": "value", + "t": "string_encrypted_1000000" + }, + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10" + } + ], + "target_rows": "1000000" +} \ No newline at end of file diff --git a/results/query/match_metadata_10000000.json b/results/query/match_metadata_10000000.json new file mode 100644 index 0000000..7470849 --- /dev/null +++ b/results/query/match_metadata_10000000.json @@ -0,0 +1,251 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,1554,461,1393,453}'::smallint[])", + "Index Name": "string_encrypted_10000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 2258.97 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,1554,461,1393,453}'::smallint[])", + "Relation Name": "string_encrypted_10000000", + "Startup Cost": 2258.97, + "Total Cost": 2263.48 + } + ], + "Startup Cost": 2258.97, + "Total Cost": 2263.48 + } + } + ], + "id": "MATCH/match/eql_cast_firstname/10000000", + "indexes_used": [ + "string_encrypted_10000000_gin_index" + ], + "parameters": [ + { + "bf": [ + 1033, + 91, + 1554, + 461, + 1393, + 453 + ], + "i": { + "c": "value", + "t": "string_encrypted_10000000" + }, + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE value LIKE $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1143,582,1496,865,682,1183,421,2028,1500,61,998,710,1845,1018,587,1031,1574,1735,1637,1109,1453,1760,1596,792,830,1200,1751,1057,1068,895}'::smallint[])", + "Index Name": "string_encrypted_10000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 11294.85 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1143,582,1496,865,682,1183,421,2028,1500,61,998,710,1845,1018,587,1031,1574,1735,1637,1109,1453,1760,1596,792,830,1200,1751,1057,1068,895}'::smallint[])", + "Relation Name": "string_encrypted_10000000", + "Startup Cost": 11294.85, + "Total Cost": 11299.36 + } + ], + "Startup Cost": 11294.85, + "Total Cost": 11299.36 + } + } + ], + "id": "MATCH/match/eql_cast_lastname/10000000", + "indexes_used": [ + "string_encrypted_10000000_gin_index" + ], + "parameters": [ + { + "bf": [ + 1143, + 582, + 1496, + 865, + 682, + 1183, + 421, + 2028, + 1500, + 61, + 998, + 710, + 1845, + 1018, + 587, + 1031, + 1574, + 1735, + 1637, + 1109, + 1453, + 1760, + 1596, + 792, + 830, + 1200, + 1751, + 1057, + 1068, + 895 + ], + "i": { + "c": "value", + "t": "string_encrypted_10000000" + }, + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE value LIKE $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1453,830,1057,1500,865,1637,792,1143,682,1200,895,1018,61,1574,1109,1496,1183,1845,2028,998,1760,1068,710,421,587,1596,1031,1735,1751,582}'::smallint[])", + "Index Name": "string_encrypted_10000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 11294.85 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1453,830,1057,1500,865,1637,792,1143,682,1200,895,1018,61,1574,1109,1496,1183,1845,2028,998,1760,1068,710,421,587,1596,1031,1735,1751,582}'::smallint[])", + "Relation Name": "string_encrypted_10000000", + "Startup Cost": 11294.85, + "Total Cost": 11299.36 + } + ], + "Startup Cost": 11294.85, + "Total Cost": 11299.36 + } + } + ], + "id": "MATCH/match/eql_bloom/10000000", + "indexes_used": [ + "string_encrypted_10000000_gin_index" + ], + "parameters": [ + { + "bf": [ + 1453, + 830, + 1057, + 1500, + 865, + 1637, + 792, + 1143, + 682, + 1200, + 895, + 1018, + 61, + 1574, + 1109, + 1496, + 1183, + 1845, + 2028, + 998, + 1760, + 1068, + 710, + 421, + 587, + 1596, + 1031, + 1735, + 1751, + 582 + ], + "i": { + "c": "value", + "t": "string_encrypted_10000000" + }, + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10" + } + ], + "target_rows": "10000000" +} \ No newline at end of file diff --git a/results/query/match_rows_10000.json b/results/query/match_rows_10000.json index 0716433..bc4d447 100644 --- a/results/query/match_rows_10000.json +++ b/results/query/match_rows_10000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[146,292,438,584,730,876,1022,1168,1314,1460],"measured_values":[92479250.0,173058125.0,276712833.0,373794291.0,448625042.0,557350167.0,642605459.0,719978167.0,805475584.0,966127250.0],"unit":"ns","throughput":[],"typical":{"estimate":631911.6470378937,"lower_bound":616910.0677074939,"upper_bound":648956.2597350101,"unit":"ns"},"mean":{"estimate":626862.5082145575,"lower_bound":615967.039070722,"upper_bound":637894.7113747554,"unit":"ns"},"median":{"estimate":630268.4618395304,"lower_bound":614554.8520547946,"upper_bound":636739.1190068494,"unit":"ns"},"median_abs_dev":{"estimate":17523.63037339684,"lower_bound":2538.6161478814606,"upper_bound":32375.36440410371,"unit":"ns"},"slope":{"estimate":631911.6470378937,"lower_bound":616910.0677074939,"upper_bound":648956.2597350101,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[109067625.0,215936750.0,302772416.0,429263250.0,544683750.0,629397250.0,774358000.0,894410291.0,1024704125.0,1069897167.0],"unit":"ns","throughput":[],"typical":{"estimate":27378708.276623376,"lower_bound":26709068.11279461,"upper_bound":27973983.984672304,"unit":"ns"},"mean":{"estimate":27059545.780644845,"lower_bound":26509773.279326387,"upper_bound":27571136.590575397,"unit":"ns"},"median":{"estimate":27113140.625,"lower_bound":26526919.270833336,"upper_bound":27655642.85714286,"unit":"ns"},"median_abs_dev":{"estimate":673258.7906197674,"lower_bound":181369.846227541,"upper_bound":1504529.2217461448,"unit":"ns"},"slope":{"estimate":27378708.276623376,"lower_bound":26709068.11279461,"upper_bound":27973983.984672304,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[98,196,294,392,490,588,686,784,882,980],"measured_values":[84302583.0,237661375.0,265550250.0,391160166.0,462070458.0,582145083.0,652571250.0,701898709.0,865451459.0,905193916.0],"unit":"ns","throughput":[],"typical":{"estimate":947477.6106016432,"lower_bound":922441.9730209127,"upper_bound":979499.6156462585,"unit":"ns"},"mean":{"estimate":965837.5528907515,"lower_bound":917323.2859126985,"upper_bound":1030819.4321655327,"unit":"ns"},"median":{"estimate":947135.489212828,"lower_bound":903232.1428571428,"upper_bound":990042.6581632653,"unit":"ns"},"median_abs_dev":{"estimate":64352.63385394096,"lower_bound":12320.468396744192,"upper_bound":111917.38093517817,"unit":"ns"},"slope":{"estimate":947477.6106016432,"lower_bound":922441.9730209127,"upper_bound":979499.6156462585,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118810125.0,239204625.0,337435750.0,468183583.0,585800125.0,688086833.0,781408125.0,944534209.0,1079700792.0,1149480167.0],"unit":"ns","throughput":[],"typical":{"estimate":29076637.613636363,"lower_bound":28523125.615808822,"upper_bound":29602123.08237748,"unit":"ns"},"mean":{"estimate":29109734.00127976,"lower_bound":28672437.53110119,"upper_bound":29517936.926041663,"unit":"ns"},"median":{"estimate":29275740.09375,"lower_bound":28428325.004166666,"upper_bound":29708636.078125,"unit":"ns"},"median_abs_dev":{"estimate":848188.9987203855,"lower_bound":168043.64925725386,"upper_bound":1254625.7493821885,"unit":"ns"},"slope":{"estimate":29076637.613636363,"lower_bound":28523125.615808822,"upper_bound":29602123.08237748,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[99,198,297,396,495,594,693,792,891,990],"measured_values":[85363167.0,196795291.0,304673375.0,406839958.0,491906792.0,583170458.0,690666291.0,765810042.0,850298042.0,911240833.0],"unit":"ns","throughput":[],"typical":{"estimate":963009.9828151646,"lower_bound":941919.4532712494,"upper_bound":993482.2303748052,"unit":"ns"},"mean":{"estimate":972322.7678507296,"lower_bound":940711.17217789,"upper_bound":999203.6223288442,"unit":"ns"},"median":{"estimate":987759.7713804713,"lower_bound":943688.5785353535,"upper_bound":1009875.9452861953,"unit":"ns"},"median_abs_dev":{"estimate":40229.521086406035,"lower_bound":2257.9076590051036,"upper_bound":78126.34217065698,"unit":"ns"},"slope":{"estimate":963009.9828151646,"lower_bound":941919.4532712494,"upper_bound":993482.2303748052,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114274083.0,222330500.0,329890042.0,443554625.0,581010583.0,677531667.0,830688958.0,849247167.0,1012662709.0,1213904959.0],"unit":"ns","throughput":[],"typical":{"estimate":28672000.414935064,"lower_bound":27455788.946502455,"upper_bound":29705616.9167146,"unit":"ns"},"mean":{"estimate":28353742.984474204,"lower_bound":27721315.169468746,"upper_bound":29024043.637232892,"unit":"ns"},"median":{"estimate":28180002.909722224,"lower_bound":27641074.666666664,"upper_bound":29117991.76785714,"unit":"ns"},"median_abs_dev":{"estimate":850274.734777526,"lower_bound":250712.98879062105,"upper_bound":1861815.8228067856,"unit":"ns"},"slope":{"estimate":28672000.414935064,"lower_bound":27455788.946502455,"upper_bound":29705616.9167146,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[150,300,450,600,750,900,1050,1200,1350,1500],"measured_values":[79479167.0,157123333.0,238910375.0,373937417.0,440285500.0,518266958.0,641894375.0,800913875.0,963658000.0,1204410000.0],"unit":"ns","throughput":[],"typical":{"estimate":684585.7921904762,"lower_bound":598711.898396888,"upper_bound":743886.6829296876,"unit":"ns"},"mean":{"estimate":616616.2984431217,"lower_bound":567927.4857566138,"upper_bound":672926.7476111111,"unit":"ns"},"median":{"estimate":599187.6547619049,"lower_bound":530911.9444444445,"upper_bound":668524.884537037,"unit":"ns"},"median_abs_dev":{"estimate":101199.52006793264,"lower_bound":8822.249796873732,"upper_bound":142041.99072825056,"unit":"ns"},"slope":{"estimate":684585.7921904762,"lower_bound":598711.898396888,"upper_bound":743886.6829296876,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[109469166.0,195231042.0,320094667.0,392525416.0,527642125.0,648652333.0,696668833.0,823312667.0,949034834.0,1042336208.0],"unit":"ns","throughput":[],"typical":{"estimate":25966428.76038961,"lower_bound":25467465.066742133,"upper_bound":26364861.717566177,"unit":"ns"},"mean":{"estimate":25941788.71409722,"lower_bound":25326434.16076389,"upper_bound":26532874.15080555,"unit":"ns"},"median":{"estimate":26210241.961111113,"lower_bound":24881029.75,"upper_bound":26704643.395833336,"unit":"ns"},"median_abs_dev":{"estimate":962696.416974348,"lower_bound":231639.09302924856,"upper_bound":1745576.8111798156,"unit":"ns"},"slope":{"estimate":25966428.76038961,"lower_bound":25467465.066742133,"upper_bound":26364861.717566177,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[97,194,291,388,485,582,679,776,873,970],"measured_values":[96921667.0,188224667.0,285696875.0,465213875.0,454994083.0,626047333.0,665984584.0,830531375.0,911754583.0,1105617042.0],"unit":"ns","throughput":[],"typical":{"estimate":1065488.721221047,"lower_bound":1010844.885555092,"upper_bound":1109574.0482016976,"unit":"ns"},"mean":{"estimate":1039932.6241167566,"lower_bound":994677.7351358716,"upper_bound":1090920.9307492124,"unit":"ns"},"median":{"estimate":1021792.4318442154,"lower_bound":976003.2225085911,"upper_bound":1105041.886984536,"unit":"ns"},"median_abs_dev":{"estimate":74161.24314097782,"lower_bound":9259.333401077882,"upper_bound":135915.42305080727,"unit":"ns"},"slope":{"estimate":1065488.721221047,"lower_bound":1010844.885555092,"upper_bound":1109574.0482016976,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118346584.0,254439417.0,344248042.0,438958959.0,529299500.0,647015084.0,786051208.0,854888125.0,1013985208.0,1116488833.0],"unit":"ns","throughput":[],"typical":{"estimate":27647150.676623378,"lower_bound":27097325.53894941,"upper_bound":28070205.347938143,"unit":"ns"},"mean":{"estimate":28180476.966676585,"lower_bound":27348365.990228176,"upper_bound":29190559.72644494,"unit":"ns"},"median":{"estimate":27992739.126785714,"lower_bound":26958961.833333332,"upper_bound":28876450.888888888,"unit":"ns"},"median_abs_dev":{"estimate":1281244.3647533655,"lower_bound":188316.10715088953,"upper_bound":2294186.613230878,"unit":"ns"},"slope":{"estimate":27647150.676623378,"lower_bound":27097325.53894941,"upper_bound":28070205.347938143,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[105,210,315,420,525,630,735,840,945,1050],"measured_values":[97749084.0,192323625.0,307047958.0,388663166.0,474692709.0,603252542.0,674222084.0,761934333.0,946730166.0,882258167.0],"unit":"ns","throughput":[],"typical":{"estimate":917980.3113172542,"lower_bound":871092.9861612733,"upper_bound":970646.6245112782,"unit":"ns"},"mean":{"estimate":927508.5038378686,"lower_bound":901190.9043420351,"upper_bound":952917.0284126985,"unit":"ns"},"median":{"estimate":921348.7241496599,"lower_bound":907064.6821428571,"upper_bound":957543.7174603174,"unit":"ns"},"median_abs_dev":{"estimate":23318.46402980025,"lower_bound":7088.091614161233,"upper_bound":76385.3544738888,"unit":"ns"},"slope":{"estimate":917980.3113172542,"lower_bound":871092.9861612733,"upper_bound":970646.6245112782,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[99902875.0,216142958.0,321749167.0,458766875.0,583511083.0,682329708.0,734316000.0,889337417.0,1070725708.0,1050275250.0],"unit":"ns","throughput":[],"typical":{"estimate":27752099.131818183,"lower_bound":26696137.06870856,"upper_bound":28994764.054195803,"unit":"ns"},"mean":{"estimate":27510153.515843254,"lower_bound":26618531.737648807,"upper_bound":28387635.370347224,"unit":"ns"},"median":{"estimate":27404832.015625,"lower_bound":26256881.25,"upper_bound":28802979.325,"unit":"ns"},"median_abs_dev":{"estimate":1725161.7451128813,"lower_bound":435038.68370151817,"upper_bound":2560958.501008898,"unit":"ns"},"slope":{"estimate":27752099.131818183,"lower_bound":26696137.06870856,"upper_bound":28994764.054195803,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000","MATCH/match_decrypt/eql_cast_firstname/10000","MATCH/match/eql_cast_lastname/10000","MATCH/match_decrypt/eql_cast_lastname/10000","MATCH/match/eql_bloom/10000","MATCH/match_decrypt/eql_bloom/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_100000.json b/results/query/match_rows_100000.json index aba54ca..6e83b00 100644 --- a/results/query/match_rows_100000.json +++ b/results/query/match_rows_100000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[66,132,198,264,330,396,462,528,594,660],"measured_values":[97856417.0,187828750.0,335373958.0,389645750.0,461476708.0,502418292.0,527160250.0,648151833.0,644550541.0,778637166.0],"unit":"ns","throughput":[],"typical":{"estimate":1213017.5138134593,"lower_bound":1154037.2156360513,"upper_bound":1323339.446303727,"unit":"ns"},"mean":{"estimate":1337595.9122408608,"lower_bound":1230093.111003487,"upper_bound":1451965.567172393,"unit":"ns"},"median":{"estimate":1333573.6636363636,"lower_bound":1179753.2818181817,"upper_bound":1475930.871212121,"unit":"ns"},"median_abs_dev":{"estimate":216056.720954681,"lower_bound":44276.298223029546,"upper_bound":345102.359460077,"unit":"ns"},"slope":{"estimate":1213017.5138134593,"lower_bound":1154037.2156360513,"upper_bound":1323339.446303727,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107472500.0,205546167.0,307837166.0,454273250.0,556861209.0,707144667.0,731780875.0,873516250.0,1041114041.0,1067379417.0],"unit":"ns","throughput":[],"typical":{"estimate":27558935.09285714,"lower_bound":26738984.947295345,"upper_bound":28519277.74841772,"unit":"ns"},"mean":{"estimate":27295072.670138888,"lower_bound":26531264.047916666,"upper_bound":28096233.872222222,"unit":"ns"},"median":{"estimate":27082753.90625,"lower_bound":26135031.25,"upper_bound":28392078.125,"unit":"ns"},"median_abs_dev":{"estimate":1673148.8187331706,"lower_bound":387038.4990911912,"upper_bound":2328426.3165246695,"unit":"ns"},"slope":{"estimate":27558935.09285714,"lower_bound":26738984.947295345,"upper_bound":28519277.74841772,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[34,68,102,136,170,204,238,272,306,340],"measured_values":[87303667.0,173226667.0,295621208.0,368612542.0,425737459.0,574685209.0,611939708.0,739244792.0,786945958.0,926281667.0],"unit":"ns","throughput":[],"typical":{"estimate":2667283.1112299464,"lower_bound":2594812.714215686,"upper_bound":2735281.8926606905,"unit":"ns"},"mean":{"estimate":2663032.5364612513,"lower_bound":2590390.8361344533,"upper_bound":2741885.533496732,"unit":"ns"},"median":{"estimate":2641052.577614379,"lower_bound":2559313.114495798,"upper_bound":2767448.0465686275,"unit":"ns"},"median_abs_dev":{"estimate":118655.75554030188,"lower_bound":3341.393771070818,"upper_bound":226516.6495564665,"unit":"ns"},"slope":{"estimate":2667283.1112299464,"lower_bound":2594812.714215686,"upper_bound":2735281.8926606905,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[94167916.0,167219459.0,244432833.0,325947042.0,423003583.0,563623750.0,610147208.0,739670125.0,767932917.0,933578125.0],"unit":"ns","throughput":[],"typical":{"estimate":29781837.987012986,"lower_bound":28542939.100274228,"upper_bound":30680036.17915696,"unit":"ns"},"mean":{"estimate":29252878.997182537,"lower_bound":28243600.10509921,"upper_bound":30276815.195238095,"unit":"ns"},"median":{"estimate":28748294.420634918,"lower_bound":27681246.183333334,"upper_bound":31119270.833333332,"unit":"ns"},"median_abs_dev":{"estimate":2353725.068596355,"lower_bound":244872.9080626409,"upper_bound":2711182.4182543913,"unit":"ns"},"slope":{"estimate":29781837.987012986,"lower_bound":28542939.100274228,"upper_bound":30680036.17915696,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[35,70,105,140,175,210,245,280,315,350],"measured_values":[116738000.0,207569667.0,310590875.0,429412583.0,539290459.0,623189333.0,666070709.0,849536083.0,875454542.0,988515917.0],"unit":"ns","throughput":[],"typical":{"estimate":2882368.998812616,"lower_bound":2807632.2574447435,"upper_bound":3006957.173958333,"unit":"ns"},"mean":{"estimate":2973138.6826927434,"lower_bound":2873155.0649931976,"upper_bound":3080450.1931630955,"unit":"ns"},"median":{"estimate":2966424.604761905,"lower_bound":2824331.1914285715,"upper_bound":3067232.7357142856,"unit":"ns"},"median_abs_dev":{"estimate":160152.8894457175,"lower_bound":8782.339794081809,"upper_bound":310940.129552709,"unit":"ns"},"slope":{"estimate":2882368.998812616,"lower_bound":2807632.2574447435,"upper_bound":3006957.173958333,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[97293166.0,190471750.0,281497166.0,340918000.0,451750083.0,514224750.0,676535959.0,747616667.0,835284000.0,972109125.0],"unit":"ns","throughput":[],"typical":{"estimate":31156563.963636365,"lower_bound":30008001.395459976,"upper_bound":31905248.99780702,"unit":"ns"},"mean":{"estimate":30925513.15392857,"lower_bound":30010613.953968257,"upper_bound":31735361.72198413,"unit":"ns"},"median":{"estimate":31214078.673611112,"lower_bound":29752243.055555556,"upper_bound":32215998.04761905,"unit":"ns"},"median_abs_dev":{"estimate":1556230.2232113918,"lower_bound":179746.8025588566,"upper_bound":2530160.571187341,"unit":"ns"},"slope":{"estimate":31156563.963636365,"lower_bound":30008001.395459976,"upper_bound":31905248.99780702,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[80,160,240,320,400,480,560,640,720,800],"measured_values":[90998250.0,174837917.0,260162666.0,358067750.0,492411625.0,534069167.0,638781625.0,726293500.0,813246417.0,953085833.0],"unit":"ns","throughput":[],"typical":{"estimate":1151032.521655844,"lower_bound":1124857.3887223974,"upper_bound":1176945.2280598958,"unit":"ns"},"mean":{"estimate":1137324.2364464286,"lower_bound":1113468.7064583332,"upper_bound":1165073.8812976188,"unit":"ns"},"median":{"estimate":1132171.253125,"lower_bound":1105849.35,"upper_bound":1164417.708125,"unit":"ns"},"median_abs_dev":{"estimate":24267.707557287147,"lower_bound":4683.252240605836,"upper_bound":73107.23450508718,"unit":"ns"},"slope":{"estimate":1151032.521655844,"lower_bound":1124857.3887223974,"upper_bound":1176945.2280598958,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[112409292.0,210066959.0,320292250.0,439739834.0,555700916.0,685194917.0,826472500.0,906830042.0,1015678000.0,1141386958.0],"unit":"ns","throughput":[],"typical":{"estimate":28400631.684415583,"lower_bound":28000326.018404003,"upper_bound":28759666.243362833,"unit":"ns"},"mean":{"estimate":27947355.28819444,"lower_bound":27375424.40916667,"upper_bound":28490813.840260416,"unit":"ns"},"median":{"estimate":28157800.388888888,"lower_bound":27238033.316666666,"upper_bound":28534673.95,"unit":"ns"},"median_abs_dev":{"estimate":569956.9312870748,"lower_bound":164501.55061284456,"upper_bound":1601680.3557232374,"unit":"ns"},"slope":{"estimate":28400631.684415583,"lower_bound":28000326.018404003,"upper_bound":28759666.243362833,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[35,70,105,140,175,210,245,280,315,350],"measured_values":[88724083.0,173675042.0,276532459.0,373315708.0,468107458.0,578949041.0,659868500.0,772484583.0,839002125.0,962670667.0],"unit":"ns","throughput":[],"typical":{"estimate":2712419.136994434,"lower_bound":2671203.1497193226,"upper_bound":2741266.6900366303,"unit":"ns"},"mean":{"estimate":2661422.9778469387,"lower_bound":2603959.6662993203,"upper_bound":2711930.7151583335,"unit":"ns"},"median":{"estimate":2670720.265714286,"lower_bound":2599236.3047619048,"upper_bound":2750487.62,"unit":"ns"},"median_abs_dev":{"estimate":86617.31062823533,"lower_bound":7679.27941266485,"upper_bound":157318.5753655367,"unit":"ns"},"slope":{"estimate":2712419.136994434,"lower_bound":2671203.1497193226,"upper_bound":2741266.6900366303,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[129953042.0,234708083.0,333776833.0,512513750.0,596853458.0,728419750.0,857053292.0,1014069167.0,1069564708.0,1218935834.0],"unit":"ns","throughput":[],"typical":{"estimate":30475914.018831167,"lower_bound":29931285.21493074,"upper_bound":31076341.036579944,"unit":"ns"},"mean":{"estimate":30434934.638938494,"lower_bound":29603402.216091268,"upper_bound":31233101.241875,"unit":"ns"},"median":{"estimate":30412109.383333333,"lower_bound":29590591.6375,"upper_bound":31689661.46875,"unit":"ns"},"median_abs_dev":{"estimate":1316235.6618079797,"lower_bound":196506.94691797122,"upper_bound":2534629.924405491,"unit":"ns"},"slope":{"estimate":30475914.018831167,"lower_bound":29931285.21493074,"upper_bound":31076341.036579944,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[36,72,108,144,180,216,252,288,324,360],"measured_values":[92701958.0,191025125.0,280354250.0,373581500.0,477446167.0,529713291.0,658189666.0,717194666.0,850902375.0,960588334.0],"unit":"ns","throughput":[],"typical":{"estimate":2596287.247041847,"lower_bound":2526452.5292373057,"upper_bound":2645911.3580617416,"unit":"ns"},"mean":{"estimate":2591989.067202381,"lower_bound":2547641.216227513,"upper_bound":2630147.4062301586,"unit":"ns"},"median":{"estimate":2603868.2195767197,"lower_bound":2542287.614583333,"upper_bound":2652478.7055555554,"unit":"ns"},"median_abs_dev":{"estimate":57394.64492604118,"lower_bound":12209.398167406742,"upper_bound":114789.28985208237,"unit":"ns"},"slope":{"estimate":2596287.247041847,"lower_bound":2526452.5292373057,"upper_bound":2645911.3580617416,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[132332833.0,253339500.0,363407709.0,546356458.0,567576208.0,745903583.0,834750291.0,961422708.0,1062018625.0,1212576459.0],"unit":"ns","throughput":[],"typical":{"estimate":30160083.925974026,"lower_bound":29655145.117936067,"upper_bound":30884407.99630197,"unit":"ns"},"mean":{"estimate":30831192.53373016,"lower_bound":29873362.73440476,"upper_bound":31897406.929444443,"unit":"ns"},"median":{"estimate":30299193.6125,"lower_bound":29772488.493055556,"upper_bound":32081262.104166664,"unit":"ns"},"median_abs_dev":{"estimate":1170363.3793427283,"lower_bound":222677.30539418978,"upper_bound":2796627.5440424387,"unit":"ns"},"slope":{"estimate":30160083.925974026,"lower_bound":29655145.117936067,"upper_bound":30884407.99630197,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/100000","MATCH/match_decrypt/eql_cast_firstname/100000","MATCH/match/eql_cast_lastname/100000","MATCH/match_decrypt/eql_cast_lastname/100000","MATCH/match/eql_bloom/100000","MATCH/match_decrypt/eql_bloom/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_1000000.json b/results/query/match_rows_1000000.json index 2e18123..d75f96b 100644 --- a/results/query/match_rows_1000000.json +++ b/results/query/match_rows_1000000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[86939333.0,185974541.0,259254000.0,349568417.0,448167708.0,535077125.0,617380708.0,691069042.0,787808375.0,869846208.0],"unit":"ns","throughput":[],"typical":{"estimate":4866548.3578643575,"lower_bound":4834609.652871833,"upper_bound":4917954.704557092,"unit":"ns"},"mean":{"estimate":4898052.939567901,"lower_bound":4840657.399598767,"upper_bound":4970326.490709878,"unit":"ns"},"median":{"estimate":4859065.781635802,"lower_bound":4816739.466666667,"upper_bound":4954417.824074074,"unit":"ns"},"median_abs_dev":{"estimate":73275.19743243861,"lower_bound":18646.628981456623,"upper_bound":159031.2509099641,"unit":"ns"},"slope":{"estimate":4866548.3578643575,"lower_bound":4834609.652871833,"upper_bound":4917954.704557092,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[94749000.0,170939541.0,248723000.0,347731375.0,484772000.0,573212000.0,646754208.0,721727917.0,868137333.0,919546292.0],"unit":"ns","throughput":[],"typical":{"estimate":30949485.966233768,"lower_bound":30205695.82181342,"upper_bound":31643911.728052743,"unit":"ns"},"mean":{"estimate":30452426.500912696,"lower_bound":29454136.376348216,"upper_bound":31372821.927301586,"unit":"ns"},"median":{"estimate":30724681.247619048,"lower_bound":28977614.583333332,"upper_bound":31868117.277777776,"unit":"ns"},"median_abs_dev":{"estimate":1889561.1914335836,"lower_bound":388605.92643420026,"upper_bound":2715612.4372715754,"unit":"ns"},"slope":{"estimate":30949485.966233768,"lower_bound":30205695.82181342,"upper_bound":31643911.728052743,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[5,10,15,20,25,30,35,40,45,50],"measured_values":[88572791.0,178399375.0,263443666.0,368984250.0,433077041.0,544759500.0,612610834.0,709828208.0,826756458.0,962989625.0],"unit":"ns","throughput":[],"typical":{"estimate":18276980.58077922,"lower_bound":17676827.224712644,"upper_bound":18798428.130560577,"unit":"ns"},"mean":{"estimate":17992938.102571428,"lower_bound":17683606.109995235,"upper_bound":18357299.102990475,"unit":"ns"},"median":{"estimate":17792821.35,"lower_bound":17562911.066666666,"upper_bound":18372365.733333334,"unit":"ns"},"median_abs_dev":{"estimate":485909.772253377,"lower_bound":92943.6734399205,"upper_bound":952176.1609154965,"unit":"ns"},"slope":{"estimate":18276980.58077922,"lower_bound":17676827.224712644,"upper_bound":18798428.130560577,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[117642500.0,251467958.0,411673542.0,534915000.0,681575875.0,778496250.0,890772250.0,1001851958.0,1107180875.0,1277106625.0],"unit":"ns","throughput":[],"typical":{"estimate":42476217.71082251,"lower_bound":41765208.27336737,"upper_bound":43567616.94923432,"unit":"ns"},"mean":{"estimate":42786990.86812169,"lower_bound":41595383.037407406,"upper_bound":43978651.328184515,"unit":"ns"},"median":{"estimate":42493973.51190476,"lower_bound":41459012.7037037,"upper_bound":44576250.0,"unit":"ns"},"median_abs_dev":{"estimate":1662804.5093682054,"lower_bound":488438.4841784835,"upper_bound":3750481.138865657,"unit":"ns"},"slope":{"estimate":42476217.71082251,"lower_bound":41765208.27336737,"upper_bound":43567616.94923432,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[5,10,15,20,25,30,35,40,45,50],"measured_values":[84563500.0,185978583.0,258909250.0,346875458.0,442285125.0,541442959.0,606361250.0,715461083.0,807947250.0,928983166.0],"unit":"ns","throughput":[],"typical":{"estimate":17979432.701818183,"lower_bound":17589037.828857917,"upper_bound":18296210.480196398,"unit":"ns"},"mean":{"estimate":17759963.237119045,"lower_bound":17435214.866188094,"upper_bound":18092205.98125655,"unit":"ns"},"median":{"estimate":17788966.0375,"lower_bound":17302194.78333333,"upper_bound":18267023.326666668,"unit":"ns"},"median_abs_dev":{"estimate":674250.9094571576,"lower_bound":61643.71467560603,"upper_bound":977341.935183214,"unit":"ns"},"slope":{"estimate":17979432.701818183,"lower_bound":17589037.828857917,"upper_bound":18296210.480196398,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[132723208.0,251133333.0,400812208.0,518440625.0,635182417.0,800753417.0,875117917.0,1010162333.0,1169543500.0,1256438750.0],"unit":"ns","throughput":[],"typical":{"estimate":42587900.14545455,"lower_bound":42019520.473154046,"upper_bound":43389326.23165983,"unit":"ns"},"mean":{"estimate":42962659.20017196,"lower_bound":42310496.52358466,"upper_bound":43650160.93996693,"unit":"ns"},"median":{"estimate":42774439.94166666,"lower_bound":41881291.666666664,"upper_bound":44241069.333333336,"unit":"ns"},"median_abs_dev":{"estimate":1343259.829017367,"lower_bound":167593.85605239493,"upper_bound":1854124.241202157,"unit":"ns"},"slope":{"estimate":42587900.14545455,"lower_bound":42019520.473154046,"upper_bound":43389326.23165983,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[88101542.0,176249208.0,279356291.0,358619000.0,496926208.0,546821500.0,625992166.0,709327500.0,819872167.0,904421167.0],"unit":"ns","throughput":[],"typical":{"estimate":5044492.237518038,"lower_bound":4978416.458290598,"upper_bound":5153487.711804258,"unit":"ns"},"mean":{"estimate":5050856.843686067,"lower_bound":4959441.195542329,"upper_bound":5173669.394516094,"unit":"ns"},"median":{"estimate":5002690.741666666,"lower_bound":4925885.416666667,"upper_bound":5117101.975308642,"unit":"ns"},"median_abs_dev":{"estimate":101763.15687389835,"lower_bound":23243.687595675696,"upper_bound":211427.9301672893,"unit":"ns"},"slope":{"estimate":5044492.237518038,"lower_bound":4978416.458290598,"upper_bound":5153487.711804258,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[92948917.0,207855209.0,335064000.0,406845750.0,475578500.0,616015083.0,750117708.0,824054208.0,950227791.0,1030742375.0],"unit":"ns","throughput":[],"typical":{"estimate":34560994.65108225,"lower_bound":33844781.86821705,"upper_bound":35132078.08421886,"unit":"ns"},"mean":{"estimate":34229413.041269846,"lower_bound":33136639.185714286,"upper_bound":35256776.07222222,"unit":"ns"},"median":{"estimate":34346835.58333333,"lower_bound":32964146.75,"upper_bound":35193621.88888889,"unit":"ns"},"median_abs_dev":{"estimate":956135.6830085311,"lower_bound":116759.31927710587,"upper_bound":3259613.4146302957,"unit":"ns"},"slope":{"estimate":34560994.65108225,"lower_bound":33844781.86821705,"upper_bound":35132078.08421886,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[108336458.0,203268750.0,305192125.0,415175042.0,515263417.0,618232958.0,734823208.0,828167708.0,922189750.0,1047195750.0],"unit":"ns","throughput":[],"typical":{"estimate":17280361.343722943,"lower_bound":17135055.20963163,"upper_bound":17402087.763020832,"unit":"ns"},"mean":{"estimate":17287793.697407406,"lower_bound":17117478.4362963,"upper_bound":17497712.51851852,"unit":"ns"},"median":{"estimate":17214470.575000003,"lower_bound":17064127.888888888,"upper_bound":17453262.5,"unit":"ns"},"median_abs_dev":{"estimate":278487.5293614138,"lower_bound":59568.04588412214,"upper_bound":454274.02695169207,"unit":"ns"},"slope":{"estimate":17280361.343722943,"lower_bound":17135055.20963163,"upper_bound":17402087.763020832,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[138368292.0,252555583.0,390904250.0,534913292.0,664160083.0,816808208.0,919226834.0,1091578458.0,1214282833.0,1338987000.0],"unit":"ns","throughput":[],"typical":{"estimate":44729979.253679655,"lower_bound":44236748.000861324,"upper_bound":45104082.25138889,"unit":"ns"},"mean":{"estimate":44474232.7423545,"lower_bound":43762376.62084589,"upper_bound":45122592.631943785,"unit":"ns"},"median":{"estimate":44604503.83333333,"lower_bound":43772706.38095238,"upper_bound":45378233.777777776,"unit":"ns"},"median_abs_dev":{"estimate":1190177.4381367923,"lower_bound":263577.46346056426,"upper_bound":1956431.3200775161,"unit":"ns"},"slope":{"estimate":44729979.253679655,"lower_bound":44236748.000861324,"upper_bound":45104082.25138889,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[104740166.0,203600292.0,306504709.0,412153583.0,517959542.0,627537750.0,719274166.0,826607916.0,953175375.0,1044174000.0],"unit":"ns","throughput":[],"typical":{"estimate":17360690.166233767,"lower_bound":17194290.87573998,"upper_bound":17497750.05728277,"unit":"ns"},"mean":{"estimate":17272228.23781746,"lower_bound":17148854.448333334,"upper_bound":17396957.342499997,"unit":"ns"},"median":{"estimate":17243158.15833333,"lower_bound":17100552.673611112,"upper_bound":17431604.166666668,"unit":"ns"},"median_abs_dev":{"estimate":258111.6486226061,"lower_bound":39877.73859203046,"upper_bound":347141.51758700056,"unit":"ns"},"slope":{"estimate":17360690.166233767,"lower_bound":17194290.87573998,"upper_bound":17497750.05728277,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[167868875.0,276177500.0,449909083.0,544619750.0,665623166.0,783855000.0,904806792.0,1037283167.0,1197866500.0,1312546000.0],"unit":"ns","throughput":[],"typical":{"estimate":43998136.21991342,"lower_bound":43564737.47577332,"upper_bound":44761263.0935857,"unit":"ns"},"mean":{"estimate":45970625.89429893,"lower_bound":43986206.05513062,"upper_bound":48681825.014806546,"unit":"ns"},"median":{"estimate":44370151.82962963,"lower_bound":43485832.645833336,"upper_bound":47687438.63888889,"unit":"ns"},"median_abs_dev":{"estimate":1604801.2070465796,"lower_bound":393927.83229388297,"upper_bound":4624499.727665389,"unit":"ns"},"slope":{"estimate":43998136.21991342,"lower_bound":43564737.47577332,"upper_bound":44761263.0935857,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/1000000","MATCH/match_decrypt/eql_cast_firstname/1000000","MATCH/match/eql_cast_lastname/1000000","MATCH/match_decrypt/eql_cast_lastname/1000000","MATCH/match/eql_bloom/1000000","MATCH/match_decrypt/eql_bloom/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_10000000.json b/results/query/match_rows_10000000.json index 3f6112b..9d0ecbb 100644 --- a/results/query/match_rows_10000000.json +++ b/results/query/match_rows_10000000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[116623500.0,234926250.0,348537000.0,470062042.0,584395042.0,726574875.0,823502375.0,949295708.0,1074512583.0,1186954750.0],"unit":"ns","throughput":[],"typical":{"estimate":39560868.107359305,"lower_bound":39289150.01328021,"upper_bound":39788932.282327585,"unit":"ns"},"mean":{"estimate":39338229.27761905,"lower_bound":39068061.01,"upper_bound":39643245.876666665,"unit":"ns"},"median":{"estimate":39193117.82142857,"lower_bound":38959669.46666667,"upper_bound":39675375.083333336,"unit":"ns"},"median_abs_dev":{"estimate":503704.32190746255,"lower_bound":44495.64921004169,"upper_bound":810651.8199680436,"unit":"ns"},"slope":{"estimate":39560868.107359305,"lower_bound":39289150.01328021,"upper_bound":39788932.282327585,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[135230250.0,267334625.0,392870292.0,516642750.0,635798250.0,762055000.0,902268917.0,1055698625.0,1204004792.0,1229056792.0],"unit":"ns","throughput":[],"typical":{"estimate":64356474.146753244,"lower_bound":62576092.062118895,"upper_bound":66068239.32903226,"unit":"ns"},"mean":{"estimate":65036285.38926587,"lower_bound":63884459.33997768,"upper_bound":66107759.37726934,"unit":"ns"},"median":{"estimate":65029362.875,"lower_bound":63579825.0,"upper_bound":66833656.25,"unit":"ns"},"median_abs_dev":{"estimate":2204861.4618308824,"lower_bound":579302.7740903253,"upper_bound":3356846.864455304,"unit":"ns"},"slope":{"estimate":64356474.146753244,"lower_bound":62576092.062118895,"upper_bound":66068239.32903226,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[161006000.0,322233250.0,484308625.0,645749916.0,798946875.0,987234417.0,1139723667.0,1283559875.0,1452311250.0,1643900917.0],"unit":"ns","throughput":[],"typical":{"estimate":162378945.46753246,"lower_bound":160955374.0917431,"upper_bound":163662315.37709463,"unit":"ns"},"mean":{"estimate":161834541.6289286,"lower_bound":160958448.54833332,"upper_bound":162820313.63619047,"unit":"ns"},"median":{"estimate":161402062.5,"lower_bound":160780804.6875,"upper_bound":162913785.35,"unit":"ns"},"median_abs_dev":{"estimate":1003083.1275042146,"lower_bound":52508.50196778774,"upper_bound":2494605.6393369096,"unit":"ns"},"slope":{"estimate":162378945.46753246,"lower_bound":160955374.0917431,"upper_bound":163662315.37709463,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[587244625.0,562273417.0,559027917.0,551735041.0,552763667.0,557834875.0,552740541.0,557057750.0,556741500.0,557877333.0],"unit":"ns","throughput":[],"typical":{"estimate":186509888.86666667,"lower_bound":184981924.96666667,"upper_bound":188776764.73083332,"unit":"ns"},"mean":{"estimate":186509888.86666667,"lower_bound":184981924.96666667,"upper_bound":188776764.73083332,"unit":"ns"},"median":{"estimate":185815437.5,"lower_bound":184254555.66666666,"upper_bound":186691791.6666667,"unit":"ns"},"median_abs_dev":{"estimate":1547896.1475193575,"lower_bound":202518.95570457718,"upper_bound":2614678.472480156,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[160402167.0,317283708.0,481396083.0,651602000.0,817966709.0,989079583.0,1189155125.0,1310939625.0,1521253958.0,1628276000.0],"unit":"ns","throughput":[],"typical":{"estimate":165339026.94025975,"lower_bound":163056442.1467577,"upper_bound":167734286.5660683,"unit":"ns"},"mean":{"estimate":163645239.52186507,"lower_bound":161639340.4925,"upper_bound":165834889.17243353,"unit":"ns"},"median":{"estimate":163246920.9,"lower_bound":160465361.0,"upper_bound":166447835.3402778,"unit":"ns"},"median_abs_dev":{"estimate":3247810.3126898333,"lower_bound":567644.3862623065,"upper_bound":6394491.163308419,"unit":"ns"},"slope":{"estimate":165339026.94025975,"lower_bound":163056442.1467577,"upper_bound":167734286.5660683,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[574568959.0,561026333.0,554790834.0,561136125.0,562995958.0,552403834.0,568127875.0,562293459.0,566241958.0,563234209.0],"unit":"ns","throughput":[],"typical":{"estimate":187560651.46666664,"lower_bound":186338982.06666666,"upper_bound":188803829.26666665,"unit":"ns"},"mean":{"estimate":187560651.46666664,"lower_bound":186338982.06666666,"upper_bound":188803829.26666665,"unit":"ns"},"median":{"estimate":187548236.1666667,"lower_bound":185987826.5,"upper_bound":188747319.33333334,"unit":"ns"},"median_abs_dev":{"estimate":1288780.9146195797,"lower_bound":232459.32087302944,"upper_bound":3509581.994092494,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[126114791.0,244066000.0,371039334.0,481022167.0,618773042.0,729370792.0,823406792.0,957111916.0,1093826250.0,1176469209.0],"unit":"ns","throughput":[],"typical":{"estimate":39957934.74891775,"lower_bound":39499935.89976233,"upper_bound":40569932.6010101,"unit":"ns"},"mean":{"estimate":40461707.33103175,"lower_bound":39932585.82984127,"upper_bound":41000861.947142854,"unit":"ns"},"median":{"estimate":40516341.44444445,"lower_bound":39650410.44166666,"upper_bound":41226592.666666664,"unit":"ns"},"median_abs_dev":{"estimate":998478.8206234574,"lower_bound":122746.92282080282,"upper_bound":1558926.263016854,"unit":"ns"},"slope":{"estimate":39957934.74891775,"lower_bound":39499935.89976233,"upper_bound":40569932.6010101,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[128121709.0,258588709.0,397744333.0,591794916.0,643298291.0,760901958.0,899136209.0,1046819584.0,1150230750.0,1314553000.0],"unit":"ns","throughput":[],"typical":{"estimate":65134716.72467533,"lower_bound":64158842.52331002,"upper_bound":66492370.661458336,"unit":"ns"},"mean":{"estimate":65599104.127857134,"lower_bound":64259212.239482135,"upper_bound":67659309.37666667,"unit":"ns"},"median":{"estimate":64488503.175,"lower_bound":64060854.5,"upper_bound":65858473.08333333,"unit":"ns"},"median_abs_dev":{"estimate":1130123.4436362963,"lower_bound":223447.08983302116,"upper_bound":2260246.8872725926,"unit":"ns"},"slope":{"estimate":65134716.72467533,"lower_bound":64158842.52331002,"upper_bound":66492370.661458336,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[491351958.0,485389625.0,500306208.0,500774125.0,513218083.0,529900708.0,497622750.0,484571375.0,487355500.0,484250166.0],"unit":"ns","throughput":[],"typical":{"estimate":165824683.26666668,"lower_bound":163230486.76083332,"upper_bound":168938941.6,"unit":"ns"},"mean":{"estimate":165824683.26666668,"lower_bound":163230486.76083332,"upper_bound":168938941.6,"unit":"ns"},"median":{"estimate":164829118.0,"lower_bound":161796541.66666666,"upper_bound":168920715.1666667,"unit":"ns"},"median_abs_dev":{"estimate":4010329.888102412,"lower_bound":360931.0563921781,"upper_bound":7312800.8201718405,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[551486667.0,562106750.0,569396958.0,544933541.0,579616709.0,566415750.0,552615458.0,547033333.0,574799083.0,577353250.0],"unit":"ns","throughput":[],"typical":{"estimate":187525249.96666664,"lower_bound":184991115.3975,"upper_bound":190029080.395,"unit":"ns"},"mean":{"estimate":187525249.96666664,"lower_bound":184991115.3975,"upper_bound":190029080.395,"unit":"ns"},"median":{"estimate":188087083.3333333,"lower_bound":183274798.5,"upper_bound":191599694.33333334,"unit":"ns"},"median_abs_dev":{"estimate":6034274.555370189,"lower_bound":1118601.4179408255,"upper_bound":6905394.702404694,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[173952583.0,339629375.0,490975583.0,658043208.0,838654584.0,1450012334.0,1195664708.0,2046325000.0,1925307292.0,2012685833.0],"unit":"ns","throughput":[],"typical":{"estimate":207913077.27792206,"lower_bound":183362344.1581344,"upper_bound":229459591.89987832,"unit":"ns"},"mean":{"estimate":192312772.40444443,"lower_bound":173816927.63294446,"upper_bound":213693397.18777776,"unit":"ns"},"median":{"estimate":172380913.5,"lower_bound":167162744.75,"upper_bound":221468652.81666666,"unit":"ns"},"median_abs_dev":{"estimate":12300018.054831035,"lower_bound":2281963.9128470332,"upper_bound":55277023.34904336,"unit":"ns"},"slope":{"estimate":207913077.27792206,"lower_bound":183362344.1581344,"upper_bound":229459591.89987832,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[191931958.0,199774291.0,182709667.0,184414333.0,181063291.0,191016500.0,183387459.0,192083750.0,189686542.0,181211667.0],"unit":"ns","throughput":[],"typical":{"estimate":187727945.8,"lower_bound":184307660.1,"upper_bound":191451275.6,"unit":"ns"},"mean":{"estimate":187727945.8,"lower_bound":184307660.1,"upper_bound":191451275.6,"unit":"ns"},"median":{"estimate":187050437.5,"lower_bound":182299563.0,"upper_bound":191931958.0,"unit":"ns"},"median_abs_dev":{"estimate":6836484.1969281435,"lower_bound":791152.410954237,"upper_bound":11627042.699378729,"unit":"ns"},"slope":null,"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000000","MATCH/match_decrypt/eql_cast_firstname/10000000","MATCH/match/eql_cast_lastname/10000000","MATCH/match_decrypt/eql_cast_lastname/10000000","MATCH/match/eql_bloom/10000000","MATCH/match_decrypt/eql_bloom/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/ore_metadata_10000.json b/results/query/ore_metadata_10000.json index b1cbfea..7b58a2b 100644 --- a/results/query/ore_metadata_10000.json +++ b/results/query/ore_metadata_10000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2899e383234942144a69152bae8315e7ef34357c9d0f17cc138e21d413a1ae015120063e02f23eb3efa32aae2bf30ef44a2197c747af0ee1dd8417713b3a7a9267722ae07692de2ce2e59699828c4c276f09bcf0e21740ad872c50e30b797afd367f6cfc6da7eeb731397ca1af6a554fd1164bbddd2db1c43aed32f8cbf93552d2ef3ad2391e2ed97b1d6fca1fcf4151b38795ff6b749f14ae14f0f5971aedec384a4192526c0c575b1268765ed039aec3d17dc378273182fb4cfc47ec69513ff5e2bd963983fd8957200f0a1be9c924b64f938c83d7bcc5bc532254ae39f8cc2fa4d53a67706485e628e94ad635d71a0005e18ab5b95dfbb199b238be236fb1321a0e5ab652ebbb70c768aada6ab7d8e0\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2817ce2b93478d2e186b01c0864d365f5e681114cf4a542a2b85b0d1dcf8adcb79a5bc1e0a189f65fa7339e21bc6d88ad013dd40988b2797e29c3b64c6d98ce10c6b454aca8ac1505cd2f632b600d48d9e57450526db2b2cc0c74e8f0de7ba4519f21e6fb614cd50f8318b6f70c0f258293c57607eff11d954cbdae9443333420d75af29cda4baeaaa5f4a5cd38bc7ed2bdcad3c8e797837b384348b8aefa2d2e1833f73db493b9e53966d8c21df808e048f4a9ad86d347f9372bbe23a47e96adb85ad1bec51ae648881c6fbc789e22163f84de788e7d75e5a0b1dfb64f014238c0567bed07063b57611c170f59b65e2b251746f12e2e1030a8e8507c77304269d22671f37f5dd116e29403a471aa5cf17\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2899e383234942144a69152bae8315e7ef34357c9d0f17cc138e21d413a1ae015120063e02f23eb3efa32aae2bf30ef44a2197c747af0ee1dd8417713b3a7a9267722ae07692de2ce2e59699828c4c276f09bcf0e21740ad872c50e30b797afd367f6cfc6da7eeb731397ca1af6a554fd1164bbddd2db1c43aed32f8cbf93552d2ef3ad2391e2ed97b1d6fca1fcf4151b38795ff6b749f14ae14f0f5971aedec384a4192526c0c575b1268765ed039aec3d17dc378273182fb4cfc47ec69513ff5e2bd963983fd8957200f0a1be9c924b64f938c83d7bcc5bc532254ae39f8cc2fa4d53a67706485e628e94ad635d71a0005e18ab5b95dfbb199b238be236fb1321a0e5ab652ebbb70c768aada6ab7d8e0" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2817ce2b93478d2e186b01c0864d365f5e681114cf4a542a2b85b0d1dcf8adcb79a5bc1e0a189f65fa7339e21bc6d88ad013dd40988b2797e29c3b64c6d98ce10c6b454aca8ac1505cd2f632b600d48d9e57450526db2b2cc0c74e8f0de7ba4519f21e6fb614cd50f8318b6f70c0f258293c57607eff11d954cbdae9443333420d75af29cda4baeaaa5f4a5cd38bc7ed2bdcad3c8e797837b384348b8aefa2d2e1833f73db493b9e53966d8c21df808e048f4a9ad86d347f9372bbe23a47e96adb85ad1bec51ae648881c6fbc789e22163f84de788e7d75e5a0b1dfb64f014238c0567bed07063b57611c170f59b65e2b251746f12e2e1030a8e8507c77304269d22671f37f5dd116e29403a471aa5cf17" ], "v": 2 } @@ -58,7 +58,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284a42c25d1436c1aef291cbdd9a25a1853573697cc39c0e790af499de69f8522fd2702825b23999e8344e48e212e2128203c2b4b2d1b9e453e497c511c9e904d3213e9813c1ca0c9170fa56660087e5f7354a8b4d62c466cfc855b9958d0c00a7a810f4739b00f6bb7fb4594a660a1d39d6581cec54b6b15efb47dd11e4bd8c6f42406fa196b0444f74c95e077e9abb716f5d7953be213a707cc8c2b8c6364d95b202b63b981df5a04770ea318c47ec7d44e0576f4a3ec08dd12e0dcc57ec53e31771828004248eaddf185b9718cc567dc60ec6615d8670652102614c1a5db2f8101629f374be801bd8cd6dd883d3b0a1bdb122752398169d25ff8d531785cc138104deb574dd74c54299aa323fb16d78\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28934e37c8ab2caaebae6b5e0452177b4b0858f16b024c30b9f292188adc749aa85971e5f33e45b4cc886c1ad34bacb8e03a5f1feca2391301d1d1875fc8d824ed8219ea22fdde9dae3c782c4a070ff206e16dc56c0a7b29765e86138a90c4488ade8075a193c26509d3b1dd51781afeba7461c7bcc109cc4ed1daed8469fa66e5b051e0a952a3c0032f0bda23ef2ea4a58fe7e327baae1f24fbb3abff43b198add2c520698a12cd9959c269fe8a155bd800de5d4a23c9f2aa737bddfae37bf6669fe09ad9c9348dccb57aaa75d9837be787818953a96187e13373087ddfc9e32ac3fe3f7bdd33e9d496a69ea18bbd71401642cfa3e77246558618118ec789a1d46b83349d10662fe4d1c3f6200470f01d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -83,7 +83,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284a42c25d1436c1aef291cbdd9a25a1853573697cc39c0e790af499de69f8522fd2702825b23999e8344e48e212e2128203c2b4b2d1b9e453e497c511c9e904d3213e9813c1ca0c9170fa56660087e5f7354a8b4d62c466cfc855b9958d0c00a7a810f4739b00f6bb7fb4594a660a1d39d6581cec54b6b15efb47dd11e4bd8c6f42406fa196b0444f74c95e077e9abb716f5d7953be213a707cc8c2b8c6364d95b202b63b981df5a04770ea318c47ec7d44e0576f4a3ec08dd12e0dcc57ec53e31771828004248eaddf185b9718cc567dc60ec6615d8670652102614c1a5db2f8101629f374be801bd8cd6dd883d3b0a1bdb122752398169d25ff8d531785cc138104deb574dd74c54299aa323fb16d78" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28934e37c8ab2caaebae6b5e0452177b4b0858f16b024c30b9f292188adc749aa85971e5f33e45b4cc886c1ad34bacb8e03a5f1feca2391301d1d1875fc8d824ed8219ea22fdde9dae3c782c4a070ff206e16dc56c0a7b29765e86138a90c4488ade8075a193c26509d3b1dd51781afeba7461c7bcc109cc4ed1daed8469fa66e5b051e0a952a3c0032f0bda23ef2ea4a58fe7e327baae1f24fbb3abff43b198add2c520698a12cd9959c269fe8a155bd800de5d4a23c9f2aa737bddfae37bf6669fe09ad9c9348dccb57aaa75d9837be787818953a96187e13373087ddfc9e32ac3fe3f7bdd33e9d496a69ea18bbd71401642cfa3e77246558618118ec789a1d46b83349d10662fe4d1c3f6200470f01d" ], "v": 2 } @@ -103,7 +103,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28825322305f02d0928b50cc73c8640f78d778e9fa1d86ba454fdeee9dd0d4361cf0b313dfdc322551a7d6bee69a4379865ed0468db7f4cad498d965dfddece44f02d6e906d0947fe148170044f5ce1c140a071de908dd72a914b4e34a343ccdda908f114cb8110dd7fbfea6990ab70a94ae5e1babbf68ddeea9d6391fd34f63478c899eb64ad75ca6519bb6668b28ec1325d5eda6d422fc85ed906b3b52bec910bff3dfb161dabee11b9dcfc2ad9df7cf9fb0bf28341d4737c61c7d4cefafd734fc66e202dd46c11e8436122300c9db90fee6ca4c4ea433017fc40de053f57da385e403ef32d03c35f6a758a65ef6438c35e6db4885cd257843cc1cfa7d3a0e266ab4ea329e7347d6d5b2befe64188d47\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fe666ef7ea3c2e11b4c35ac384045d48fc60112f8fd92c3eb87e5f6c89ca484edf7db1c0a148bf627f5079ea3a71bd55cfe91941934e4f6cd1044862af61c62c72da9cd377788e6dcf0acd7c3ebf5a682a16a1b93409717c1849bd9e6c56e052b97efe13b6d411811520c2f827e63e2d2b88a793ffd9275d1f93d920d195fe180d93bf0d30b78d736c453172bf2cd35ef7ccdf2aeb291942b9082b5ddaf0fdbc354dc47d6d3ba33ba9a0415cd52ba208fde55df87c03c9b8d23160005c156a3ca8153bb91448b78e504382bd278e4b1b4143b58c60a97eb8df45342f2edf64b9f8f0479557d69e68ed1b5f4137339f519ad10e475fb95bce99725086ffcda5a6b1c568c844c9a7540fed0b483828352a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -128,7 +128,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28825322305f02d0928b50cc73c8640f78d778e9fa1d86ba454fdeee9dd0d4361cf0b313dfdc322551a7d6bee69a4379865ed0468db7f4cad498d965dfddece44f02d6e906d0947fe148170044f5ce1c140a071de908dd72a914b4e34a343ccdda908f114cb8110dd7fbfea6990ab70a94ae5e1babbf68ddeea9d6391fd34f63478c899eb64ad75ca6519bb6668b28ec1325d5eda6d422fc85ed906b3b52bec910bff3dfb161dabee11b9dcfc2ad9df7cf9fb0bf28341d4737c61c7d4cefafd734fc66e202dd46c11e8436122300c9db90fee6ca4c4ea433017fc40de053f57da385e403ef32d03c35f6a758a65ef6438c35e6db4885cd257843cc1cfa7d3a0e266ab4ea329e7347d6d5b2befe64188d47" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fe666ef7ea3c2e11b4c35ac384045d48fc60112f8fd92c3eb87e5f6c89ca484edf7db1c0a148bf627f5079ea3a71bd55cfe91941934e4f6cd1044862af61c62c72da9cd377788e6dcf0acd7c3ebf5a682a16a1b93409717c1849bd9e6c56e052b97efe13b6d411811520c2f827e63e2d2b88a793ffd9275d1f93d920d195fe180d93bf0d30b78d736c453172bf2cd35ef7ccdf2aeb291942b9082b5ddaf0fdbc354dc47d6d3ba33ba9a0415cd52ba208fde55df87c03c9b8d23160005c156a3ca8153bb91448b78e504382bd278e4b1b4143b58c60a97eb8df45342f2edf64b9f8f0479557d69e68ed1b5f4137339f519ad10e475fb95bce99725086ffcda5a6b1c568c844c9a7540fed0b483828352a" ], "v": 2 } @@ -148,7 +148,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28274a8d90eb70f404a460640b50f2c7ab222c0553032c63365966d4a08ea38454576df090cde69abee4eb2fba01b2b4cca93c6b99d2b0fc2a2eeac6a7adaf76742899765c5bdd83fe52ee31fe2ac6ab90cf1612d7e274d26d67f6b477e3fedd2c411bba8bf08dfb1d964e9915198794fa59eaaf4b6d1f0d431fac52435f4e9cf8d2176497bab50a9e711f98551f50ad47e0cce11265033f3b7315da554397b6ed83bb0fdadf869df48810084b9df00fa195f5db2e3a77b50e55c3df051557cf1e2995b252a2d5569dd58cb45c08c042af88431f3b26046fa3905863621570a728a3681376bf9343d6ea928e185f1dbc1654a757b75bf72f533435f84d4d27afa674663311da8eda990c767d3ac86de05e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28613a47d8d474cd8e194852d31798a638b7c5888c014b63a30adaa563dd99bd94952bc58c0146a43be7957396ae6ea520c1363afc8d2161838e7e453dd243ca8c4c413afa00fbcb057b752016d69c4df4b49cd0ecd14cd9ba3704d695b44daff2c4232fbb64a35a77caf8f869abb2ec2489ad5a87f974548c59259dba7db48917c4bd53319e5a58cce7329bd7f0b79017352a7dff4e4e3a240cb52ebbf35faa8a4ae163856d684a21f3e3a2b4b7d3d88f24c67882502ee28a5e2fa209df5ac8266606d2758b0d8f90c406ceed03faa9927e0d3414275d20e170ba39f47c370de73f4105e5c2368eb603ec02b3d10f31e63cc0adb3494a2e637be59831712de558e297b2b9762aaa023130aa2f36ccb9a6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -173,7 +173,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28274a8d90eb70f404a460640b50f2c7ab222c0553032c63365966d4a08ea38454576df090cde69abee4eb2fba01b2b4cca93c6b99d2b0fc2a2eeac6a7adaf76742899765c5bdd83fe52ee31fe2ac6ab90cf1612d7e274d26d67f6b477e3fedd2c411bba8bf08dfb1d964e9915198794fa59eaaf4b6d1f0d431fac52435f4e9cf8d2176497bab50a9e711f98551f50ad47e0cce11265033f3b7315da554397b6ed83bb0fdadf869df48810084b9df00fa195f5db2e3a77b50e55c3df051557cf1e2995b252a2d5569dd58cb45c08c042af88431f3b26046fa3905863621570a728a3681376bf9343d6ea928e185f1dbc1654a757b75bf72f533435f84d4d27afa674663311da8eda990c767d3ac86de05e" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28613a47d8d474cd8e194852d31798a638b7c5888c014b63a30adaa563dd99bd94952bc58c0146a43be7957396ae6ea520c1363afc8d2161838e7e453dd243ca8c4c413afa00fbcb057b752016d69c4df4b49cd0ecd14cd9ba3704d695b44daff2c4232fbb64a35a77caf8f869abb2ec2489ad5a87f974548c59259dba7db48917c4bd53319e5a58cce7329bd7f0b79017352a7dff4e4e3a240cb52ebbf35faa8a4ae163856d684a21f3e3a2b4b7d3d88f24c67882502ee28a5e2fa209df5ac8266606d2758b0d8f90c406ceed03faa9927e0d3414275d20e170ba39f47c370de73f4105e5c2368eb603ec02b3d10f31e63cc0adb3494a2e637be59831712de558e297b2b9762aaa023130aa2f36ccb9a6" ], "v": 2 } @@ -193,7 +193,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c02b6f6e4a3b4a575a4fb86111b39ed5d07df2d6a7bc7f6b7d90f6de1fb6c0c1fb7b217de23f8482e8157075a6127b2afb157b78d4844c3336d553bbe3bb463dacd798a18ea0d6d9ba71ec6709edb10fb7ea4848d8877edded4f8d052f6ad52a43aaf45cf235894aaa8ac0af75769c52673311c26bbb43799e71f41d7fc894aa5aac2df03ce44b1c0d3997ac8aec11bdb11138626b55e7a81c978aa7d1c76d1317dc66b0588ace316bd6f93689c54d5e97c4fbc16b9d309ac874909bcc2b8bdc62ebce4b5e526a3f90701ff80568df3b12c6676adeff15f260fee6af18ea2a1c1fb2f6672d88c737721c36e9cacdce956037ce8ac19e651c2b460c22d93d4fc0327f18f1933bbaa14385a565f231adbd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2800fe970e78f354e987ce5bb688b0859b0abd75318a9549123eaff5ae591c8951cb0bfe6ddef9f0f33d99741f144a5ae4aa5cdc4029e6db0f7c19b661fb8b5f795440bbd0eb6def2aedd59d8d30c5a41fed198793688dd572139f766274d6656e820df591b01af34320c0a51358cdb6e14402f2d3912939f6e92bc73d80c422fcf3cc11ccb6410f9d9506b69702ff8597f4075545c1d1eff2126983ee086c1ca4c6983b17a40ac51ee203dcf223a5158edef85a15f6066d85f0ff8eddf4429f63cc7d1912717f8fb7f17a3ef4ef669bddb0db37b9d9ef5c3dfde80974dbe244d8d8cdb3361d0901de4cbdc98f3eb21f228930a300c7a2502ddb310ab3e2c32574bdba542151c649d054b036b3c07c41c8\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -222,7 +222,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c02b6f6e4a3b4a575a4fb86111b39ed5d07df2d6a7bc7f6b7d90f6de1fb6c0c1fb7b217de23f8482e8157075a6127b2afb157b78d4844c3336d553bbe3bb463dacd798a18ea0d6d9ba71ec6709edb10fb7ea4848d8877edded4f8d052f6ad52a43aaf45cf235894aaa8ac0af75769c52673311c26bbb43799e71f41d7fc894aa5aac2df03ce44b1c0d3997ac8aec11bdb11138626b55e7a81c978aa7d1c76d1317dc66b0588ace316bd6f93689c54d5e97c4fbc16b9d309ac874909bcc2b8bdc62ebce4b5e526a3f90701ff80568df3b12c6676adeff15f260fee6af18ea2a1c1fb2f6672d88c737721c36e9cacdce956037ce8ac19e651c2b460c22d93d4fc0327f18f1933bbaa14385a565f231adbd" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2800fe970e78f354e987ce5bb688b0859b0abd75318a9549123eaff5ae591c8951cb0bfe6ddef9f0f33d99741f144a5ae4aa5cdc4029e6db0f7c19b661fb8b5f795440bbd0eb6def2aedd59d8d30c5a41fed198793688dd572139f766274d6656e820df591b01af34320c0a51358cdb6e14402f2d3912939f6e92bc73d80c422fcf3cc11ccb6410f9d9506b69702ff8597f4075545c1d1eff2126983ee086c1ca4c6983b17a40ac51ee203dcf223a5158edef85a15f6066d85f0ff8eddf4429f63cc7d1912717f8fb7f17a3ef4ef669bddb0db37b9d9ef5c3dfde80974dbe244d8d8cdb3361d0901de4cbdc98f3eb21f228930a300c7a2502ddb310ab3e2c32574bdba542151c649d054b036b3c07c41c8" ], "v": 2 } diff --git a/results/query/ore_metadata_100000.json b/results/query/ore_metadata_100000.json new file mode 100644 index 0000000..98e7b22 --- /dev/null +++ b/results/query/ore_metadata_100000.json @@ -0,0 +1,234 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28980b20bf108668388638b6e601a20ed876445198688a5d266014e00b5e34076375d129887c181c56a060289af61747a28f692f2f2b85406045b209ca5f74e3b3eb2e6e3354114cfde7715a094255a7bb7163a4f20b6ee62db4ba5dad15d203a417506398077408564d5a530fdd8b8bd290ddc255610813455226efbbdd872086bba4a7b6ee20be8bfd115d08670d2174ce5bb9cebb5ecb8e975519ff97636761def8d7d8cb65d08bd64690a80214f64d3b1f69950ff4c01ef6a012e86be580cf974114447da0d70f244af9d79753ab65dfefbcf50f52b65e8d5997bd63129e19c300ef85c697d8ef93fda724576de13dc4558ca70e75e3cf07438d6b7da103fa7c030a9d7c7031b2cf2bbf164b608d06\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } + ], + "id": "ORE/ore/range_gt_10/100000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_100000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28980b20bf108668388638b6e601a20ed876445198688a5d266014e00b5e34076375d129887c181c56a060289af61747a28f692f2f2b85406045b209ca5f74e3b3eb2e6e3354114cfde7715a094255a7bb7163a4f20b6ee62db4ba5dad15d203a417506398077408564d5a530fdd8b8bd290ddc255610813455226efbbdd872086bba4a7b6ee20be8bfd115d08670d2174ce5bb9cebb5ecb8e975519ff97636761def8d7d8cb65d08bd64690a80214f64d3b1f69950ff4c01ef6a012e86be580cf974114447da0d70f244af9d79753ab65dfefbcf50f52b65e8d5997bd63129e19c300ef85c697d8ef93fda724576de13dc4558ca70e75e3cf07438d6b7da103fa7c030a9d7c7031b2cf2bbf164b608d06" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value > $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d3ae3ec985fff16d19e5239be0dd36b6b1461cd2a9460ad72dfdb5f026bab3f68668520eb92cc682e592b2e4f766b65c6b82c848a0cdce4a00807616adedee178688db0336b8f4de57535507fee25b91a97f6ce4cd393f265395d7ceb03ca4b2be16465d06b49c96586a0828677e9939485720fa900bfe23c9ad6b92dfba19b68b010377edc76d6fa2e07815f9246cfd2747e600375ea4f5ab309a6de9a723e94808ae935a409c71f9570cb96594f69811cbd26fef4f4157b1418e4d1ca123dd78fea435a865af34b33f3186d6ccfa4c572c5ba15950024227b7d9787c6fd81c36fd6067b6812d7bccac91c3332c0fc587d367232f11304124537443c7734036f70c88e6a18dd115d3a1d419b7a26a73\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } + ], + "id": "ORE/ore/range_gt_100/100000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_100000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d3ae3ec985fff16d19e5239be0dd36b6b1461cd2a9460ad72dfdb5f026bab3f68668520eb92cc682e592b2e4f766b65c6b82c848a0cdce4a00807616adedee178688db0336b8f4de57535507fee25b91a97f6ce4cd393f265395d7ceb03ca4b2be16465d06b49c96586a0828677e9939485720fa900bfe23c9ad6b92dfba19b68b010377edc76d6fa2e07815f9246cfd2747e600375ea4f5ab309a6de9a723e94808ae935a409c71f9570cb96594f69811cbd26fef4f4157b1418e4d1ca123dd78fea435a865af34b33f3186d6ccfa4c572c5ba15950024227b7d9787c6fd81c36fd6067b6812d7bccac91c3332c0fc587d367232f11304124537443c7734036f70c88e6a18dd115d3a1d419b7a26a73" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value > $1 LIMIT 100" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28a033beb35af0337a1e833a4a41dbd757492fdc11701ee223c2506b57dd41d478a483190a3fd3d446e7fe27b9ed375453537a04ac6df237bbc4709f3bf6da861c7a60ca250a178f1d81d22b1a90c13557661ddd1d0c4a981523d29be5286280487150b20aa4c18c57cfd7adca0fc599b01f4f88f42f87bee6fbb221fbd29821c2b88be9f6cfd584643f19f1c95e837a664ed721daa2d5fbbcf0e95a12c7ff7b99e2a4486379c0521c2deb090aab1759fb593360b61f5da8295a4fb1c988f32f07860de7a60f755b65dacca90d5b488adcf3273c63cb9d379157fb079fe43bd1351b2aa22380490978150022c802398c0ebb19dfc312b72c509a0256d21f769f054fdea80b516e294594daf9c010aa3dff\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } + ], + "id": "ORE/ore/range_lt_10/100000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_100000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28a033beb35af0337a1e833a4a41dbd757492fdc11701ee223c2506b57dd41d478a483190a3fd3d446e7fe27b9ed375453537a04ac6df237bbc4709f3bf6da861c7a60ca250a178f1d81d22b1a90c13557661ddd1d0c4a981523d29be5286280487150b20aa4c18c57cfd7adca0fc599b01f4f88f42f87bee6fbb221fbd29821c2b88be9f6cfd584643f19f1c95e837a664ed721daa2d5fbbcf0e95a12c7ff7b99e2a4486379c0521c2deb090aab1759fb593360b61f5da8295a4fb1c988f32f07860de7a60f755b65dacca90d5b488adcf3273c63cb9d379157fb079fe43bd1351b2aa22380490978150022c802398c0ebb19dfc312b72c509a0256d21f769f054fdea80b516e294594daf9c010aa3dff" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value < $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284ccf21aac875dac647810b92b06a1f9b98496c27676f668910513dd3737c176101dd7f21e2bae4dc5c08161c515855e1e583e7d7392c99dc7c403bcca3689bd71e64342b26040c6433e0a9e54794eb681babc8d24270eecc84bb92ebaa836d1037b98de5ca616c0f915605c8f954ba31ecc2a525ba46b2ee3d8ec7c7b83af6775c3a722e032cbd37948b4796dca9e3f8d7944e7ea8ba9916697b6abfa647cdf58fc78c92e8561e87b848246bd75699e804cedc763e87d245b700c492b874b50bf854e5c86b57ae975823a71c73486696023b8c4d19bd2c1be5b2f1417c252f2fc627ffb6c94480ef0fb21ddb9321d129ecf91218f3c5b9ebf8d76b47c7c076c83c9888cf8b931b2a3132c5b7771adbdf\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } + ], + "id": "ORE/ore/range_lt_100/100000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_100000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284ccf21aac875dac647810b92b06a1f9b98496c27676f668910513dd3737c176101dd7f21e2bae4dc5c08161c515855e1e583e7d7392c99dc7c403bcca3689bd71e64342b26040c6433e0a9e54794eb681babc8d24270eecc84bb92ebaa836d1037b98de5ca616c0f915605c8f954ba31ecc2a525ba46b2ee3d8ec7c7b83af6775c3a722e032cbd37948b4796dca9e3f8d7944e7ea8ba9916697b6abfa647cdf58fc78c92e8561e87b848246bd75699e804cedc763e87d245b700c492b874b50bf854e5c86b57ae975823a71c73486696023b8c4d19bd2c1be5b2f1417c252f2fc627ffb6c94480ef0fb21ddb9321d129ecf91218f3c5b9ebf8d76b47c7c076c83c9888cf8b931b2a3132c5b7771adbdf" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value < $1 LIMIT 100" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 68, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e70a903a5ae9f1ef15e945c00baff99d426e216bafdbc3ccf0235f0c4f601198bbc1e0a3405b3dd5c7ea295a6289814d64e87934bbcee064476b1e8a05a1b93235294fe17daf9aa71de75a6b8677b8787e4b970a8886c244e320a5cb1cf71a8c781a3c55a7b3fa4002cb8dbe0e9691308662f7268e2c852e187b8617ed1f43624cb4b40bd04e2027ee5a239284bbfefbadf736acd1ffc9b23118e778dec41787be1e1c477e0154409665e96ecf83102517e2bac2ca7c14b19398dd887ee7024a0abd5ba1cdcf37692053f096d5a06b3ce6bc10cf83656b49f7edc806f29dcddffdf723d1050f0ea62961396c6c08629459f0df66c1bbfa3b66727dbe392dc36f1f0794a980ab95e895164b9fe224492f\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_100000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 68, + "Relation Name": "integer_encrypted_100000", + "Scan Direction": "Forward", + "Startup Cost": 0.67, + "Total Cost": 84790.49 + } + ], + "Startup Cost": 0.67, + "Total Cost": 26.1 + } + } + ], + "id": "ORE/ore/range_lt_hybrid_ordered_10/100000", + "indexes_used": [ + "integer_encrypted_100000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_100000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e70a903a5ae9f1ef15e945c00baff99d426e216bafdbc3ccf0235f0c4f601198bbc1e0a3405b3dd5c7ea295a6289814d64e87934bbcee064476b1e8a05a1b93235294fe17daf9aa71de75a6b8677b8787e4b970a8886c244e320a5cb1cf71a8c781a3c55a7b3fa4002cb8dbe0e9691308662f7268e2c852e187b8617ed1f43624cb4b40bd04e2027ee5a239284bbfefbadf736acd1ffc9b23118e778dec41787be1e1c477e0154409665e96ecf83102517e2bac2ca7c14b19398dd887ee7024a0abd5ba1cdcf37692053f096d5a06b3ce6bc10cf83656b49f7edc806f29dcddffdf723d1050f0ea62961396c6c08629459f0df66c1bbfa3b66727dbe392dc36f1f0794a980ab95e895164b9fe224492f" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10" + } + ], + "target_rows": "100000" +} \ No newline at end of file diff --git a/results/query/ore_metadata_1000000.json b/results/query/ore_metadata_1000000.json new file mode 100644 index 0000000..383cf5b --- /dev/null +++ b/results/query/ore_metadata_1000000.json @@ -0,0 +1,234 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e67c5c742bbb32a2787920c52f51c95fb332490558c9c4257dd62a8890009deb1875465951a7e0e5d23bc7057c3012b92c51a03714ad703d4b3a20cd537b3bcc874561522b6fb6886dc77a551840a9349c8387dfc0656c89a1ee49fc506c22c23a5a09d6e9c91d604784fee1c969e8907d5dedd7b11a34e13ebcff725212c76acaef861120137157fb8abe1ab8d1899718a40f2c72211f319294569e51dbe3501f1d8bb2d9cf4ab406891a605ba2cf78ae50ea10882f061bcf387f2c61e4f71a8981ed8c675159e8505a0ebe1f92adde7cf0994511a9d2a0a2210c5fc51dbabece4cb8868bfffd11012532a598cf5d52ee88b0348798bfde9196a66b66386365d98a74377211552acdb7460dc88039e8\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } + ], + "id": "ORE/ore/range_gt_10/1000000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_1000000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e67c5c742bbb32a2787920c52f51c95fb332490558c9c4257dd62a8890009deb1875465951a7e0e5d23bc7057c3012b92c51a03714ad703d4b3a20cd537b3bcc874561522b6fb6886dc77a551840a9349c8387dfc0656c89a1ee49fc506c22c23a5a09d6e9c91d604784fee1c969e8907d5dedd7b11a34e13ebcff725212c76acaef861120137157fb8abe1ab8d1899718a40f2c72211f319294569e51dbe3501f1d8bb2d9cf4ab406891a605ba2cf78ae50ea10882f061bcf387f2c61e4f71a8981ed8c675159e8505a0ebe1f92adde7cf0994511a9d2a0a2210c5fc51dbabece4cb8868bfffd11012532a598cf5d52ee88b0348798bfde9196a66b66386365d98a74377211552acdb7460dc88039e8" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value > $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb282f4dd513a78aebbec8ca692b96cdae97e9b6c41c10581f11c9ec33769a5d2eb0c8efbb27b03691cc3485710a03010eeeead21c234f65800ebb86fecbb0768cf2f8cbb843bb1b305b73b3dacc7843c8cb60c3730d327eb2fd34ec2e828f857cc77f51f7ef8bab0cf4a14a6f6cf24a2fb42dc119f0f0f665c4b15751e1d8358d8f5fc60e368012b52d4d2a0861109691e15b44d216d1a73f95f28ab34be74c5a5c26b2e9ee7a2538b2db54200201e64022728dbbbdc77bc9516b43fcc8501a5743615eaf814dc80cde01cecf99f578ab01fad07c7870ab81855b9cfddb79ecc073cd81de16c20ea228132d31ff0c6828fa5994153d6df51659ccc86465336ae659fba38b9fddbbebf969c213bf7e4af10c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } + ], + "id": "ORE/ore/range_gt_100/1000000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_1000000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb282f4dd513a78aebbec8ca692b96cdae97e9b6c41c10581f11c9ec33769a5d2eb0c8efbb27b03691cc3485710a03010eeeead21c234f65800ebb86fecbb0768cf2f8cbb843bb1b305b73b3dacc7843c8cb60c3730d327eb2fd34ec2e828f857cc77f51f7ef8bab0cf4a14a6f6cf24a2fb42dc119f0f0f665c4b15751e1d8358d8f5fc60e368012b52d4d2a0861109691e15b44d216d1a73f95f28ab34be74c5a5c26b2e9ee7a2538b2db54200201e64022728dbbbdc77bc9516b43fcc8501a5743615eaf814dc80cde01cecf99f578ab01fad07c7870ab81855b9cfddb79ecc073cd81de16c20ea228132d31ff0c6828fa5994153d6df51659ccc86465336ae659fba38b9fddbbebf969c213bf7e4af10c" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value > $1 LIMIT 100" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2852dd641af35f85678b9763d22df20b5c661af02730af1dad4f648aca466b1400466e53c2a5192636ba261eb85dc4abba14b7fba0da00e6c5d8d04073af6d64b32362459f451e8549d3ac6575ee4ce6b2feeefea4919cdab79c7a87e93de84d6f6a185ad9c8ef1da18a410fb3ce8b4c6df9cf68951e70062f95b56a96fb65adbf4913479617c41e01892b744151378f77588eb90e72a0dde315c53c525ee5b4d572cced711b4b80af9e81f2b257cc5f755940a3057ee5669ea685396f01e25ed3f29eb1202a80f6230e92668b04dae9e71188ba90ff93ccd5b971219cb01b4360ecabd4d4f644e5a5c7958d05414c8837efaad4e91dc0ff60cbf5cfe717f3648ccfeb90649367e1d42951795fac8471fe\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } + ], + "id": "ORE/ore/range_lt_10/1000000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_1000000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2852dd641af35f85678b9763d22df20b5c661af02730af1dad4f648aca466b1400466e53c2a5192636ba261eb85dc4abba14b7fba0da00e6c5d8d04073af6d64b32362459f451e8549d3ac6575ee4ce6b2feeefea4919cdab79c7a87e93de84d6f6a185ad9c8ef1da18a410fb3ce8b4c6df9cf68951e70062f95b56a96fb65adbf4913479617c41e01892b744151378f77588eb90e72a0dde315c53c525ee5b4d572cced711b4b80af9e81f2b257cc5f755940a3057ee5669ea685396f01e25ed3f29eb1202a80f6230e92668b04dae9e71188ba90ff93ccd5b971219cb01b4360ecabd4d4f644e5a5c7958d05414c8837efaad4e91dc0ff60cbf5cfe717f3648ccfeb90649367e1d42951795fac8471fe" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value < $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28da9f8b2f4a04d727439450791a2d22ef57461db05fdc4394e8d2ab653878651c049dd7e35424bcf81d0f52bb8c92fe90008e3cb57b72c6f6fd66f3e4d7bcd25c97bf39e81776e9f43ffbbae6cc991e158691ca9504779797cfcf6e3de8ecae70b8a7fcbfd61e62e5fbcb0f31d6926acce14714f4f0bfcf4e9a764d6f0f31558e776619448216389a2cf97ce10b7b6fba4106e618b189460a4d6c73d6539119031b66994e250a021ce7316e2bae4a003e4edc7fb9abc985ab9cac23de2013fc3ab136b77ec453a4048a4a823dffd0946226ba13768c670a4ce53a9456005c40f86bb0d549d5819528436595605ce19013551ac4f52611c714288b97530f71939837d98ef8e90722aa9648ba03516cf5cd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } + ], + "id": "ORE/ore/range_lt_100/1000000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_1000000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28da9f8b2f4a04d727439450791a2d22ef57461db05fdc4394e8d2ab653878651c049dd7e35424bcf81d0f52bb8c92fe90008e3cb57b72c6f6fd66f3e4d7bcd25c97bf39e81776e9f43ffbbae6cc991e158691ca9504779797cfcf6e3de8ecae70b8a7fcbfd61e62e5fbcb0f31d6926acce14714f4f0bfcf4e9a764d6f0f31558e776619448216389a2cf97ce10b7b6fba4106e618b189460a4d6c73d6539119031b66994e250a021ce7316e2bae4a003e4edc7fb9abc985ab9cac23de2013fc3ab136b77ec453a4048a4a823dffd0946226ba13768c670a4ce53a9456005c40f86bb0d549d5819528436595605ce19013551ac4f52611c714288b97530f71939837d98ef8e90722aa9648ba03516cf5cd" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value < $1 LIMIT 100" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 68, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2825e553b73d0e9400f14833cfc1975af57f8b79e9e873918bc567c4c6d04c923efafffc245dc8c8a338f3aa6b685249a1ab53d8422625a534e35141567a37bf0afa5157c81b9c00780121a322d78bce5bf515e7f3f34759001c3faf4687a278f0ca248323bad12fee4382f371368058ae8a177cb5c33e6eca25039ad0a0c15f588e3f7221bd024953e0f55246ca05d2e14008b09b4f928c3f1849e4939688c79fd7beaae5907770d51c30741af2a3c956e78c90345868116dd5fd21739f2669715afb276ddc6aba944d740cc9dba21672c03e66d5f2f6e00bc591b60fcf30d84ff59a813f4bc0606d313388ef9c0704aa83ebdb1daa3602ba6ea1fb602690ade2c1fab04b438be6b4999d179132eac72d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_1000000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 68, + "Relation Name": "integer_encrypted_1000000", + "Scan Direction": "Forward", + "Startup Cost": 0.8, + "Total Cost": 847836.63 + } + ], + "Startup Cost": 0.8, + "Total Cost": 26.24 + } + } + ], + "id": "ORE/ore/range_lt_hybrid_ordered_10/1000000", + "indexes_used": [ + "integer_encrypted_1000000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_1000000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2825e553b73d0e9400f14833cfc1975af57f8b79e9e873918bc567c4c6d04c923efafffc245dc8c8a338f3aa6b685249a1ab53d8422625a534e35141567a37bf0afa5157c81b9c00780121a322d78bce5bf515e7f3f34759001c3faf4687a278f0ca248323bad12fee4382f371368058ae8a177cb5c33e6eca25039ad0a0c15f588e3f7221bd024953e0f55246ca05d2e14008b09b4f928c3f1849e4939688c79fd7beaae5907770d51c30741af2a3c956e78c90345868116dd5fd21739f2669715afb276ddc6aba944d740cc9dba21672c03e66d5f2f6e00bc591b60fcf30d84ff59a813f4bc0606d313388ef9c0704aa83ebdb1daa3602ba6ea1fb602690ade2c1fab04b438be6b4999d179132eac72d" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10" + } + ], + "target_rows": "1000000" +} \ No newline at end of file diff --git a/results/query/ore_metadata_10000000.json b/results/query/ore_metadata_10000000.json new file mode 100644 index 0000000..c38eea6 --- /dev/null +++ b/results/query/ore_metadata_10000000.json @@ -0,0 +1,234 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289161674bf4e1c28e73caaa834dc21dbd88eb8b876c124726a77adf6b0c73cc161cd4977ed110cc6e14ab232ad0fc14b457b37e195bd963b738310274fdd7951a3ee2e0edcabf1a7b56d1d018dc2dfcb9c87fba6c919f77f945de184e67fe62e42d837fd24eb3878be2df92aaeba606b64b8e4edad95e42015b8746db94222acda1a82e385f3d3ee5345a268b0abd6b6abfac704e703532834c57686c7e4b771049b57ae6d77655b63cfae34baf348f52bec7a45c560959f4a1ec9c2eaaf81e8fb2ac0cdd0721fc17dee72316374e6f71b5a4b23097f09ab3e0cd46281cb4d16d3d9939c7fc9f16e46eb103f607abba433abb20de3607e512b1a347ec7690d83a8946111f411893b66793de0834beb797\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } + ], + "id": "ORE/ore/range_gt_10/10000000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289161674bf4e1c28e73caaa834dc21dbd88eb8b876c124726a77adf6b0c73cc161cd4977ed110cc6e14ab232ad0fc14b457b37e195bd963b738310274fdd7951a3ee2e0edcabf1a7b56d1d018dc2dfcb9c87fba6c919f77f945de184e67fe62e42d837fd24eb3878be2df92aaeba606b64b8e4edad95e42015b8746db94222acda1a82e385f3d3ee5345a268b0abd6b6abfac704e703532834c57686c7e4b771049b57ae6d77655b63cfae34baf348f52bec7a45c560959f4a1ec9c2eaaf81e8fb2ac0cdd0721fc17dee72316374e6f71b5a4b23097f09ab3e0cd46281cb4d16d3d9939c7fc9f16e46eb103f607abba433abb20de3607e512b1a347ec7690d83a8946111f411893b66793de0834beb797" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value > $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289debaf9f991b0e2e92fa616e2c52a42610746a6585a09e73f2db9ac3e0a60fed2310d939609e95e0d1adf353ad8b1517e6a2443523f2a8e60f83f5ece6864140c35cbd5ca3b737da90480ee7f6e9c9c6541b904ef83ec41efc4d62eabb4bdeb5dd201155113c10fa2bd72065862f4f71d21b668c3feb2c336a0097fe8854f5f955b9bf9e25b3e0f0d9c96d7901544fc46cff5f824ded8b4e3a0968f434c610242319a0d8e12751e8c2a17ea7a3449785baec5ca7d6782661461cde717c082c21553bbae14a5e505e2cb9d1364293b983d21696188e7e0d2312f99bdb431e88c203da9ca221ef9a387aac58ca9e7558e66ca2e9b81dc440e7da657f673ad5d4c8b71005d3bf95eb3900d967fb9712e5d4\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } + ], + "id": "ORE/ore/range_gt_100/10000000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289debaf9f991b0e2e92fa616e2c52a42610746a6585a09e73f2db9ac3e0a60fed2310d939609e95e0d1adf353ad8b1517e6a2443523f2a8e60f83f5ece6864140c35cbd5ca3b737da90480ee7f6e9c9c6541b904ef83ec41efc4d62eabb4bdeb5dd201155113c10fa2bd72065862f4f71d21b668c3feb2c336a0097fe8854f5f955b9bf9e25b3e0f0d9c96d7901544fc46cff5f824ded8b4e3a0968f434c610242319a0d8e12751e8c2a17ea7a3449785baec5ca7d6782661461cde717c082c21553bbae14a5e505e2cb9d1364293b983d21696188e7e0d2312f99bdb431e88c203da9ca221ef9a387aac58ca9e7558e66ca2e9b81dc440e7da657f673ad5d4c8b71005d3bf95eb3900d967fb9712e5d4" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value > $1 LIMIT 100" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c4e2c6c7ebf0c5e05185e7581d967b4bcdbd02eaf3a12fc72f09e3dab676ea6eebc5f7e655db087f86ae65b1940581f49da1fc737f2e609a25b9c70c4261cc4477c25c190298e65062ce719dd458ef23f3a97b7e12ae4de8c8f7afc93108c795dbf73bac1ad0a682ca54b8bdb4002c827f19698e0d4f1d91804686248fd515621e7ad1410cde2cdd6878e72f15ce55c231a8d15486edd061651f9a16ae430e3c7ef7dab1b9b3e72018661ddd748a0b787395da7ff4e39d0a508b8bedb3c30476f0f5b5eec0cc6f58bf600084d9b97c93cee15191505fe87c3daca9cd42d68e286c99140b1ff5af98e095a83b65e304e6295f6e5db8bb41841a2732770167e87521f960a9784a2513f1b1a7bbbaf406eb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } + ], + "id": "ORE/ore/range_lt_10/10000000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c4e2c6c7ebf0c5e05185e7581d967b4bcdbd02eaf3a12fc72f09e3dab676ea6eebc5f7e655db087f86ae65b1940581f49da1fc737f2e609a25b9c70c4261cc4477c25c190298e65062ce719dd458ef23f3a97b7e12ae4de8c8f7afc93108c795dbf73bac1ad0a682ca54b8bdb4002c827f19698e0d4f1d91804686248fd515621e7ad1410cde2cdd6878e72f15ce55c231a8d15486edd061651f9a16ae430e3c7ef7dab1b9b3e72018661ddd748a0b787395da7ff4e39d0a508b8bedb3c30476f0f5b5eec0cc6f58bf600084d9b97c93cee15191505fe87c3daca9cd42d68e286c99140b1ff5af98e095a83b65e304e6295f6e5db8bb41841a2732770167e87521f960a9784a2513f1b1a7bbbaf406eb" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value < $1 LIMIT 10" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f9533cf70d88611efd8c5f50fe07ebfb32020fe350dab197f35b352d1e8fa063389358d26faddd169633742b39e4aef4124083587abe2a5910f2bdef1c71b11c88b64ffdfe6a87a34e234fbe6509c584869cf7794efa5a71aa2ac55165c7440d5c2290afb506b90727982a6a3b0e5a1492f52bf36718e62fc4f2ab000e229584c13eb8f663f8bb2eb5d0b916204ceb8e6d2b11af6e1b54a38bbe67ed2c1e78abff6b334039af0758ae689596dcfb4db1a9d0fe2bd11eeed3eabc8ea2e83024c322657d1aea63798549269ad6d595f8479bed39c12903d95503b175fd7cd1c7a66e8d0d16d4c224621dd533ac32aaf96d359d303ee973d563e45212ca9acc6256bf01b1d50d89dc5185605245600fd8f9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } + ], + "id": "ORE/ore/range_lt_100/10000000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f9533cf70d88611efd8c5f50fe07ebfb32020fe350dab197f35b352d1e8fa063389358d26faddd169633742b39e4aef4124083587abe2a5910f2bdef1c71b11c88b64ffdfe6a87a34e234fbe6509c584869cf7794efa5a71aa2ac55165c7440d5c2290afb506b90727982a6a3b0e5a1492f52bf36718e62fc4f2ab000e229584c13eb8f663f8bb2eb5d0b916204ceb8e6d2b11af6e1b54a38bbe67ed2c1e78abff6b334039af0758ae689596dcfb4db1a9d0fe2bd11eeed3eabc8ea2e83024c322657d1aea63798549269ad6d595f8479bed39c12903d95503b175fd7cd1c7a66e8d0d16d4c224621dd533ac32aaf96d359d303ee973d563e45212ca9acc6256bf01b1d50d89dc5185605245600fd8f9" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value < $1 LIMIT 100" + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 68, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e3d7300dc58ea91cf8a4191c154e03703ce05ee3e6171c7d090590845a66319db717e79d096859d7eb0554abffed13033c449740d9cddb18a67b1a6ea2f46859c04deadf6d2b57b5b20239b27be563f0994611654f3fc8e850e52b0e8249efde498f12475f55cb3401f72468f7086b8e4f9ff1be938447ffd322cfbf0105f1adaeca9a843bd877c16de3239270d1bc8f6ce925d98d41227264b1170ae964929af7c99de50a3245c056655ab2a0a7150da5f5b7be71890aef53fc9b4ce802a90298cda3b926902955d63f35cf6aeb5cae873f29baaa351235171e0a323e09baec00c4ae491d91db9f42a8ba4eca64e3d3ba7287fb6ec56fe4d98e4549004447e3786aa6f201ed6b0e63123e5c54206cea\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 68, + "Relation Name": "integer_encrypted_10000000", + "Scan Direction": "Forward", + "Startup Cost": 0.94, + "Total Cost": 13113848.76 + } + ], + "Startup Cost": 0.94, + "Total Cost": 40.28 + } + } + ], + "id": "ORE/ore/range_lt_hybrid_ordered_10/10000000", + "indexes_used": [ + "integer_encrypted_10000000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000000" + }, + "ob": [ + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e3d7300dc58ea91cf8a4191c154e03703ce05ee3e6171c7d090590845a66319db717e79d096859d7eb0554abffed13033c449740d9cddb18a67b1a6ea2f46859c04deadf6d2b57b5b20239b27be563f0994611654f3fc8e850e52b0e8249efde498f12475f55cb3401f72468f7086b8e4f9ff1be938447ffd322cfbf0105f1adaeca9a843bd877c16de3239270d1bc8f6ce925d98d41227264b1170ae964929af7c99de50a3245c056655ab2a0a7150da5f5b7be71890aef53fc9b4ce802a90298cda3b926902955d63f35cf6aeb5cae873f29baaa351235171e0a323e09baec00c4ae491d91db9f42a8ba4eca64e3d3ba7287fb6ec56fe4d98e4549004447e3786aa6f201ed6b0e63123e5c54206cea" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10" + } + ], + "target_rows": "10000000" +} \ No newline at end of file diff --git a/results/query/ore_rows_10000.json b/results/query/ore_rows_10000.json index 81e84e4..2dd6e2c 100644 --- a/results/query/ore_rows_10000.json +++ b/results/query/ore_rows_10000.json @@ -1,11 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[81352458.0,169325917.0,289906750.0,369624667.0,450405250.0,629416208.0,637588542.0,751961583.0,853657542.0,925545458.0],"unit":"ns","throughput":[],"typical":{"estimate":1517131.613908672,"lower_bound":1482948.2875453916,"upper_bound":1567005.312958678,"unit":"ns"},"mean":{"estimate":1487944.4790649,"lower_bound":1427758.688003072,"upper_bound":1550054.0126670508,"unit":"ns"},"median":{"estimate":1491618.6495967743,"lower_bound":1417314.805875576,"upper_bound":1537345.0097446237,"unit":"ns"},"median_abs_dev":{"estimate":57029.73841332616,"lower_bound":17581.583619154866,"upper_bound":177214.3538441388,"unit":"ns"},"slope":{"estimate":1517131.613908672,"lower_bound":1482948.2875453916,"upper_bound":1567005.312958678,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[88916083.0,184725583.0,262525083.0,330004458.0,470647291.0,509877250.0,641814875.0,723275875.0,828706375.0,948050375.0],"unit":"ns","throughput":[],"typical":{"estimate":30472928.601731602,"lower_bound":29457201.45423729,"upper_bound":31104338.04761905,"unit":"ns"},"mean":{"estimate":29979273.237949736,"lower_bound":29168509.453769844,"upper_bound":30708929.61313492,"unit":"ns"},"median":{"estimate":30349553.94345238,"lower_bound":28982604.111111112,"upper_bound":30969549.580952384,"unit":"ns"},"median_abs_dev":{"estimate":1288224.9890494354,"lower_bound":193057.65768365216,"upper_bound":2260944.3352468815,"unit":"ns"},"slope":{"estimate":30472928.601731602,"lower_bound":29457201.45423729,"upper_bound":31104338.04761905,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[91726917.0,183770916.0,272391292.0,377927917.0,469584792.0,550665833.0,635307584.0,728511417.0,833212667.0,936888834.0],"unit":"ns","throughput":[],"typical":{"estimate":6601692.025602968,"lower_bound":6529549.086807036,"upper_bound":6664224.950607976,"unit":"ns"},"mean":{"estimate":6590544.791782879,"lower_bound":6536503.532653062,"upper_bound":6648561.55313492,"unit":"ns"},"median":{"estimate":6559396.31547619,"lower_bound":6504566.223214285,"upper_bound":6692063.1,"unit":"ns"},"median_abs_dev":{"estimate":95419.73056221104,"lower_bound":8394.745800963568,"upper_bound":153120.06951157504,"unit":"ns"},"slope":{"estimate":6601692.025602968,"lower_bound":6529549.086807036,"upper_bound":6664224.950607976,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[117357375.0,237213833.0,351880708.0,505559750.0,700570500.0,863499209.0,936555458.0,1092017334.0,1136195584.0,1371837083.0],"unit":"ns","throughput":[],"typical":{"estimate":44666382.58268398,"lower_bound":43049031.474620685,"upper_bound":45961908.1198841,"unit":"ns"},"mean":{"estimate":43246729.96171957,"lower_bound":41300010.48592593,"upper_bound":45160069.61366137,"unit":"ns"},"median":{"estimate":43363929.059523806,"lower_bound":39535638.833333336,"upper_bound":46102711.125,"unit":"ns"},"median_abs_dev":{"estimate":4228927.13220154,"lower_bound":340294.45907523483,"upper_bound":5314424.948500095,"unit":"ns"},"slope":{"estimate":44666382.58268398,"lower_bound":43049031.474620685,"upper_bound":45961908.1198841,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[61,122,183,244,305,366,427,488,549,610],"measured_values":[99871709.0,180530458.0,252087000.0,352140584.0,440169291.0,504595375.0,652562750.0,684571041.0,778696459.0,932616125.0],"unit":"ns","throughput":[],"typical":{"estimate":1457658.5746220993,"lower_bound":1407970.5899037211,"upper_bound":1503639.494309278,"unit":"ns"},"mean":{"estimate":1463790.561917122,"lower_bound":1419322.8109963574,"upper_bound":1514364.6211520948,"unit":"ns"},"median":{"estimate":1443188.5590163935,"lower_bound":1398533.2618397085,"upper_bound":1528250.0,"unit":"ns"},"median_abs_dev":{"estimate":77756.23051377239,"lower_bound":18374.87525891743,"upper_bound":141286.29926441272,"unit":"ns"},"slope":{"estimate":1457658.5746220993,"lower_bound":1407970.5899037211,"upper_bound":1503639.494309278,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[123741458.0,248761375.0,343748167.0,531091000.0,595410542.0,723608417.0,843636125.0,927393833.0,1144673167.0,1217558666.0],"unit":"ns","throughput":[],"typical":{"estimate":30453132.872077923,"lower_bound":29633235.245192308,"upper_bound":31251557.63571004,"unit":"ns"},"mean":{"estimate":30513664.466617066,"lower_bound":29759107.8976064,"upper_bound":31327932.68334598,"unit":"ns"},"median":{"estimate":30294658.679166667,"lower_bound":29555459.44419643,"upper_bound":31365920.680555556,"unit":"ns"},"median_abs_dev":{"estimate":1068375.6380875402,"lower_bound":229139.5642019604,"upper_bound":2230823.887719959,"unit":"ns"},"slope":{"estimate":30453132.872077923,"lower_bound":29633235.245192308,"upper_bound":31251557.63571004,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[87678250.0,176701416.0,264164125.0,345715459.0,433206417.0,536385125.0,650593708.0,710800167.0,773664500.0,873253917.0],"unit":"ns","throughput":[],"typical":{"estimate":6780590.427572427,"lower_bound":6674656.24668435,"upper_bound":6934294.881601158,"unit":"ns"},"mean":{"estimate":6781780.218458486,"lower_bound":6701993.852325856,"upper_bound":6881203.08509768,"unit":"ns"},"median":{"estimate":6758959.935897436,"lower_bound":6664714.107692308,"upper_bound":6836470.33974359,"unit":"ns"},"median_abs_dev":{"estimate":125949.00470376553,"lower_bound":38345.62358076793,"upper_bound":207983.4545924966,"unit":"ns"},"slope":{"estimate":6780590.427572427,"lower_bound":6674656.24668435,"upper_bound":6934294.881601158,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[88073583.0,189847417.0,301494083.0,364772958.0,448947125.0,564692417.0,605495375.0,717753334.0,800600250.0,852459459.0],"unit":"ns","throughput":[],"typical":{"estimate":44382758.13246753,"lower_bound":43442280.79938272,"upper_bound":45835887.95689655,"unit":"ns"},"mean":{"estimate":45450671.088452384,"lower_bound":44220973.831892855,"upper_bound":46860668.154062495,"unit":"ns"},"median":{"estimate":44877147.9375,"lower_bound":43863730.6547619,"upper_bound":47057701.416666664,"unit":"ns"},"median_abs_dev":{"estimate":1829405.8544590545,"lower_bound":309063.40826303506,"upper_bound":3587062.6440069056,"unit":"ns"},"slope":{"estimate":44382758.13246753,"lower_bound":43442280.79938272,"upper_bound":45835887.95689655,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[68,136,204,272,340,408,476,544,612,680],"measured_values":[86653917.0,164951541.0,277449875.0,407543375.0,454707667.0,619054084.0,660277041.0,652416375.0,851070208.0,883704000.0],"unit":"ns","throughput":[],"typical":{"estimate":1344724.412605042,"lower_bound":1280311.5771790468,"upper_bound":1423339.8719285182,"unit":"ns"},"mean":{"estimate":1347686.9586385388,"lower_bound":1286016.4640552052,"upper_bound":1411305.0956115779,"unit":"ns"},"median":{"estimate":1348711.9490196079,"lower_bound":1256221.8419117648,"upper_bound":1442728.9361869749,"unit":"ns"},"median_abs_dev":{"estimate":91577.88998916742,"lower_bound":22675.764593993314,"upper_bound":201730.2110131315,"unit":"ns"},"slope":{"estimate":1344724.412605042,"lower_bound":1280311.5771790468,"upper_bound":1423339.8719285182,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[110114625.0,220843917.0,243087000.0,353764333.0,495682708.0,620143417.0,620503958.0,764313750.0,859251250.0,899276750.0],"unit":"ns","throughput":[],"typical":{"estimate":31237628.82164502,"lower_bound":30215782.31721519,"upper_bound":32512779.646066375,"unit":"ns"},"mean":{"estimate":32069437.398306884,"lower_bound":30214333.762083333,"upper_bound":33976856.255055554,"unit":"ns"},"median":{"estimate":31835263.310185187,"lower_bound":29547807.523809522,"upper_bound":34875194.43333334,"unit":"ns"},"median_abs_dev":{"estimate":3441379.9341088524,"lower_bound":367336.81490346976,"upper_bound":5466998.773466367,"unit":"ns"},"slope":{"estimate":31237628.82164502,"lower_bound":30215782.31721519,"upper_bound":32512779.646066375,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[67,134,201,268,335,402,469,536,603,670],"measured_values":[93067791.0,187423417.0,291940291.0,382578833.0,537496083.0,593789250.0,762016083.0,888687250.0,846934459.0,1019892333.0],"unit":"ns","throughput":[],"typical":{"estimate":1527009.5284745106,"lower_bound":1453374.2086923402,"upper_bound":1601413.929461221,"unit":"ns"},"mean":{"estimate":1495880.8036413172,"lower_bound":1439041.6730468788,"upper_bound":1557287.442089108,"unit":"ns"},"median":{"estimate":1464763.472636816,"lower_bound":1404534.7578772802,"upper_bound":1604465.9194029851,"unit":"ns"},"median_abs_dev":{"estimate":93633.57982399028,"lower_bound":15801.396235638145,"upper_bound":159671.87473660085,"unit":"ns"},"slope":{"estimate":1527009.5284745106,"lower_bound":1453374.2086923402,"upper_bound":1601413.929461221,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[127573417.0,218701833.0,368152042.0,452593750.0,539782125.0,706696667.0,789797709.0,963514667.0,1092225166.0,1228620167.0],"unit":"ns","throughput":[],"typical":{"estimate":29721966.427922077,"lower_bound":28605132.03125,"upper_bound":30328597.828948658,"unit":"ns"},"mean":{"estimate":29400431.67905754,"lower_bound":28441521.774494052,"upper_bound":30340482.02131944,"unit":"ns"},"median":{"estimate":29777763.901041664,"lower_bound":27812419.25,"upper_bound":30679336.833333332,"unit":"ns"},"median_abs_dev":{"estimate":1800169.0332806115,"lower_bound":278666.69676351134,"upper_bound":2673309.278376773,"unit":"ns"},"slope":{"estimate":29721966.427922077,"lower_bound":28605132.03125,"upper_bound":30328597.828948658,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[95923333.0,191551500.0,279517125.0,395535125.0,502909416.0,531536875.0,632892917.0,741349333.0,858536333.0,906708708.0],"unit":"ns","throughput":[],"typical":{"estimate":6634219.981076066,"lower_bound":6496213.005936163,"upper_bound":6821723.938401048,"unit":"ns"},"mean":{"estimate":6729088.134197844,"lower_bound":6571205.0341893425,"upper_bound":6892793.158670634,"unit":"ns"},"median":{"estimate":6734475.031746032,"lower_bound":6476490.771428571,"upper_bound":6952126.116071429,"unit":"ns"},"median_abs_dev":{"estimate":278117.868552421,"lower_bound":28085.056034723762,"upper_bound":487259.7436577439,"unit":"ns"},"slope":{"estimate":6634219.981076066,"lower_bound":6496213.005936163,"upper_bound":6821723.938401048,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[98800833.0,189420833.0,265325792.0,395676625.0,467107250.0,576170000.0,617033708.0,697438584.0,814695250.0,974173583.0],"unit":"ns","throughput":[],"typical":{"estimate":46261844.58831169,"lower_bound":44618570.96641791,"upper_bound":47963848.84390367,"unit":"ns"},"mean":{"estimate":46679433.40329365,"lower_bound":45347785.01830158,"upper_bound":47988954.602436505,"unit":"ns"},"median":{"estimate":47032966.625,"lower_bound":44220965.333333336,"upper_bound":48708679.15,"unit":"ns"},"median_abs_dev":{"estimate":3068662.651137013,"lower_bound":514842.09475472645,"upper_bound":3691317.6162660085,"unit":"ns"},"slope":{"estimate":46261844.58831169,"lower_bound":44618570.96641791,"upper_bound":47963848.84390367,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[58,116,174,232,290,348,406,464,522,580],"measured_values":[91196750.0,201436250.0,309060834.0,402497250.0,377061625.0,510999500.0,598148959.0,763420000.0,703287875.0,867738750.0],"unit":"ns","throughput":[],"typical":{"estimate":1490547.5577698164,"lower_bound":1408861.542530199,"upper_bound":1588531.4232566198,"unit":"ns"},"mean":{"estimate":1555056.3747263274,"lower_bound":1457609.3702107281,"upper_bound":1651813.8487684727,"unit":"ns"},"median":{"estimate":1534229.5258620689,"lower_bound":1410284.0388615215,"upper_bound":1734901.9396551724,"unit":"ns"},"median_abs_dev":{"estimate":220912.54399468505,"lower_bound":20542.849850808787,"upper_bound":288532.2033545408,"unit":"ns"},"slope":{"estimate":1490547.5577698164,"lower_bound":1408861.542530199,"upper_bound":1588531.4232566198,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107203667.0,224149709.0,323718250.0,509127042.0,618335041.0,662718708.0,773669708.0,928256708.0,1015263833.0,1135161417.0],"unit":"ns","throughput":[],"typical":{"estimate":28546677.755194806,"lower_bound":28032720.263325065,"upper_bound":29322389.06329369,"unit":"ns"},"mean":{"estimate":28536651.457222223,"lower_bound":27658204.752777778,"upper_bound":29569161.815097224,"unit":"ns"},"median":{"estimate":28110243.381944444,"lower_bound":27303790.916666664,"upper_bound":29647893.7375,"unit":"ns"},"median_abs_dev":{"estimate":1033922.689556703,"lower_bound":267106.5455979114,"upper_bound":2674582.0080875102,"unit":"ns"},"slope":{"estimate":28546677.755194806,"lower_bound":28032720.263325065,"upper_bound":29322389.06329369,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[94911542.0,180641583.0,274363042.0,356457541.0,454659500.0,559228667.0,666894625.0,732514125.0,857312250.0,938533875.0],"unit":"ns","throughput":[],"typical":{"estimate":6672227.806122449,"lower_bound":6560828.006834409,"upper_bound":6746914.749019666,"unit":"ns"},"mean":{"estimate":6613449.817304422,"lower_bound":6520280.8107568035,"upper_bound":6704854.56590136,"unit":"ns"},"median":{"estimate":6598894.40922619,"lower_bound":6491969.244047619,"upper_bound":6779395.857142857,"unit":"ns"},"median_abs_dev":{"estimate":187050.95487918152,"lower_bound":19743.08289234791,"upper_bound":259442.32710647775,"unit":"ns"},"slope":{"estimate":6672227.806122449,"lower_bound":6560828.006834409,"upper_bound":6746914.749019666,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[132203792.0,240565333.0,410169209.0,482148583.0,598658833.0,783835625.0,908656291.0,1120940167.0,1256770000.0,1383163167.0],"unit":"ns","throughput":[],"typical":{"estimate":44969195.995671,"lower_bound":42830239.2941277,"upper_bound":46021853.28026534,"unit":"ns"},"mean":{"estimate":43600023.386917986,"lower_bound":41972461.45533928,"upper_bound":45145894.6818254,"unit":"ns"},"median":{"estimate":43807177.13888889,"lower_bound":40179048.583333336,"upper_bound":46105438.9,"unit":"ns"},"median_abs_dev":{"estimate":3734759.5197036536,"lower_bound":261891.00599051037,"upper_bound":4707440.2767262375,"unit":"ns"},"slope":{"estimate":44969195.995671,"lower_bound":42830239.2941277,"upper_bound":46021853.28026534,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[80,160,240,320,400,480,560,640,720,800],"measured_values":[90954500.0,180185583.0,305892416.0,399387333.0,454684625.0,535217625.0,618208083.0,705070250.0,798766125.0,892632625.0],"unit":"ns","throughput":[],"typical":{"estimate":1121250.6843181818,"lower_bound":1109648.1442825112,"upper_bound":1148551.7401412171,"unit":"ns"},"mean":{"estimate":1146828.002202381,"lower_bound":1115174.930327381,"upper_bound":1187638.5988072916,"unit":"ns"},"median":{"estimate":1120975.3375,"lower_bound":1109397.3958333333,"upper_bound":1192398.4890625,"unit":"ns"},"median_abs_dev":{"estimate":23493.381111659248,"lower_bound":4739.416525233594,"upper_bound":82561.43585580394,"unit":"ns"},"slope":{"estimate":1121250.6843181818,"lower_bound":1109648.1442825112,"upper_bound":1148551.7401412171,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107354084.0,224226667.0,369724000.0,462993834.0,602931750.0,640750250.0,779325041.0,925005541.0,1085581333.0,1151385458.0],"unit":"ns","throughput":[],"typical":{"estimate":28906182.594805196,"lower_bound":28075809.4026972,"upper_bound":29647837.679378532,"unit":"ns"},"mean":{"estimate":28713795.07292659,"lower_bound":27898375.802529763,"upper_bound":29531472.655426584,"unit":"ns"},"median":{"estimate":28845529.803125,"lower_bound":27433427.1875,"upper_bound":30146587.5,"unit":"ns"},"median_abs_dev":{"estimate":1715034.822827045,"lower_bound":113032.06912078019,"upper_bound":2458533.2877439745,"unit":"ns"},"slope":{"estimate":28906182.594805196,"lower_bound":28075809.4026972,"upper_bound":29647837.679378532,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_100000.json b/results/query/ore_rows_100000.json index 6da4183..7a3becd 100644 --- a/results/query/ore_rows_100000.json +++ b/results/query/ore_rows_100000.json @@ -1,11 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[79,158,237,316,395,474,553,632,711,790],"measured_values":[113317084.0,218793792.0,302355166.0,290266000.0,376017750.0,546228791.0,609689791.0,818160250.0,901923750.0,948607584.0],"unit":"ns","throughput":[],"typical":{"estimate":1189971.9148117704,"lower_bound":1100115.6444155413,"upper_bound":1246898.3789029536,"unit":"ns"},"mean":{"estimate":1198418.0992254368,"lower_bound":1095333.579876281,"upper_bound":1294974.1961013412,"unit":"ns"},"median":{"estimate":1234648.787341772,"lower_bound":1052162.5432489451,"upper_bound":1330265.5147679325,"unit":"ns"},"median_abs_dev":{"estimate":158936.92226653345,"lower_bound":24656.07467903921,"upper_bound":308670.762616581,"unit":"ns"},"slope":{"estimate":1189971.9148117704,"lower_bound":1100115.6444155413,"upper_bound":1246898.3789029536,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[106088750.0,254052500.0,327964334.0,448493875.0,574788750.0,663761250.0,773318208.0,895542250.0,957550709.0,1104049125.0],"unit":"ns","throughput":[],"typical":{"estimate":27587393.88896104,"lower_bound":27135984.501420453,"upper_bound":28101313.82326284,"unit":"ns"},"mean":{"estimate":27984019.62757937,"lower_bound":27257964.278075397,"upper_bound":28955400.87757937,"unit":"ns"},"median":{"estimate":27637613.089285716,"lower_bound":27099929.465277776,"upper_bound":28362566.40625,"unit":"ns"},"median_abs_dev":{"estimate":549552.6053184877,"lower_bound":41135.19958220699,"upper_bound":1633564.8423234236,"unit":"ns"},"slope":{"estimate":27587393.88896104,"lower_bound":27135984.501420453,"upper_bound":28101313.82326284,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[89276750.0,170963541.0,265826875.0,332501291.0,431558250.0,542842542.0,633863041.0,764845584.0,830917834.0,907487250.0],"unit":"ns","throughput":[],"typical":{"estimate":7009485.532067932,"lower_bound":6828467.261877828,"upper_bound":7144634.009386888,"unit":"ns"},"mean":{"estimate":6865451.525854702,"lower_bound":6703432.323717949,"upper_bound":7027965.677564102,"unit":"ns"},"median":{"estimate":6913481.038461538,"lower_bound":6639357.692307692,"upper_bound":7033694.876068376,"unit":"ns"},"median_abs_dev":{"estimate":211854.7230054934,"lower_bound":20133.365504100144,"upper_bound":501059.82924287027,"unit":"ns"},"slope":{"estimate":7009485.532067932,"lower_bound":6828467.261877828,"upper_bound":7144634.009386888,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[85021708.0,170326459.0,228239000.0,382831750.0,443003625.0,598203167.0,649138916.0,731755417.0,765527875.0,948403875.0],"unit":"ns","throughput":[],"typical":{"estimate":45737352.11168831,"lower_bound":43764337.088509314,"upper_bound":47370142.7948085,"unit":"ns"},"mean":{"estimate":44718819.63799603,"lower_bound":42660310.35215029,"upper_bound":46675857.346837796,"unit":"ns"},"median":{"estimate":45017538.03125,"lower_bound":42529326.38888889,"upper_bound":47420193.75,"unit":"ns"},"median_abs_dev":{"estimate":3650261.1540678274,"lower_bound":66148.52468396717,"upper_bound":6172977.042607746,"unit":"ns"},"slope":{"estimate":45737352.11168831,"lower_bound":43764337.088509314,"upper_bound":47370142.7948085,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[88,176,264,352,440,528,616,704,792,880],"measured_values":[114061833.0,186489125.0,221899833.0,448161083.0,409929250.0,565586334.0,574020958.0,662975125.0,910028167.0,873317584.0],"unit":"ns","throughput":[],"typical":{"estimate":1022252.8104191263,"lower_bound":957248.4219208211,"upper_bound":1099262.9654415604,"unit":"ns"},"mean":{"estimate":1048732.2727872473,"lower_bound":962920.5868567709,"upper_bound":1141280.3014316603,"unit":"ns"},"median":{"estimate":1026001.8232954545,"lower_bound":931852.2045454546,"upper_bound":1172185.5667613635,"unit":"ns"},"median_abs_dev":{"estimate":139730.64099621694,"lower_bound":7608.303984385846,"upper_bound":253174.33757315468,"unit":"ns"},"slope":{"estimate":1022252.8104191263,"lower_bound":957248.4219208211,"upper_bound":1099262.9654415604,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[116675833.0,243027875.0,314302041.0,458709791.0,612586292.0,689020250.0,796430708.0,917993708.0,1003076209.0,1073883167.0],"unit":"ns","throughput":[],"typical":{"estimate":28092864.935714286,"lower_bound":27421876.611350574,"upper_bound":28996881.476780187,"unit":"ns"},"mean":{"estimate":28558869.7430754,"lower_bound":27742435.31224207,"upper_bound":29351422.4489375,"unit":"ns"},"median":{"estimate":28678332.65625,"lower_bound":27645516.51607143,"upper_bound":29543830.729166664,"unit":"ns"},"median_abs_dev":{"estimate":967937.7965490036,"lower_bound":32429.95939925129,"upper_bound":2617830.6282842155,"unit":"ns"},"slope":{"estimate":28092864.935714286,"lower_bound":27421876.611350574,"upper_bound":28996881.476780187,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[89514084.0,180823250.0,271153291.0,341620958.0,454509208.0,563657958.0,613949583.0,700997166.0,802401417.0,965085917.0],"unit":"ns","throughput":[],"typical":{"estimate":7005733.148651348,"lower_bound":6780467.40027637,"upper_bound":7244126.589547857,"unit":"ns"},"mean":{"estimate":6935048.05514652,"lower_bound":6798496.767069598,"upper_bound":7086039.802454213,"unit":"ns"},"median":{"estimate":6919173.628205128,"lower_bound":6746698.714285715,"upper_bound":7090562.230769231,"unit":"ns"},"median_abs_dev":{"estimate":182174.94587190208,"lower_bound":29504.38193619288,"upper_bound":416473.89770072536,"unit":"ns"},"slope":{"estimate":7005733.148651348,"lower_bound":6780467.40027637,"upper_bound":7244126.589547857,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[98028208.0,174041750.0,282405167.0,370345375.0,488301542.0,559377167.0,676062667.0,739924459.0,831181042.0,881491292.0],"unit":"ns","throughput":[],"typical":{"estimate":46129683.1948052,"lower_bound":45036852.65489225,"upper_bound":47498170.92859514,"unit":"ns"},"mean":{"estimate":46611691.76680557,"lower_bound":45511662.135791674,"upper_bound":47653986.32471875,"unit":"ns"},"median":{"estimate":46453967.89583333,"lower_bound":45159921.64375,"upper_bound":48290190.5,"unit":"ns"},"median_abs_dev":{"estimate":1816023.7658966426,"lower_bound":101638.35421639675,"upper_bound":3525318.5078930864,"unit":"ns"},"slope":{"estimate":46129683.1948052,"lower_bound":45036852.65489225,"upper_bound":47498170.92859514,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[85,170,255,340,425,510,595,680,765,850],"measured_values":[86760334.0,167041291.0,255757333.0,337142625.0,392144125.0,498536333.0,649571208.0,736961916.0,811228292.0,944919333.0],"unit":"ns","throughput":[],"typical":{"estimate":1059788.106340718,"lower_bound":1005219.8517334671,"upper_bound":1089252.8515311785,"unit":"ns"},"mean":{"estimate":1024566.8593678806,"lower_bound":988774.3088563727,"upper_bound":1059967.0282511204,"unit":"ns"},"median":{"estimate":1011839.8725490196,"lower_bound":982595.8294117647,"upper_bound":1083767.5235294118,"unit":"ns"},"median_abs_dev":{"estimate":61458.89744516104,"lower_bound":11784.879457835437,"upper_bound":103916.65166628726,"unit":"ns"},"slope":{"estimate":1059788.106340718,"lower_bound":1005219.8517334671,"upper_bound":1089252.8515311785,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114109542.0,217580541.0,377151208.0,467497875.0,536029625.0,640629834.0,802442209.0,938228125.0,980793583.0,1084117625.0],"unit":"ns","throughput":[],"typical":{"estimate":27834988.205844156,"lower_bound":27197715.23703898,"upper_bound":28777690.396921188,"unit":"ns"},"mean":{"estimate":28219271.469295632,"lower_bound":27395922.971031748,"upper_bound":29156931.811345488,"unit":"ns"},"median":{"estimate":27885825.847222224,"lower_bound":26999524.4375,"upper_bound":29218617.1875,"unit":"ns"},"median_abs_dev":{"estimate":1384177.4405801073,"lower_bound":104764.64276922491,"upper_bound":2736616.257540346,"unit":"ns"},"slope":{"estimate":27834988.205844156,"lower_bound":27197715.23703898,"upper_bound":28777690.396921188,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[100,200,300,400,500,600,700,800,900,1000],"measured_values":[95037541.0,186455208.0,272503666.0,388910459.0,496875166.0,574136542.0,743524875.0,794718750.0,919229250.0,975959667.0],"unit":"ns","throughput":[],"typical":{"estimate":996503.3744935065,"lower_bound":971207.1548730965,"upper_bound":1021660.5697992789,"unit":"ns"},"mean":{"estimate":976682.0050190475,"lower_bound":951201.7071416667,"upper_bound":1003386.2277714288,"unit":"ns"},"median":{"estimate":974117.9072499999,"lower_bound":944585.1383333334,"upper_bound":1007382.1354166667,"unit":"ns"},"median_abs_dev":{"estimate":32153.82910775544,"lower_bound":13188.219730362323,"upper_bound":77463.86157009145,"unit":"ns"},"slope":{"estimate":996503.3744935065,"lower_bound":971207.1548730965,"upper_bound":1021660.5697992789,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114683959.0,217493834.0,377702875.0,459957375.0,560239083.0,691140208.0,829196625.0,1048144333.0,1069009375.0,1499530209.0],"unit":"ns","throughput":[],"typical":{"estimate":31997768.778571427,"lower_bound":29110464.81111111,"upper_bound":34866922.43181818,"unit":"ns"},"mean":{"estimate":30244139.30084325,"lower_bound":28711597.49125992,"upper_bound":32202355.24800546,"unit":"ns"},"median":{"estimate":29205836.92261905,"lower_bound":28379645.04375,"upper_bound":31475239.583333332,"unit":"ns"},"median_abs_dev":{"estimate":1281507.4856536966,"lower_bound":113190.85557796061,"upper_bound":3975437.252928134,"unit":"ns"},"slope":{"estimate":31997768.778571427,"lower_bound":29110464.81111111,"upper_bound":34866922.43181818,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[82329792.0,173479916.0,256759375.0,347532708.0,469424208.0,526156542.0,653677125.0,664877083.0,780126500.0,909778708.0],"unit":"ns","throughput":[],"typical":{"estimate":6814673.524875125,"lower_bound":6596447.182769948,"upper_bound":7020364.406211436,"unit":"ns"},"mean":{"estimate":6748212.759685593,"lower_bound":6577668.491021901,"upper_bound":6930282.425971307,"unit":"ns"},"median":{"estimate":6677812.884615385,"lower_bound":6530398.369123932,"upper_bound":6998297.753846154,"unit":"ns"},"median_abs_dev":{"estimate":280955.0495899359,"lower_bound":14922.400414562488,"upper_bound":512824.9229272686,"unit":"ns"},"slope":{"estimate":6814673.524875125,"lower_bound":6596447.182769948,"upper_bound":7020364.406211436,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[92221208.0,191923500.0,288941792.0,343732875.0,460148541.0,518663417.0,635176791.0,697519792.0,790931458.0,916654583.0],"unit":"ns","throughput":[],"typical":{"estimate":44729705.345454544,"lower_bound":43886888.99066951,"upper_bound":45603498.36263736,"unit":"ns"},"mean":{"estimate":45318998.27162699,"lower_bound":44248348.25899603,"upper_bound":46438627.15380952,"unit":"ns"},"median":{"estimate":45601249.96785714,"lower_bound":43581293.986111104,"upper_bound":46997864.55,"unit":"ns"},"median_abs_dev":{"estimate":2718255.4123529806,"lower_bound":205988.62264797755,"upper_bound":3322043.387371942,"unit":"ns"},"slope":{"estimate":44729705.345454544,"lower_bound":43886888.99066951,"upper_bound":45603498.36263736,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[99,198,297,396,495,594,693,792,891,990],"measured_values":[94516292.0,179335458.0,269032000.0,350871291.0,403259708.0,627289750.0,766125458.0,762263709.0,895892292.0,995161083.0],"unit":"ns","throughput":[],"typical":{"estimate":994869.0738029648,"lower_bound":940188.9381748519,"upper_bound":1035461.8713448851,"unit":"ns"},"mean":{"estimate":960170.2669444444,"lower_bound":909728.3484082492,"upper_bound":1011274.3817424241,"unit":"ns"},"median":{"estimate":958582.0991161616,"lower_bound":895935.1317340068,"upper_bound":1030628.2826599327,"unit":"ns"},"median_abs_dev":{"estimate":78279.73080331247,"lower_bound":14672.57747107534,"upper_bound":147826.5515280793,"unit":"ns"},"slope":{"estimate":994869.0738029648,"lower_bound":940188.9381748519,"upper_bound":1035461.8713448851,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[138530541.0,266975375.0,390331708.0,498719750.0,564035958.0,695564000.0,819830416.0,949499541.0,1045919125.0,1187370250.0],"unit":"ns","throughput":[],"typical":{"estimate":29515391.603896104,"lower_bound":29157109.91144816,"upper_bound":30007512.4196008,"unit":"ns"},"mean":{"estimate":30657489.87149801,"lower_bound":29469413.92459325,"upper_bound":31996633.750009917,"unit":"ns"},"median":{"estimate":29678058.453125,"lower_bound":29053309.027777776,"upper_bound":32527642.333333332,"unit":"ns"},"median_abs_dev":{"estimate":1610463.6007416828,"lower_bound":273762.1410314193,"upper_bound":3369179.9251392703,"unit":"ns"},"slope":{"estimate":29515391.603896104,"lower_bound":29157109.91144816,"upper_bound":30007512.4196008,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[91157375.0,175635208.0,265895667.0,391500583.0,458677041.0,540730000.0,626614709.0,754039667.0,818276875.0,920085750.0],"unit":"ns","throughput":[],"typical":{"estimate":6554332.468089053,"lower_bound":6462323.045604396,"upper_bound":6652628.106625549,"unit":"ns"},"mean":{"estimate":6528847.58406746,"lower_bound":6417870.979383928,"upper_bound":6661010.529702382,"unit":"ns"},"median":{"estimate":6502750.992063493,"lower_bound":6384055.55952381,"upper_bound":6642513.091964286,"unit":"ns"},"median_abs_dev":{"estimate":131961.35225721807,"lower_bound":43194.2488398157,"upper_bound":325099.0975008375,"unit":"ns"},"slope":{"estimate":6554332.468089053,"lower_bound":6462323.045604396,"upper_bound":6652628.106625549,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[114678791.0,234879500.0,372085625.0,480259208.0,655433791.0,881280875.0,915651625.0,1087406000.0,1147275041.0,1289357667.0],"unit":"ns","throughput":[],"typical":{"estimate":43735452.04935065,"lower_bound":42519688.70637119,"upper_bound":45374256.0859882,"unit":"ns"},"mean":{"estimate":42577422.83185185,"lower_bound":40805125.144074075,"upper_bound":44496140.75519443,"unit":"ns"},"median":{"estimate":42735128.54259259,"lower_bound":40021600.666666664,"upper_bound":44455520.833333336,"unit":"ns"},"median_abs_dev":{"estimate":2939800.126974782,"lower_bound":531509.9902138151,"upper_bound":5495155.4173114905,"unit":"ns"},"slope":{"estimate":43735452.04935065,"lower_bound":42519688.70637119,"upper_bound":45374256.0859882,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[76,152,228,304,380,456,532,608,684,760],"measured_values":[74067083.0,149728583.0,244110416.0,299688958.0,428824750.0,517816167.0,598964375.0,623416000.0,700643583.0,813679375.0],"unit":"ns","throughput":[],"typical":{"estimate":1065560.3794600137,"lower_bound":1035072.6622437673,"upper_bound":1102833.8074970385,"unit":"ns"},"mean":{"estimate":1052634.1591478693,"lower_bound":1016335.0989583333,"upper_bound":1089486.9649436087,"unit":"ns"},"median":{"estimate":1047993.0098684211,"lower_bound":985818.9407894737,"upper_bound":1125872.8853383458,"unit":"ns"},"median_abs_dev":{"estimate":92744.4949120088,"lower_bound":3874.476839109119,"upper_bound":101107.11632012132,"unit":"ns"},"slope":{"estimate":1065560.3794600137,"lower_bound":1035072.6622437673,"upper_bound":1102833.8074970385,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101440625.0,241291167.0,364606750.0,483742417.0,616722875.0,665777709.0,827072250.0,949498125.0,1076548000.0,1168029125.0],"unit":"ns","throughput":[],"typical":{"estimate":29510264.614285715,"lower_bound":29009033.474862777,"upper_bound":29989748.240950584,"unit":"ns"},"mean":{"estimate":29303118.093105156,"lower_bound":28237453.565373268,"upper_bound":30107463.13816468,"unit":"ns"},"median":{"estimate":29787963.758680556,"lower_bound":28639516.25892857,"upper_bound":30272645.854166664,"unit":"ns"},"median_abs_dev":{"estimate":765891.0849714652,"lower_bound":197959.36289177035,"upper_bound":1959372.9597266754,"unit":"ns"},"slope":{"estimate":29510264.614285715,"lower_bound":29009033.474862777,"upper_bound":29989748.240950584,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/100000","ORE/ore_decrypt/range_gt_10/100000","ORE/ore/range_gt_100/100000","ORE/ore_decrypt/range_gt_100/100000","ORE/ore/range_lt_10/100000","ORE/ore_decrypt/range_lt_10/100000","ORE/ore/range_lt_100/100000","ORE/ore_decrypt/range_lt_100/100000","ORE/ore/range_lt_hybrid_ordered_10/100000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_1000000.json b/results/query/ore_rows_1000000.json index 1fea3ae..d60a9dc 100644 --- a/results/query/ore_rows_1000000.json +++ b/results/query/ore_rows_1000000.json @@ -1,11 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[80,160,240,320,400,480,560,640,720,800],"measured_values":[101857375.0,170036750.0,265073625.0,437960708.0,459742000.0,540055666.0,669346958.0,707798208.0,803041625.0,938091417.0],"unit":"ns","throughput":[],"typical":{"estimate":1152082.5241233767,"lower_bound":1121279.980927835,"upper_bound":1191494.3482404435,"unit":"ns"},"mean":{"estimate":1167266.5482361112,"lower_bound":1118299.8379583333,"upper_bound":1226119.6200833335,"unit":"ns"},"median":{"estimate":1137235.4854166666,"lower_bound":1105934.7,"upper_bound":1222915.729375,"unit":"ns"},"median_abs_dev":{"estimate":50512.79916209354,"lower_bound":9135.347583231773,"upper_bound":141454.90055367336,"unit":"ns"},"slope":{"estimate":1152082.5241233767,"lower_bound":1121279.980927835,"upper_bound":1191494.3482404435,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118227084.0,229263833.0,327507834.0,449532417.0,674467458.0,686878250.0,757511583.0,942063000.0,1083636917.0,1141121333.0],"unit":"ns","throughput":[],"typical":{"estimate":29126003.48961039,"lower_bound":28148975.31030151,"upper_bound":30248178.74415888,"unit":"ns"},"mean":{"estimate":29106865.83251984,"lower_bound":28148934.741428573,"upper_bound":30336377.946944438,"unit":"ns"},"median":{"estimate":28638953.104166664,"lower_bound":27910176.4125,"upper_bound":29770247.111111112,"unit":"ns"},"median_abs_dev":{"estimate":1273800.631823022,"lower_bound":96328.81982982214,"upper_bound":2363961.3322625463,"unit":"ns"},"slope":{"estimate":29126003.48961039,"lower_bound":28148975.31030151,"upper_bound":30248178.74415888,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[92813417.0,194259208.0,279213708.0,367430417.0,466010375.0,593858208.0,659313500.0,751084250.0,868469834.0,917958750.0],"unit":"ns","throughput":[],"typical":{"estimate":7253062.9878121875,"lower_bound":7125709.593943154,"upper_bound":7399829.215684318,"unit":"ns"},"mean":{"estimate":7257046.165995116,"lower_bound":7155650.3704739,"upper_bound":7371549.0647802185,"unit":"ns"},"median":{"estimate":7195677.163461538,"lower_bound":7112647.701923077,"upper_bound":7422819.094017094,"unit":"ns"},"median_abs_dev":{"estimate":137801.1098996945,"lower_bound":22162.474637307874,"upper_bound":282802.4982510466,"unit":"ns"},"slope":{"estimate":7253062.9878121875,"lower_bound":7125709.593943154,"upper_bound":7399829.215684318,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[92474667.0,173575042.0,281669125.0,382738666.0,438093250.0,541790959.0,635199333.0,719224500.0,805217708.0,966360208.0],"unit":"ns","throughput":[],"typical":{"estimate":45931885.16493507,"lower_bound":44806245.50702576,"upper_bound":47285197.605321504,"unit":"ns"},"mean":{"estimate":45675209.26896825,"lower_bound":44740649.549732134,"upper_bound":46663813.46565873,"unit":"ns"},"median":{"estimate":45260313.75595238,"lower_bound":44380428.125,"upper_bound":47039833.375,"unit":"ns"},"median_abs_dev":{"estimate":1799882.669095695,"lower_bound":311234.5611994796,"upper_bound":2793637.267269686,"unit":"ns"},"slope":{"estimate":45931885.16493507,"lower_bound":44806245.50702576,"upper_bound":47285197.605321504,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[88,176,264,352,440,528,616,704,792,880],"measured_values":[93749958.0,184984875.0,281166958.0,362270208.0,512087542.0,561191292.0,827914709.0,815666000.0,822880458.0,890974750.0],"unit":"ns","throughput":[],"typical":{"estimate":1101543.3725206612,"lower_bound":1034912.4051860616,"upper_bound":1205416.9947179668,"unit":"ns"},"mean":{"estimate":1099138.720557359,"lower_bound":1049267.1730776515,"upper_bound":1164968.0816040314,"unit":"ns"},"median":{"estimate":1063944.3257575757,"lower_bound":1038990.4772727273,"upper_bound":1158616.4772727273,"unit":"ns"},"median_abs_dev":{"estimate":44271.507852659845,"lower_bound":2069.8668087072624,"upper_bound":140128.1049895016,"unit":"ns"},"slope":{"estimate":1101543.3725206612,"lower_bound":1034912.4051860616,"upper_bound":1205416.9947179668,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[131154459.0,222742625.0,365286083.0,419153167.0,576540875.0,664308542.0,761423708.0,875368375.0,1001167333.0,1088288375.0],"unit":"ns","throughput":[],"typical":{"estimate":27561018.802597404,"lower_bound":27264960.534222737,"upper_bound":28024281.66847826,"unit":"ns"},"mean":{"estimate":28334196.770783734,"lower_bound":27345842.02326389,"upper_bound":29561332.82165179,"unit":"ns"},"median":{"estimate":27744863.138888888,"lower_bound":27207209.375,"upper_bound":29141667.520833336,"unit":"ns"},"median_abs_dev":{"estimate":807137.0963996167,"lower_bound":119762.84068315876,"upper_bound":2655258.283934746,"unit":"ns"},"slope":{"estimate":27561018.802597404,"lower_bound":27264960.534222737,"upper_bound":28024281.66847826,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[84929416.0,177442541.0,274809666.0,350006166.0,475346208.0,555462041.0,597846625.0,735223833.0,791170166.0,930584083.0],"unit":"ns","throughput":[],"typical":{"estimate":6966405.756043956,"lower_bound":6774955.327228327,"upper_bound":7131233.651123213,"unit":"ns"},"mean":{"estimate":6912904.175344934,"lower_bound":6757456.205822956,"upper_bound":7067377.960238094,"unit":"ns"},"median":{"estimate":6935557.403846154,"lower_bound":6665940.651404152,"upper_bound":7121308.217948718,"unit":"ns"},"median_abs_dev":{"estimate":289418.6449848687,"lower_bound":54427.923141402905,"upper_bound":431533.53727182467,"unit":"ns"},"slope":{"estimate":6966405.756043956,"lower_bound":6774955.327228327,"upper_bound":7131233.651123213,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[77410833.0,249309708.0,304418875.0,400968833.0,455950292.0,545112209.0,694365375.0,709511291.0,881444042.0,945704333.0],"unit":"ns","throughput":[],"typical":{"estimate":47493863.09220779,"lower_bound":45947605.71757925,"upper_bound":49065778.8252149,"unit":"ns"},"mean":{"estimate":48310778.59759921,"lower_bound":44987640.03158135,"upper_bound":52167342.39940476,"unit":"ns"},"median":{"estimate":48127165.04722223,"lower_bound":44969742.44375,"upper_bound":50167002.97619048,"unit":"ns"},"median_abs_dev":{"estimate":3811356.7926248866,"lower_bound":844305.3850105827,"upper_bound":8549763.713607596,"unit":"ns"},"slope":{"estimate":47493863.09220779,"lower_bound":45947605.71757925,"upper_bound":49065778.8252149,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[86,172,258,344,430,516,602,688,774,860],"measured_values":[101359042.0,201853792.0,297428834.0,485602500.0,537194500.0,622815375.0,689682875.0,709048125.0,766008041.0,875302792.0],"unit":"ns","throughput":[],"typical":{"estimate":1084563.373361522,"lower_bound":1031417.1866606337,"upper_bound":1192753.201285041,"unit":"ns"},"mean":{"estimate":1155663.2494735143,"lower_bound":1085438.2742671994,"upper_bound":1231580.6100775194,"unit":"ns"},"median":{"estimate":1163196.7480620155,"lower_bound":1030593.2049418605,"upper_bound":1213941.5232558139,"unit":"ns"},"median_abs_dev":{"estimate":96296.78044213471,"lower_bound":19102.243302727824,"upper_bound":225188.3446721947,"unit":"ns"},"slope":{"estimate":1084563.373361522,"lower_bound":1031417.1866606337,"upper_bound":1192753.201285041,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103119625.0,214301458.0,322408792.0,455553042.0,550797875.0,670121541.0,810212708.0,929354084.0,1046133875.0,1077071875.0],"unit":"ns","throughput":[],"typical":{"estimate":28174107.116233766,"lower_bound":27357734.784810126,"upper_bound":28855961.063815776,"unit":"ns"},"mean":{"estimate":27733323.203174602,"lower_bound":27060578.493452378,"upper_bound":28388469.45535714,"unit":"ns"},"median":{"estimate":27730812.3125,"lower_bound":26857239.5625,"upper_bound":28936168.14285714,"unit":"ns"},"median_abs_dev":{"estimate":1339190.3330121199,"lower_bound":103125.66968165338,"upper_bound":1995697.3386067897,"unit":"ns"},"slope":{"estimate":28174107.116233766,"lower_bound":27357734.784810126,"upper_bound":28855961.063815776,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[96939333.0,217203459.0,284386917.0,367142959.0,486729417.0,584632459.0,638673375.0,767245000.0,885730125.0,949862791.0],"unit":"ns","throughput":[],"typical":{"estimate":1153916.2364888124,"lower_bound":1131328.7851048321,"upper_bound":1174918.888429631,"unit":"ns"},"mean":{"estimate":1165605.402194492,"lower_bound":1136271.1364228341,"upper_bound":1202959.0481526102,"unit":"ns"},"median":{"estimate":1161716.6144578313,"lower_bound":1125132.6436746987,"upper_bound":1179279.167068273,"unit":"ns"},"median_abs_dev":{"estimate":27357.005271785943,"lower_bound":4460.394578041187,"upper_bound":73443.68759008974,"unit":"ns"},"slope":{"estimate":1153916.2364888124,"lower_bound":1131328.7851048321,"upper_bound":1174918.888429631,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[130843625.0,261073167.0,316068834.0,460961375.0,533401208.0,656262167.0,840381084.0,903373209.0,1017479208.0,1135846250.0],"unit":"ns","throughput":[],"typical":{"estimate":28360421.84090909,"lower_bound":27786411.003379986,"upper_bound":28977403.075902335,"unit":"ns"},"mean":{"estimate":28941201.54282738,"lower_bound":27717261.596169643,"upper_bound":30319754.24583333,"unit":"ns"},"median":{"estimate":28329733.791666664,"lower_bound":27344256.958333332,"upper_bound":30722115.90625,"unit":"ns"},"median_abs_dev":{"estimate":1960849.826980455,"lower_bound":122865.63120307401,"upper_bound":3885206.2074988033,"unit":"ns"},"slope":{"estimate":28360421.84090909,"lower_bound":27786411.003379986,"upper_bound":28977403.075902335,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[84153792.0,169192791.0,266516958.0,342489250.0,430747834.0,516207917.0,618863042.0,779232375.0,844472583.0,887829500.0],"unit":"ns","throughput":[],"typical":{"estimate":6970525.966233767,"lower_bound":6711195.717289202,"upper_bound":7202875.570617907,"unit":"ns"},"mean":{"estimate":6798630.7346794875,"lower_bound":6625675.762564102,"upper_bound":7007103.837564103,"unit":"ns"},"median":{"estimate":6713791.261538461,"lower_bound":6562732.628205128,"upper_bound":7023586.038461538,"unit":"ns"},"median_abs_dev":{"estimate":183424.61717048511,"lower_bound":24518.78218008948,"upper_bound":505894.38817627204,"unit":"ns"},"slope":{"estimate":6970525.966233767,"lower_bound":6711195.717289202,"upper_bound":7202875.570617907,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[87046333.0,197808792.0,293294167.0,375748958.0,468441709.0,501224833.0,672395417.0,780610375.0,836448666.0,894296625.0],"unit":"ns","throughput":[],"typical":{"estimate":46282798.644155845,"lower_bound":44794314.15443425,"upper_bound":47936795.320371136,"unit":"ns"},"mean":{"estimate":46543984.64922619,"lower_bound":44999120.2856369,"upper_bound":47939402.091309525,"unit":"ns"},"median":{"estimate":46906395.325,"lower_bound":44714831.25,"upper_bound":48788148.4375,"unit":"ns"},"median_abs_dev":{"estimate":2859727.0099534406,"lower_bound":370093.5860045291,"upper_bound":3972770.935869215,"unit":"ns"},"slope":{"estimate":46282798.644155845,"lower_bound":44794314.15443425,"upper_bound":47936795.320371136,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[96,192,288,384,480,576,672,768,864,960],"measured_values":[86555042.0,174544125.0,257448791.0,357927125.0,450439041.0,523449542.0,640024292.0,743976000.0,823426417.0,919080208.0],"unit":"ns","throughput":[],"typical":{"estimate":948761.0524621212,"lower_bound":931212.6577369792,"upper_bound":957568.8136447564,"unit":"ns"},"mean":{"estimate":931545.2443493716,"lower_bound":915965.880243779,"upper_bound":946995.3941136118,"unit":"ns"},"median":{"estimate":935258.2783854166,"lower_bound":905349.5026041667,"upper_bound":954896.1589285715,"unit":"ns"},"median_abs_dev":{"estimate":35798.28986226582,"lower_bound":4137.083124538211,"upper_bound":43199.7763539535,"unit":"ns"},"slope":{"estimate":948761.0524621212,"lower_bound":931212.6577369792,"upper_bound":957568.8136447564,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[105694250.0,210528292.0,307405041.0,471831542.0,537026875.0,726244834.0,869906792.0,913408250.0,1066953709.0,1146502709.0],"unit":"ns","throughput":[],"typical":{"estimate":29118908.778571427,"lower_bound":28306401.569526628,"upper_bound":29911509.708163265,"unit":"ns"},"mean":{"estimate":28286998.057123017,"lower_bound":27177110.471527778,"upper_bound":29384746.935873013,"unit":"ns"},"median":{"estimate":28603287.76875,"lower_bound":26423562.5,"upper_bound":29874836.395833336,"unit":"ns"},"median_abs_dev":{"estimate":2526986.143437029,"lower_bound":396823.2573799789,"upper_bound":3041346.4607115546,"unit":"ns"},"slope":{"estimate":29118908.778571427,"lower_bound":28306401.569526628,"upper_bound":29911509.708163265,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[91976834.0,174987083.0,256024041.0,350625750.0,428874792.0,508535167.0,619129834.0,697099292.0,800218041.0,890115084.0],"unit":"ns","throughput":[],"typical":{"estimate":6757627.865734266,"lower_bound":6648578.808333334,"upper_bound":6818477.146078059,"unit":"ns"},"mean":{"estimate":6742370.263663003,"lower_bound":6650576.111034799,"upper_bound":6842294.037561356,"unit":"ns"},"median":{"estimate":6736537.653846154,"lower_bound":6598073.723076923,"upper_bound":6839470.435897436,"unit":"ns"},"median_abs_dev":{"estimate":158218.79626182403,"lower_bound":29596.458997634792,"upper_bound":282556.9309089967,"unit":"ns"},"slope":{"estimate":6757627.865734266,"lower_bound":6648578.808333334,"upper_bound":6818477.146078059,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[154355666.0,282541334.0,401656667.0,594122125.0,683088708.0,820588250.0,931251958.0,1061484167.0,1155291292.0,1333129833.0],"unit":"ns","throughput":[],"typical":{"estimate":44484352.27272727,"lower_bound":43730793.15480226,"upper_bound":45664872.98169935,"unit":"ns"},"mean":{"estimate":45960835.5712037,"lower_bound":44538682.258821756,"upper_bound":47653085.63333796,"unit":"ns"},"median":{"estimate":45083882.87777778,"lower_bound":44333084.02916667,"upper_bound":47549206.597222224,"unit":"ns"},"median_abs_dev":{"estimate":1181578.4080036194,"lower_bound":155045.9624648832,"upper_bound":4114474.8047690303,"unit":"ns"},"slope":{"estimate":44484352.27272727,"lower_bound":43730793.15480226,"upper_bound":45664872.98169935,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[76,152,228,304,380,456,532,608,684,760],"measured_values":[100678500.0,197948042.0,260673416.0,349746583.0,482857417.0,527572792.0,648209167.0,790968375.0,998818458.0,832391917.0],"unit":"ns","throughput":[],"typical":{"estimate":1245242.702050581,"lower_bound":1138247.3814589712,"upper_bound":1363131.9480994153,"unit":"ns"},"mean":{"estimate":1242331.531968985,"lower_bound":1180268.941498081,"upper_bound":1309494.6937938593,"unit":"ns"},"median":{"estimate":1244557.8484962406,"lower_bound":1150131.1666666665,"upper_bound":1312825.9662828948,"unit":"ns"},"median_abs_dev":{"estimate":124359.9135605913,"lower_bound":10641.694570940643,"upper_bound":215469.0307983442,"unit":"ns"},"slope":{"estimate":1245242.702050581,"lower_bound":1138247.3814589712,"upper_bound":1363131.9480994153,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[124694458.0,224608500.0,333358459.0,477341875.0,573782875.0,737053375.0,827556250.0,938835250.0,1038402792.0,1144347709.0],"unit":"ns","throughput":[],"typical":{"estimate":29134588.914285716,"lower_bound":28762737.79812294,"upper_bound":29700796.828746177,"unit":"ns"},"mean":{"estimate":29261051.345714282,"lower_bound":28642392.994309522,"upper_bound":29921131.86366071,"unit":"ns"},"median":{"estimate":29091561.78125,"lower_bound":28382603.125,"upper_bound":30133068.82440476,"unit":"ns"},"median_abs_dev":{"estimate":908221.8129270886,"lower_bound":174820.23845381924,"upper_bound":1917465.6931194311,"unit":"ns"},"slope":{"estimate":29134588.914285716,"lower_bound":28762737.79812294,"upper_bound":29700796.828746177,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/1000000","ORE/ore_decrypt/range_gt_10/1000000","ORE/ore/range_gt_100/1000000","ORE/ore_decrypt/range_gt_100/1000000","ORE/ore/range_lt_10/1000000","ORE/ore_decrypt/range_lt_10/1000000","ORE/ore/range_lt_100/1000000","ORE/ore_decrypt/range_lt_100/1000000","ORE/ore/range_lt_hybrid_ordered_10/1000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_10000000.json b/results/query/ore_rows_10000000.json index fc52b5f..789b48c 100644 --- a/results/query/ore_rows_10000000.json +++ b/results/query/ore_rows_10000000.json @@ -1,11 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000000","iteration_count":[60,120,180,240,300,360,420,480,540,600],"measured_values":[93057083.0,180015208.0,250905916.0,344142959.0,442850875.0,546129375.0,625415791.0,701323709.0,808558541.0,897277667.0],"unit":"ns","throughput":[],"typical":{"estimate":1485355.4742857143,"lower_bound":1466886.368034826,"upper_bound":1496822.1216535433,"unit":"ns"},"mean":{"estimate":1481509.4179953705,"lower_bound":1454600.082797801,"upper_bound":1506507.5895555555,"unit":"ns"},"median":{"estimate":1492273.9975,"lower_bound":1455049.2895833333,"upper_bound":1507178.336574074,"unit":"ns"},"median_abs_dev":{"estimate":30286.892024800298,"lower_bound":4145.500531958299,"upper_bound":75936.77549095008,"unit":"ns"},"slope":{"estimate":1485355.4742857143,"lower_bound":1466886.368034826,"upper_bound":1496822.1216535433,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[75428250.0,164576292.0,245010125.0,365139417.0,464936667.0,531030334.0,593387416.0,678872542.0,794605042.0,860920334.0],"unit":"ns","throughput":[],"typical":{"estimate":28966558.5991342,"lower_bound":28497056.262593783,"upper_bound":29566331.42696629,"unit":"ns"},"mean":{"estimate":28539128.73671957,"lower_bound":27503537.155246694,"upper_bound":29503504.561666667,"unit":"ns"},"median":{"estimate":28491850.191666666,"lower_bound":27429382.0,"upper_bound":29929050.560185187,"unit":"ns"},"median_abs_dev":{"estimate":1536198.351360362,"lower_bound":326765.6625387483,"upper_bound":2931517.860503491,"unit":"ns"},"slope":{"estimate":28966558.5991342,"lower_bound":28497056.262593783,"upper_bound":29566331.42696629,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[103680458.0,175957541.0,256530292.0,373167708.0,448801292.0,536014833.0,655899666.0,755978042.0,856662500.0,959280625.0],"unit":"ns","throughput":[],"typical":{"estimate":7216751.938861139,"lower_bound":7027653.35399198,"upper_bound":7309850.539790757,"unit":"ns"},"mean":{"estimate":7145133.146086691,"lower_bound":6926444.181452991,"upper_bound":7387918.803247864,"unit":"ns"},"median":{"estimate":7191995.357142857,"lower_bound":6836116.496153846,"upper_bound":7324050.682692308,"unit":"ns"},"median_abs_dev":{"estimate":351707.16139671893,"lower_bound":68731.52429707942,"upper_bound":661897.5110066627,"unit":"ns"},"slope":{"estimate":7216751.938861139,"lower_bound":7027653.35399198,"upper_bound":7309850.539790757,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[90249791.0,169959792.0,266960167.0,315666375.0,436542541.0,526580792.0,595945667.0,730798417.0,769599958.0,882890708.0],"unit":"ns","throughput":[],"typical":{"estimate":43648346.15584416,"lower_bound":42624888.63959391,"upper_bound":44561363.42415502,"unit":"ns"},"mean":{"estimate":43424502.563591264,"lower_bound":42317136.37061755,"upper_bound":44371324.12652777,"unit":"ns"},"median":{"estimate":43767993.38333333,"lower_bound":42567547.64285714,"upper_bound":44634715.45,"unit":"ns"},"median_abs_dev":{"estimate":1640412.2897235258,"lower_bound":254417.76196652112,"upper_bound":2654151.157699401,"unit":"ns"},"slope":{"estimate":43648346.15584416,"lower_bound":42624888.63959391,"upper_bound":44561363.42415502,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000000","iteration_count":[81,162,243,324,405,486,567,648,729,810],"measured_values":[88181958.0,179394875.0,273148250.0,360669167.0,475564667.0,531925584.0,631736500.0,669595167.0,822515875.0,923388833.0],"unit":"ns","throughput":[],"typical":{"estimate":1112519.4165784833,"lower_bound":1075761.2350186964,"upper_bound":1137282.7214308463,"unit":"ns"},"mean":{"estimate":1111778.1539481678,"lower_bound":1089410.1171364272,"upper_bound":1132447.7890666274,"unit":"ns"},"median":{"estimate":1113675.0813492064,"lower_bound":1094497.086419753,"upper_bound":1132026.543004115,"unit":"ns"},"median_abs_dev":{"estimate":25043.024258689726,"lower_bound":5039.320049423339,"upper_bound":59108.78445949817,"unit":"ns"},"slope":{"estimate":1112519.4165784833,"lower_bound":1075761.2350186964,"upper_bound":1137282.7214308463,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103979541.0,213906750.0,377848500.0,454448000.0,567987167.0,638137875.0,796359292.0,902865708.0,1018485250.0,1167993125.0],"unit":"ns","throughput":[],"typical":{"estimate":28438722.61948052,"lower_bound":27798528.45319483,"upper_bound":28939183.93674699,"unit":"ns"},"mean":{"estimate":28175908.22051587,"lower_bound":27309917.214960318,"upper_bound":29132973.92135714,"unit":"ns"},"median":{"estimate":28345307.64722222,"lower_bound":26738343.75,"upper_bound":28801414.0625,"unit":"ns"},"median_abs_dev":{"estimate":730384.1592080891,"lower_bound":33867.465388731274,"upper_bound":2603785.843420225,"unit":"ns"},"slope":{"estimate":28438722.61948052,"lower_bound":27798528.45319483,"upper_bound":28939183.93674699,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[92913084.0,198131834.0,281854375.0,389918000.0,464882084.0,575317750.0,675451417.0,738177542.0,834382625.0,944537584.0],"unit":"ns","throughput":[],"typical":{"estimate":6727111.042115028,"lower_bound":6651963.278069026,"upper_bound":6828045.856357927,"unit":"ns"},"mean":{"estimate":6772863.279121315,"lower_bound":6681020.170090562,"upper_bound":6873388.7671428565,"unit":"ns"},"median":{"estimate":6728757.740476191,"lower_bound":6631628.4769841265,"upper_bound":6905921.130952381,"unit":"ns"},"median_abs_dev":{"estimate":168228.0303466884,"lower_bound":21593.374383307593,"upper_bound":272465.59684848203,"unit":"ns"},"slope":{"estimate":6727111.042115028,"lower_bound":6651963.278069026,"upper_bound":6828045.856357927,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[137563792.0,278808209.0,427574625.0,507106875.0,696746916.0,772894208.0,942305708.0,1114533209.0,1220100667.0,1383319041.0],"unit":"ns","throughput":[],"typical":{"estimate":45414660.9991342,"lower_bound":44427567.61125508,"upper_bound":46089598.73966866,"unit":"ns"},"mean":{"estimate":45408832.39763227,"lower_bound":44374597.395583004,"upper_bound":46313078.0019861,"unit":"ns"},"median":{"estimate":45982616.016666666,"lower_bound":44063740.35185185,"upper_bound":46453459.270833336,"unit":"ns"},"median_abs_dev":{"estimate":948212.5589269772,"lower_bound":29697.82416775528,"upper_bound":2616394.376033049,"unit":"ns"},"slope":{"estimate":45414660.9991342,"lower_bound":44427567.61125508,"upper_bound":46089598.73966866,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000000","iteration_count":[87,174,261,348,435,522,609,696,783,870],"measured_values":[88961250.0,178517416.0,256108709.0,373768916.0,449121125.0,529829875.0,623717166.0,702315041.0,820920042.0,862088792.0],"unit":"ns","throughput":[],"typical":{"estimate":1018889.1337811614,"lower_bound":1001653.8062299809,"upper_bound":1039685.7403623292,"unit":"ns"},"mean":{"estimate":1022385.0694759168,"lower_bound":1007245.9686512384,"upper_bound":1038338.358270936,"unit":"ns"},"median":{"estimate":1023354.6108374384,"lower_bound":1002953.2090038315,"upper_bound":1037195.6666666667,"unit":"ns"},"median_abs_dev":{"estimate":17338.28136847702,"lower_bound":2662.8128492774063,"upper_bound":45829.27725231603,"unit":"ns"},"slope":{"estimate":1018889.1337811614,"lower_bound":1001653.8062299809,"upper_bound":1039685.7403623292,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[110380375.0,205210083.0,305144750.0,430175916.0,529705959.0,668966375.0,788820042.0,947462542.0,993732958.0,1081509875.0],"unit":"ns","throughput":[],"typical":{"estimate":27713897.72857143,"lower_bound":27017858.947144322,"upper_bound":28538542.58118362,"unit":"ns"},"mean":{"estimate":27234176.389742065,"lower_bound":26529611.893965278,"upper_bound":27976908.423075397,"unit":"ns"},"median":{"estimate":27316420.3125,"lower_bound":26268627.5625,"upper_bound":27887918.817460317,"unit":"ns"},"median_abs_dev":{"estimate":1029147.5192064788,"lower_bound":212830.73710066086,"upper_bound":2221912.3252181667,"unit":"ns"},"slope":{"estimate":27713897.72857143,"lower_bound":27017858.947144322,"upper_bound":28538542.58118362,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000000","iteration_count":[67,134,201,268,335,402,469,536,603,670],"measured_values":[83549083.0,167306625.0,250658417.0,355226542.0,455361500.0,591325583.0,609002417.0,742345500.0,753115417.0,866273833.0],"unit":"ns","throughput":[],"typical":{"estimate":1320347.4608257415,"lower_bound":1277916.7160635295,"upper_bound":1380355.7203533724,"unit":"ns"},"mean":{"estimate":1312371.3542738687,"lower_bound":1272089.6843402039,"upper_bound":1359389.9655792466,"unit":"ns"},"median":{"estimate":1295729.3178038378,"lower_bound":1248002.2122719735,"upper_bound":1359288.0597014925,"unit":"ns"},"median_abs_dev":{"estimate":71049.84655413534,"lower_bound":1194.4020855114322,"upper_bound":127483.1585098557,"unit":"ns"},"slope":{"estimate":1320347.4608257415,"lower_bound":1277916.7160635295,"upper_bound":1380355.7203533724,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114472750.0,216235959.0,352461000.0,441818792.0,574199541.0,725749542.0,799070125.0,904892417.0,985944292.0,1190080834.0],"unit":"ns","throughput":[],"typical":{"estimate":28703918.812987015,"lower_bound":27881138.559068218,"upper_bound":29482883.458086785,"unit":"ns"},"mean":{"estimate":28553811.725069445,"lower_bound":27954484.325944446,"upper_bound":29167437.847569443,"unit":"ns"},"median":{"estimate":28578203.125,"lower_bound":27613674.5,"upper_bound":29371750.0,"unit":"ns"},"median_abs_dev":{"estimate":1303261.345012486,"lower_bound":136087.18441397062,"upper_bound":1765571.4962465074,"unit":"ns"},"slope":{"estimate":28703918.812987015,"lower_bound":27881138.559068218,"upper_bound":29482883.458086785,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[96400292.0,183269708.0,277228208.0,378755208.0,470515375.0,568148875.0,677634167.0,769980625.0,843662375.0,935776459.0],"unit":"ns","throughput":[],"typical":{"estimate":6757908.241743971,"lower_bound":6694517.317493946,"upper_bound":6840243.694457707,"unit":"ns"},"mean":{"estimate":6744987.669623017,"lower_bound":6672520.937144841,"upper_bound":6815768.10763889,"unit":"ns"},"median":{"estimate":6742567.035714285,"lower_bound":6648202.376984127,"upper_bound":6874827.008928572,"unit":"ns"},"median_abs_dev":{"estimate":141372.90880387952,"lower_bound":27821.470351070442,"upper_bound":222962.90327495063,"unit":"ns"},"slope":{"estimate":6757908.241743971,"lower_bound":6694517.317493946,"upper_bound":6840243.694457707,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[139317875.0,281227084.0,410691292.0,540262875.0,625042458.0,783697250.0,918305000.0,1100129125.0,1216334083.0,1290376833.0],"unit":"ns","throughput":[],"typical":{"estimate":44157780.33419913,"lower_bound":43228603.80790961,"upper_bound":45147143.490123026,"unit":"ns"},"mean":{"estimate":44680247.23191799,"lower_bound":43680114.84886243,"upper_bound":45614260.71051092,"unit":"ns"},"median":{"estimate":45035658.365740746,"lower_bound":43370685.31190476,"upper_bound":46035828.722222224,"unit":"ns"},"median_abs_dev":{"estimate":2009280.3768281417,"lower_bound":432144.7534723431,"upper_bound":2755681.0297227167,"unit":"ns"},"slope":{"estimate":44157780.33419913,"lower_bound":43228603.80790961,"upper_bound":45147143.490123026,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000000","iteration_count":[70,140,210,280,350,420,490,560,630,700],"measured_values":[90492958.0,177589000.0,281246416.0,352882791.0,433932291.0,531887458.0,643567125.0,695424375.0,815627250.0,897800500.0],"unit":"ns","throughput":[],"typical":{"estimate":1278253.9034508348,"lower_bound":1257604.7966693419,"upper_bound":1295100.3021310181,"unit":"ns"},"mean":{"estimate":1279946.909341837,"lower_bound":1262248.7103234695,"upper_bound":1298975.9809960888,"unit":"ns"},"median":{"estimate":1275532.5,"lower_bound":1254113.9752976191,"upper_bound":1303079.419387755,"unit":"ns"},"median_abs_dev":{"estimate":26937.33774176671,"lower_bound":6076.565719619255,"upper_bound":53057.10461608376,"unit":"ns"},"slope":{"estimate":1278253.9034508348,"lower_bound":1257604.7966693419,"upper_bound":1295100.3021310181,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[106872750.0,224852375.0,339898458.0,459469750.0,571428750.0,679559750.0,817424459.0,936622500.0,1004385042.0,1145967875.0],"unit":"ns","throughput":[],"typical":{"estimate":28612174.977272727,"lower_bound":28201915.857954547,"upper_bound":29008510.081967212,"unit":"ns"},"mean":{"estimate":28376485.751190476,"lower_bound":27921773.97083334,"upper_bound":28762575.52556548,"unit":"ns"},"median":{"estimate":28448154.5,"lower_bound":28106546.875,"upper_bound":28921463.776785716,"unit":"ns"},"median_abs_dev":{"estimate":452424.6482178569,"lower_bound":107801.23402364552,"upper_bound":1096509.9458580574,"unit":"ns"},"slope":{"estimate":28612174.977272727,"lower_bound":28201915.857954547,"upper_bound":29008510.081967212,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[91588042.0,202494916.0,277005084.0,407513625.0,514790834.0,591285541.0,651437208.0,2265784875.0,1051094833.0,1501084417.0],"unit":"ns","throughput":[],"typical":{"estimate":10433460.512987014,"lower_bound":7116835.340952381,"upper_bound":14371274.881618124,"unit":"ns"},"mean":{"estimate":8798121.538251135,"lower_bound":6996644.08921216,"upper_bound":11561933.8624178,"unit":"ns"},"median":{"estimate":7254495.151785715,"lower_bound":6647318.448979592,"upper_bound":9038093.160714285,"unit":"ns"},"median_abs_dev":{"estimate":938717.5965433603,"lower_bound":79105.81599559083,"upper_bound":2668708.8397876136,"unit":"ns"},"slope":{"estimate":10433460.512987014,"lower_bound":7116835.340952381,"upper_bound":14371274.881618124,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[41140000.0,44619958.0,42297000.0,41791500.0,44743125.0,44534209.0,44809084.0,51309833.0,38208167.0,42626000.0],"unit":"ns","throughput":[],"typical":{"estimate":43607887.6,"lower_bound":41727675.195,"upper_bound":45738076.089999996,"unit":"ns"},"mean":{"estimate":43607887.6,"lower_bound":41727675.195,"upper_bound":45738076.089999996,"unit":"ns"},"median":{"estimate":43580104.5,"lower_bound":41718500.0,"upper_bound":44743125.0,"unit":"ns"},"median_abs_dev":{"estimate":1862207.8361392021,"lower_bound":154869.42805051804,"upper_bound":4893259.685227275,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000000","iteration_count":[76,152,228,304,380,456,532,608,684,760],"measured_values":[71962500.0,143937375.0,252887750.0,314928166.0,435353542.0,540671000.0,641525500.0,674981334.0,722787000.0,806410458.0],"unit":"ns","throughput":[],"typical":{"estimate":1102485.4280929596,"lower_bound":1066784.932838854,"upper_bound":1155473.3080062496,"unit":"ns"},"mean":{"estimate":1080409.9560745615,"lower_bound":1027802.9872532897,"upper_bound":1131426.2074029606,"unit":"ns"},"median":{"estimate":1085111.5951754386,"lower_bound":1001831.2774122807,"upper_bound":1147924.3426535088,"unit":"ns"},"median_abs_dev":{"estimate":81334.9166214113,"lower_bound":18620.32713771265,"upper_bound":166007.54781317178,"unit":"ns"},"slope":{"estimate":1102485.4280929596,"lower_bound":1066784.932838854,"upper_bound":1155473.3080062496,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103336375.0,227342958.0,374277958.0,429762625.0,573882667.0,679561666.0,741578333.0,843254875.0,1022588708.0,1150084250.0],"unit":"ns","throughput":[],"typical":{"estimate":27914232.596753247,"lower_bound":26994884.181641124,"upper_bound":28646887.361033376,"unit":"ns"},"mean":{"estimate":27930516.36094246,"lower_bound":27036792.443859622,"upper_bound":28895323.328650795,"unit":"ns"},"median":{"estimate":28360155.652777776,"lower_bound":26484940.464285713,"upper_bound":28694133.35,"unit":"ns"},"median_abs_dev":{"estimate":1402496.718694456,"lower_bound":76205.88574707693,"upper_bound":2997196.0657928865,"unit":"ns"},"slope":{"estimate":27914232.596753247,"lower_bound":26994884.181641124,"upper_bound":28646887.361033376,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000000","ORE/ore_decrypt/range_gt_10/10000000","ORE/ore/range_gt_100/10000000","ORE/ore_decrypt/range_gt_100/10000000","ORE/ore/range_lt_10/10000000","ORE/ore_decrypt/range_lt_10/10000000","ORE/ore/range_lt_100/10000000","ORE/ore_decrypt/range_lt_100/10000000","ORE/ore/range_lt_hybrid_ordered_10/10000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} From af3802affaed3cc63caef46d0fd0a1caed737664 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Fri, 15 May 2026 17:45:11 +1000 Subject: [PATCH 16/30] report: surface indexes-used / planner row estimate / EXPLAIN plans MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The metadata sidecars (`_metadata_.json`) now feed three new pieces of data into each per-scenario subsection: * **Indexes used by the planner (per data set size).** A new bullet list under the existing "Indexes available on the table" SQL block. Each tier reports the indexes the planner actually picked (`indexes_used` from the metadata) or — when empty — explicitly states the planner went with a sequential / hash-aggregate / sort plan rather than an index. The contrast between "available" and "used" is the whole point: catching cases where a functional index exists but isn't being engaged. * **Rows (est.) column** in the per-tier timing table. Sourced from the top-level Plan node's `Plan Rows` in the captured EXPLAIN. Labelled "(est.)" because plain EXPLAIN gives the planner's estimate, not actual execution counts — could upgrade to actual via a pre-bench one-shot execute later, flagged in passing. * **EXPLAIN plans per data set size** in a collapsible `
` block. A short indented text tree showing Node Type + index/relation per node, plus the full `EXPLAIN (FORMAT JSON)` JSON for downstream machine processing. Useful when the plan shape changes across tiers — e.g. the ORE bench, where every bare-range tier reports "indexes used: none" because the planner consistently prefers Seq Scan + LIMIT to a bitmap index lookup on the high-selectivity `< 5000` predicate, while the hybrid ordered scenario engages the functional ORE index at every size. Report generator changes: * New `ScenarioMetadata` dataclass + `BenchmarkReporter.metadata` dict keyed by `(query_type, query_name, row_count)`. * `load_query_metadata()` reads each `*_metadata_*.json` sidecar and populates the dict. * `format_plan_tree()` renders the indented text plan; `planner_estimated_rows()` pulls the top-level Plan Rows estimate. * Existing `_write_query_subsection` block extended with the three new outputs in the order: available → used → rows table → EXPLAIN. Regenerated `report/BENCHMARK_REPORT.md` + all per-scenario chart PNGs under the new pass. README's "Run query benchmarks" section already documents the metadata sidecar format from the previous commit. --- report/BENCHMARK_REPORT.md | 2695 ++++++++++++++++- report/query_exact_eql_cast_chart.png | Bin 57625 -> 59303 bytes report/query_exact_eql_hash_chart.png | Bin 54783 -> 55539 bytes ..._group_by_count_groups_encrypted_chart.png | Bin 39812 -> 42611 bytes ..._group_by_count_groups_plaintext_chart.png | Bin 43061 -> 39827 bytes report/query_match_eql_bloom_chart.png | Bin 48008 -> 44468 bytes .../query_match_eql_cast_firstname_chart.png | Bin 44590 -> 45985 bytes .../query_match_eql_cast_lastname_chart.png | Bin 49621 -> 49385 bytes report/query_ore_range_gt_100_chart.png | Bin 32833 -> 32333 bytes report/query_ore_range_gt_10_chart.png | Bin 31151 -> 31688 bytes report/query_ore_range_lt_100_chart.png | Bin 31072 -> 34623 bytes report/query_ore_range_lt_10_chart.png | Bin 30835 -> 32181 bytes ...y_ore_range_lt_hybrid_ordered_10_chart.png | Bin 31908 -> 33014 bytes report_benchmarks.py | 174 +- 14 files changed, 2773 insertions(+), 96 deletions(-) diff --git a/report/BENCHMARK_REPORT.md b/report/BENCHMARK_REPORT.md index c88c398..cde68ec 100644 --- a/report/BENCHMARK_REPORT.md +++ b/report/BENCHMARK_REPORT.md @@ -104,7 +104,7 @@ SELECT value FROM {TABLE} WHERE value = $1 LIMIT 1 **Table: `string_encrypted_{rows}` with encrypted string values. Index: UNIQUE index on the encrypted value column.** -**Indexes:** +**Indexes available on the table:** ```sql CREATE INDEX string_encrypted_10000_hash_index @@ -119,12 +119,194 @@ ON string_encrypted_10000 USING GIN ( ); ``` -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 423.36μs | 457.02μs | -| 100,000 | 424.13μs | 409.56μs | -| 1,000,000 | 448.81μs | 422.23μs | -| 10,000,000 | 419.44μs | 420.53μs | +**Indexes used by the planner (per data set size):** + +- 10,000: `string_encrypted_10000_hash_index` +- 100,000: `string_encrypted_100000_hash_index` +- 1,000,000: `string_encrypted_1000000_hash_index` +- 10,000,000: `string_encrypted_10000000_hash_index` + +| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------|-------------------------|---------------------------| +| 10,000 | 1 | 425.53μs | 425.41μs | +| 100,000 | 1 | 420.15μs | 393.39μs | +| 1,000,000 | 1 | 435.19μs | 412.73μs | +| 10,000,000 | 1 | 416.49μs | 425.57μs | + +_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ + +
+EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Index Scan using string_encrypted_10000_hash_index on string_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1164, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_10000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 1164, + "Relation Name": "string_encrypted_10000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + ], + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Index Scan using string_encrypted_100000_hash_index on string_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1163, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_100000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 1163, + "Relation Name": "string_encrypted_100000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + ], + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Index Scan using string_encrypted_1000000_hash_index on string_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1161, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_1000000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 1161, + "Relation Name": "string_encrypted_1000000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 12.04 + } + ], + "Startup Cost": 0.0, + "Total Cost": 6.02 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Index Scan using string_encrypted_10000000_hash_index on string_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1163, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_10000000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50000, + "Plan Width": 1163, + "Relation Name": "string_encrypted_10000000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 198371.0 + } + ], + "Startup Cost": 0.0, + "Total Cost": 3.97 + } + } +] +``` + +
![Query Performance - EXACT/eql_cast](query_exact_eql_cast_chart.png) @@ -141,7 +323,7 @@ SELECT value FROM {TABLE} WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jso **Table: `string_encrypted_{rows}` with encrypted string values. Index: Hash-based unique index using `eql_v2.hmac_256`.** -**Indexes:** +**Indexes available on the table:** ```sql CREATE INDEX string_encrypted_10000_hash_index @@ -156,12 +338,194 @@ ON string_encrypted_10000 USING GIN ( ); ``` -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 400.27μs | 427.53μs | -| 100,000 | 394.22μs | 409.15μs | -| 1,000,000 | 386.27μs | 387.07μs | -| 10,000,000 | 409.12μs | 408.84μs | +**Indexes used by the planner (per data set size):** + +- 10,000: `string_encrypted_10000_hash_index` +- 100,000: `string_encrypted_100000_hash_index` +- 1,000,000: `string_encrypted_1000000_hash_index` +- 10,000,000: `string_encrypted_10000000_hash_index` + +| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------|-------------------------|---------------------------| +| 10,000 | 1 | 397.38μs | 389.09μs | +| 100,000 | 1 | 391.48μs | 410.67μs | +| 1,000,000 | 1 | 396.06μs | 406.56μs | +| 10,000,000 | 1 | 396.14μs | 401.25μs | + +_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ + +
+EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Index Scan using string_encrypted_10000_hash_index on string_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1164, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_10000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 1164, + "Relation Name": "string_encrypted_10000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + ], + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Index Scan using string_encrypted_100000_hash_index on string_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1163, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_100000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 1163, + "Relation Name": "string_encrypted_100000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + ], + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Index Scan using string_encrypted_1000000_hash_index on string_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1161, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_1000000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 1161, + "Relation Name": "string_encrypted_1000000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 12.04 + } + ], + "Startup Cost": 0.0, + "Total Cost": 6.02 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Index Scan using string_encrypted_10000000_hash_index on string_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1163, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_10000000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50000, + "Plan Width": 1163, + "Relation Name": "string_encrypted_10000000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 198371.0 + } + ], + "Startup Cost": 0.0, + "Total Cost": 3.97 + } + } +] +``` + +
![Query Performance - EXACT/eql_hash](query_exact_eql_hash_chart.png) @@ -178,7 +542,7 @@ SELECT count(*) FROM (SELECT 1 FROM {TABLE} GROUP BY eql_v2.hmac_256(value)) g **Table: `string_encrypted_{rows}` with encrypted string values (carrying an `hm` HMAC term, configured via the `unique` search index). Index: no index drives `GROUP BY` directly — hash aggregation is in-memory. The extractor's 32-byte HMAC group key fits in default `work_mem`, so the planner picks `HashAggregate` reliably across deployments. **Why the subquery wrapper.** The bench data is `fake::name::Name` — effectively unique per row, so a bare `SELECT count(*) FROM tbl GROUP BY eql_v2.hmac_256(value)` emits ~one row per input row. Wall-clock time on that shape is dominated by result emission (server-side row construction, network round-trip, sqlx deserialisation, bench iter-and-sum), not by the aggregation work the recipe is actually about. Wrapping the GROUP BY in `count(*)` keeps the inner HashAggregate identical but emits a single row, so the bench measures aggregation cost. The companion `count_groups_plaintext` scenario runs the same query shape against an unencrypted column for comparison. Natural-form `GROUP BY value` against an encrypted column was removed from this bench in an earlier pass because the planner picks `GroupAggregate` + sort against the full ~1-2 KB ciphertext payload at scale — see §5 of the EQL query-performance guide.** -**Indexes:** +**Indexes available on the table:** ```sql CREATE INDEX string_encrypted_10000_hash_index @@ -193,13 +557,286 @@ ON string_encrypted_10000 USING GIN ( ); ``` +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + *⚠️ = Query time exceeds 100ms* -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 4.95ms | N/A | -| 100,000 | 66.51ms | N/A | -| 1,000,000 | ⚠️ 829.22ms | N/A | +| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------|-------------------------|---------------------------| +| 10,000 | 1 | 4.55ms | N/A | +| 100,000 | 1 | 67.49ms | N/A | +| 1,000,000 | 1 | ⚠️ 792.92ms | N/A | +| 10,000,000 | 1 | ⚠️ 11.479s | N/A | + +_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ + +
+EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Aggregate + Aggregate (Hashed) + Seq Scan on string_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((string_encrypted_10000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 9968, + "Plan Width": 36, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 10000, + "Plan Width": 32, + "Relation Name": "string_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 1678.0 + } + ], + "Startup Cost": 1703.0, + "Strategy": "Hashed", + "Total Cost": 1827.6 + } + ], + "Startup Cost": 1952.2, + "Strategy": "Plain", + "Total Cost": 1952.21 + } + } +] +``` + +**100,000 rows** + +``` +Aggregate + Aggregate (Hashed) + Seq Scan on string_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((string_encrypted_100000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 93989, + "Plan Width": 36, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 100000, + "Plan Width": 32, + "Relation Name": "string_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 16759.0 + } + ], + "Startup Cost": 17009.0, + "Strategy": "Hashed", + "Total Cost": 18183.86 + } + ], + "Startup Cost": 19358.72, + "Strategy": "Plain", + "Total Cost": 19358.73 + } + } +] +``` + +**1,000,000 rows** + +``` +Aggregate + Aggregate (Hashed) + Seq Scan on string_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "JIT": { + "Functions": 6, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": false, + "Optimization": false + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((string_encrypted_1000000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 618824, + "Plan Width": 36, + "Planned Partitions": 16, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 999482, + "Plan Width": 32, + "Relation Name": "string_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 167309.52 + } + ], + "Startup Cost": 244457.04, + "Strategy": "Hashed", + "Total Cost": 265857.13 + } + ], + "Startup Cost": 273592.43, + "Strategy": "Plain", + "Total Cost": 273592.44 + } + } +] +``` + +**10,000,000 rows** + +``` +Aggregate + Aggregate (Hashed) + Seq Scan on string_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "JIT": { + "Functions": 6, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": true, + "Optimization": true + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((string_encrypted_10000000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 4273344, + "Plan Width": 36, + "Planned Partitions": 128, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 10000000, + "Plan Width": 32, + "Relation Name": "string_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 1673105.0 + } + ], + "Startup Cost": 2444980.0, + "Strategy": "Hashed", + "Total Cost": 2635115.55 + } + ], + "Startup Cost": 2688532.35, + "Strategy": "Plain", + "Total Cost": 2688532.36 + } + } +] +``` + +
![Query Performance - GROUP_BY/count_groups_encrypted](query_group_by_count_groups_encrypted_chart.png) @@ -214,13 +851,329 @@ SELECT count(*) FROM (SELECT 1 FROM {TABLE} GROUP BY value) g **Table: `string_plaintext_{rows}` with unencrypted high-cardinality random strings (`md5(random()::text || ordinal)`). Populated via SQL by `mise run prepare:string_plaintext` — no encryption-client dependency. Index: none. Same `SELECT count(*) FROM (SELECT 1 ... GROUP BY value) g` shape as the encrypted scenario, so the wall-clock delta between this and `count_groups_encrypted` is the EQL recipe's overhead relative to a bare-PG aggregate on a TEXT column at the same row count and cardinality.** +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + *⚠️ = Query time exceeds 100ms* -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 3.21ms | N/A | -| 100,000 | 32.53ms | N/A | -| 1,000,000 | ⚠️ 727.76ms | N/A | +| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------|-------------------------|---------------------------| +| 10,000 | 1 | 2.50ms | N/A | +| 100,000 | 1 | 29.32ms | N/A | +| 1,000,000 | 1 | ⚠️ 421.09ms | N/A | +| 10,000,000 | 1 | ⚠️ 23.629s | N/A | + +_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ + +
+EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Aggregate + Aggregate (Hashed) + Seq Scan on string_plaintext_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "string_plaintext_10000.value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 10000, + "Plan Width": 37, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "string_plaintext_10000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 10000, + "Plan Width": 33, + "Relation Name": "string_plaintext_10000", + "Startup Cost": 0.0, + "Total Cost": 184.0 + } + ], + "Startup Cost": 209.0, + "Strategy": "Hashed", + "Total Cost": 309.0 + } + ], + "Startup Cost": 434.0, + "Strategy": "Plain", + "Total Cost": 434.01 + } + } +] +``` + +**100,000 rows** + +``` +Aggregate + Aggregate (Hashed) + Seq Scan on string_plaintext_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "string_plaintext_100000.value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 100000, + "Plan Width": 37, + "Planned Partitions": 4, + "Plans": [ + { + "Alias": "string_plaintext_100000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 100000, + "Plan Width": 33, + "Relation Name": "string_plaintext_100000", + "Startup Cost": 0.0, + "Total Cost": 1834.0 + } + ], + "Startup Cost": 10334.0, + "Strategy": "Hashed", + "Total Cost": 12896.5 + } + ], + "Startup Cost": 14146.5, + "Strategy": "Plain", + "Total Cost": 14146.51 + } + } +] +``` + +**1,000,000 rows** + +``` +Aggregate + Aggregate (Hashed) + Seq Scan on string_plaintext_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "JIT": { + "Functions": 5, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": false, + "Optimization": false + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "string_plaintext_1000000.value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 1000000, + "Plan Width": 37, + "Planned Partitions": 16, + "Plans": [ + { + "Alias": "string_plaintext_1000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1000000, + "Plan Width": 33, + "Relation Name": "string_plaintext_1000000", + "Startup Cost": 0.0, + "Total Cost": 18334.0 + } + ], + "Startup Cost": 103334.0, + "Strategy": "Hashed", + "Total Cost": 128959.0 + } + ], + "Startup Cost": 141459.0, + "Strategy": "Plain", + "Total Cost": 141459.01 + } + } +] +``` + +**10,000,000 rows** + +``` +Aggregate + Group + Gather Merge + Group + Sort + Seq Scan on string_plaintext_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "JIT": { + "Functions": 9, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": true, + "Optimization": true + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "string_plaintext_10000000.value" + ], + "Node Type": "Group", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 20000040, + "Plan Width": 37, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 16666700, + "Plan Width": 33, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "string_plaintext_10000000.value" + ], + "Node Type": "Group", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 8333350, + "Plan Width": 33, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 8333350, + "Plan Width": 33, + "Plans": [ + { + "Alias": "string_plaintext_10000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 8333350, + "Plan Width": 33, + "Relation Name": "string_plaintext_10000000", + "Startup Cost": 0.0, + "Total Cost": 250000.5 + } + ], + "Sort Key": [ + "string_plaintext_10000000.value" + ], + "Startup Cost": 1663673.46, + "Total Cost": 1684506.84 + } + ], + "Startup Cost": 1663673.46, + "Total Cost": 1705340.21 + } + ], + "Startup Cost": 1664673.49, + "Total Cost": 3630090.96, + "Workers Planned": 2 + } + ], + "Startup Cost": 1664673.49, + "Total Cost": 3671757.71 + } + ], + "Startup Cost": 3921758.21, + "Strategy": "Plain", + "Total Cost": 3921758.22 + } + } +] +``` + +
![Query Performance - GROUP_BY/count_groups_plaintext](query_group_by_count_groups_plaintext_chart.png) @@ -239,7 +1192,7 @@ SELECT id,value::jsonb FROM {TABLE} WHERE eql_v2.bloom_filter(value) @> eql_v2.b **Table: `string_encrypted_{rows}` with encrypted string values. Index: Bloom filter index using `eql_v2.bloom_filter`. Query returns LIMIT 10 results.** -**Indexes:** +**Indexes available on the table:** ```sql CREATE INDEX string_encrypted_10000_hash_index @@ -254,14 +1207,248 @@ ON string_encrypted_10000 USING GIN ( ); ``` +**Indexes used by the planner (per data set size):** + +- 10,000: `string_encrypted_10000_gin_index` +- 100,000: `string_encrypted_100000_gin_index` +- 1,000,000: `string_encrypted_1000000_gin_index` +- 10,000,000: `string_encrypted_10000000_gin_index` + *⚠️ = Query time exceeds 100ms* -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 1.23ms | 28.20ms | -| 100,000 | 2.97ms | 30.93ms | -| 1,000,000 | 17.76ms | 42.96ms | -| 10,000,000 | ⚠️ 163.65ms | ⚠️ 187.56ms | +| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------|-------------------------|---------------------------| +| 10,000 | 1 | 927.51μs | 27.51ms | +| 100,000 | 1 | 2.59ms | 30.83ms | +| 1,000,000 | 1 | 17.27ms | 45.97ms | +| 10,000,000 | 1 | ⚠️ 192.31ms | ⚠️ 187.73ms | + +_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ + +
+EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_10000 + Bitmap Index Scan using string_encrypted_10000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{865,998,1735,1018,1751,1760,1031,1637,1057,710,1496,1200,587,895,1453,830,582,1596,1109,421,1143,61,792,1574,1845,2028,1183,1068,1500,682}'::smallint[])", + "Index Name": "string_encrypted_10000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 264.6 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{865,998,1735,1018,1751,1760,1031,1637,1057,710,1496,1200,587,895,1453,830,582,1596,1109,421,1143,61,792,1574,1845,2028,1183,1068,1500,682}'::smallint[])", + "Relation Name": "string_encrypted_10000", + "Startup Cost": 264.6, + "Total Cost": 269.11 + } + ], + "Startup Cost": 264.6, + "Total Cost": 269.11 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_100000 + Bitmap Index Scan using string_encrypted_100000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{61,1760,1453,2028,865,1500,998,792,1031,1735,1068,1496,682,1109,1637,1143,895,587,421,1845,1596,830,582,1057,710,1018,1183,1574,1200,1751}'::smallint[])", + "Index Name": "string_encrypted_100000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 454.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{61,1760,1453,2028,865,1500,998,792,1031,1735,1068,1496,682,1109,1637,1143,895,587,421,1845,1596,830,582,1057,710,1018,1183,1574,1200,1751}'::smallint[])", + "Relation Name": "string_encrypted_100000", + "Startup Cost": 454.35, + "Total Cost": 458.86 + } + ], + "Startup Cost": 454.35, + "Total Cost": 458.86 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_1000000 + Bitmap Index Scan using string_encrypted_1000000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{2028,865,421,587,1496,1057,582,682,1143,895,710,1751,1500,1031,1760,1596,998,1574,1068,1735,1109,61,1200,1183,1637,792,830,1018,1453,1845}'::smallint[])", + "Index Name": "string_encrypted_1000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 1530.98 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{2028,865,421,587,1496,1057,582,682,1143,895,710,1751,1500,1031,1760,1596,998,1574,1068,1735,1109,61,1200,1183,1637,792,830,1018,1453,1845}'::smallint[])", + "Relation Name": "string_encrypted_1000000", + "Startup Cost": 1530.98, + "Total Cost": 1535.49 + } + ], + "Startup Cost": 1530.98, + "Total Cost": 1535.49 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_10000000 + Bitmap Index Scan using string_encrypted_10000000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1453,830,1057,1500,865,1637,792,1143,682,1200,895,1018,61,1574,1109,1496,1183,1845,2028,998,1760,1068,710,421,587,1596,1031,1735,1751,582}'::smallint[])", + "Index Name": "string_encrypted_10000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 11294.85 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1453,830,1057,1500,865,1637,792,1143,682,1200,895,1018,61,1574,1109,1496,1183,1845,2028,998,1760,1068,710,421,587,1596,1031,1735,1751,582}'::smallint[])", + "Relation Name": "string_encrypted_10000000", + "Startup Cost": 11294.85, + "Total Cost": 11299.36 + } + ], + "Startup Cost": 11294.85, + "Total Cost": 11299.36 + } + } +] +``` + +
![Query Performance - MATCH/eql_bloom](query_match_eql_bloom_chart.png) @@ -278,7 +1465,7 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value LIKE $1 LIMIT 10 **Table: `string_encrypted_{rows}` with encrypted string values. Index: MATCH index for substring searches. Query returns LIMIT 10 results.** -**Indexes:** +**Indexes available on the table:** ```sql CREATE INDEX string_encrypted_10000_hash_index @@ -293,12 +1480,246 @@ ON string_encrypted_10000 USING GIN ( ); ``` -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 702.86μs | 25.88ms | -| 100,000 | 1.34ms | 27.30ms | -| 1,000,000 | 4.90ms | 30.45ms | -| 10,000,000 | 39.34ms | 65.04ms | +**Indexes used by the planner (per data set size):** + +- 10,000: `string_encrypted_10000_gin_index` +- 100,000: `string_encrypted_100000_gin_index` +- 1,000,000: `string_encrypted_1000000_gin_index` +- 10,000,000: `string_encrypted_10000000_gin_index` + +| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------|-------------------------|---------------------------| +| 10,000 | 1 | 616.62μs | 25.94ms | +| 100,000 | 1 | 1.14ms | 27.95ms | +| 1,000,000 | 1 | 5.05ms | 34.23ms | +| 10,000,000 | 1 | 40.46ms | 65.60ms | + +_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ + +
+EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_10000 + Bitmap Index Scan using string_encrypted_10000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,91,461,1393}'::smallint[])", + "Index Name": "string_encrypted_10000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 56.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,91,461,1393}'::smallint[])", + "Relation Name": "string_encrypted_10000", + "Startup Cost": 56.22, + "Total Cost": 60.73 + } + ], + "Startup Cost": 56.22, + "Total Cost": 60.73 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_100000 + Bitmap Index Scan using string_encrypted_100000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,91,453,1033,461,1393}'::smallint[])", + "Index Name": "string_encrypted_100000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 93.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,91,453,1033,461,1393}'::smallint[])", + "Relation Name": "string_encrypted_100000", + "Startup Cost": 93.35, + "Total Cost": 97.86 + } + ], + "Startup Cost": 93.35, + "Total Cost": 97.86 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_1000000 + Bitmap Index Scan using string_encrypted_1000000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,461,91,1393}'::smallint[])", + "Index Name": "string_encrypted_1000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 307.85 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,461,91,1393}'::smallint[])", + "Relation Name": "string_encrypted_1000000", + "Startup Cost": 307.85, + "Total Cost": 312.36 + } + ], + "Startup Cost": 307.85, + "Total Cost": 312.36 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_10000000 + Bitmap Index Scan using string_encrypted_10000000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,1554,461,1393,453}'::smallint[])", + "Index Name": "string_encrypted_10000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 2258.97 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,1554,461,1393,453}'::smallint[])", + "Relation Name": "string_encrypted_10000000", + "Startup Cost": 2258.97, + "Total Cost": 2263.48 + } + ], + "Startup Cost": 2258.97, + "Total Cost": 2263.48 + } + } +] +``` + +
![Query Performance - MATCH/eql_cast_firstname](query_match_eql_cast_firstname_chart.png) @@ -315,7 +1736,7 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value LIKE $1 LIMIT 10 **Table: `string_encrypted_{rows}` with encrypted string values. Index: MATCH index for substring searches. Query returns LIMIT 10 results.** -**Indexes:** +**Indexes available on the table:** ```sql CREATE INDEX string_encrypted_10000_hash_index @@ -330,14 +1751,248 @@ ON string_encrypted_10000 USING GIN ( ); ``` +**Indexes used by the planner (per data set size):** + +- 10,000: `string_encrypted_10000_gin_index` +- 100,000: `string_encrypted_100000_gin_index` +- 1,000,000: `string_encrypted_1000000_gin_index` +- 10,000,000: `string_encrypted_10000000_gin_index` + *⚠️ = Query time exceeds 100ms* -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 1.10ms | 27.58ms | -| 100,000 | 2.66ms | 29.25ms | -| 1,000,000 | 17.99ms | 42.79ms | -| 10,000,000 | ⚠️ 161.83ms | ⚠️ 186.51ms | +| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------|-------------------------|---------------------------| +| 10,000 | 1 | 1.04ms | 28.18ms | +| 100,000 | 1 | 2.66ms | 30.43ms | +| 1,000,000 | 1 | 17.29ms | 44.47ms | +| 10,000,000 | 1 | ⚠️ 165.82ms | ⚠️ 187.53ms | + +_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ + +
+EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_10000 + Bitmap Index Scan using string_encrypted_10000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,1500,1574,1596,1183,865,710,1637,998,1496,61,1735,587,1031,895,1068,1453,1751,1143,421,1200,2028,792,582,1109,1057,682,1018,830,1760}'::smallint[])", + "Index Name": "string_encrypted_10000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 264.6 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,1500,1574,1596,1183,865,710,1637,998,1496,61,1735,587,1031,895,1068,1453,1751,1143,421,1200,2028,792,582,1109,1057,682,1018,830,1760}'::smallint[])", + "Relation Name": "string_encrypted_10000", + "Startup Cost": 264.6, + "Total Cost": 269.11 + } + ], + "Startup Cost": 264.6, + "Total Cost": 269.11 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_100000 + Bitmap Index Scan using string_encrypted_100000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1057,1845,582,1018,587,1031,1735,1453,1496,421,1183,710,1500,1760,682,830,1751,1596,998,2028,1637,61,1068,792,1574,895,1143,1200,865,1109}'::smallint[])", + "Index Name": "string_encrypted_100000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 454.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1057,1845,582,1018,587,1031,1735,1453,1496,421,1183,710,1500,1760,682,830,1751,1596,998,2028,1637,61,1068,792,1574,895,1143,1200,865,1109}'::smallint[])", + "Relation Name": "string_encrypted_100000", + "Startup Cost": 454.35, + "Total Cost": 458.86 + } + ], + "Startup Cost": 454.35, + "Total Cost": 458.86 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_1000000 + Bitmap Index Scan using string_encrypted_1000000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,682,830,1735,1031,1018,865,1637,1453,61,1183,421,1760,1143,587,710,792,1596,582,1068,1500,2028,1109,1751,1574,1496,1057,895,998,1200}'::smallint[])", + "Index Name": "string_encrypted_1000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 1530.98 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,682,830,1735,1031,1018,865,1637,1453,61,1183,421,1760,1143,587,710,792,1596,582,1068,1500,2028,1109,1751,1574,1496,1057,895,998,1200}'::smallint[])", + "Relation Name": "string_encrypted_1000000", + "Startup Cost": 1530.98, + "Total Cost": 1535.49 + } + ], + "Startup Cost": 1530.98, + "Total Cost": 1535.49 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_10000000 + Bitmap Index Scan using string_encrypted_10000000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1143,582,1496,865,682,1183,421,2028,1500,61,998,710,1845,1018,587,1031,1574,1735,1637,1109,1453,1760,1596,792,830,1200,1751,1057,1068,895}'::smallint[])", + "Index Name": "string_encrypted_10000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 11294.85 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1143,582,1496,865,682,1183,421,2028,1500,61,998,710,1845,1018,587,1031,1574,1735,1637,1109,1453,1760,1596,792,830,1200,1751,1057,1068,895}'::smallint[])", + "Relation Name": "string_encrypted_10000000", + "Startup Cost": 11294.85, + "Total Cost": 11299.36 + } + ], + "Startup Cost": 11294.85, + "Total Cost": 11299.36 + } + } +] +``` + +
![Query Performance - MATCH/eql_cast_lastname](query_match_eql_cast_lastname_chart.png) @@ -356,7 +2011,7 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 10 **Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. The bare-form `<` / `>` operators inline to `eql_v2.ore_block_u64_8_256(a) op eql_v2.ore_block_u64_8_256(b)` post-2.3, so the index engages without query rewriting. Query: WHERE value > 5000 LIMIT 10.** -**Indexes:** +**Indexes available on the table:** ```sql CREATE INDEX integer_encrypted_10000_ore_index @@ -365,12 +2020,186 @@ ON integer_encrypted_10000 ( ); ``` -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 1.52ms | 28.54ms | -| 100,000 | 1.20ms | 27.98ms | -| 1,000,000 | 1.17ms | 29.11ms | -| 10,000,000 | 1.48ms | 28.54ms | +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------|-------------------------|---------------------------| +| 10,000 | 10 | 1.50ms | 29.40ms | +| 100,000 | 10 | 976.68μs | 30.24ms | +| 1,000,000 | 10 | 1.17ms | 28.94ms | +| 10,000,000 | 10 | 1.31ms | 28.55ms | + +_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ + +
+EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2817ce2b93478d2e186b01c0864d365f5e681114cf4a542a2b85b0d1dcf8adcb79a5bc1e0a189f65fa7339e21bc6d88ad013dd40988b2797e29c3b64c6d98ce10c6b454aca8ac1505cd2f632b600d48d9e57450526db2b2cc0c74e8f0de7ba4519f21e6fb614cd50f8318b6f70c0f258293c57607eff11d954cbdae9443333420d75af29cda4baeaaa5f4a5cd38bc7ed2bdcad3c8e797837b384348b8aefa2d2e1833f73db493b9e53966d8c21df808e048f4a9ad86d347f9372bbe23a47e96adb85ad1bec51ae648881c6fbc789e22163f84de788e7d75e5a0b1dfb64f014238c0567bed07063b57611c170f59b65e2b251746f12e2e1030a8e8507c77304269d22671f37f5dd116e29403a471aa5cf17\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 5050, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 7791.5 + } + ], + "Startup Cost": 0.0, + "Total Cost": 15.43 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28980b20bf108668388638b6e601a20ed876445198688a5d266014e00b5e34076375d129887c181c56a060289af61747a28f692f2f2b85406045b209ca5f74e3b3eb2e6e3354114cfde7715a094255a7bb7163a4f20b6ee62db4ba5dad15d203a417506398077408564d5a530fdd8b8bd290ddc255610813455226efbbdd872086bba4a7b6ee20be8bfd115d08670d2174ce5bb9cebb5ecb8e975519ff97636761def8d7d8cb65d08bd64690a80214f64d3b1f69950ff4c01ef6a012e86be580cf974114447da0d70f244af9d79753ab65dfefbcf50f52b65e8d5997bd63129e19c300ef85c697d8ef93fda724576de13dc4558ca70e75e3cf07438d6b7da103fa7c030a9d7c7031b2cf2bbf164b608d06\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e67c5c742bbb32a2787920c52f51c95fb332490558c9c4257dd62a8890009deb1875465951a7e0e5d23bc7057c3012b92c51a03714ad703d4b3a20cd537b3bcc874561522b6fb6886dc77a551840a9349c8387dfc0656c89a1ee49fc506c22c23a5a09d6e9c91d604784fee1c969e8907d5dedd7b11a34e13ebcff725212c76acaef861120137157fb8abe1ab8d1899718a40f2c72211f319294569e51dbe3501f1d8bb2d9cf4ab406891a605ba2cf78ae50ea10882f061bcf387f2c61e4f71a8981ed8c675159e8505a0ebe1f92adde7cf0994511a9d2a0a2210c5fc51dbabece4cb8868bfffd11012532a598cf5d52ee88b0348798bfde9196a66b66386365d98a74377211552acdb7460dc88039e8\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289161674bf4e1c28e73caaa834dc21dbd88eb8b876c124726a77adf6b0c73cc161cd4977ed110cc6e14ab232ad0fc14b457b37e195bd963b738310274fdd7951a3ee2e0edcabf1a7b56d1d018dc2dfcb9c87fba6c919f77f945de184e67fe62e42d837fd24eb3878be2df92aaeba606b64b8e4edad95e42015b8746db94222acda1a82e385f3d3ee5345a268b0abd6b6abfac704e703532834c57686c7e4b771049b57ae6d77655b63cfae34baf348f52bec7a45c560959f4a1ec9c2eaaf81e8fb2ac0cdd0721fc17dee72316374e6f71b5a4b23097f09ab3e0cd46281cb4d16d3d9939c7fc9f16e46eb103f607abba433abb20de3607e512b1a347ec7690d83a8946111f411893b66793de0834beb797\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +
![Query Performance - ORE/range_gt_10](query_ore_range_gt_10_chart.png) @@ -387,7 +2216,7 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 100 **Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value > 5000 LIMIT 100.** -**Indexes:** +**Indexes available on the table:** ```sql CREATE INDEX integer_encrypted_10000_ore_index @@ -396,12 +2225,186 @@ ON integer_encrypted_10000 ( ); ``` -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 6.69ms | 45.93ms | -| 100,000 | 6.87ms | 44.72ms | -| 1,000,000 | 7.26ms | 45.68ms | -| 10,000,000 | 7.15ms | 43.42ms | +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------|-------------------------|---------------------------| +| 10,000 | 100 | 6.73ms | 46.68ms | +| 100,000 | 100 | 6.75ms | 45.32ms | +| 1,000,000 | 100 | 6.80ms | 46.54ms | +| 10,000,000 | 100 | 6.74ms | 44.68ms | + +_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ + +
+EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28934e37c8ab2caaebae6b5e0452177b4b0858f16b024c30b9f292188adc749aa85971e5f33e45b4cc886c1ad34bacb8e03a5f1feca2391301d1d1875fc8d824ed8219ea22fdde9dae3c782c4a070ff206e16dc56c0a7b29765e86138a90c4488ade8075a193c26509d3b1dd51781afeba7461c7bcc109cc4ed1daed8469fa66e5b051e0a952a3c0032f0bda23ef2ea4a58fe7e327baae1f24fbb3abff43b198add2c520698a12cd9959c269fe8a155bd800de5d4a23c9f2aa737bddfae37bf6669fe09ad9c9348dccb57aaa75d9837be787818953a96187e13373087ddfc9e32ac3fe3f7bdd33e9d496a69ea18bbd71401642cfa3e77246558618118ec789a1d46b83349d10662fe4d1c3f6200470f01d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 5050, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 7791.5 + } + ], + "Startup Cost": 0.0, + "Total Cost": 154.29 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d3ae3ec985fff16d19e5239be0dd36b6b1461cd2a9460ad72dfdb5f026bab3f68668520eb92cc682e592b2e4f766b65c6b82c848a0cdce4a00807616adedee178688db0336b8f4de57535507fee25b91a97f6ce4cd393f265395d7ceb03ca4b2be16465d06b49c96586a0828677e9939485720fa900bfe23c9ad6b92dfba19b68b010377edc76d6fa2e07815f9246cfd2747e600375ea4f5ab309a6de9a723e94808ae935a409c71f9570cb96594f69811cbd26fef4f4157b1418e4d1ca123dd78fea435a865af34b33f3186d6ccfa4c572c5ba15950024227b7d9787c6fd81c36fd6067b6812d7bccac91c3332c0fc587d367232f11304124537443c7734036f70c88e6a18dd115d3a1d419b7a26a73\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb282f4dd513a78aebbec8ca692b96cdae97e9b6c41c10581f11c9ec33769a5d2eb0c8efbb27b03691cc3485710a03010eeeead21c234f65800ebb86fecbb0768cf2f8cbb843bb1b305b73b3dacc7843c8cb60c3730d327eb2fd34ec2e828f857cc77f51f7ef8bab0cf4a14a6f6cf24a2fb42dc119f0f0f665c4b15751e1d8358d8f5fc60e368012b52d4d2a0861109691e15b44d216d1a73f95f28ab34be74c5a5c26b2e9ee7a2538b2db54200201e64022728dbbbdc77bc9516b43fcc8501a5743615eaf814dc80cde01cecf99f578ab01fad07c7870ab81855b9cfddb79ecc073cd81de16c20ea228132d31ff0c6828fa5994153d6df51659ccc86465336ae659fba38b9fddbbebf969c213bf7e4af10c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289debaf9f991b0e2e92fa616e2c52a42610746a6585a09e73f2db9ac3e0a60fed2310d939609e95e0d1adf353ad8b1517e6a2443523f2a8e60f83f5ece6864140c35cbd5ca3b737da90480ee7f6e9c9c6541b904ef83ec41efc4d62eabb4bdeb5dd201155113c10fa2bd72065862f4f71d21b668c3feb2c336a0097fe8854f5f955b9bf9e25b3e0f0d9c96d7901544fc46cff5f824ded8b4e3a0968f434c610242319a0d8e12751e8c2a17ea7a3449785baec5ca7d6782661461cde717c082c21553bbae14a5e505e2cb9d1364293b983d21696188e7e0d2312f99bdb431e88c203da9ca221ef9a387aac58ca9e7558e66ca2e9b81dc440e7da657f673ad5d4c8b71005d3bf95eb3900d967fb9712e5d4\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +
![Query Performance - ORE/range_gt_100](query_ore_range_gt_100_chart.png) @@ -418,7 +2421,7 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 LIMIT 10 **Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value < 5000 LIMIT 10.** -**Indexes:** +**Indexes available on the table:** ```sql CREATE INDEX integer_encrypted_10000_ore_index @@ -427,12 +2430,186 @@ ON integer_encrypted_10000 ( ); ``` -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 1.62ms | 29.18ms | -| 100,000 | 1.05ms | 28.56ms | -| 1,000,000 | 1.10ms | 28.33ms | -| 10,000,000 | 1.11ms | 28.18ms | +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------|-------------------------|---------------------------| +| 10,000 | 10 | 1.56ms | 28.54ms | +| 100,000 | 10 | 960.17μs | 30.66ms | +| 1,000,000 | 10 | 931.55μs | 28.29ms | +| 10,000,000 | 10 | 1.28ms | 28.38ms | + +_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ + +
+EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fe666ef7ea3c2e11b4c35ac384045d48fc60112f8fd92c3eb87e5f6c89ca484edf7db1c0a148bf627f5079ea3a71bd55cfe91941934e4f6cd1044862af61c62c72da9cd377788e6dcf0acd7c3ebf5a682a16a1b93409717c1849bd9e6c56e052b97efe13b6d411811520c2f827e63e2d2b88a793ffd9275d1f93d920d195fe180d93bf0d30b78d736c453172bf2cd35ef7ccdf2aeb291942b9082b5ddaf0fdbc354dc47d6d3ba33ba9a0415cd52ba208fde55df87c03c9b8d23160005c156a3ca8153bb91448b78e504382bd278e4b1b4143b58c60a97eb8df45342f2edf64b9f8f0479557d69e68ed1b5f4137339f519ad10e475fb95bce99725086ffcda5a6b1c568c844c9a7540fed0b483828352a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 4949, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 7766.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 15.69 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28a033beb35af0337a1e833a4a41dbd757492fdc11701ee223c2506b57dd41d478a483190a3fd3d446e7fe27b9ed375453537a04ac6df237bbc4709f3bf6da861c7a60ca250a178f1d81d22b1a90c13557661ddd1d0c4a981523d29be5286280487150b20aa4c18c57cfd7adca0fc599b01f4f88f42f87bee6fbb221fbd29821c2b88be9f6cfd584643f19f1c95e837a664ed721daa2d5fbbcf0e95a12c7ff7b99e2a4486379c0521c2deb090aab1759fb593360b61f5da8295a4fb1c988f32f07860de7a60f755b65dacca90d5b488adcf3273c63cb9d379157fb079fe43bd1351b2aa22380490978150022c802398c0ebb19dfc312b72c509a0256d21f769f054fdea80b516e294594daf9c010aa3dff\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2852dd641af35f85678b9763d22df20b5c661af02730af1dad4f648aca466b1400466e53c2a5192636ba261eb85dc4abba14b7fba0da00e6c5d8d04073af6d64b32362459f451e8549d3ac6575ee4ce6b2feeefea4919cdab79c7a87e93de84d6f6a185ad9c8ef1da18a410fb3ce8b4c6df9cf68951e70062f95b56a96fb65adbf4913479617c41e01892b744151378f77588eb90e72a0dde315c53c525ee5b4d572cced711b4b80af9e81f2b257cc5f755940a3057ee5669ea685396f01e25ed3f29eb1202a80f6230e92668b04dae9e71188ba90ff93ccd5b971219cb01b4360ecabd4d4f644e5a5c7958d05414c8837efaad4e91dc0ff60cbf5cfe717f3648ccfeb90649367e1d42951795fac8471fe\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c4e2c6c7ebf0c5e05185e7581d967b4bcdbd02eaf3a12fc72f09e3dab676ea6eebc5f7e655db087f86ae65b1940581f49da1fc737f2e609a25b9c70c4261cc4477c25c190298e65062ce719dd458ef23f3a97b7e12ae4de8c8f7afc93108c795dbf73bac1ad0a682ca54b8bdb4002c827f19698e0d4f1d91804686248fd515621e7ad1410cde2cdd6878e72f15ce55c231a8d15486edd061651f9a16ae430e3c7ef7dab1b9b3e72018661ddd748a0b787395da7ff4e39d0a508b8bedb3c30476f0f5b5eec0cc6f58bf600084d9b97c93cee15191505fe87c3daca9cd42d68e286c99140b1ff5af98e095a83b65e304e6295f6e5db8bb41841a2732770167e87521f960a9784a2513f1b1a7bbbaf406eb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +
![Query Performance - ORE/range_lt_10](query_ore_range_lt_10_chart.png) @@ -449,7 +2626,7 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 LIMIT 100 **Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value < 5000 LIMIT 100.** -**Indexes:** +**Indexes available on the table:** ```sql CREATE INDEX integer_encrypted_10000_ore_index @@ -458,12 +2635,186 @@ ON integer_encrypted_10000 ( ); ``` -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 6.95ms | 45.12ms | -| 100,000 | 6.94ms | 46.61ms | -| 1,000,000 | 6.91ms | 48.31ms | -| 10,000,000 | 6.77ms | 45.41ms | +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------|-------------------------|---------------------------| +| 10,000 | 100 | 6.61ms | 43.60ms | +| 100,000 | 100 | 6.53ms | 42.58ms | +| 1,000,000 | 100 | 6.74ms | 45.96ms | +| 10,000,000 | 100 | 8.80ms | 43.61ms | + +_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ + +
+EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28613a47d8d474cd8e194852d31798a638b7c5888c014b63a30adaa563dd99bd94952bc58c0146a43be7957396ae6ea520c1363afc8d2161838e7e453dd243ca8c4c413afa00fbcb057b752016d69c4df4b49cd0ecd14cd9ba3704d695b44daff2c4232fbb64a35a77caf8f869abb2ec2489ad5a87f974548c59259dba7db48917c4bd53319e5a58cce7329bd7f0b79017352a7dff4e4e3a240cb52ebbf35faa8a4ae163856d684a21f3e3a2b4b7d3d88f24c67882502ee28a5e2fa209df5ac8266606d2758b0d8f90c406ceed03faa9927e0d3414275d20e170ba39f47c370de73f4105e5c2368eb603ec02b3d10f31e63cc0adb3494a2e637be59831712de558e297b2b9762aaa023130aa2f36ccb9a6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 4949, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 7766.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 156.93 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284ccf21aac875dac647810b92b06a1f9b98496c27676f668910513dd3737c176101dd7f21e2bae4dc5c08161c515855e1e583e7d7392c99dc7c403bcca3689bd71e64342b26040c6433e0a9e54794eb681babc8d24270eecc84bb92ebaa836d1037b98de5ca616c0f915605c8f954ba31ecc2a525ba46b2ee3d8ec7c7b83af6775c3a722e032cbd37948b4796dca9e3f8d7944e7ea8ba9916697b6abfa647cdf58fc78c92e8561e87b848246bd75699e804cedc763e87d245b700c492b874b50bf854e5c86b57ae975823a71c73486696023b8c4d19bd2c1be5b2f1417c252f2fc627ffb6c94480ef0fb21ddb9321d129ecf91218f3c5b9ebf8d76b47c7c076c83c9888cf8b931b2a3132c5b7771adbdf\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28da9f8b2f4a04d727439450791a2d22ef57461db05fdc4394e8d2ab653878651c049dd7e35424bcf81d0f52bb8c92fe90008e3cb57b72c6f6fd66f3e4d7bcd25c97bf39e81776e9f43ffbbae6cc991e158691ca9504779797cfcf6e3de8ecae70b8a7fcbfd61e62e5fbcb0f31d6926acce14714f4f0bfcf4e9a764d6f0f31558e776619448216389a2cf97ce10b7b6fba4106e618b189460a4d6c73d6539119031b66994e250a021ce7316e2bae4a003e4edc7fb9abc985ab9cac23de2013fc3ab136b77ec453a4048a4a823dffd0946226ba13768c670a4ce53a9456005c40f86bb0d549d5819528436595605ce19013551ac4f52611c714288b97530f71939837d98ef8e90722aa9648ba03516cf5cd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f9533cf70d88611efd8c5f50fe07ebfb32020fe350dab197f35b352d1e8fa063389358d26faddd169633742b39e4aef4124083587abe2a5910f2bdef1c71b11c88b64ffdfe6a87a34e234fbe6509c584869cf7794efa5a71aa2ac55165c7440d5c2290afb506b90727982a6a3b0e5a1492f52bf36718e62fc4f2ab000e229584c13eb8f663f8bb2eb5d0b916204ceb8e6d2b11af6e1b54a38bbe67ed2c1e78abff6b334039af0758ae689596dcfb4db1a9d0fe2bd11eeed3eabc8ea2e83024c322657d1aea63798549269ad6d595f8479bed39c12903d95503b175fd7cd1c7a66e8d0d16d4c224621dd533ac32aaf96d359d303ee973d563e45212ca9acc6256bf01b1d50d89dc5185605245600fd8f9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +
![Query Performance - ORE/range_lt_100](query_ore_range_lt_100_chart.png) @@ -480,7 +2831,7 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 ORDER BY eql_v2.ore_block_u **Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value < 5000 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10. The sort key matches the index expression syntactically, so rows stream out of the index already ordered — no Sort node. See §4 of the EQL query-performance guide for the natural-form sort-key trap that this shape avoids.** -**Indexes:** +**Indexes available on the table:** ```sql CREATE INDEX integer_encrypted_10000_ore_index @@ -489,12 +2840,194 @@ ON integer_encrypted_10000 ( ); ``` -| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------------------|---------------------------| -| 10,000 | 1.38ms | 27.91ms | -| 100,000 | 1.02ms | 28.22ms | -| 1,000,000 | 1.16ms | 27.73ms | -| 10,000,000 | 1.02ms | 27.23ms | +**Indexes used by the planner (per data set size):** + +- 10,000: `integer_encrypted_10000_ore_index` +- 100,000: `integer_encrypted_100000_ore_index` +- 1,000,000: `integer_encrypted_1000000_ore_index` +- 10,000,000: `integer_encrypted_10000000_ore_index` + +| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------|-------------------------|---------------------------| +| 10,000 | 10 | 1.15ms | 28.71ms | +| 100,000 | 10 | 1.05ms | 29.30ms | +| 1,000,000 | 10 | 1.24ms | 29.26ms | +| 10,000,000 | 10 | 1.08ms | 27.93ms | + +_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ + +
+EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Index Scan using integer_encrypted_10000_ore_index on integer_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 68, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2800fe970e78f354e987ce5bb688b0859b0abd75318a9549123eaff5ae591c8951cb0bfe6ddef9f0f33d99741f144a5ae4aa5cdc4029e6db0f7c19b661fb8b5f795440bbd0eb6def2aedd59d8d30c5a41fed198793688dd572139f766274d6656e820df591b01af34320c0a51358cdb6e14402f2d3912939f6e92bc73d80c422fcf3cc11ccb6410f9d9506b69702ff8597f4075545c1d1eff2126983ee086c1ca4c6983b17a40ac51ee203dcf223a5158edef85a15f6066d85f0ff8eddf4429f63cc7d1912717f8fb7f17a3ef4ef669bddb0db37b9d9ef5c3dfde80974dbe244d8d8cdb3361d0901de4cbdc98f3eb21f228930a300c7a2502ddb310ab3e2c32574bdba542151c649d054b036b3c07c41c8\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 4949, + "Plan Width": 68, + "Relation Name": "integer_encrypted_10000", + "Scan Direction": "Forward", + "Startup Cost": 0.54, + "Total Cost": 9829.55 + } + ], + "Startup Cost": 0.54, + "Total Cost": 20.4 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Index Scan using integer_encrypted_100000_ore_index on integer_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 68, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e70a903a5ae9f1ef15e945c00baff99d426e216bafdbc3ccf0235f0c4f601198bbc1e0a3405b3dd5c7ea295a6289814d64e87934bbcee064476b1e8a05a1b93235294fe17daf9aa71de75a6b8677b8787e4b970a8886c244e320a5cb1cf71a8c781a3c55a7b3fa4002cb8dbe0e9691308662f7268e2c852e187b8617ed1f43624cb4b40bd04e2027ee5a239284bbfefbadf736acd1ffc9b23118e778dec41787be1e1c477e0154409665e96ecf83102517e2bac2ca7c14b19398dd887ee7024a0abd5ba1cdcf37692053f096d5a06b3ce6bc10cf83656b49f7edc806f29dcddffdf723d1050f0ea62961396c6c08629459f0df66c1bbfa3b66727dbe392dc36f1f0794a980ab95e895164b9fe224492f\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_100000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 68, + "Relation Name": "integer_encrypted_100000", + "Scan Direction": "Forward", + "Startup Cost": 0.67, + "Total Cost": 84790.49 + } + ], + "Startup Cost": 0.67, + "Total Cost": 26.1 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Index Scan using integer_encrypted_1000000_ore_index on integer_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 68, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2825e553b73d0e9400f14833cfc1975af57f8b79e9e873918bc567c4c6d04c923efafffc245dc8c8a338f3aa6b685249a1ab53d8422625a534e35141567a37bf0afa5157c81b9c00780121a322d78bce5bf515e7f3f34759001c3faf4687a278f0ca248323bad12fee4382f371368058ae8a177cb5c33e6eca25039ad0a0c15f588e3f7221bd024953e0f55246ca05d2e14008b09b4f928c3f1849e4939688c79fd7beaae5907770d51c30741af2a3c956e78c90345868116dd5fd21739f2669715afb276ddc6aba944d740cc9dba21672c03e66d5f2f6e00bc591b60fcf30d84ff59a813f4bc0606d313388ef9c0704aa83ebdb1daa3602ba6ea1fb602690ade2c1fab04b438be6b4999d179132eac72d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_1000000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 68, + "Relation Name": "integer_encrypted_1000000", + "Scan Direction": "Forward", + "Startup Cost": 0.8, + "Total Cost": 847836.63 + } + ], + "Startup Cost": 0.8, + "Total Cost": 26.24 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Index Scan using integer_encrypted_10000000_ore_index on integer_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 68, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e3d7300dc58ea91cf8a4191c154e03703ce05ee3e6171c7d090590845a66319db717e79d096859d7eb0554abffed13033c449740d9cddb18a67b1a6ea2f46859c04deadf6d2b57b5b20239b27be563f0994611654f3fc8e850e52b0e8249efde498f12475f55cb3401f72468f7086b8e4f9ff1be938447ffd322cfbf0105f1adaeca9a843bd877c16de3239270d1bc8f6ce925d98d41227264b1170ae964929af7c99de50a3245c056655ab2a0a7150da5f5b7be71890aef53fc9b4ce802a90298cda3b926902955d63f35cf6aeb5cae873f29baaa351235171e0a323e09baec00c4ae491d91db9f42a8ba4eca64e3d3ba7287fb6ec56fe4d98e4549004447e3786aa6f201ed6b0e63123e5c54206cea\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 68, + "Relation Name": "integer_encrypted_10000000", + "Scan Direction": "Forward", + "Startup Cost": 0.94, + "Total Cost": 13113848.76 + } + ], + "Startup Cost": 0.94, + "Total Cost": 40.28 + } + } +] +``` + +
![Query Performance - ORE/range_lt_hybrid_ordered_10](query_ore_range_lt_hybrid_ordered_10_chart.png) diff --git a/report/query_exact_eql_cast_chart.png b/report/query_exact_eql_cast_chart.png index 6ec9d26d447d7d498598812d0b26c6ad87eb817c..0089fc86d1acc10cf7b5ab1e63ee398ca32feb19 100644 GIT binary patch literal 59303 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 I`_S><0bTM;rT_o{ literal 57625 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
ANwfOsO!@0QkWs+$8fKDU8w$(kWHbviXK>&Wd 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 literal 54783 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%0DS*llP?9xVaywcV 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 diff --git a/report/query_group_by_count_groups_encrypted_chart.png b/report/query_group_by_count_groups_encrypted_chart.png index 59bc6ff5314be2003213d2bc2ce45ea5c6a50ab2..2549a3bea85d0185629e520390e6b9d6963a2894 100644 GIT binary patch literal 42611 zcmb@uXH-*L*e#6xpaLEdJ#Cy>O6jXYV-jUux2ps}g02QS}K$?_L3`GdNBr4K- zC^2-T_g+Kbu6X3U-}mF*aev(HaL6#(d$0Pe`OG;V-m0t0QCy_ENJd6Rp&R;!<|5&e--UI)LyFb=**L1OV_cC*{B2zJQf9~kw?r3Lz)6>cgYUkoC$jg6^ zSB(3nt-Jeks5l>=(|_OKb#b%d`)26T37$g!TwWhaMn+{u`g(NT3^Atg=%JQ( z^3uo!Z_WPWrgaxDj#!y=tJS)6?Z2(w-1^k4cI{F25zXTVk?C*#x>c$E=v?fCNzhHs z+?#J+(qH5Dd$lBa(YQPDFl{yOt({$ZY^lQF?xN4eR_c@pq^hbeI${hO4)3=wBlQnl zkrB0%DvGr%#{GGOBXJR(m+mLfo4NbCGZ(&cf^zPFAzFx-Y^7!2~{s@nG>|^xa zuS+NwMa6eQPJ?~uh_tjc$KlHLj9Cfat=!nVPrsv0gD=ud4Oc;{7EH~iy+`L}$-GO_ z0+04fa1Y5Id?StEn%-*dX1G?K#^Wa+=vbu>*IqH)_f(FKj=lqd=!Y{)JAcn@iD6HA z&RG-G92Fww>grnJv8ak#RCu5L#w2vq)be_ zC(i9JAd3W+j$65kn&)~lmzSeil@ueGB(uyL-ep(YkJkFQO?*EG2|TJD_8Nm_yD7;g z*M2G@ZuP1qIZ=#C5w|q`$SN#bt|szZgj{A67s7QFeH;Ax;!H<*NWd!Q7%ge!3%aFp zGdE6S@B+oJzOle#9+%qn5Q+64)Y)~SR5vqT_2r$CVGU~W+G!?d^ zPq1idX&HD&!!^i^)XY&0nH|CeV*0zfx{kc3TjL5sshB&zbY-g~<$wG3Z3p)K`*&q& z$E|G!Q&U2WejKOvQbdJaFI&CEV7X*A0Ww(T0Pk;WYdi8r>J+&78$mY)W7yR?yLbDM zxo|CO zSMCoh!g-yXMr*4)z=P@)fgUBcyN?656 z*IO_L?3sm3y627ccIC@OFwIC%{`J=v5r={HYTKS$gd=G%4I#6w3)w|ph%Je_$?*H_ zRi7)u8Sfk5icHfc4%__$AgT1#V=fq?b=`ElVSYo{4bfdlKzZOXv7*dn3_b8!8~Jfp zyVUln!>jWY`M00E|H35hK9_N18Q?6Zi_MWfKJ4|M8O#BTLVu{j#pNKnpRhVoQ?U;V z3=DL5_Uuy`n3;icry+wh--W!eqe3VrKY!1`Op?n-OdVKJA2$mf@g)P!Bh~u41qL2H zM~PiDMB)t-?{CR|gM7p!pTqU04x;}4L@0CqNR5{$?v`Zd0eV}Eib1T~ccCwjA<(l3 ztm_brX_G@XwrgO0P}F6#mRp*BWVN`7Nsu^jghT3fF;Imym*J%WN8P-M@WP1B=*YYHGZJC`RksOD8+TKQ=23%AqEPK9Zn~;cV#v`IFpim z_5qJUY4a7z`ym>nozy=xM2K!O9fPA}^Wu37t;H@d%3h~1b1ZirvH$)~iLn=<1UD$^ z1K~?WFM0&Jz@I2!)ympM1EbO>7M}MH7n<^!OAqDUXWDWR$VnS1wrEnmXYZhvCM8+F z2wVGhVW&xGsyNs(Jnh5zH41u>_7XnXkjur=xam%tCJZ|(lB`dOZtSnrtbW|D-14iTd`j9dS>RN# z_5Qn2

fVg>go=MMu3Y%2y`}YgVEUwinxyA7n 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

)K5htYNZO{M4{0*H4(<;&2Ks}A#gH@q z{qjkT@X}yA`11ebPi$XvwDTWGNJuOQ`5o=&dKchvd#Dser;a!t58cOSh+3~mvl9ih zi25FuDkVL7A?mioaQlH~`1JJ4OP4Q4Zq0WnqRJgC2fx4AYN7Z4&}7!O^{vZ$dv`ac zw^z+(v?%Q=otWVy@nGww5Q7S1c|K(55KmpySFwmk8)}d zMBQg)RUF7vc0ip!f4((SIguOMoh}=uP;Ay@kJ8H1ebJr#I4%q8#etiBE=j`BU|r-6 zca5zH@+2Z!-0le;0mD4yd$ifYXZHKz$FQ)5)#9ZkYuAA%w*49ME~}%w>^cR8Z}Oq`7G5`?h#{X z{-y8g>gsc8!E}*=cEcZ1Q&TY>sh)o>ef;=Qes9c1?!u2^0frIRFs)E3!OXy6@(OC{Fhdc|y6K+wZwnGY^Zn599>Q0IXr50{)kKs^`k4!djsvFwj?sryf zOp-h~8W{IKKJxOKkI|XKtv9Gv;HjNz8O@tN7w1#(7#kk$pqXMGXz|tM)*m0*Re5fH zGpux$TB})?7;pvCw&t=gQB;pb^hnsnmRSv-;HOT;ysf!(i=IsSpZHP=+3TjHHhAwY zZ|%>9C0deVC2*_!29-NllvBr2U%Ij?yF+6LPrdcp3Apuqvd3gZ1e0vSu88YG{I!nd zW88Wiw^6lWQ_XX!j467Ia+WyRj3^Q{a5!;}=W?`jhRMt`B<$N0&d;+t=vH&j@tog3NN%eIYg#>&e6;^gVq|=yhhUvxUZO3 zC)fEOAGG|Loi&FZ1yMV;Zu)h#*{LQ7up6Ot3XL65PRa=a#S`>5ZkUbLK`Z8W&;zk0 zmL15oLfztT^Q&Ws*rV{IB>RI^L=R`hq<1b{3C6eJ%Au7L4Y%xwjoqAWF)7D`Rm&A7 zj*W-E#vn8C-nm-2vGWnKbj9{l_4pDDMl$%!IpPfHDi}k#iqsOEIKC51nE994uU{Dy zpFVwOxi(%^j)~(kh+V7Vt3j{K$I@ki7Z7a8nG|(jw)pt@vyz7oM67-_jC5ixO!ByB z+@*sn78tE-D&7hQM$llbZqHb8C`YRc_rS2S2rd;!9DAMVxh@&4sGA;?Poko3yws*E zL2!Y8MCdlV`tSZU8Ipn6PB8h$_^x#lVq*Qbfq`5zGc&P?j@4~jo%}t9*t+hIpHuVc zgvGsgif-{3kJG3EtEeNGM%N~E#C-o?F|}g+HOe7&c_`Q5*RNlk!2DxxuqfyvOKr?y ze3qXM*2X$K{RU=PbMfC7n+PjrJKj$+M=KZNwL7H4Wn*JgK2_CU9Je_-RrxA?{tXG; zL(GtGPAU}mhpz1uNq>on@;d0A%1FxSs4mK!AJSPQzOb@lcYxoU>asJ+7AFdL8;sy5 z`jKw!{L=qAA21(7yx;4zXxrgD7>2j*LunkZ+TqTCD!*?iuX%F@$`K6u!3_m=QscZZ zyYG<(dUdbe+)ClDi`{zVM(0RzKU8?u)@#=5-B3KbML#0x1+LaCB-oYIIuC_Fp;JEF zp;ZChwopc{1+W1H)Z{6a5h9^&uykei6&57wNdK zA4VrmBXndv^XonOvip?p-UPb5k4g($LKQnw2sr8(%w#yQ2t~ijy-BF$M74YQF7Pd|k>RxH zh=_G9~5WE|w}_}Up2YhNf+Bv(zH21(KD}2}%a&0U zg_Jqj?yY%+uUPbj^T7aTLK5y2jNo(Je{1LIn%dUsUBQ4*F(%efKS^QYV;WSpe62S{ z9Gc);xZd=_t?j|-EAzyk? zPHnqNJaDgD6CP7WuM4Vgh^r=vLx->O4!`yTpMJUDYP>G4KzQHM`JK2b9pZw>Kw8K8LV*^HqMYK)OBsK-I7- zzP_|?^YzQ^Z60SWJ+$$y15vB1bi!|6kmxIstNR0Dq5!6`J?Ba+(r!RJv(d6(r|^Ih zdc)%Nz~miO@!e<;DFr9CQG1+hVBBII2I+{fJz3(Plln9if-lq^EF>-n*$%QPR=Ldg zi&tQE+qiHe-OHJE;j6(<_0ekgX#HYeL1}Nm#<1OA8%y}saGzz8u&ZO{26Q0iR2y>| zl-n1JXLex4{oD*>vC;i>FQ|p=i^Q>WQL0F~fs}h97_Mk)(YgM52aqL{i@#pzq;yr9 z&(Mj)MuH*7TlV<3(0YuP_Zh!z38SwNFL$2##Tlk5yA$1S{1)2+Bcnw4i?8%nrO5;% z*AgF^{<2(`+6$a?={QCVxqiTVp!^;sOiCQgMbXrGz;Vu#wO*O5kz{E@>(Is^Qiq1^ z=|J*@>a6I=N#8vql)0$I;4v?rPS0{RKW6_p^0@TWGVZ^ zx@`~ViaAz%e`mk=q+r3#{|wRPJKhRsh{UwD>pTl$k2~tRxpjI&gzTKoI9NeMU$3$S z5|dWvELQNi74YM13WJzrzr-8MRfm(vPR3)kdCMQmB(&ZE9{# zpgiR3U-aCc2`(HpXr8QmHOrm&Mr|t2H;kSGbIB5Okmjbhj=)xzObuVxuW;nLe*Jp+ zE{G;WQOyw+`@{RF@6Urr|n>!UNSg0HXl$?_hx6#+`*Es=OhJ1+BI@p@G1UUxeV7$upzF0B2 zWgZ#Lqi{zf|DFftPa?-w1H5@{;WE}P(mZDcHLd$IKJKhfO$SKzc^O&HKVRdy~kLw-!T^VywM5Q^JLG&F_`%*(dGLDlpxzz)Jmm*ejko? z>7As_0cn2uwfWrh1K@@U>X!Guz}#1zFZbmF$smYB2*@iW^G%neE* zk-l{mpHpQZke(C=gJIXGpao=l+tk$5c_DqB2Zc1gt7HCaU`-V#MyvMWT>-WQnrz6PK6--zdPs$(m?^A3w5?9LM_J*)Li!`GDLkJ7+5J`g z!*R0IqX{n7GfBqRPy;=3SEQ|mqPmXH>IG|}7p>sW3U})}%ge}bm$rJSt4Hb$&xGoa zj`gjE)g-;k*Xv7*!3r!D^`|I;7#Wpo+7Jf(Lo|2N0Z7UQE)?itR55ARcryF3l4pc) zLQ_{Bq=20o0Z;N^VpjCl0F|b#Dhus$mdxd{-Xjn+!`GlSrj5i^RH9XH@S8bjqVVC` zb_ONp^kx%o1In3;vBc`tIoY_;rvm*88f+N(~WFEBy`u@7$_;IPmqSC@$W(bLoA#vElOj6yu_$XIc0r8x{10 z)Z>skV>R|V=bao4N#(1~8aNkhw z*YM> zLwpgjpU$_`Y>6=ZDpXr^RWp#*?ny=?w2V8UJM(*^ojX<;7r@Ob4l7AN6YVGI29aF> z$591Y3c6;AV{XHLelO!r3=$Mg(w)+2W_0eh@Ly#YpDcwWr|^`0i6fRLgmR4Q$a-K3 zg*!x(_WpMS*Yaj&YVMj9P86aqtk96IFqOz{CoUqszT}FQJioM#+r!d%#U zj4fnpz+kpHlnY=(m_#rF<;jwzlFY|{9x{Y2Dk^eA`EPd#$4*aAb5@MZ+7IXH#dUoE zh_bDtd}!s;M$_2jfHGjXr!L~7Ujcy;7gOeUbOCW|Ed^33{muI*_;5Vp$> z-AN+l4uI`|Z0_wf{HZTPR=e9(uP3{wvNAL4QVCeUtZ7h;wy9JCG+ zhW_3(8D;V?fH4yp4GwwGhdg_Sg$u|PnJe)t=Au_+?PTVou^;;UcPrL?(=OCuY*e$8 zAA2NV+^_3G%V0tdNQ-4-n?m;d{B)TcWwJ3?vp&kU z(v52D8arF5@8PkViJdqdmxBG&xjcrxxBa5jqgknbwh#jZ9d&hTnXpkaWsXOLpdfm(_`XMvOJH&U~B&|c?iB9!nS99Ad^O>yAxX?Cd);X2r zEJkY}5o*w7cXWSKsgaX@t}-;-rY9{I!VKe$uc#w*1 zDcHk);}`n=$`wP#ZvmR%?@6y4agh#F#*dc)QX{DkpRstx*Tex;Ugj`T2ld#d9Ws}J zO4^dsic6HXM6cbXC4OYldaa5I*&!dyX#2uld~HV@?O_DnnBUp&#gy(PV0Q-SzIq$3 zaQfK|=keCHZViAbck*ULi!kIKYUl?mHgF&ZG@+_`d%4)y{vNfJZM2uFP0v$|lvVPQ zRKsIY0hGR*5j0RQ7;V$%g-eS;YAE(#MEO%CB#FMh-0rhz9|{Fr;FF(U8)tURBxYAX zi~d##Hqx_mv|-4S$-c}-8k2_^V)UZYuKYyoF#KmpRDhS2fAI{_GYodquf z#&yF?R3^#2{Ku+N{KGe}-0?vG#+8)6bMz%VITQ&F4o*a>=$|Z4{|tn@7RXP7mvy^c zOc*B4F{mi;tQlX^0hbXWT)#G+m`p!foE7y`oQ0Kjafx37*xNz&1q8sq4x8siSBt)` z>X06Q7xlg+N&=n-{8XE=xDhF{tlJXlMDdt$E!s;6IRuf=zh4O zRifkB0O47~OGHT=X95~HPHs|D+lemgA|mpxDTsV@Z%rXqU!zlCVP=lsd%||%-%)1* z>^73B)kT=9>;HQShNBbA#_ddCI?;bNJr_$DywCE6cW~PFROUW%wZ?gfcjS;)80we3$ zvu8WyNx@|UTxlM^R+31RFzRN7E5NDBGM?{>{#k5!!lwGN_=BNRB^%>U#z<9IbVg=o z8!U>|Vy0wjzR=yjLxx;}fkiR4Gj8O5w2SE>B`q!2Vs~=X+esDD%s+qrY;nQg<2bbQ z;-fiqzL*n;cIRJ$NF9Ewk1UlRcIqp_&R-xwgo&?ihlYj4{d#|85x1*(bg;cOunODi zN^+XtY@zFl8)1%ixo*dxm8k^t!NkVJ@jO*f__UA1QH%U0#WP7UQ2^)db1gy{p#C3%#>(&&(@b*IPS6I{C%!<@8o?>qnZQV@5ZpdCkkxe<5lGT`_=kQ`6eCExOLa(N zqLlcj2>vIUUy8tHOVs;C#>dC=6w0#AOJCSzKKtlwix9Zv^wT@o0xfjOyv0IK zgM0@y@=km*-}(w=$wrNcNWG+F?L+(U&y+jXZ)#GQKxRYOF6jSi3V}`1-@V1GtZ&HC z^y#txcUaA8R9^c zkHFQ*Vk5eh0gZxOqh|>^+#E*wf>Aw_xOJ+Pv7cdWw8Ev)Lk&Dpk5Of@kQqyhAD9Xl zqw`{SO2qYZB&}sb4-~TOs5*Kied5-t{7)<+#0FQ$s?vR_XhoWS-jgxI;MQs^0i6A__GTKmb{?LF zqmmBf1;W5@5>E`E-reVEc&t2`Dk8f^FQCb7yw5YLmZd@y_i;8QN;ZXt-N|Pon+DmS zn&P+0NO`bvPCeJp*K052BeThV)zC_<7F7JXnR#6xjkv{9tF$HtP$8 z6)_8E`ajfaCZ*>bnQ{wJ!r7KzrP<2x*=-BHAKxyA8Y)pXfCQ0T~@z@>9axcF>DD}b@Hxd4Bx@nW%ll%-FxENyFz;z5$ z*@|Fz+kjQ;v{g#n)SV+{^HdsU%20pX_;)(FkjX^9`n4}(d*h?u@>}MbQp?+llpOj5~xVP)S)ZqP;5PBRE%QLNplTLgYM~wYtz97HXeaWobOb~mt zFYmQ=@M@uc#j#fJ?Addce@3n5fBuw#>wY|ed~bmM2;A!JovA{SqblrUqvtHVjzi_u zE9G9enj|Ko7MDES*`}c4VR29SLX%=c3-0{JMu8vnft2d}uupQ2} zgRY%}?zILxDMwdG;`+x;GOS;)YgQIfYFqOla9npn&=-cYq2ylZiEN0tgoN<}tpYRY zhL#j62VCBuaZ#Lt&0W74Z7Ix|58YdH0q6@wC+R#LaFt$S9D6v{_uBevrh^Tt zJm0403QsKqFv1v+fFjFL)$X|jLPsDgb=I!p+@{g@W2$89FqxVWh}Z zhEM`<=&{3J{Y1gzSY9?oj>Vxtsm2Ac*D#FRf|xH)&1+1FxFcqw+;h_`TcYfv zolkt4u%s%Di*K-GNPAj(?Zs^J?X6JW@ZFKiM8&Y{NEo%gD0{BFjc~6ydEW3Y=yuc% zxIz|`%xGA8Omw{9Rn?#V44+GSWj@(7qX^a(htGz%IKvN;JhV>hj?brco$`^B*2_#7 zWWD$V7UPIvtJ2DnI(PFysJGi!PJ<)F@22LteUCEMc)@UWTE~XQcTWw3jvR(h4C|lT z4%xlL!hCTC6*cnZj^hko#r{2x15Eh?wBr5ZRw2V9A%%tOmOUu!FxemZi}3Mqvc3U2 zbr|U&Vlpf2u{m365DoH5yF#4cbnn9^?~|qw3gsSlI|eh=#+$UFS#Ls!sl2I0Trx15 z1R_Vj)S8jN#Q(mj+6rdf@ru6y*V<@t`X!a&d;?b3h0X|&(J2#?(koYx11<|r7y zRl-L5B!7>Xc?uLTZ~f`Ad}K5sxaSSfQrz=`H4vq zzWTo!8|Q1*xkJy5_yWh#pu&(yXMlY(1CajQ$?^J$ zMboF-E*sN7-BM`@vpmx0|L)kLn_Rt4o7T&6N3IGkFRr18Uf1%^L=`MGSZd{!#;I%X zvEFAMJ&y3*5cg$v!PruY9f}3GGduipV@$+jq4Z#EC6-$0yJelb zBceetInBnummtb`a?jtHZLka3fV1orGJ{)DT0ram2T@8@FgU zS;Od0D)3eoxL9R0vY;Yt(of@CScVhS(YrD`?c5=3(N;e#!_XwRBs(4MUj8kNrfS(& zJ)GC4kO+;PR1l$z^K8Q0&`_UWeSh-n?Pq~c{dAgK#s^w&k4_Z5_%*7n!;b_ql)s?9 zOGROe`sTD7SxKb@!uvO*?Nr!F1#jHE$xjMDd+waF1G~5>L?}Zw@EU3QAfWgN#av#~ zIBb7EgKY4{<8}WN{<`;rgV`F&7q^?Koeb}6SqR!IM>*M%e+PUnn?~km^hXPaKw|a6 zI;=@VHDEKw-$|bwZHJ+aGEKuBgTz)5S@&0K>Nc z#(e(+A}h@h0Mf24;CWt37xzfulv4Z-ZBP%z9h|h?YfELLgI<7=ZI+j~AgE*v_+en~ zBSs!DTwZFiyIf{{K@gNMy_bneEhZ0+{1=?|LhVi>JxqN2&hse>uZRD7_G#|Gi+l}b z{_8F+^7XcZk^SDvuAbw&+Z>L5wi6jHw>bbGOQwhLfJboY^%W^OEzX)*&PPtog;F%P zZp);G_cWZaqoy9aE?ZQ)<9$gN6i%S|*_gtKuW7YMYnrd3i~hu6+guA(BcFFAbbK5= z|1nfGy!Y2n_4@+4?XiX7i@x7X|Byr($JLWdL~`Fv+CD??rbVY)tKM5_dkG4s_a6-~I#AlAd0^z>j1ycH z2cf(Iv!xG1}!j`Kr*aU5B|eQznZI@w)lBO>+ni{vv&I33e2n{fYfQ#P+K-RHN-Q9dv_>2c^Obe+}Va7vKxwZx&5Gh7*jK6mTWNZ z^IhVFg_s)#<=HbwYK>X3fNoBA(c1g=t-F4pY=tab9D6f*s$E|3bz@M zcI>PLgBtBQo@oIzyV32W`5!YHrv%>hsVOwFX#vbRfPjG9e1Vs?JC=en1iEtRNy8%% zxO^e;bL?vHSCO}5p@2!s0LEFG8Be_xvu)1@}+TsN_r>^#wdc7kbTKbnuMPe9Icv|!@e@Q=`7$_|x z@{DSR2j8}TBAXc~F0O)KC@-5X#}1YdKN6i&3S`3!rI(Jx`X;ma(sD^VN=82{EOdg) zZ0-n_1ymC%{@D|nWwu%avux=g6NUX+RgC52Wz=v4MQ?G)-N|Tn4JEDzD;ttf{g;zS zs6wz-fl0%pww2;kZu=U3*>7lSK=kGC43w(YW*u?3yRw*5NANO+>6)+-^&BP21Gjbq zmm?rBqM~}xrEkpYRC^*{{b#}}4bfls7|#I$j0T_CG|^2paZ$7AqurLvACb3Uxr@~& z9~sp%eY_5~0<-zH2f}_&Nj~|Ns~z>4Rus8xU=)hnrEcA7lI-|RkrLx-)f10*K_%B& zEX6Mt?$_YyyfwR1Bv{f@JxAXuVQSn28<$u28W$yxmU+J z`xoDw6ztLgWI;1tp_4+p^Zj>oQWWcRai+i&KcN9!>RrL->N#bRsFaj@5w4PPMjR9g zi){MUZ{G>qaJ~Pf(7Jw-6deRJ#xHVSJla8dZCS6=Wi|#At3Q(&7$J9Mk!BapkQ%6T z-0k9oQi+VwCk$Uyp!ayr02i316tE6Qzp=ou!`<{6!!t56lvd>RY&_HJLIg7UW;{hX zm7H|?8~pt#K}qit#I0EZlP>@WIsSoU_oWnUFBPxZJ5C_DxGD(6VJf;dsy-JMzOOC| zuk3!O1H?R>CK^^%Az!`-t-FH?6XfCqAS55$ysz}It~q)wL{;M8=^++lmpfYu-E-vU zNO8>6-kc+W;8M!I*9^n@Hwpn)kr}7|92un$$U_=eN*ovT zUNkVRf5s1)ZgYHekZBwjWKJ1OxxBu7^%E$&7y0b;$!1Q*VmotyAgGESEQ%*TbxPc9 zyzqF{l8J?~?6_qjR1Nl!nt9n`)pGBo+SIOk_xbfMODxYx*YAS0r3s#i!(?AvVqy%o zzkRjp@zhwycuC}@S4q^SV1n_0IstZqinK_IAG*Q&C#4N}dLNJK!-_m>@)B~0Z(=%* zJhh5p@uqr)`mFXsETwO)8R8CXts|-Tn(ac5Vg`eYuNKFgd{)r>d>}LdM)v~iX0$%i zlKku(E0;?_+Gk%{R#LdY?>=KiQF|^9B=ur(3tiM?9W*gT`6jDMXWxpga~VjIftc&F zA<$7k?uh0OWL)^2FYvjqcNtW}_%VG*ZOU_eT;2K4+67DdM|!#erQ8MW+sm2JQBwMR zX+XfDq(3bLX|4!mvT+949Fs<=;gt}BD=p|esHjYeL~4-i;iRj6n0z1y>0zFf#&gl! z)JcJ9gDMv|yS^hSQb5-mWQ5AC8L3*@{I{2Te*l%8BB;bDhd!W<&3ZP(Pc}wyr9_WZ zeAIJfDqMvn?tJ?7=$XBJ9?Vij=5ufFj=5mj-AZhAU&2#l$b#*XT74O=yY*w`d3Fr} z-GY4WUuohQI~%=eMxvZuT4kSWCkO(#HX!bp2PshbjHg1Npm>lQ@o&J;D@grmHK%bV zLEhF6ge0R&7&^_)5?#2ysPKcgG-y3i%ML!39tYtHhCcRLc~#D%lYXs%GP7)@M#^b=5qO1_+!3%g6{VVPGl2(RRs zrFfHU-iMFvmi_IJU^%(3sfL}IteO!o{Siifym#`@4o-pdu4XG*X%U6te5#0NeJZ$uub1DRZ*QK-nHy1nffis@FZs_$HA7U z5uYdNtU{Jl|1$QkJtVh5ZBg-S z`1(z^5(pWhAEDzzxp5gj__92G0h8mSE|X91?%XtyB$lp=Zpu&U)Va;y}2x7ocC~ z>Y?j`h!Y^W8|ZXvo|;~p^^q>A-5(GVasAno=V51P>}aFj#<{ZioqyOStnw&fXsoA4 z_0w$*h%Hqd+Y9Nfn`zNkmN;#_ooU6rH3{0o;q6>SW8>z^%#4iqwXYY-LfLd%LSEy< zK*Au>4CB29?(Ccbgc9-8<0}d1nG-zMrQ2^a!ao=qtAxDHM{3zoTtG-(lj=N z;&M2+lB(Zcrtd5e+yMu9KIoO`i{l3rKF|9|=z^8gk25DF==S8d2B2JXuZd`%I6AO&jdIn6Urxqyes-`zv2L z$8R{q$^_z-X|suV3YaXz{zh4_kj|sNG`A~mSBwp_Vr}ouu((Z%U;9VJKa%n>`*by> zN-9#lzw;13q7|b;+EHAH>DBnJIPl}AdqzrXjTScLlkf^DM^JlwxBFNN<^N9aP1+5f z4{l|GRLO-mC}B`aZ;$Y!|Ihx`g4tJmuP3!phj!vr@+jAdbS%tS z?O!RWnI+hV^7gE?Uw8`^{yy$J^S9Ik_;Rs?BIg?W$9L>v?V`Ckd8YcpePJ^1fXJS( zc@*V+a6p(@A~GS zR-J(Y47J5Zp4>-8Io=f`>bSW2kst)Q>&O4?pERtM5uz2fip`DYWWMPwaD$$n9&5^d zT0NQTjl{IfM@eE~^F)&LFk}Vn7Ae`wlllL>8yQVV6`N|;n1z9VxvRL1Ci`dKIN8%@ z*9nhIxG!V%ti9?=8w5XmXgPnpl2bBOaQ5HG{J33oaE^h=yE=tTpfxRRoD67 z!%_RMin0&Ht_yV>*Gurho!;HzxYa6Aqi}k8y+_yM7#gjdZiUSEAAbMhp5YbqXO)NK zbVggB+9o_pIr2_V5>2%jcFNPxr>jpB#kEVF&Ke)D!EvmX94p)PBFV(Pf+R?7YdrL~)kEFtHMQ)xc@8@(Uh=Q5ZYL z++~(AS+eK<&fh336$lX%w2Gn$Qx;em8De7(bj)cxes%VA;{AQMT8#DTw=?v(wV2f= zF%z0c-FqR^&nt{6c8NTz}>XU*fr+E;{V)j;Ou-Z~iw# z5yNzm7ZSr@^WT0R^OZThJAZgHYK|34DB*x==L1w&Q+tTyGlDO%=bT}=Tve((c{=)@ zq5HpYQHr?+GG}JMc5(VT5h$t{4{-Gxr&p&kUwqb<6154b@;gxT0?SiJxXtc#WfyK> z4jZ>7f*K)J&RQh-UF`+io!uEfZ@4q9c7>S{gXu+zyYrSM1Ie;n2Vn@3uPv{pKj8cr~udOFV% zdSTiaJv;J*`Dr2(*l;22-FbD{9EPu1|GA6}Ih<-!2V%;pIKRP7Rwi4k{JSFR-O1^| zhegFlJ_xjO2;ct54#9VS_~fFqtx({2XZ3#v@SDz%jd?Qc%fR`I( z{O2|3EMIAsDw&i`agrS3+M)P+8Nj9HCceM=&o%;D9{FJ3eojENl^;uw9QJ>ejt39W zc{+Gu;Yq--ATADtM}%KEU3u5M-ggY{j^0*`(Sb-k^5rw;HyxLrZj^G|oU9$2rq3^xFe4DR_A81(R<*NqWdu)M9 zus=_apU^OqAZXVP+5vd%dP;2uGJss=1`Q1-;K!rO>_$Y<$$xXwfLhTzt}mYZAo|LW zI~{g21i1qccv0CTMs85IQw$OHIEClq9VV`ghWRkAHf#I+ME z8%7sHC+d+h_(l`dH1qV!6bL-c%}1fMkB7^<>V0vYLWD*U`|-*bDLz~BUQ21g z7Mp*X${m2bjf?5|=Ww7!Zwn%&22|+%{$g`kkyn47O050Ym=vBIJt#maWS5>)7j8d{ z8sXp|H#Uh$ULf`XR{rercOc?PNKv7ZD04t*o0*wqxS{*`To;tkAPF0Tw0xmeFEkd{ ztMe`+bgB3qA6TK0Wx1Df+he)x$_Yg|%blgZg#*AXc5S`AaK!@Xq02{>0m+;6*h2+~ z(kzC{tfH~V1X1@KJyk`;sErM0Nfb_$^=qW^(q(3n+ojsF@Q)67~rMBQETDfzq6r)usx;|&4)C| z4h54AKWg#2ZWGmniaf~D@+Cb|BllvBE@vG1_*y7TU92F@sEug2HSMMrJVX$Y^@HMr zs|n~DK%+JDbPr#pQ9VJM4?C=$V_%saZYe=M56lgr;AtO2Sam)8(OKS?q6d>#QW6m6 z@a0~?^(NNzm)lv1diVkLy*)vw;K~wkj8!9%F2iUc@=Sw z4ep9P8@vqe<~ad+f|_WpBd|cMzFC5EZ~c15%46}IJTwm-_ba)E>}&x4tAg`H-7!R4 zItfkp8vRCDvbtGeyV_dP^WD|Y#_P%45`ql_Tbi1xK%U{b@e(HKU!SL2EDe;a7Bvk3 zR6wkghy6;{x!{O(!W;2*M_MH(_xL4#=EtI|zqnq#bm_XJq@-(yJ@tyKg#bVx8h0n^ zv!aK;_EYJu8Edq+w6xTcdmKv>{oj*}lv>tUPW)8-DGU21#RvDl!mh>KijfQ=yc;YlISQqL+L8<*`APF3FQ$URT>kpT6 z%YVI8u-Y1U`5m-7lsnwvHjH1ZatDvKbWO^a%QqR=K8ozB(Z~-@ekm!bh1dwXr)xe8 z?09L81ZofhOeVu;$9T)sT{2LTG$v~g3g&VWuP2KQOXDvMF2(k zb_Suzh)PYr*a-R%-2=#k1Uh;BBg4S^q{RYC{jfdFU@}^zeYf?xz4qT9Z+5wg0X}@8 zDnG5yJWLz{8G-@<=KN0*`e?XfT)Xg;k2z!x(LZt*G*pyY_emGjVfDTCCOlX`t&h%g z`V0l;Z}Ebt76sd9rWEB+??29G65NT^@2`F?uOocLOB1*ja*6#PN41;H)B_VIO%x`r zpc>{BJLR=V8&zqe%Fe}EfLN$IImVScxQ`~2;h~^kPFYv0(%JMTH=*=e?odh+ORUxy zOdbb%-4Yq!rurRbdvWIyI00`p067GIY6B+O5{UldZcF~B@<8_(Q?ra&4J!sGWZ=fGdv2tMBbFWk+&PTpK zXE{?uondd?ZA(!V^4}W2|EGSP0FeL~e%~5sH6QxyvHgnEp5yYXzfk6%%0j#Iy#=Kh zzqrXPeZnt*?C^Ol_cE9)JP#QD~$5J(-!==lB&BMAqbW<9s$PAV1x zI6r+7>M&(ILr4qH?_am{yeuLA_ugvL_To2~3OgG#M-A)Tb#7+sa{h)pyfyz9x&qF! za7(SoIfQ2n3Lqqklm%@}8uD@zFOd9C29on-5Fu$FgU{lL-))ZhW#N`p4Q`+GzvsJ) z7@>_!6`~dFcoukMX*&hEv83uV^KoDEZ_4!KO%cDSN;CehrGbB)m3g*dNw^~F{Nicc z<@R7?e@5Ij&hU{vZdq<(AP4YIhLa%l-8>Dgan!;*3a?WiImNETay;nq$X;K*|Fi8h zEGzmp%oKI%`Hyl^T;7SY!6(W)2hgW}3O;>$Zp7l8mzUofz(BbkLeW(4kd2R?r$A%+ z#-%oZftrb{!a-}*y5kG^wa?#wXU(wu@9MQ;{)wv}zVLUHwcm=^tPq}#+PL>GXfsT8 zP5Ed-j@)}WNl5k+MAhG)#UC)&Ui_DAwd#P` zTq&R3I!MKJx_nJ7RKkoXeLDX_w%y=#)UqDCtbO~OL`YYBM!frr%#EpOH7@~kic&45bZ8ra= zJOm$GZE5i`(RS5l^fW~aPAsvAJ1SfMtjA4%hcjx;R+^SQ189u?E@B$np*0OYOEfoP zb#a9Wq~&s(zuv4`{@?zE!GouiLeO+w&bVROaeae=Z2h<5pHIh|C|FJr(Yi54J#S(7 zO|KzMo87C{h!o4scbePM{As)moeML{>U2SWliI>gC^wCa1lNTqosM@dcJG*fYnbOG z-jbd^qOC45;pOGl)3m+vfz@o3MQfg%ymF1EoNa4Y*<5u3d^ET9&go*{2O2=8Mf*r| z-b;`=%d#7MtFij4FAT4r?nm@!uSKyuR*9d#0X&II>c!3UFSlGyO>C~MS!QwWKld>) z@wEN@1%z+})9E@KG2_195l)~lcGYRKWl>sjiObQZs`py{t>PyIe?iCp%U=wd^4!z; z-)^7X5h=Y&79?jdF|GsZ%f$R6?8BL=#_NC6Kq42;W$VubJ8-~v)g;Kl|GXa!Y!&=B z;o(e+H#IC;JLTjR~4NbH}h1gmqWl~NTIt^F}$H81Bdz!U+PMW+*DOLI0P%^Jm zL|9^6KB!^9sIm3X1)22q#$ z7ZaSZSCfMNg^SkT&mLP0%-lt=<^TetaAJ&rbVm74Ie_j>6!079c3+4{Z;wvquHF4- zf#*gioF5SSxWG2u^d+T+jj3VcFMnZVqs!X~f`!Mw(|;(!GcwzH^&(u>q=Dy9YskA= zS&##w1<$`x3yAYxtni;(KWEkD(qzWC1u48g7$IH%&)fgFlE1&0QQP1Xrib0zjo3SU zCa24|EXR0?9JduXn&r|E07u(pS~PVWCA3@)Wj)zfZ#(iMd9;l zLPJIqoSuyTMyIxQ5ME=sJ2?QUvbPSeb@$NN+}(ZUj+lP`Z%J(2$lXhdZBsnv?MRSO zMgs=pG6_Jb8|wci*7ME4;!VrZk%&mF6K(bkpfEa?0mseh$@}jPVutz&&j2ctSNYA7 zu)AUx8_nvNgI1#>Jj&Rj-DG-bkCr(0c_}B4&yBMKVKX`G893z zjlUz}x$suciON{%`Rnhq;Q3+yV%HCuPD7~L9eW8#Y{)-<(wnO2e@lr5_Scnr24Gsu z=7H#LYM(l-^F#$mmGOFiB~_y=1CbKw<>g|MSGt3&!yk zfD!#H+(G)_9biOv0gW*I>EHA^o4X!MFi$x>GK&p4f6!6t*TwwkN6%2#*@9D+M7V6l zGwE|O1xQEoWtp<|bAU$c{M@PCIxd;1=Uh#pWT%MI=<+7;`+yV$JORV0Gj*2X=?aTX zZkg?LNiKP2X+J_-;CLgP~+X>UBv&mc6GE^21wmN$}FJ{MB&*+HRZRs+A028CXtn# zQlF?gAWhN0&C^}K4F?>@s=cQlTba|8#KBevk0r?IOWaqqt#WiavGjj1Yp9!kaMzO0!IJ_c}*j6qc_R`LQ}b~r$$@_=;c zjI#wL2s9m#PU5=o*b4AMaMVI4jGs^`y+leHW7hPk?Z=yQ%7xs}L}8~`YR5_`(Amc# zCT4hFCCO9I036E%Fp(fiz;>{;R`u_yF|_O(wuaT)Ht3P{~!-*9Ll=to?++Z?d7_qZ+~}$^Gd-Al3>~s_476 z3_e;=luvTu0vu|1E*qeOHqfW>pslTK>&H3rR;Dnqd!WTiAgraiSpndnPFye6VXUO7 zHicNXIvD`Em>mpC=e|-r1L1oH4Y_pY8P--3Fwl=OuMlWIS{nB^iC&?C20LTNxex8^(!6C(KfpR+usXYWb z+i!+uaKu3Vl1>}JPYH59Jz+uPl z@2qYOWSG20p3QD&x!m@SE)*#2uhR(aYd$svT$B>fcEObsg;ZegRfE^iMfHHDY9olE z$E;FgP>wZS@1B9~gv`AtVr{J3chiqISUSxW{Fm2J96*+dDgM(Gl9)P-TdgRTkcI5{ zu5?MJx<`AdUa!|$^dA~=yI8FkFjivWXW8rV%kLyw3O#HwNMK? z+8fJ2RVTnlEdD6y`zu_jvvS*-lb4s1yXGMgURsmvSFkqjevK&U<9`%T(#%uCNU_~6 zA=Kft&~3Qk%WssE7kZ)zw*?&|-B;kCO8vNM_6xv`K)0BGDb3h-S4-pj5oj!q0liZl zglg|cel%wQ;UhK^H6Dp-Ie_qp^A#yus_t&h3S-B6{iOtTM+!?rcQ-pfQ}RE5{`qc1 zK~{A4s?Pt{+*`&)xqV^7w|LZ}h>3bsBt#JeK|wk#x*QOsQ3(MF>1Iq!Kw^*|jw-CT#O-8XF5 zFenj`sA8c${8fBZ;82=4NCvW68!YG6-v8vnA2g*=ciojUdna~|_WRb!jsLp3;esB= zirm%U5k}2FX$f*p{AY|UdKcZrdJl;uSk^U)Hi;;;EXlRUDQ;v)S}-#38V1r|j%PPW zBdfrHrA7$?Rvj0UnDbXLB=FZtH+eqRQ`D0mKi|?|qxjTMhc?YZl+p9oHLX0yq!o~z z@&c&DH>P6Rt+u*E;=5G4Wd{TM<;$0Of!G@&=3<+xuMCoUzV!J5Qj3m>w8S`x1VsF> zA#!sFMgm zEURoMgOK6F<^jTHNl>;A#-C+x7y!**=tXBx#M%OnL;+OaN^fEdqSxTrvlkCEseXCQ zWTo-DJ3L|nms){GdZXiq$nozW1-MSbv$~oP=~^ka4)N@I#~>0EAo6NY+qD<(~gZ z4i?OAlRO=kw6T>BH&;Mgm&Na{OqCjYT*il-Zr+CL-zW2DYn!uZ$uCWrZtZTIskMe` zZTv6(9F_ZlT(*lw+V~R{cI?JInTmNgj0LuRxVZI80r^+*i$F==Pn7gc8k0Wgn3MZf zW>d~C+u||^O~{W3JWO&JMC{A|Pz#Y$QYvVlr)0~i4Gml~P2ozmV)G5#7n0ru2YwW6 zwTE=&?qPZHrJpe~Afc9jr;!v3B=dOZedLQPk5JK^2pSMo2_?fuwo&nYGS}>!AB#P} zA%Zdx$~EIvq9%Urr+mdG0R}P7y$8lKl8PXe4BSfR2mL?SjEa0_3IYJyWQgX|P}Bh+tLe zwoT=Mg}eJEgA*iJ@e2=d;0gMM0IwQm0Qp{eQP;EGC#WS z$%7BRy+Jed@@A87m^^=-Ll#dE@Qvoh$?KEM%#AY8c4oOmGm}+F@MAqz)5ZjylVE`W zf+nzBcvvnvng8SW0$sDeSpRa8SbnGRK(%Xt{IwYhK-G(LIh1h-NNwO>W$%upNYFr& zf|m8MSwSW~z^Yb_&5ICLb%ev2DCV&dJ@O&^7W?^Q$S=*ld!#;hkUdXWUb!S9 zcybc53)+dU|)>rR>i7jHAncl`F6}Lt8~F_4G(r>Y=9KAI=w}?dXD$uSv*RGyh?ZOjnY5Tj~vO;NG{3>4QaA zBB(zzth%(p&50Ebq1s!5$xizk7og;?O$xXo7cDQY41YNbyuE-zOhIgl0k zg;M>bD5r9S&1tH0LNhTZ{l&p+e=u8A7m^X>;wx7f_MI|V$)U6on>=^pjTcFH)c|DMrO5 zR_OH=Fn}*! ziVC@rBy}h7wL@&7PvF0UcxaWxqnkj}(!VsC5)8eI3ee{CgA-pMYQdEu2RP^u1_357 znwvyk!|bL&sME&_`Al-$uYOR>eYe#i7QeDR4rQ^Af!GKtk19azORuMXW1O9x4S@Yt z0g}$yb~f_cw}oHHQ>k!Ma0)S&G++v85QN>b1Hvvgxh-z6HiGlQ!|gA?WRAb_VmA1e zrFpG;%4ASNQLyO2VD`@@*7O!p&vp}A2o`S%Ht2n{aT!*?veohpQBqbW1O^7aGdn=p z7UwDTe*GV6BM-IX`llWFp&l$2y^si^uX5OtY3?gv#rFc3wFXMy3;}=GcS-#6@LfqA z4bJ*P%>X9C}J1Z?f?9pDw% zTYSgIij#a1i-U^p{@X(iawM7si`>{=kVDYbjG>RhdMj1s-7a~|RGi>7EXEeW@52}f ziT(tF$wN{XSY$P1S?b7Sk{1i_o)B|ay0-0DeJY@qS4ew!pnI7r#q|be=d5oQ+M{h4GZmeWdx1XuFxEI@J2;0qpYOW?&8APgL5e zB!X#2CA}zeOh67%8dIH~j|_lz$=d!W`e3QTM>#KnO=0C1=rt-U-je*V^J>C&Hzs!W zXr%8j246&6>h()z^{*d5r&YMnn0z(;tmC()tD##m)dt-Xt%2(^>fY_{o2AadNnY*( zcRBzi;VuIMX^b2-J9{)Oc9hrYfFsORS$uvgfPlYl*U$B2mI>qKkewFk6H!){s zW>&_tNRV#6cv5;^x1FuH5dv_7K8{l}`S**DTIb90UD}rpk$R~K&acm{wTT$ zj`b6eIr>4vuL^cee}6@QEfl&{l$b(4CxQc9;L>~qFuk60KB(X$HUlvPOYutx#R0pL z09J>}-R`qWi(uT8*2xVnkLK;<$ck6=I(;u^k+zB-mJ9NKpa-`S*3S_b3L6rs*?2vc?8}Jcp8z|N z=NIb``x{@?q2Q}MciaOLBpyTPj1Q*##uGPJd@rYsmbj$r5_K=TL|b@h3T~Yef$Rw# z?UJi=0Y7xe8yg?6y36Hi;o|ZKEpGasClGn77n7V9?cMQt!F6Hc6nbvKaIqYvAfT(< zFIiMoR9q9vZ+G!9InA+oRB)oM%1-iDW>Qf@L39(B+Wi9BYz20Q&vb$>qoDi>y!3Rx zu}ECJukX%u3XyZ$GcqrQ5668>FO;JYFq4KDt>XYHPHDsSp}f0{h@{>acEZ*8qd=P{ zR|}WLF!>`U z`g(_HXJGqTj`DPOON|6_jx-2tD8B}+OOs^&*AkGLt9{jNO}R*12iL`KW#l&n19l$p zFLrQ z=RziM{5Ea-%cO_=ZO(yCo~tq~OhOg}&V4&yJQfcFEZt^7^-13V`Ud>nu>~*X%H=9b z+sGxw`u_cWuYKryvmVqY>AMWgQtm#w6R{p5%u;nN^svcFA zwmrq4xQ~OvxNo%TktF(9sgD#uSf+CL*Rga@yDnZ{=wQM<;$zMyLaCw$Q8_rwfN~4N z-8#7nEo0(02vrX@SHcct^nD9tay7?Zl^kN`|{SQ zEY*{M>_O#yg5SK!5A0Gak<8)DnKM4tWI{mksM(Q3)4~oe?^@ln%ST_^o;lc->eD)T zpqTSQA~+#l0>Fz4%x&Uz^PMjv)h;;Uh9i^`xb!Cgt@E)akLplXV(GwNULlSiSPuwh=$U%{E1zva@;|91Z}(vBiq+)zPlZtDUP z0YQ_XZ8h$ghx0wyG|Ho8jsVrDFGHIn`c%AkX!_cRm0d0+TnDz!1Sfig$@vvUp^e%M zs-3U8?pPX8x+$rgWDbYvzDpdJ zU*A8N791dTQV?7jSwI#Lux;PTmqU>Ni5lN{0;DZYz?Oo+dD#r0-m&&f&MtxWd+)&Q zbq`c}Ad?LM7E9&g>`%=k>3L!B6)LDS6axc|`L+O=!(&)We|20xGrfDU58Ua@b~tvP_71}{TlBi$xJN)w!{ zw&wQ>>Q0H_WVVKPF2@~D<;x@1*3j9#6#&?s9vMw3BB)5N0!I*cOmYkWxhOi0zs1ZML3+6a`w^im$(;$b#bj={(Z0Od2jS-k`TGyVH>UCsPprw@@>xGoh z+rHf%n)-3SEa|4k3#n~WG%hFYJ=a$k!d?v_@Dyw_L$!X{Up4p=sT?L?X{#=(1Ux#^ zKyf{yM7$)wQpV8aq_w$Wo3$EX=v9%Qm#zXSv8HZJ{{$bP9D^oN+qBh`3vxIu^X74O zLkk#I`z2=&CZyRnlAmP=)OE+|6;zC=f&mKR<5@&oUS_ODZyKK!T7PSFzfV~ zx^px_WPP7LwbN(MbYHZsum(_?PZHEHwS}f}quQetxzBwHG7>)1I!H^5PL9?+yVRaE zs@eW!$=T$~vxBU_uas?7lQ*5`)XUB2XoYOndP$;lk#+-CTSC5_qt>X0v6rwS_{roJ zamm)>UgemwbJD+X;DK!-{mK`jL4fh?JUg9dhDH-o-M8p~Ehkv_@THINTX%PM677d^ zv(e_`9HRo-KgEQF!G?mS+CxMw3jD94-C8W?91!=jV{}x&)l1{<-MiJNSj8W8E=u8+ z9!%X|_}A4qA@csuF{M4hHi^o&TfYp%8C0DdTu;Oc&Q2r4qb%{dN!5+fNT*Ma`96B& z2XxlZ!UFDBRxL*Z*^a*G(`6Gd6uk^;_76pmma4ZWpo`#`sM7>|3XI5_YJDXrpgO-z5&3m=xkqgiulqf890U@%?Y&Un_q?IAn(nu z%#C3XgK)f#V^?RxH9&bDQ5`O<7U{L-;xgZ6TH^-9*5tFdzMbaDBVVzhX~q1HnF=PL z7*Vl=Cz}lpRnQc>{kodrs=-Yf?`Yj_-Pn#3>4@m|Tpkz90n^-?AJAPRKmZPllsLa{K`bh^hf~En@ng^2^Qi)XG`UeLKcntN;~RE;z&|{^6CWwoZ-&`DJ-U9oBv{n%Sx!0L;$c(1>6Fa2!sUS_i5P1ynCR zcaX38ET|40a4g$`J?`u?FpL8)kceTHIPo|zm|y`D^V1J%$@ls)>lX2SyIuR(qqOLA zGc9^bC9MlHThlS;C^2u`TWDBqZzSjHM&>nuj!z(Tye67$;jy3prMusBuo-=d>~%UEhzKY)mib86&!-S*)hBq4c_A?GK4b%6}P7?iiQ&gST&r8XF)UNveWhV>(+ z91IMnW{OEzmXp>MI4AffEv*&Y2(>i-1_WNP%7;5l4Nt=(%Tz~L-3^i zd;#1mu%n;RpHwfW7bC-h&V@DJbrlx0#EzDp+`PwuJ85s5g<;M&*_**(8P-UTM?XIs zB&HWo$$VTs&_1>(GUn9_I{m#N zv?c|>)j!yrnv60!CEaGM2O`B|A0L3V=*u$6m3{AilO*wDv;x0@@SZ=n&L#NJ*2DDhcZCOlDgFqpcmZUP)MrCne&Nl2M zp#RH(tHS_LcMkxs8rh!Ajkc$YhV@LHMn7MuTeqX8P;i_nEMMrSE>(<(Sq^8NEP z$WO$!_o=h5jp{0#({+p7--vbOL;{Xo9B?5KOe2)!30xci-c;L~h||42`?8^19r~2P zB_$X4Dw5wU_L(@kv&!l4j0F1|Y{)_{;qUDp2q5C_g8$;D#Fh^Z;2Kn|? zrH+v`aW8Do2!kdrhfR0lrgl9LS9WGv9{PI1}7yy=sz~^}wHB#-EOYZR$ zdmN9Ctpv$szdPc;^1XiD*_`i>wrj_Ej%F~^L0be3dVw?=#f?mH4REqRhn-P>`3oF$ zAxtyK@z&3mjjNMI$G7BfDht$CJEJz>S9Zp!LueiV2L9Qq)YR1Y;J|spHaa>7MM}BK zO%yt*9iP%}P1v~Vff_*wq!0GP{Nmn;#N6C<=`V809|1nDdCPbxpIp_R?@TD1T zmhTiERB@G(R+>V~gyapfv?MkUH3{&I6bcpoz_Q%}hl_Qa)!$@V(4C+d%0op3^hbau zyM5V}%%+VRQPt5_KlL4|&Z#{Vo>T7w1a!F1OA9+l0ML=7r_E@g^BH~rCF=Ln78JP? z-*2vn0UZXily6l> z#vD+KScm8SrA^mB`n7TtX*D1$Z6T2nzdm zoc%nHK)1){zjP^V;DaBAx)U@j zKclc>lF(ihSn%HMuE(VHLyEex*5Htiy`Bmp!mZeQ>e6j2J$~~@B47uhz<;gE;UDSv*l#K{qse^kg_*{9VAS5Eh=OTWb5=I0ez4IX7nM8H{(+8FF+RR-(Z(P%mGQ-)r`A z$TX$PXaNelZF4AdVwRy^9^Db4BRn?>JFe?^P0w$}<=wiBR^Ij=g*)4+cwL@M{=1D- zgg){6`X}~(M|-ZHO7zYS5%lcl(D5nx8+AqMU^t60+XvK-C{O9|sT%T{;H$dhS;(7d zz{j!Y;t>vP!khZ-4c)0H~bP}*~PD*>uW@7~}ssMPYzlx{m?43q+OXq`{b(#c^U!Ea1fm;c@{g0#bm+AJ8x~eB}-p04_2M zm7F;*15YAm%l&=@FU^Gl0bLP6uCkssOl)SdGCZp%>3kw0WoC6|-@dUI2Oeyf3IPt_ z`uuu@_u8jF_WBzmBBUC=D`MxdBZm?Vwiy@@N3U+d7Vnaokoo?aUR^w7r3SzJgYuYG zfbs#hMquQvoDCVpBJ~FJGq(zoqqee zYkx~SU2opJnf0+1l2@aWN4tkzP4O&9RjomxD^*fa-Wlg)ArEQ8(AG3KG$En z#lL~){)zmZe_sfnn@VKxfkFMZ2JiHTyH(AD?0UR1Hut(y<(qlUq6`4-q6Y}^8nl3j z-03nD(Kj@70_MyGefV(tppeb0;iQaPZMTISvWJDXt=r(qy4Vv&`t8Wh>?Z7Tv0iAUlrIQ1ZZ1SAY*1F9t+L_y*S{O}y*`pQ zZ1YSj8JFgl?`V2~FJM2`YfFvfSdpbDcT{qxDO4Bk#@bL_oE5@*&|*|`75qESkCv*i z$+15-z{(p3RgIC}=z9^a^J4_%QB_?X)!P4h81=SpuwS|{>9M}0UG#L%Es*_TMmIg3U3w522V(>?<0$lZ5RwBAhS?X z(jf~FTVCDYv83R1)=%5`X)aV2y_S?s;~Z2%pTwGZt}lSQ`NhcY%gA!5AEkb+l+vO1 z3IY-?%iO53B{e)47?_|d1>HYNf2p*+VhgVJL#G-w#|5kItQGPmL1qvBL+BGUDf_y2 z-+$^oG$oqiENL)nitelU2U1t`YQ5MK=6Ag%?<_aZYH|{iec{166(tb8(`>70YGmgj z&R}-rJOuOzEc-9Y&G}~8m)%};F4a$G=pABJTfQWF(*}>~DyqE-jK&4C4hpgF2H*wH zIrrHCyod!;e)uU_1ef1xkrsAiX?ssh(bQnfE=0OL?AHP67o2se;MU4phk&+=tiDx* zs)b#Ox_IG1dCC<{#(6bqQ7OLptvu(S?AwMQUW{t^Wftoim$*Jp}pa)EAkb<{HO`E z)u~f8N5PrtSlJDp<`?FA1+m);a}YfP%cdF-S&cUaxfw6k2AJd+Au3w}S-FR86Qk5P zRu-Q>rt{veSMFF6EeMkj`D%#DCqF*Qv(t$~LVjMVkiP_k{FY=PKgR4$S;g!l5LZ;Z zh;n4uKu7&wuz@Y50>gJK+BSP?F*tzv5a)06p7g^QcknjPImwAc4L; z{>D>KUm)aw$y`mTy_E-X1+W?F^ViWt5$@S6fp8DUp%^)#-im&teyaA5I0e0CUN35F ziJ!M%yR)X-fZ_A{w(o!)`l`5N_Yuw?UeD5!it5u-?+3H@18RaL?;!tzc$)F^xF^ta zJ-0^<9%Zp-)^jZFbGwlxl+v6u};S=~)7P5`$8JU0Hel(E^>{21M|F z$^)v}if)sTUV9rOTpFg*Y8H+Im=K>hanD8B6D z00LmO>jFRr$@|GE5I|*g}NpUJfg>EdWF*&^p9R-o4bjg@ZX4@?)CrW4b%KOixn$S zF2CHV{>;{yCM4`X)RmZgb}P@96B~Ymc~XV)a^NRmAX5p>9_gM66c(1mCTxnA^3^lV z|I7BpifI?~aw$N&4)~Ixr`wT9f_3Y9NmbzSyz13|hY{FlFkR{*`&@ZIxIY_**?fn7VV75j z_OavRJtX?&ab7En#RV6hu62XM4c5T~y)^rM_Oem?#jN#WV(s)XO!XD{NG~4G;qI4X z`ek%r=4PIMIKxbK%--9pt`=bNgdyQ6Ac?fBYI%G1xklsWU$tBqhl- zO|-hvvhGp6-eXxapp`b#rj@%mnbwU809_8Ocx^U3mlTa29&k` z@QxIlDAi)A^Xgbzb}wAF3?9g8DNFy>($gvfyDr?ZIt6st7t4+rX=}C=`v{f}$z#8N3;w!gxvG&k_VZ}?Pyt)NT#@Dc=S>kKHrbCr;@jX(Qiq z1Ivf4~&RI&;*Z<_Z}1dH(!4DujTk@d6D~B0l9>J&^Ql%R`bu z#@tTYH9XckZfl#IpXr&yy7W9ve@LxEX{)wZZx1K$)2_G>{*jEL ztLgnVqN5QZYsq>K&GpiJudL@y&b;SebtK&K6kHx(b1QUrE^_&nuHn=2+`m6tZSD-(l<~COWce;_Q*YP$w+0W}Bs_ykM5>YwGRg#nY1z!ock!8rgVC z=a`7V9iXsr^iMAosNXwrg5M=Wy4H*2l9p2OBPw-JS%BY#JCkMIVg`#WQRB|QibER2 z`gKF#7Qee`$;!+71C6K(D(hPd!yD=W!2lO6l5q#JD-B!SVkrJ_OmwaTWvhEedVs}ai`gCFwYst1}5K3-)hOdGiZ%- z#ogsizZHw`!$5nnEy;@OY%P;dL{}}hV~eM1F4P7ITS`W&??*amkS*Y{ZnfDjj4t^c z5#Ok%K(oU=v1fD~c+1c3)mN2D>xjn|50#FRA76IWmuX##5!dQitq+fBbRWs;N9BoHS z(g9J;eAQ|r(I{O5XOkj5#}pP}O9i$AZ$b<@_096$^E_)La^#KMwh*ehg&Hk`#|!H` z^TH>W-xC#jlJkkB^X@L+c-lOqL$>S-whm74h|cbCneX*0s~KQ?i;dQ_{=n?yEsi>eYfJiAH)q0-d{=F2@UETMtsxmECgSq) zU)W5T@0M^*yLQI~4{zoDFvSYNE5Ip=Rp4?c08FJX(O&kEa@{*#eQB*$((Nw5HTQvN z8Djm&Zh7Mi-an9>0ZHvDVcHIY7=jTsruWX4k^l$utKEvm$?KKYDy<|>4+bp%2=$$( z-FXhf5O#qFm55bXUtf<X`VbA%thz*k#k}Lg z4!u7jVlN9*a8lmV*=(0#*f~*rq&wkV$IGac$@i_c{j;{o_tSln?pBlkwmhd{dih=v zr?~gKqNv4EJ@m>DgOs|SpzhmrR;gDNnPI%agIh9s^=g%J_6gvqUcpi~Ff`=UyyZu; zg!fvqs27XaV^*InPQ5!O8=Ebw>sp;!EQDuVgf%~Dm1&$CB>!!{?(nbGk3B(=pPPH? zR{FT%mE+YZtwWRYli=l674IFm@6z4Q;#cSHZ7Z>RWjIBsYxw`V=FiPh91LYT5(-W( zQOQ=Oo&^$Knx7ayFW8hO-wU<+Qc{xbAy13dej-!s$Qy)FJkBo(;C199zX&OE&g_r`Op8VynuY~0OV%_Gv!^-nF@ z^YE~+upq#>4R~?;qMSeghl9ZaTX*ar06V=BIB1RHk$!%L@pD`-x}Kf`chPlzj00vF zs}O6DPaUX}ac@*vIAB)FvqSvyz|~}!tKCqXGxPV(@i?UHwS^~@kXBjYTZVo&DKj{{I$tA!|* z=UxUuI@W?{fgP?uB#(n@BW&Hv_AT?d!VIj1`bf(fl?{l6AQQm^ZS(7&gDT4}SLC-O2g|B8@%Jw?ZjO z!txOV1A}y{)gvCjIu!=0cq!_$WLeH7I4&TY2+J@?8{~nXeeu#I;ek~ed`#{0CAB;W z;?4R`SAr7!}ZpAZ{qGPqt^YZR&YiDAY_|=yRZ|h8?g(OOWQ!s4iNOa%<3EOjwByeW9+zC!Mlee-3!(~fo&iTN`Ejzx&r!|?e57mU3w&lB|5BP{ql-H{hMAD0a zWUF+19TE7&yjQnlB0qmT7iF zVjY<8=<|_svaa;_t~L!}`C$oqGETO|F4I7m%YbR6I&4azMzyOzv*SzOWCdE?zU}vM zjMv-Jj0Y70rv*UR*@i^LUFMaU*-S= zsRr?6gD)o{oj)mZCT^L9xmjkyKoQQh1k$E;&UjV_7aSV|T%5cX(iJGc+}FnWO_6`;fGy7sTHh;cOu74(o5k7(A4lXnnzy zwSS2m_el;UQWArMXLp8K0J3=*6b9dio7|^26z@%rSs3pyZGSuYv3{r&YRE6Z|Fmpe zgKpJT@F42Vxc5b7{YSXORU1KYpm>2=ofAdto|=N2uuk*bUbx39P#MK)BxxsG?ZEom z@EbOQd7=y)J&`GH({O&^Km?BF$qxWeuDZ2#Gv-v_qn~vv1R~Fc`H8O4mJ9x?dR-X( zb~qs5FkwR)n0H|`n3XZ~t!BU(XqW5;8;hmMCM0+V4bR}R#pr`(=qxKTZz>+oo)K|H zuLCk&t^;%2PYyDZ4EpnBV{Viru-u6Pi-2hA|Lni?uY;Qlgx4Sbt?=}wi>*w3?%M&! z$FWOK=wCqdEH@XVP|jx&sGw>HZThbJY%My_yi|XqdJbt+)Z!IiK-nQCxd4rJMRvQ1 zPT|`ba08W=#4fgdoEm2>lXY{_>_=OaOlreJ5{BGRC$O+Q5m~2X-~JH`#~%*NRyiO$ zIBVIij^y~@@w`uSdA3dxvTx59^)WI}MSnIW27vTm4ZM+hN8%w#uSb5&rQ|`;s)tI% zriwSB#-AJrr;dRZ08SNSu%?~?2}tONAtV}yX8(|@H;8TI;J`l)hYXSr&R*P~AAHiF?A6Sa{eOaKEicioy_Z1i!$VqxDiP3%P z9C;jyZ^;z!Ca2cNyS#1&4ID0;9ukcReWi0>oH*`xsX%0=J#|oH&XvQ$PDIBo;;ZkM!FTEHoa0tDST2ssn+XPtpk0$}zv|&pkR)mUQ#A#YS^JHkC^Ch;y0aUccse%4 zUL4)jm19?ic2_}lwPMHUhijkn{r&f(WM=a7%4q3U+AhJvb98x*FQQM+0PJn*C&cw` z!2HA8Zt}yOcL)4GdJisHb?2K6+&O91xcH1gxPgccz+gp@jHX`--f5FL`g)aLXp`K3gN}X=zUUB4R6HVxO)H`>1${Z zo{zet&3i>t(|bN)m7R4G2I_1r0>(?Ws1evC;`ML9=Ie${`Cjrx&siN~k6>=Sv^2?0 zvGiZt3fzd|oNjXGo`41dO(C5E3zB>g3e?H}Fe>+BnSYN3(lA$k!m+)m?51bGyi4w* zpU*Q!@%Cldodtt~gQ}{>_iuW&vZoa299kg;N=na-MG`0dD_7|=a1VVBSq29OcMQ?z zkNjLp1KT%i;JB{8eUUT2_Xrm*z}i@EaRYzEo!Uzt=>%@Q5ph`bZeow81x$Ro60h-E zUw`EGz$9O2tya+mW8*ku`NuTZQMOtTL?E~Vy@A;CCNYu2RvAW5#f~d2<2FZxi#Sv& z$jhghM%8KzJW~-TsrOF~Kx{YC;EK^L0YPq^qN&b2IYG*-21_{|OUbJ@dPqO-$meDk|ihExjfI zh9L4w`!bF{dHU2+MKf8~Opy5YZRKF89cT(gd-C(eoR;S;4|f!K6`{LX-7*d{a$1&v z1|-sH;OLlDRayCDS!dK^U3&(Y!Fi-$HoqA z+O)~hRG1`)^SgN5Ys4cijkl<65ehWRQ$eL>tGyR`hV?^VbAHQ&?K1izPR7zQNe~!n zoOJ4b@A>HGE_=NNO^{Yjgvzo8htXVQ+4IAulTIc*N4mz^)|1>t1nbxCHKi+fd|p|& z^sxw4d=p~{y#X}0eZ}WrE$sqK+(|L`z$O0Dz6D~g=15np)YG&``jUDQP-G%@NXD@B zRQljHx^9x=Df+h zzK4vrq`SQ?t#Z7qW*3xwMA)_j2xsa>D^^v*?vNm)4iO0Z-58;+4T>M;c6m&5M(;&P zOaq_ZENtmfo5;I@VDR~0kgr#t7}%n+qJOb|;9BlIy|Y1skLAbiUQdd?#bsP)|B&g| zqj<%4h6h7=bKBe7uM--(3Oz(Kc*gl%qo&yn>E8{#sO&6+0@Kmh=G?ZIW(Ji)0DP!b z3%jmE%96^gayF=D(W&~WDF|=&i>Z4h*Q$P%I~N1)bq_uF1|1u5;y8Ko$uqjYP8Wy4 zs0U-0Re%nn6*4bLtc^Niitki+ox?aM#xlZpUj z<78@d$lPM=kQkCJ|1;8UBBxy6Y3$oIW2ef_di|9zef9R-SFT*??#!`E`j}Sw$|J&R{2oOQ9%CiTp2Du$SupV5UZaVbLt50LsbKu@ z^(^kRaug>w_l_C^AkL9k8eQHd1m1N5kGJ%+OZ@f=iJC3Y+)0xB3!XqWJ)14y@qp*P zY+#Vm^s+q0pvaROI`{(v134oj=1%aTj!|Y-R*n$m?4S?84Jq9zV3DnY1=0NC+qZAO zb^^+kyPH)yJ2v*1+d7P45by-oLO~cH0>)j~!q*EsbKnHa&dtsJ8tx3Ibm!|!PdlNh z(Fx5ZQwuRj^phdh4tj$2c|0vG?bZZffSvcZ?$y=O3K?%(fK|(R{raezfm?Y+#bdWs z$O>~RE9FsG7lh2Gm1u1s2(uuUS3uc&!Ons4qt}{QSFg(!rjO~%aQclY^78TN0l3qJ zW*qcfgS>G9N*C@IV55}V+1dHB$U#j_t-7wMsVV!}v+cp*;bV|*4+1+=&%(kY&jqQ+ zlhm$W{p%1~%jc~vEf2p)F8yQ;j*7B2jVnq4_HGX3RILpSdqRo8>Jzl-Eq+-9w6~v! z)*HQYIeSrA@}{Q|p5Ie>=8!5E^hvR)MBZ}KNQW}ztN5SD5BgOHpeouqy6?Ny*ZBbm zB;vqt`z<{THL%}#mpYH@=j~3a%^N1}g8~lvmA|IKU)IMHtQAq;6DiuMFS6QsEvoWxtleay19p|6V$`W-h#=?+Rfb_>T;h~fS*_F z9+RDihpW2;AD{F8M({%2Z27(zdG><4Ty}kI=uSpPX-@igCSNwso{TInOZnjg9iOzd z>5D$vBe&Z&tLrN&-ki1GXtbqy_v2Z9&A(SVFPx!%@;U5W>zQ}QtzjHj&Y!u+@sWw+ z$A$PZ(Xu@TXHE~c6O43Hbo|YUK@oMrk(6cze#$>CZEC7&vCY4CvkZdNI|HT%*H*N* zsSM43pFdmzuSvS1G5Js3-2W=MAD7E>GY73JY^lrqV=a)h%ZW)K; z$;!&oLYYd_NOBx^)fEdw*gMnCP3vTW z^-ib{@gaM0_ys*ePe#U6By+rPNh9u-^R2DTtZbt_=I(Ot%i&aL6K5zTV}ce!#RR`8 z^erqrJPtg4@??em(Bj@~P$HXpim}_8BdU?DPkJvcCpXvhMl6q6)6~?A&jR_u&+Moi z+rA9ntz`$ZNJd%S@LPN$)u<+d%5rbIlf{m<|#G*S<#9zV~~B z6lFc64;JI_RmV{W5u!63JVsUVU*BBqD$vfe!cA0efn7@GUvitMbhIrD7n&O6x5W-3 zY>4CKwo7n*(->&e!FTLF7-aG&g4P;(iwB}p=e@zZ)Cs>oqH7kg`6f*^$h0?IlD*M? zPXunXH|4GwnR#x~U3Rd%i*92KnyLWH>uI+nk zt0B8anw_-!@_X3i`gA>RZ)EZ+U&FK6#Q1nC9{rLum|0JXa5@9DFGE@nm<#dv3N@Dj zC7sxuM>k=270JxZjJH&Y=P)OjXZKinM)-c;(Q+zOVi$I>wS?au{ba5{#LK_AV(7g#W-jf!l~ZZe5sSxJcO_J2 z$iOC2ZpFsMAu|IB1(hcCUZZc{UfOP=<};m|_^5bwmE?mRo0C<}ubcqqHl*xJ^A;WWHX4<&z%$YNz-y?1tH6P)P zh?~vFgrXr!g!d4pi>pxs+I-~Yj$FYd7`c>|7?yv>64d-*;-)n=A98so?#c(cNK@_)`*chbR#bg!u1d_P7(VQb|&p7#1kFWzAAa&1}s8i!= z?nuPr)XfI{kEH!}`1in7ec{3dNLL~sv~lzMZKS5`(GIIDIyna4II^1Sj_Do!s2HBI zik)yoRq~oPhz+4kQ1h4!|6adUWHqEnr@(^z>eX@rfdFY~X+a{5s;ioSuP@v7J)M|^ z`W;z$FzoLAScsB!35>$_DFG8j0CIUy{E0*_X49rv3c)1O)|KC`$xYsdtm4!v_D>dk$R}KAFWJAaDYqYDbA0lo-?|SAd>?7Jv_B)_JTc5LDn7H*@N+jI z8C_zIhtCkJoF^gLT3TgvD)yHk^bWvp${-Uk z7T93QNBedhPst!P<|OO!Gy3w3(_|(LZ&;rGh1G2|?wRIUdPH(5(U5nojv`av-xlq~2EqtCF;n=B=93g(q*IAd)F}LC8bm@! zFdO|-Y`%(O!5=?vi=(1EA*`Y_+V)n_nlAM?k&dg4e!H=)#GL3CU}5pm{uZ}hcY{8m&eOD%id`cKR;SKh32fOfa@YNcu)9plAYk#DW=q_6 z%j&*plFb>3hr7UYMcmI~_kfMY(U_)qjpe?3|Gs<2eZ_KbV|MnMW@YV06S4b=dU|L# zo=*SccJBG}=aa>UJbw5|qa>on7=sSYm;K7sE6lRw&u{M&0<`lqgj*nW*-)#;*38mr8_A z_Q{^yGYdM}Wo<4hc^IUb1|rQhfziOgtq%5Oi2g>yc4YE>&0ElZN6lNFNkaCqM@@dX z@flH*f91hR(S7glER?2wCbV|x=JtfMtWv5dRHQEtT{h^uWYe2we-qljYKoZ~T9wZ< z3w>5}lLs;ul=qY09@bQ9*_P5INzr_PtVUcv&w`B1D#7xN!uE1cIv(qq%zXq6oKShS z;{tKs9J7ov)YjHcXP7N5`|vpC4h{Y(HyItHCii={Y%P`0^Q2I*jQ>WZX`l+{TG||yl$ZZZ{I3&Q%-CmkCt(1s}|PxoJpQCgb> zan`%Tv48tRb+KCjbl3asLSNN_t5BnQhLpHA$^}_N& zsc<$n9^ohPFbS*S=b6WJ<2lGt)eUdGJdN}{^?OJo4VK z^0Bk*t%+ME1zTtM_nH9kE3f}?MPVU0 zH#KClA)5$vu;uyLi;MwtJLOl%ei^?eEn`-TK^1h?r3sCaP;0-bfxY-_((NbVL7T`! zjGM=PC`H_0mJSFowZ2mHUvnn)iVe&|IL707O(0cH;}%V_0A*a(q*I_t1)xZxayL-K z{#@*i-o;_cY!QjqZ1;B*K7?E$zbz6E&~4JZjsERIIG@>!Ju3=4MgKMSA@`i3+bhuw zZMuKM1ILCxDTY2T08l2y^$xekPYplwRGCq@Jm=&m#?($Yw=H2mmQ~fXZ1%a)BgSE8 zg%Kwwg)^vc0u@gr8u+u@x;g!(B~&E8-7i;=5&qV(eo*m7OB^Ocf9}&x#w>mUL`;X0 z)x8=2KB=k@=1B7tQ`*+er`@0Rv*zn_kmHz&_N|9o_OKu+UzV5$XCriuP_o+X7 z_N)$_QD=N9Avv?YtF-YX67#49+O{XxXQmg*a+YlBR@OgcpPlUttga$IoeX2q~W*Vc?x5X-#;#*}YMu(PR+2?T#cm=2%Agw#%v| zc4G-}C}JVuJee!yfxpvPGBOGeL6f#DW=LbUuB7;bb4Z7g!tqIH<8DGhNZG)=Xe8sZ zY2bmic)o9kGNB8hzW{C+DbQlUZIx(WOR~$M}{W>z_j!U>ynn_pR0m76&5ko&t=ft7yhiO2yOEQ_vfW4l z9S%!(Pg(FxO#UQ%SE6Dt<^sJ4q*e$zBUMWqiLo2_sHidD4Io7NS@iqfJUxzyzzZTy zV@$I_C$QWMBL&vBOf=1X8!;R@E2-*(7B}1@Ka+xUIBZ$=@Rvef=Hy6`e%DBUD>)rX zpFD{!v|@tbCLYN=3V4YfSG7>|pnJZ;;+Dz;8F%Aq-)7_RGi`Qv^lVM5P|(el=lc( zLz^x3HrR_YM~wbQa=;pk0-sb$Cx)={HSWYVrl`nztTZUpamAPXKoo^xLj#Q3b4D%# zh(O{_B@sT?od*!)==zIM1qtFX04Pqr_K_`K}+dZN^d$f-LdFbNg zug6a~vNjLAyJ2FlsjsE8jp-A`7*}ImS;^Bq?6P=_hbTK~ACKuhavaKy7+UeKGFOv$ zKlnV7*JRUWeX4fZA2#b5$O@zM9C^^j&&(c*oUr4_D(V<1&~Dq&ChF!t$x@S!EP0oU zdECN)kX7~T!3yV72kJ{E!Y@eCI$=FOa-*=mbtlI}_49Lpi>Glp(&^_6F9=O(L$Y#? zhIQw6FfBLtO~RV;2x5^%8{UaT<}OPu&SdY|FDBm z(D$l9HrZyI8$9CnmKZGLAb;e%U1o2P-4eFziJ(85m`aC|MxaxB4fC4$JQ?`NV;TI{ z1c<~ESxSQcQ~gIH=CA4|KAJ)aO)I`$X>Dqlh{4RK2$Xs=`e1QqFH$DqSn0(Kx^&_x zF}p9z!zbI62zb`A^!jjtc1HRwGC2yjUA0vJ9Y!QK8Z5~#U8?z^^4#yXxSLf-kv77l zkyAim07P8FJnF_D3k&IyG?HG$hOjlazJj8^G%{tRr<*n=D!U*BT8OS0S-@B7o_%@M zRr1SIxagBf&x*gFWB-Sj!o0k^({1fI8Pg8HPrI+Yq}i3ecdr|}52!;Y?Z5vf&2Rdp z!vOG3EPe~(e5q>W$Ou6KVBLa|y|OZg+4+{xbiE9Z271{*DOC)+gv5kB{C*qScSv1y zd=k#B-#c1pTUVH|Q1}L$9@M5gKb)(cI(X#EtCJsX*u#^(+EJ=0Ive0#7nQYv1Hjj% zIjW?_8?j29_MWY@fiL(^mRYNozq0T{D@{0ZW^Wg^A<)%>2vwuWO2@?YE9uE5Fg~1b z!_<+EUy;L#Gk$FxZwVOUxgr#5gSrpd1K>z{;JOn=ikbNfiLMdxk@S+LTlKPyZR-AX zWS?RD0hDBOUJSmA*R|(2e}wa;FdGqMu>{#YLh~|YH;XE1Rfaw!+g-srLGRno6N03k z+0WNAkri4FfQv4RnMkX1Gw#$@5)`E58}>8Ws;mbkwG*Hgz%Nl36f zM^|6o#&>V{h(1#;y*zBeyqy=6s8!es&P1!GSD#2?L1Krc!vaG7Do^gdHr| z&(-CY_)91B)ygk*Wd2~Pp6SnTE08bQBd(Di|HkSC+P%rhxR`E<%}sR?Y$+UMNTu>P z>qh@QcSMw?2NQ1yG0cbi(Mx&>!GL{^5DM2K=O zTnBRSQCB6hVnwy+qsOtZv|iC)8#N0Q+hUN$1R6i*6=Dh1s^il84E7`G52#f@KB^hL z_ols5GoLn!R1ltWd+ZSU-*HN_OI&ju`(*AWT+yi<%Dj@Z;x~>)y?RfazS=zBLH;-m)-y$6M~vwkB4}m{9%^o(qw-mPA2#5F1&&eR<7$ z@p^0y=hL0DE*^~!WQ|uTqbq5852zVO@mY0ed25vznz8hR&Z^f~(_e1Q%E2GqW((+7jkK4dRN&u3!?=Dj2i z>M3rY15wzS1e|<0OqhGCAahHA&qczEriQ-+U+hVHqW=*vDWY*xfbae4xZa>j=&Ve+ zL`rWK!aW`Pw@~`+d;lM{`mJ{x&XT=YV+PUuvx5EHhqyA^WwDyP#l=On#x|h0iI{nQ zU8|n)Qdn3$Eyk|28F3gty)Shjwgq^xvCX zTb<#1|B0uc?;0TWNRpkPb!QSBc3++YPC=gIap%c@U$qJvnRQ$0w64i~!bJ~ZwwCk- z`p1u6YO}T|#>5+}D#jwof02=`ziHkCugex58W0%;pmM8BRRHVV*IL+5S2q=sK5W4%Ow=>id_CrA3D zC^J4uuZ@J)uOF6A&`f2HIKY8Cq6`>3b!gL4JXuf>r+(G@VU)fmt&klPkh@~_FCj`S z(rmS~Vi)&h*x1=qH}f<2Z&KIx_4V;-2Av_jdV8Jh@xH?HNsYm)@SAaNx(+H?QrGyS z>x=bbwl8B4Po6P%6jcjx3Mf;o&vLI~0xZAwmYCEpk7MNJ3!M7-9ro6z*>*ZME*Iei zczGkup0rooQGE9pMAsS{aQ7Dhb{jK|WpizutPMWOi4oD(!*^IIDe z7~(al6S5^IJ-@Ap%M?e`gExqAVRT&`_b+~Uk#3?hys$ll{PtzU7B{)?POyKnpmq1Z zeTVO#TrmVECiAv#Z~>6gLbgaNaL}F6=#TJdRr!a3Nk1N?rKop8CubrNh~j4zKosiJ_^Vk=DE(5rjU_EM!H$9XUwX#L37+nAy0b;iG$ z$Ww(A?P_EI{ITD>Ks+)H*2J z1KX*YKk`f7d$#yu=Evnr2xFEJ3;2?xW@kg?#U6cUOoDP8oATqwZx5Ku#r^Tc`v(Wf z(RUk}95B7piw#Z84aByKq_@_Gi`Y66}Z-%@1a4WpVpJ~5G zbhf>VuX(L3@VColhU~1_$j2ql9?P-yrtrW*rS4$*Osnm2hUGQ$g;@$Dx4G|jR3=7TXVR)I(vG>;3x90dG ziMH4ftLBrPY$-ywo$pCGUyegh%GR%=z4qo*(PYbv+b0RbCA0l$jP!c>)x6R~s~Qvg z48gGELB1TEOjndVu`Dl15Bo0zOozm-Xge6 z>~Rxg`_hE;F!<2mszhIlFvZdZHQk0b47`5AtzQzKz+;r+3?$IJcrINP0LU1@Zhg{> z-&;jBtGu~FodZZyF0!pAJJHln`2q!7u38iq>^PQa z^tI)xsUa6|i5Fc%9j%mW(|0wS33XFr^Lpj#=h7=IG%^$Hw{NOcLMqjXV=*m)Uc*#^ z&&DqK{w&SwuJVgWZST9<6vrytooE`&C^G3M<@#La4mfUljLe{1s-|P_Ccd&>lQy{ zWsL-kX^{4-tD#BGNT@?<0deKY=e^t@7qjQQ{GXyPhcE^dIv_r}F5pWNny!X$c}_~>rjdGO_njX_rSPL&Z-Py4)A*L3<4qI$L(di65* zox6lxp^Y$Hqn7B5TdI@@VUVmZ{VC_tE4h^{nxgcxoSrOfU!2fK;z*mG6fKZO(S})O z&(3rRR8fj^F;gt@Wgl^bSFL2%w!i5(pm0KUKq{oN0-uf6oY*iC?`}wS{O);Je_m7)SA*3h3d1U#=rIh|p zcW#(AydJXrxhL_oilW-_NnyUwJ$l}*K%ydkeJU9%Q)0Lol@>0`O~2kS`Tj@gG{iJ0 zIGNF&n82gaR&9@dP*!L&UB{;5XYq^dV7Kkfja#?lutW#eB%Ww3+(tv!Uk`8Vp@eXV zW}cXp%GDJ2<*^ezXP5X0M}1YVwei{(ot$YmecQY?r>Tz!AAf(dtr~Q-BVR_y6D~^Z z-_pov73hZy=hXGSh^zowH#_S1h(Oet&=Afl9HuW*6s}z*_bn!bUBW}-+%0mU9sK@6 z)a2gDM$kzdFq00F@;)ERm=Ma~*UoSZvZks4fvLIPpr_{nd6NX7nHh#qG*-|F+?8-b z8rQnzp6$dR8t#IWXo?vZP>1h3lTQk9I8N1+7Thtau#2IS_8Y#oTTTP=Dh+^Kv-M9j z_?CAAvi({=G9!>+zddGDy_aGjW)Y_M|26>y>j0lVeE^gZ4CD@#X!Y% zYoqsW?}%eZ1RQK_?V@jecU=`9MiY7^H*$z6LdAnkK>*R01su3-6G%w~?b4-x|7`-< zudQ+0%nl&tGlNu?yWa+BqiaNuqSiXfF)HvC;U#z;Lt^UfQ4x1eq;b_SwkG-{*QRuU z3-P{+osDJeBs)s2QQTrTLje)hm^6Y4hIgJTgGs2%&^)|)0_-{jSJAVK9Y z?owT8=TyZg?(rGBZ^3$prHD%x=@LRrkBERP5vTZ&j=BOZw3PH?L9IlGzcKl)kMsZf z>q6&dw$jP!3Fmm3dAj!OE`GoW+8z_!3+q#Plj@h#cZ6?q)X7b%C@>l6F85rV`%)ys zen8){=k}R?gkGsH3``F$m%Uy$$T=)hR)et!X;H91^EkYM>BQuQlwcWo6lCGD`Z~p3X zeT9l@Fdh9JF&M!^nfOMh8u|vuNtq76_@6^b^c;D}hm`5OuBs1NmQM8Z7rG9-rhd-#<5ddVC4M
naD4VgFf2!u~&=_d8(SoE8Ley%3Bana6^!) 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 diff --git a/report/query_match_eql_bloom_chart.png b/report/query_match_eql_bloom_chart.png index 24a6aa78886092bcf863cc830c492e7185321770..dcd1a6db529b7e8ff17c9b1c7a231078a1996727 100644 GIT binary patch literal 44468 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

$G0D|eGHv?-J67ybkvcWOovuwIltkQw$Fwqq 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 diff --git a/report/query_match_eql_cast_firstname_chart.png b/report/query_match_eql_cast_firstname_chart.png index 4f6af9151faabc5f853ea4501a0cdda5a0e771d8..943ac15bb52d8187c5c4dab5c4acfb7bc2bfd8e4 100644 GIT binary patch literal 45985 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 literal 44590 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�!%w}#yl+yfac!|5}e`r`X>@W^Gj}#8dU$; z@-;Tz4E_%L(JJIg{9k8hb9%L=ufP2H3@yNe{BZ~~v0{`=#Y0>eN57+2pfE>D zxd;csDKeU*%XIXE(k**o3Q}^!{>O}EIpCxD6Ev^|AdYWtRfYqgD9uHy!%mBx|7ZQl zQ)Y4T-ogZGBC_<;1!VQ>(w=t?^gF%O0}nzy6=N>kUb?9^Q`Bc{x|>a7BOO)Nw}q$M zG&wK*gW`4sa?k&kgIs?vlLX9U6lwtW(Smh$mYXBrzM(r$7&xT;uIdcVmHSo^+n4K> z1e6^1ca#w9Bw673cf``}L708znqK9?nF#h|>>a)Q zbpn6bVyA_I{y~?c_?M()#@534A4y5S{3*TN@-35xl3(|l)XZCjp72B7?0!AtNA}yB zwfqXx=3h#Bl^2vZWT4$qAWp+pi?zUid8}p)REiA1#IF28)@xq_1(n7@0>(#*>0s%r zKcCF12p?6v{wy&RSofj%+GTSIHgCDfo60a4$0@Z8uZ>Cv8N@kxb{Rlw{V5QZrGXby z287wYYrw1)U+FhRx)gl>{vFYwRe=(f!yr;+8%`uu{8}N^*)mzzIlyr{4sUs*&U8Ut z&*Lu#6JyF+<^Ph!2oK*{GsY=IWYKS1_vP3LDgm{<%?135t+v()+ERi5RU=&spe%s~ zb_8e!Ga$#F0am;#p&J$w-%YUYJb8zkfx+laK~0Ej^_t;e-~6n%0nRfx6wrr4amd5$zW{i0Z&f{=Om79Rg80fC?tY zip@N7Eh@|i)ZqkvSl~pcEG)KJi@1Nb?ME5<0}_DUkq$K@i{v8>xzqNAxn<3zM=|fj zqFh6bPZRFXfw*Il*Dll?H>h=yxU0Y`nXU1BE_{Y>wsPQR+xX_nFWD=N&ic<3C5-cr ze*IIzp~kkA$79G`Gmyr7qSXSwKPM}B%04Ss%EY1i8UCS}(0WjO&y?EOwRDj37@P~A zW(4Tu9%88vn@T&-t0w;D3sp~FbOkt8Y2E>R4L}D!d~h5*j@~gOy{q{Gz(#LOZ&#P? zCo+V?BNYTpe|`xx!@U!Wf&7xpZ99drZpNo4>G-krvS0YOZL1lU%|^c~ERd_`n}mdJ zJ&O2F{e5$qcH(M0p3h{+J#&z~qM4({880jnpXvs^BrLzBeEarIVOb<@tNy?kpT9hN z^!CPWuazlvmUssXhM!ZoR1qDm)Ik>46{QCms{1EWkQ-y9qKa?>?FOIQRIJ+!lqGZk z|BQ$MmXgguHN4+zagX9dV}jCyhHLoO*s-5A7tI+$CPY-{ zHE*M5)Y!Ll%hlKuo``uqZkCkcubN#Vn;NjZ6@oRjkt0Wxz^)AjZ`gsVD_j zjR6g!0*()#<{T`;eSXeIu9$? z#M|UgF6TO@vvhbqM=P7R3Y}{>R{fd(STG-1_|JXes=bk?VGq?Wku>~hY2TjMmE!(J zxrUR&YFL?EYdE*IC;^=H<#_1}o&2q?N_hTpwCNL@Z50>O1d%`J+^!u1t2CCT5~Uwz z9Em`GyyFL@KYCNw>k zjmyv0!Cghbw*NAev*j7R|9rbSZv%c?Sle&{Vk&$QUTulRcFpZ;O1;=>9HXMkw#mHM z)VBy}E%a&Z$0+)5Vn)3=w5WhLkH7KKtPu`v73~z7{>-q3LZ}qK7RT8ion?tX8r0b$ zpcloZbbjgX4}N4+r%ss?JTc(d<%+-(E>=^A@}RKT3BCb#2j#J(I5_Drw{HGAr_lwm z@_t>XYuhb7O{<-XqkIMwmXYmLglz?s+7Yh)-|=y=B{$U}C5t(P|CpPZ{YM$D>K$MQj0 z2XP1(J1KuO>WOSB4?5jtTO_5ET{3FY*6Kr&=Dx0**pGg4Bi?JGIw+}!CEK-D0Bk<| zeWqS_-hyiR&b$oiN-7T{sUDl_uVG=ERnY=79?pkA7m>=5yNa#CIi&ATgLTb*IQBEn z!KzMSkc6G*z9}h^BelcKPB*emV6x?QB1Sk zBThz(C6r}6>1?JuC>yk`^Tx`$8pLnI@#IiV?hg%X6Z+MvkPx1OY1oXjwaJR+soW~) zRb)?^VHv%%tV4pLR8YJ^-|@OEhVrb;utnG=qjfv$#vYx2(p#TkTcjVSi&S*PL^*@SU!3i!gWC5tR|m(hc6Wh zkYAS{fj!Nhqw=n_41`H-S5Jaw8wH?L~G5HYC^4s=cXfkoDZTBj>xO1 zbjW6|T7S={R}dR*7HjWQ9LET1?wpS3fAiO`vkK6{iUUb9rMxdwp{MqzD@8T65TId0 z)UAe@-0a3v)9>zLEj~lL{I%lL zAv3C$1i0ca#eSV55!fHOl;?04rbZW*j#dV4E9^S}{syJ~<_5vm%WsrLPMK~n8m8=j ze|^rz8g`S3@y`_R*hmsJA%p_&Bd=`3GBi@%hU$76EZO=HEFfif0AYDxcjR=lBttpo zS`7K;6=x(TmoC-R4|%hGP8D_FR&`ZymUujC;uxzLd}8Wnk)wL%XmiZe9Bp_JDUOVr zEbkI0OtPEWN}g|x^(&Q4w(iyPYIFCG0#sLSkp?$0VZi44qy1cw!>BPd{Lln0H<2$T z?$O)f(0D)-DLG9vggFbaLouAUsU`Fj&tKO0G>5>QSY}_x%?}C7!LQ<}WXc+uA7>-69%0>tV#Bl3v#3`c+qCwNZ@%!>4y&5HsAboN|lX+ zLjm!G0EMTkLN=)P^dWe&Z#jVqP&?!DY9^lUne=oWsofcusIBnIEjvlz;r|%NRx1x( zOkRA+|0CCo#!cfiq{NH4QEL}#es#?%mT;bH=xr9Otykn(woWj}$x`BXrmRw%f#kUl ze2jY%r1!^)Oxk8x=)ew?89<66H9Qj@hPxH@RC>VBUc37v(^A*ac9-hnV!>8neAZHW zPT2O9pr!QO`1OhS1+VBK9K|aNhY$&CpXsu`8ug5JF4bdj0kxm$f&+U@3$9oba>9c0 z{(+B7jV0cFiUyIS28fXPs)jYy_pyDayRBxwaAAet@y{#5WlEn2y z8rIk^`BXze)BXeh6D(O1IvwE1X3mj}^yeWz%Xi^p(^Ol0F7V1sehs50+|Pvf;BM(1 zdCaFD%4*<#?^S5*WwwIL7Y%x@pZ%Ju_ZI(chFRV5;M2jN2=_LNIz#&$$frZv{-tCc zl=qHF5~6d5K#H?BQBY_l_vqOsOjHG$BBI=UDiX*mSlWg@9qU7vyTZ`Tw9AR7H7f- zT>0Gp`jGIb%~OWLXzCA_vWk2jNEK;aA1nd^0%dr2=#?BS_^qbJFFysg5}K^9?XYra z1zO-8B_Z(oRXR=q)oF%OAydP_t3HQ8EA3D03#ftM>WjBW1OoGJ}#A!@?qdxEk`s+ao-92LuwyNv ziDf?adMDE-Z<6&XFeP{-ucc=_mB#kSt>4*)&RBXPO?~BI>r31%E0W~DeuXtM!CN28 zehHOX^?#tkuj3KPKv?xKi?eC%3^ye zt!KO*5pns)$sS4K(D5D8hhjOET&&nE6rxI%UBw5AayBcg0Jlk~eTHUB0I{S&qc+SZ z#rJ%FJ#IFaSpExv-5dx0OL^Qy-E4v_oX;ysEWf>32!!Yt-GU#nHW_@dEZ}Kp;S5B7 zy?C2gjTU;hq#OR!tH^jLSVp)`r1w&ikiEV2K@BPO&?GhMpZ$5%;E(3J4t^toKHHw) z;I9My{7hl05A^&w&7O?z#XdT52!Y(B;y}3ceRV&^eL*rnbhLT6Z%CufB{#Q1Uk4W@ z9FPnECRi+AOTmH|{|2n-NGi;2XHSXixK--#|BT>Dz8$!k*8 zQRAPJX%eY(=*x?*tKg;b7TP<#^W@7`ek*HgGMku~Az%ujsa5sZqsh$# zxN_K~^EUqIA*isyF~>fVSm)n*Qz2g6_BY1+$KS z?=0JAPo>}mrqN}RL>>-`G*Qq)1-Rw3;K16;d*7pp15+%!|KJ}C;PbviE8zh_LE4&{ z;R;ypOAhm5(@{hl4XKBe@vpN=y!+FS`HUomQx56+OEFfBlH*OnYK( zw8jJ~8HgT-ijFP|$e)cMNP>TLL2nl;BjSO4MTgw@^tU8+la6^i9YXi@lJ?}Em;)h8 z7x9 z>XRnC&exBjxT$L@Va!0&l^wV3=Aals4zy0D%=}8c{ZO$T(FZ7Y6=_ukGNqMAvsuvl z@tDM)ghPLwNkBYC5E~X~-<1gPqj1wHBFde>6!2WWy=&=;O#_}eD31pB!V2OFYeRn! zD#ZB_y#uaYzfJ&wyIFZb+|dlB%jOyB&?7GqTF`O6-aW+S4PfrQ+{8SlkcINWvC546 zx)s|5DH9CWe)n?Ed1$fH4JjQzdGgQZNw6Z%1$waMT&Lx_5;DtBYG+t3u*|m1yZz|3 zsu3nh4?!_1S8b72_2wRZNa=VspKc22s%32vM`ht3KP~JE$)jQGF!9kiM(t0%BVdci z*j;^4$J?8aVOOSUSE5ol@VgPUMx_wJZKMy}>84KC76K$@FgJ;RRoYxhc(y#enJq$# zy&Jo_vfTbGz!bC#DvwDCkA*LJ|cgi8Vh6&69WxOzp;(YsBjfaX4>! zO28A3fjdrO4#}XQNgFt3lq4(Cdp?B3@PqKGK$SUbTpw5h?q=m9uX#iFDVEk3C+C)|dJn`+0lk0~GZ6va+MKxZigiHZ1bYg_`s_^mYSq!cDK@XVf+t zh@x6*Y9VjmzJ(estIdG1l$5WlxU(1Wen`tdC7V@MIF+Pi_2VXB?1t2o7*BWURz+(& z5|&XV5!qgx@E9_oEu__lCr2T$$-}qB&zELFpDxVU!^6wKXGVVM&PyyLqnvu)|2~7f z&h0@TD8FeHg#v5}#a!V*De0rQKp->z04JPx-ob%^g&E08MVgL|j>gTza)7T`p5yp! zaelXgx2>x|eE(9&&E;~d*cV~~z#i-K^MS;1L&=)*aIOEKfxzng4xMR)!XYH0wN@`m zhNY2`1?XP8!{c?9q@zBP(*JwLwR&%Q*!S(8vUzMJG*m;twZ~przq)DtE8DNBY%E4d zGaerSbddzPJ$XfG(SIwQ3XgH@>IYCIggHDj#=4dDX5CGX0zGvn_b?FG-p3yqxV(+cMA$efI2GX6g|psy*RH zqMN{ZZ6GZrz}hBU7p+a&0a&S4whIV5$))P{j^{U+pDinhX=RP|mw(q9^C<1vU|%;3 z?JxCBT|HgaT{=E=j)9Ofl|X8ob9M&S(o%uHKU45;6+t^)6+peS zPCl%L49z#|Z>3j;1wMYWTs4>HYtEAkzyU%r@`#TXJUnEm6$Q)3xjlI;8|6PLc75{o zx=8`=VLU~f2UNJ&qw@DOU20?5{r8oia2b~xmCt}m)4f7z$= zew_uDv!5;~JiXVaFLFAr1K(>I8ppB$#w;}K`1oy7?8{jIuhIbuv;x+5F9ApxS+GBq zyNn>m^&KvmlS{@_ZM={$sTd^|@-ESLsMuL!@ge*D3?J%Omw;7=z!a2#H8SrYf(n4@ zV}WxZ;I;08aNU3)6XqHVwaPT4t7Qn1Sy8tTyD5bjpwZ~%|60-8Z~s=x4?P`qypatQ zkA$u#8Y!3z=m!uq+nuSSif9tRhU6%Mzn~IAMBT4I6>l&t;(t}~4kbK)f^KMNpy9pq z1hE(gKJFJ9QOt6hrRq+?-gWd{Ru6i<1wa6mE>*L!kL|XUG;ly{6$54(eAZ`Sz z9VK1n{Wk!u#47+-V#FqM+MnBXVruTQ8)IqF--!6F>+D?y*1(Ql2Yx$uh5LHxy>ad{ zlF-qqN1zH2)RgGvN-J@3GEI-mC^mszh3+@ZJ^u#G4t8gm@N_&V5B+ci^XsX#wb7*; zC%&Z`ibyg^Ua07B+e}MK`#`HePA{VQf|{onAz}l;UbwCayd(eoc>uu)t8!8JfLEJg z0N;0VU9}{cPsMPUB7#2w88a zPhtBhT$}D*tEuBK8g9cm?_bnF%ym{*S9v@W!{zrQ>>dQ-2S+P3a09yxN8a8f17_ge zJ&;wf*tDL4{;H!C;&}Lfn$UcUp7$}?^p@h`*{;tB=ku%*Cje28#zk2$Ix0zS(J^fP zk6vtzo3uf`<^5g*FqC}s=nlR5WH-v?fX}ZfZ>RfVpd>DBsE~-6wKwY@l zl9i?SPg-<><8wu&&QIo|0(Jz6dfoIp)tDroQ${*9S+L003X*E>N+BI3D}v*Den-s~ z5ge0Ev+U+NF-wstq-2fy*UeDBp6!XlEHiIgY`d$CpSIHij=lxnI1ZCsYCXVc4K3T-o?6p;Pyd$icQC>re}-=6RPTgjL6pQA)T%6!RprMSL^ zC;k}|GH*y|vygZ#V`^AuI^WUBp8ea7!ndgyR(ODvx)P7n_ZJmiBlKQs(Yyl83>5dC z#zHw zk(DP-%hry~jYe_5R3&n`r6M7mLa=0v!=yd2rgL%(xRY13OX?gIDxdH6 z11RG78yHUJ1a!1OLKH{%kuf%sFVM*gSwU)9S`2*T+FC|43hwzA^Mu7QAoLXR{^}Ia zX8en&E+qX+{{e9!pBJZXul_ufNkem2kl#VO?0_tVRM4L6kFU_)r}SytaKiP}HsQK; zBX#+4d+W6C-kz}s9NquyHl|O0^*TJuP3KoJP4p0Obk;m(BP3q-WLg~zI_>+n2aDs? zGYmOmCEe5ZVp*1WKu}_MNapTlned!nbOv~WH=TF3+jzCp&3t>BD{uCM!uEz*y}3ImZ}zY6PZb0-b!f01i)td_C~)@#G5y7gSF>-U}AzXtkbqHae$2KV~@rGwI{nT&X-n%=0v9YsBL?+cq*MKz>YuWAo8dpMjoiYc5ly- zzp0p^2YB8ttgP=v97x|XSes}t=jJjq@~G;l9z${MT^Z}0@23cz-|g0Cg7*jIIlbS8 zIG|VXI*0$un=-$?{QB22WAoY)svTI z@U=AWqtx9!pPC%~|3JbZYjp16(inzy+*fgr41DeG=VDXP39$Of){E9XEzC@;w@>3V zaR8YD+n>F`a@=28t}}DgzH185{kjj2HkVTf4|9!g-M!LhD^ zt~n;!r`Cnk)9(oIA66^fd&&E-p`mY8`!+KdM(uPw@8k>O=f~46Jp|f;APteBRN~%> zaj?Ik0JICeGTFobu3bPzUMbz)?MZ>M!7#XOFfGh7wx#*--*SW!EG(@k>>kUS^cMe8 zAJ)Dv5XMYk1oy90e;|H5E5D5l^ohNB&L(xA;YH`W++LfF4z_yT`f~H-x)$Z^TcoJr zJ(n2D5DWa?<|KO$sx=!JkC|zEg20bxYq-C$`@7Gn_Vb6Nal*t;2*Upt>jlM>yZaD) z$+q%mlV!XLr0bKu)0sZj*Xeovi!eEVo!=StYww~BnYel7PhscU3wt)`OmP8gGcUK5 zU5vK!D_K#0yS_{me64S@Mo?YM)lS~t;`>%r?ur_I2iKM`D7KTk7sSN)zkmmVSzmei z>fj927siTEYG!+HM&c?xeQqk=zB4}?O8Z400&Es*Ev$9VJ?R6hlRZxWciWb@Fd70u zhW=%sYv9+B{D8Q*4yk?B$Qu^eoi0)g{;Ep7$&;dl_o}?1k4~ z_HU@j08dYdKEN^1NP}O~;cKVTCzWPbStoq-Aal z^&<25&7NqzY?n|z3WV~Ye96xY)Xp4?osy#j{m3HF?LLsMC$b3 zqdc8G#Fzu?*pK#U=b$`q&;*sn&}5V{n&hIGME`UXd0&chyR}mT@|L-l=Es{=1cmsz znVv$D`eUfSy}`J@-+B-z<6R}~GbcHBrXt^3zDoRE6jTH!`u9mu?46ADe{34>REh|4 z_0fwfixZ__;=!gC{}y^@6(E=mVnhR4)1|34RcChvg@C#s`b-cxb22eW0Y3#;DHVoS zOpulMSHsUVp_v$Rnw1`mERz=OG1X@~^*@UCv4)VK+{kcmlahKs?hM3OkF&-SdtR7` zL8JH1mK$gal%Qvqx~;8kHIY5;>!A;fWQ>wtHj(8#`!(xPHT{V8rHn`ySp92bDbprB zAkipLIm@es28W&EIIk7GuRsjy?FU2697Lu`rM3SsMf21El6^Z~1jS`^xpfKarBU-O z``7dY%0F!X(_rT%l4wJdP9rsHea2WysuzgN||d5k_$x_xv$d4OhID`p(ts`kmay%;Hn_a(bzbFhe;>MgH&e z^Yg}u(79|fE51I6zTp070sj>Ak%*k0Lu9xA$z9U-?W$h+bo*I=QKezdi`HQT*mHF@ z1hnORgJGFY__4@l7LSW+nAs$2DFC>xoJuKMH}AZ1PuPH8F0h`EWg7C$4@9V7vryJ+ z)MWffGKp8!vdj)EX0;c80F4R>Ce_3d{RKQ$e+jg-2-)^0pm7T6kP0FBow4_tIY_04 zNYmpyehF)(sY!zg>HX!Xd-op`O8{AL8o*QfyzA~+( z^vHGO<8@4$m-5TX>LAZb(iW1FC`V2Pc8l5K^PjlZ$e@|${cPuFGE-1<)X~+|O*C;J z-E{#iUA3Gp`*WeHaDvfmZDU`(ZrLp#1l`NFd5XjWYPu4NOC103%?U9m-lR_a#@}bt zcGQx8DTlmiy2$&b*7bc=#4aW>!h0pz zh+O>sb)z*5^{;I%)L78&{zGY_rYJ(mj_HzsCO~a**oXy>>PM?YXNt^_F(s4Fxbg9}j8vg&EB@whc8wV1zOQ=VfHf zUF&G}{Lo3iKGEkDl-K!r3!ziZs0lSApPBe;_cJ7ReR*u+>pd7dNt($sv$`dLBc)~O zQ~>OfUfhk<4i-nPQP(iGH@(K z^}4b7p9Lp-@fkYY{lv3T>>aC-rvjjTAzBwPj#l0){}AuN28?ps-J}wvp2G(G3Bcr} z_*IcQ1u9^=ZpHj4UpGghOsQYHryFzn&*|nOkjSA&_HIDutN4Eg4`5{^w3{f@viw`R z*~0f354E}E>clRX#$@uZv{2=iU2z*(A_N7Lg1fQ9VrA4?mg}?S4EZkEG(%%Ky_BQ zp;l@gOF%c#;3D3HzGdgUKV2135#b5h1*~<(vqQRHX|Pjw_y3&@IGIgHGSig&V5GmN zd2LQ3>bo}wehTNK`uS>3-#>wT$K-t|irxEiq9nFM6)`z7>G<9DjmjJG9rKS}*CEeH zIy}@Dj!iu*dlnUPX!q`Hc?LkKJiR}?8~P>@LV5vKz937D3OTnsk|>~l7!ah|IsM}S zfTiuzuOG~s?R?!FcID#e39V{=oC&PoATAWsuKlcUjDnnk_NTG~v3ZYhPh6zKK&?Dq z9Dh`vI`d&;`M5guu^eDF>>8Dh9fBT|k5l+Nj=~P*GF|!c(WcS*AC&K--F)$jtiODN z$oPjDT=Soe2N`Awxscny|Jv3@ySBOXn(NEO`bT9;R5z3%I_CSyX|5lQC0pq0=~0}V zezOndw|kP1XFZDeRA%1*e;rNR5p5p#2Xg23MLkh?Sggk0GXL2YySDMbeD+@5*Y5T~ zueJkf>5thr7(Ci`d_WpRujMM~xM{&6Etl}*!p|4BkA7C%Ow2!^Al<>Cdn17(O>-{s z(fMmPJZ`*4hiiH0>KCb5adt{77IB%gs|AoAxn||B|K#0~3v4!_84AKa=aW%3k+--z8Z8#UAQ0<$!%_<#t>-1Z#^*hb!e%Oq+$odN4aJqv zqD#WOmGgAKYq<6z0il9D&&Ou*x$CVr5#0E_;5dabyz0ZxSa_89q`+N8M0 zbhEp|LssOIs7L5m6Oxn_U*3kTEQUT&%Aj^7A8MKUr2$p$2OHKUv^sY1fg% z-tbyMD}g3tOoWxkWkoO@QSy@Pmkth1`P+P}ujC47qiiQ{~K z(L=aQPM9c)ZiyoOfCRXyU&b5_V+bXO-? zzBriNTvoci**UW%-DaH67ctzo`|ePaho#exP-VEP`O2wJoDC0=q&9XhKCF{v_nCxy zrS?mY$VlTRc~JkT&RA0OrCQUOFQbI>!Nt{_oE+#3sqLQ}6;8uwR%zBH!{kj;{Mg{9 zPizsP7xrCXB*To3v9xRQs9fb~U5zD<7r0Pq&udjnubb&vu!JU4aqJZ{f$}WBaL^IqY4=fvbeaftTYz5)6W((Z&yFy znX9kYvl|>*{W^MeXk&QYma~Ad#vq25*V?0%-F4KVI0B>MGnkz?gE1A9m5_uhOAtHH zMkRgW^0~8Umh8uT+rbq**wof2u2-{BcP66L$4_5aC^ilZ=IbjwZxH!X9A&P|L*mJP z`l`P=hXi*ovz!w_7;o)W;`rW9UE$XVQz8-~-d|Vac(lns6>irU=e9;o+O3%Rs6dLR z5noX&-|+sR!@#A7O%E1ci95Y~|7y17!NSJXJ7z5mB$tj*l+{7O+YH;NWpPYNPbb#a zGFAd^i>dTHADf_ME1e)zaw1}4G7)tG)J_qD)8w~b7YbMoC%<9kecbt&tU9&-Pa~S0 zm-(~7<@($}YTWnlcf|8Gb5sNu-vqc6H8+0X?Fw$*xTDAwHpMw-vQ<#O#`J~c$+0Lr zS6A%UzNw1PbD!5e;hetw=egMk&m=dcU($&CSyxrAu30cA;wN z&}af%GPqO_CuW|kBlKQS__Vj&zFNXgNN9yAAGi?_ zOt}vF=5q$ToyQ?jJseI+NfW$7bf6)ZmK(G_n!O&@C%G}uR#}}2C3^ffd5JN(oe)36 zcO6b#sN)>)d~4xyzA>>Xc#m%k?K~${INE?gns-Atx5r3n5z!m1gG!?Zc!t-%3KE|% z>JR((M`&n`c}1g_RW&Zl$=O*8dJ1%dr$N9aZz6dG<@=lJo;3S84T7g~A41%L_wwh( zPx*k|13Z^QmTKf{>?*Q(AYYDj#9b4dB!|C_LtMw+58y z@}4niG*VM|boDLtBT4)Pn;(2hY1ZFDYiM}c2Y2B7vfuvR`A!G)EUg?vz0aRMg{NnO z=ph60*(X`#{$dJ_b3Qv8@nC(&t|56`_hIRk^YY1b4p*1E8YB+bm^`${=25B`*?i+h z2MN)wH|Wy5asIH{`GbB{t`)UrB}`?r^;{bZFkQo?*Do}VUYA$n-Ds@V%nqQ272Sd z;%n&WLZz;WI&!cMjk*Ox)iK0`!e=~;o$5V@W?DjiK|u>Yia5vo=8=(z5&!a!cl*!p z{_|U==r6sOM05F;FGBDN@b_15!t%HcaSKVk5p&N+d}kC?RJ4Ivh6V;OSJ78tXM7r% z4`xD>zn(H@OG2B^c9-3T9~pIXHe04vW(sJLlYdoj*n@`(Z;1%vGd(j}Q-gHgQ&3ga z0k*it!Gj0)i8!H-%=Np^bhAUxdo}0PQ24Vn=$x+R1p)?^UqWi8Q=rb$gcsHPy#~CM z(Xiy;olwW~dAn$R>e8h=N0%wn764oMIs+bbf?kojU^!!$TyCI~ui8-ZV&7u=yvtSp23jlOgZ*&wZqh#3Wg^h=_^uucKa&(17b{Pm)w(C)mktr9IULQ{ei<;J;Sm1&J)v=@(XkuM3 z?K|Nrajjpzv?HQ^5PYQ@=bQPfsHpThR4&xH#z~_ll?%62=4pNJIYY@GKl%uKA)|a~ z5$q{8BqU+==Rne9zl89QVmvD_zhk4K(!rJC7l)`bJ}?J5beG9_PQwbu0Kna>>+Rc# zIWSOw|CNzRUiJWbmg6&)fEpLI1#NzNDkEQrUb&(@g~ylAG(!zOH97eQyt+fb)ArS_ z=a1-8d&Y_;?j81Qm2-t(NrmEa$XWQP+4YuN7 z262(Q*uT0~ul>K$&NHg1bnD}wIErO-xC&NmA%K8h(7=F~qKFVkVrWtYOAti~BLWU! zC}A801SCN;bgxtsiWEZ!73l%TKp2Pt1_cZ)4iG}9cOU0nZ&~a8aM!wgg2l?>aL)7W zXYYOX|M%BaRW%NkcHR94Qkk_l8KPJ=g{` zsso#R!C_xuqF?pHhnpQzSuD-R>FI@YQ-VDSpVrCbG!g<6yM|#Ht$fUavg;Vkkxi8e zOkz@Pn)-jWZ|W)kUWTCIowBh@!nqhTU^DuPPqvMWj3h4`|1=n800|1Cb8FbN)`yTB zpDpjpcSVVc{% z|Ng>SNsUOl_tP3oz`~2e?&ywm^M4;QHTdMdbIam{EXxch%5tNBV4Wj2(3fZa$Ln0@8WBsewt)HbczkZrM; znzk$B7S|#5V&nP^miHWCE48n$4w!UyU}WOksykte1ySNM7eQChKWS)YX7=p?q&<2x zc;0*@sx@CF-(b4hvs0NJErAK36Ygih;7R$v?|$f4kEvP@=&N6?P7upf%Xj^*?myw} z=zlk6TxPKJuj|>&o7eLH957X^8(p)COzMG>O>0IfORP2P6U`RL?$$G%-lu!bD);U1 zL~qH+`Pk`4wnkSPH_wcM=g%8|Cbk0q8AJhvFw>MTf@$(PGDclv^_W}r@2pZ|0OfIi zrQ8dt=qABch(Vpwo{xr5<)xg)PMYB6#I1lKYr9q$)1lC9EFUdTt-33nJ^Ntv3vw>stT)-k)wfhX7izkO*$IjA(sr?cY8I`NBoQqdwMlCC>0Fc~MP? zpK&T;7DzgRvAZDAtOP-}0gy9uva*EkOG8Qv5HL@jRFWC|{JRv42$Dk|Y5m^fr}t1muYc3Fc75%rZ> z-5KX`O0AKHwN^o<^{r?&C1o$yLH}2ixMWf7VgdO>W~2~?8nkACTM`ju{jNEb`sDsS zlRSsQv?LvmC}^(BsqTS1gw2B&7`NSI&*TH2lKJ%MPK5AkE(r!zm_69k zBQ!AtqG2xCf}9%^&})wY)(N4}N6o9Z{rPN4#*z(GCM4fh2FF)|l8oH@7xqk;T6(_0 zLiT~z^lApu+XvUjiTT>$`&^h>BbaP7>5?B7&BB_?0}X=i&{`WR?%VVRl9E*+!b$l0 ze{-#WBX!#rj?nf&?)NtuW%cWQV>>{i7DdSc3Dx@X5qld@EpPC5fC^4`z@@>1XK&;iZh|||YPm)mK4Ayr`c!Z!3$MH@EpFv->=D5aoUqU2 z=U9#}PnUUhk0tR#;FRcw2{k(cAr@f*)Elvo!~J!{`s4%eL6K$$rvk@Fm;5nTK|!Gl z7JXp_UjArSRu<#a(U_FyQ0Op$r^SR7kQ`$1$V=2;Gj=Rg8ZC5(QvxTTQrFBps%Oxr zs%HrPD@%dmp1Ku#vnb&HVVZJ20K|MloaO6 zpH+=-@dN&Nv(8`mL8WILrsHOQqNPN@pL+p`#}j7>i1{!Kw?77tpXrzcP5tJh0Ks6wt5aykpFdqFvkuoD)HYDuU^fTKXe!LvgGi?Ei?sM zxCegg($Y*Pz8CzBaf?Es@C6h!=w=i{XJuX#y2>kj)`hG?2OKnoESgg7$@wR6X6;d>=MdeH)l{j(xFAw_S|54&hO=6uwx z`daq-)&yOBV<3=O!^EiGa8`U+0tra~+Q#kh`W;Qm!R;wb7?G^PUrLxkEz;Fft~5Tp zl^mqb)&Dd!^szNW%yehy!ppt!BO02TCm4jeya<5P*h6`yH|!gN7=pM3Ph!|B*ih7A z5lr$Q6YrFj3A_C*@ja*wfl~}Ph9q$$%dEu1c>s)4+Dnb)EwCn|u#8W1(rQqrq7Yv9 z^5Veic^LJ#u3Hfoa=L!B22aNsO<6VhFbl;*l0r+Vo_vDEHZ1j^3KDG)eG_7N>q30D zN8ZHAc6<8IL-NNtK64YjXfBp_fhG)5D5Y)Q=X5Q2s3CHMqELP0`s&b~y2aF>sfy8p z>j!TO<2;Kj6s3tQ4UG)+s7XgOD;Z(1`U5v24|eC%8MRS6oia<8HY;9v@q!TBQF8Zt za8TA|*qmN-8A@kuN-%-|0$gmnXDN&{_5@anc`o>YOn2HTRbB5sDA2BOO3XU)ah}za zulTM#Z3q<&d0p-nIK0Ca&A9WSfc4r#HJte&7AD1i#PN`tVM8foVJ(%9gW!f6jb~~NEG$GVw0<_~vX zS^#gHmzVuZN=opC?!Xnk*5L#D)gN+c^s4yw0L2D;)YerZc8LjgG^t$ z(0Jj?;kv$3cKnkko_$~XYpPo6X+0|Oc~sg3l^5CYDpa+dBpGBp@u&jm=7rNV`4f-^mONm~nSdRV2M<4;v&9Mqhw(CJl#9ua zS<$7CF<<~yz>Spyg$LS)CC+cPi)XWIs=%%b|G3CMZh|2 zko#e{B>ujp-)jBZt-0`o+2l!=*xH^0Q~jgR$MXlyW-|@xlq!xo52Bb zs_wlk0_IXs4%Z1ztcz)I;CZD%Re1I|20uk}a6W+E#?aRhg`9tZ^~a2ma!&B zh_a^eRwdxC0}K{qDkBQbtzivDmMO-M&i=h3B2|@i=sL=`aO*(qj|yfS7X7x-nX4)otlh%E_67(ptplK@A; z2usk!X*r#s{f2tI;ov5BE5(Pb92B=4sPS1w^Mh;Ye+*$2w<|#p!p`*9&DP+Sg|>xj zH7aOlK%Si}PDRNa=2o*bb7&uLHSI$a(V{0Z59F?+4qNIJp)MX8KCMW2G6$Rluk5&% zkgTn=Zk6cBw(XVsSLd4wYCDqkI&oF>_I<+WvZ8WT{bRkoy)Ev6y;)#3rt#_YXMNO(@_$)1!>D4GWHYvnSK373+BMBMT1 zzO|^Gs-itG_2RO8Upc6mWr`lPj`XUTWs_UU2A!$7FvEpS2Z~mTxQ`OfA4W zx_^Fz`~-z*6kC8{1%tt;gi>q)pjcd~RQj&}_WajNhM+t~`Y@@Gn~N$&l_{T_f0$XB zn7GNVM2uSt?3szNF)&MT=hF0KSR~rJ@q*ju zPceF9fG*~q1;VlzNW(RA5=aobkTkcqEODa~O z?;>oWtBxas`Ox@BDl#bk$o+MY9I`8YjV9cOGcPPkUl~t~PJPI-8c8X=_S~wUIY{3Luue50JOIIeT}T6il5uEZ34yel8Xx}*Q8rLO19w>r#M|qA zLLkPtNKLmIl3JBC9S6@N*}Sy`j=mI)idx_RG0o$Y^I^x2o%iXl4y**KnVT`}yln>B z)9J+ZjgZN1+eNC$0Vd7Ui5E~NF)iM|@^;~RI!!1eEBjkNxf~58(Q)o@bv}Lv8DuwC zvTa&VSTHsMAnwij|LG_Er$r4?5dE9|Xd+=Tv~bn0si-k)1o;@&jBuvl^hN5w0BMci A=Kufz diff --git a/report/query_match_eql_cast_lastname_chart.png b/report/query_match_eql_cast_lastname_chart.png index 67ee09a7ea1cac484f48d48b8e612701c9dac17f..a7a79aeeca08d08cc6f432af4da7636902b1bb0b 100644 GIT binary patch literal 49385 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�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%0A8<&kLYX)tOsUE2upx`NvM2KvBJ_1e6fy9@?2sd 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%0DMGUb_yk;SpaVmYYTET}| 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 Sf3<)FS!y@5RSK`)dGcSY*a4{k literal 49621 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 diff --git a/report/query_ore_range_gt_100_chart.png b/report/query_ore_range_gt_100_chart.png index 5dbcee059b202b85506b83dea4bfe3562334a754..a28efd85402417ff6b5a217326b87489d1572e6d 100644 GIT binary patch literal 32333 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 z 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 literal 32833 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%0DG7tq8Z}VR4NMD8Y0`$@3?cY}TD-j&UCKUdVL; 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 literal 31151 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 diff --git a/report/query_ore_range_lt_100_chart.png b/report/query_ore_range_lt_100_chart.png index be97b6a7e5ca07c9923e6ca7dabd590b56a59c36..c8dccf3a8743e958a344e7dc88eba8d1eccda7fd 100644 GIT binary patch literal 34623 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 literal 31072 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 diff --git a/report/query_ore_range_lt_10_chart.png b/report/query_ore_range_lt_10_chart.png index a89c4ec481900f5be015ff4555076b2901f604ac..07eefec915e093cd532e583b548d2657b37966fc 100644 GIT binary patch literal 32181 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 diff --git a/report/query_ore_range_lt_hybrid_ordered_10_chart.png b/report/query_ore_range_lt_hybrid_ordered_10_chart.png index 0ffc3d60517bcc122eb6ce345a70adeed5d8b435..eb4f93317abdeac62602343b52f5b765e76200ad 100644 GIT binary patch literal 33014 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 diff --git a/report_benchmarks.py b/report_benchmarks.py index 44cf474..33fe737 100755 --- a/report_benchmarks.py +++ b/report_benchmarks.py @@ -47,6 +47,24 @@ class QueryResult: median_ns: float +@dataclass +class ScenarioMetadata: + """Per-scenario metadata captured at bench startup (lib.rs sidecar). + + The bench writes one of these per (scenario, row_count) tier into + `results/query/_metadata_.json` alongside the criterion + timing data. We use it to enrich the report with the actual SQL ran, + which indexes the planner picked, and what the plan looked like. + """ + query_type: str # e.g. "EXACT" + query_name: str # e.g. "eql_cast" + row_count: int + query: str # SQL with $N placeholders intact + parameters: list # bound values as JSON (encrypted payload for EQL scenarios) + explain: list # PG's EXPLAIN (FORMAT JSON) output (top-level array) + indexes_used: List[str] + + class BenchmarkReporter: def __init__(self, results_dir: Path, output_file: Path, sql_dir: Optional[Path] = None): self.results_dir = results_dir @@ -54,6 +72,9 @@ def __init__(self, results_dir: Path, output_file: Path, sql_dir: Optional[Path] self.sql_dir = sql_dir or Path("sql") self.ingest_results: List[IngestResult] = [] self.query_results: List[QueryResult] = [] + # Keyed by (query_type, query_name, row_count) so a scenario can + # look up its own per-tier metadata in O(1). + self.metadata: Dict[Tuple[str, str, int], ScenarioMetadata] = {} self.index_cache: Dict[str, str] = {} # Cache for index SQL def load_ingest_results(self): @@ -132,6 +153,38 @@ def load_query_results(self): median_ns=median_ns )) + def load_query_metadata(self): + """Load `*_metadata_*.json` sidecars written by each bench at startup.""" + query_dir = self.results_dir / "query" + meta_pattern = re.compile(r'^(.+)_metadata_(\d+)$') + for json_file in query_dir.glob("*_metadata_*.json"): + m = meta_pattern.match(json_file.stem) + if not m: + continue + # The prefix in the filename (e.g. "exact", "group_by") drives the + # criterion bench name, not the query_type — we get the real + # query_type from the bench id inside each scenario record. + row_count = int(m.group(2)) + with open(json_file) as f: + doc = json.load(f) + for s in doc.get("scenarios", []): + bench_id = s.get("id", "") + parts = bench_id.split("/") + if len(parts) < 3: + continue + query_type = parts[0] # "EXACT", "ORE", "GROUP_BY", ... + scenario_name = parts[2] # "eql_cast", "range_gt_10", ... + key = (query_type, scenario_name, row_count) + self.metadata[key] = ScenarioMetadata( + query_type=query_type, + query_name=scenario_name, + row_count=row_count, + query=s.get("query", ""), + parameters=s.get("parameters", []), + explain=s.get("explain", []), + indexes_used=s.get("indexes_used", []), + ) + def format_time(self, ns: float, include_indicator: bool = True) -> str: """Format nanoseconds into human-readable time with performance indicator @@ -398,6 +451,46 @@ def get_query_description(self, query_type: str, query_name: str) -> Tuple[str, return descriptions.get(query_type, {}).get(query_name, ("Unknown query", "")) + def planner_estimated_rows(self, explain: list) -> Optional[int]: + """Pull the top-level Plan's `Plan Rows` from an EXPLAIN (FORMAT JSON) + result. That's the planner's row-count estimate for the final output; + for LIMIT-bounded queries it matches the LIMIT, for aggregates it's + the estimated group count. Returns None on malformed input.""" + if not explain: + return None + try: + return int(explain[0]["Plan"]["Plan Rows"]) + except (KeyError, TypeError, IndexError, ValueError): + return None + + def format_plan_tree(self, plan_node: dict, depth: int = 0) -> str: + """Render an EXPLAIN plan node as an indented text tree. One line per + node with the bits a human reader cares about: node type, scan + strategy, target relation, picked index. Children indented two + spaces.""" + indent = " " * depth + node_type = plan_node.get("Node Type", "?") + parts = [node_type] + strategy = plan_node.get("Strategy") + # "Plain" is the default for Aggregate; only show the strategy when + # it's something interesting (Hashed, Sorted, Mixed). + if strategy and strategy != "Plain": + parts.append(f"({strategy})") + relation = plan_node.get("Relation Name") + index = plan_node.get("Index Name") + if index: + parts.append(f"using {index}") + if relation: + parts.append(f"on {relation}") + elif relation: + parts.append(f"on {relation}") + line = f"{indent}{' '.join(parts)}" + child_lines = [ + self.format_plan_tree(child, depth + 1) + for child in plan_node.get("Plans", []) + ] + return "\n".join([line] + child_lines) + def get_table_indexes(self, table_name: str) -> Optional[str]: """Get index SQL for a table by reading from sql/indexes directory""" # Check cache first @@ -727,31 +820,78 @@ def _write_query_subsection(self, f, query_type: str, query_name: str): if table_name: indexes_sql = self.get_table_indexes(table_name) if indexes_sql: - f.write(f"**Indexes:**\n```sql\n{indexes_sql}\n```\n\n") - + f.write(f"**Indexes available on the table:**\n```sql\n{indexes_sql}\n```\n\n") + + # Group by row_count for the various per-tier renderings below. + row_counts = sorted(set(r.row_count for r in results)) + + # Indexes used per data set size, sourced from the EXPLAIN metadata + # sidecars. The list can vary between tiers — small tables often + # take a Seq Scan even when a functional index exists. + used_by_size = [ + (rc, self.metadata.get((query_type, query_name, rc))) + for rc in row_counts + ] + if any(m is not None for _, m in used_by_size): + f.write("**Indexes used by the planner (per data set size):**\n\n") + for rc, meta in used_by_size: + if meta is None: + f.write(f"- {rc:,}: _(no metadata)_\n") + elif meta.indexes_used: + idx_list = ", ".join(f"`{i}`" for i in meta.indexes_used) + f.write(f"- {rc:,}: {idx_list}\n") + else: + f.write(f"- {rc:,}: _none — planner picked a sequential / hash-aggregate / sort plan_\n") + f.write("\n") + # Create table with legend if any results exceed 100ms has_slow_queries = any((r.mean_ns / 1_000_000) > 100 for r in results) - + if has_slow_queries: f.write("*⚠️ = Query time exceeds 100ms*\n\n") - - f.write("| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) |\n") - f.write("|---------------|-------------------------|---------------------------|\n") - - # Group by row_count - row_counts = sorted(set(r.row_count for r in results)) - + + f.write("| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) |\n") + f.write("|---------------|-------------|-------------------------|---------------------------|\n") + for row_count in row_counts: no_decrypt = next((r for r in results if r.row_count == row_count and not r.decrypt), None) with_decrypt = next((r for r in results if r.row_count == row_count and r.decrypt), None) - + no_decrypt_str = self.format_time(no_decrypt.mean_ns) if no_decrypt else "N/A" with_decrypt_str = self.format_time(with_decrypt.mean_ns) if with_decrypt else "N/A" - - f.write(f"| {row_count:,} | {no_decrypt_str} | {with_decrypt_str} |\n") - + + meta = self.metadata.get((query_type, query_name, row_count)) + rows_est = self.planner_estimated_rows(meta.explain) if meta else None + rows_str = f"{rows_est:,}" if rows_est is not None else "—" + + f.write(f"| {row_count:,} | {rows_str} | {no_decrypt_str} | {with_decrypt_str} |\n") + f.write("\n") - + f.write("_Rows (est.) is the planner's estimate from `EXPLAIN` " + "captured before the bench loop. For LIMIT-bounded queries it " + "matches the LIMIT; for aggregates it's the estimated group count._\n\n") + + # Per-tier EXPLAIN plans (collapsed). Useful when the plan shape + # changes across data sizes — e.g. the ORE bench, where the planner + # picks Seq Scan at every tier for bare-range queries but switches to + # Index Scan for the hybrid ordered scenario. + explain_blocks = [ + (rc, meta) + for rc, meta in used_by_size + if meta is not None and meta.explain + ] + if explain_blocks: + f.write("

\nEXPLAIN plans (per data set size)\n\n") + for rc, meta in explain_blocks: + f.write(f"**{rc:,} rows**\n\n") + plan = meta.explain[0].get("Plan", {}) + tree = self.format_plan_tree(plan) + f.write(f"```\n{tree}\n```\n\n") + f.write("Full `EXPLAIN (FORMAT JSON)`:\n\n") + pretty = json.dumps(meta.explain, indent=2) + f.write(f"```json\n{pretty}\n```\n\n") + f.write("
\n\n") + # Generate chart if matplotlib is available if HAS_MATPLOTLIB and len(row_counts) > 1: chart_path = self.output_file.parent / f"query_{query_type.lower()}_{query_name}_chart.png" @@ -836,6 +976,10 @@ def main(): print("Loading query results...") reporter.load_query_results() print(f" Found {len(reporter.query_results)} query results") + + print("Loading query metadata sidecars...") + reporter.load_query_metadata() + print(f" Found {len(reporter.metadata)} per-scenario metadata records") print(f"Generating report: {args.output}") reporter.generate_report() From 60d938efbc59bc197d5759b494b13bfcbe327369 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Fri, 15 May 2026 17:56:25 +1000 Subject: [PATCH 17/30] bench: capture actual rows_returned alongside EXPLAIN metadata MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces the planner-estimate fallback in the report with the real post-query row count. Each bench now runs a single one-shot execute before the criterion loop opens and records `rows_returned` in the `ScenarioMetadata` sidecar. The cost (one extra round-trip per scenario at bench startup) is trivial relative to criterion's warmup phase, and the data is no longer a planner approximation. * `src/lib.rs` — `ScenarioMetadata.rows_returned: u64`. * `benches/{exact,match,ore}.rs` — one extra `query.execute(&pool)` in the metadata block; `.len()` becomes `rows_returned`. * `benches/group_by.rs` and `benches/json.rs` — same shape via `sqlx::query(...).fetch_all(&pool)`. * `report_benchmarks.py` - `ScenarioMetadata.rows_returned: Optional[int]` (None = old sidecar predates the field; report falls back to estimate). - Per-scenario timing table: column header switches between "Rows Returned" (any tier has actual) and "Rows (est.)" (only estimates). Per-row values get an explicit "(est.)" suffix when falling back, so a mixed pass (some tiers re-run, some not) reads as e.g. "10 / 10 (est.) / 10 (est.) / 10 (est.)" rather than silently mingling actual and estimated counts. Smoke-run on ore@10k shows actual rows captured cleanly across all five scenarios: range_gt_10 rows_returned=10 range_gt_100 rows_returned=100 range_lt_10 rows_returned=10 range_lt_100 rows_returned=100 range_lt_hybrid_ordered_10 rows_returned=10 Existing sidecars at 100k/1M/10M (and the other benches' tiers) keep working — they render with the (est.) suffix until the next full ladder pass refreshes them. --- benches/exact.rs | 6 ++++ benches/group_by.rs | 6 ++++ benches/json.rs | 16 ++++++++++ benches/match.rs | 6 ++++ benches/ore.rs | 6 ++++ report_benchmarks.py | 44 ++++++++++++++++++++++----- results/query/ore_metadata_10000.json | 35 ++++++++++++--------- results/query/ore_rows_10000.json | 20 ++++++------ src/lib.rs | 5 +++ 9 files changed, 112 insertions(+), 32 deletions(-) diff --git a/benches/exact.rs b/benches/exact.rs index 26c6673..30a418a 100644 --- a/benches/exact.rs +++ b/benches/exact.rs @@ -92,12 +92,18 @@ fn criterion_benchmark(c: &mut Criterion) { let explain = query.explain(&pool).await.expect("EXPLAIN failed"); let indexes_used = extract_indexes_used(&explain); let parameters = vec![query.parameter_json().expect("serialise parameter")]; + let rows = query + .execute(&pool) + .await + .expect("execute for row-count failed"); + let rows_returned = rows.len() as u64; out.push(ScenarioMetadata { id: bench_id, query: query.statement.clone(), parameters, explain, indexes_used, + rows_returned, }); } out diff --git a/benches/group_by.rs b/benches/group_by.rs index 53038c3..5994251 100644 --- a/benches/group_by.rs +++ b/benches/group_by.rs @@ -102,12 +102,18 @@ fn criterion_benchmark(c: &mut Criterion) { .expect("EXPLAIN failed for bench scenario"); let explain = plan.0 .0; let indexes_used = extract_indexes_used(&explain); + let rows = sqlx::query(query_str) + .fetch_all(&pool) + .await + .expect("execute for row-count failed"); + let rows_returned = rows.len() as u64; out.push(ScenarioMetadata { id: bench_id.clone(), query: query_str.clone(), parameters: Vec::new(), explain, indexes_used, + rows_returned, }); } out diff --git a/benches/json.rs b/benches/json.rs index 06f1d8f..71a9564 100644 --- a/benches/json.rs +++ b/benches/json.rs @@ -163,32 +163,48 @@ fn criterion_benchmark(c: &mut Criterion) { let explain = explain_one(&pool, &q_field_eq, Some(&needle)).await; let indexes_used = extract_indexes_used(&explain); + let rows = sqlx::query(&q_field_eq) + .bind(&needle) + .fetch_all(&pool) + .await + .expect("field_eq row-count execute failed"); out.push(ScenarioMetadata { id: format!("JSON/json/field_eq/{}", target_rows), query: q_field_eq.clone(), parameters: vec![serde_json::Value::String(needle.clone())], explain, indexes_used, + rows_returned: rows.len() as u64, }); let explain = explain_one(&pool, &q_field_extract, None).await; let indexes_used = extract_indexes_used(&explain); + let rows = sqlx::query(&q_field_extract) + .fetch_all(&pool) + .await + .expect("field_extract row-count execute failed"); out.push(ScenarioMetadata { id: format!("JSON/json/field_extract/{}", target_rows), query: q_field_extract.clone(), parameters: Vec::new(), explain, indexes_used, + rows_returned: rows.len() as u64, }); let explain = explain_one(&pool, &q_field_group_by, None).await; let indexes_used = extract_indexes_used(&explain); + let rows = sqlx::query(&q_field_group_by) + .fetch_all(&pool) + .await + .expect("field_group_by row-count execute failed"); out.push(ScenarioMetadata { id: format!("JSON/json/field_group_by/{}", target_rows), query: q_field_group_by.clone(), parameters: Vec::new(), explain, indexes_used, + rows_returned: rows.len() as u64, }); out diff --git a/benches/match.rs b/benches/match.rs index 35a9114..27be48b 100644 --- a/benches/match.rs +++ b/benches/match.rs @@ -90,12 +90,18 @@ fn criterion_benchmark(c: &mut Criterion) { let explain = query.explain(&pool).await.expect("EXPLAIN failed"); let indexes_used = extract_indexes_used(&explain); let parameters = vec![query.parameter_json().expect("serialise parameter")]; + let rows = query + .execute(&pool) + .await + .expect("execute for row-count failed"); + let rows_returned = rows.len() as u64; out.push(ScenarioMetadata { id: bench_id, query: query.statement.clone(), parameters, explain, indexes_used, + rows_returned, }); } out diff --git a/benches/ore.rs b/benches/ore.rs index 7b14c88..5c05b6a 100644 --- a/benches/ore.rs +++ b/benches/ore.rs @@ -147,12 +147,18 @@ fn criterion_benchmark(c: &mut Criterion) { let explain = query.explain(&pool).await.expect("EXPLAIN failed"); let indexes_used = extract_indexes_used(&explain); let parameters = vec![query.parameter_json().expect("serialise parameter")]; + let rows = query + .execute(&pool) + .await + .expect("execute for row-count failed"); + let rows_returned = rows.len() as u64; out.push(ScenarioMetadata { id: bench_id, query: query.statement.clone(), parameters, explain, indexes_used, + rows_returned, }); } out diff --git a/report_benchmarks.py b/report_benchmarks.py index 33fe737..73b5600 100755 --- a/report_benchmarks.py +++ b/report_benchmarks.py @@ -63,6 +63,10 @@ class ScenarioMetadata: parameters: list # bound values as JSON (encrypted payload for EQL scenarios) explain: list # PG's EXPLAIN (FORMAT JSON) output (top-level array) indexes_used: List[str] + # Actual row count from a one-shot pre-bench execution. None when the + # sidecar predates the actual-rows capture and we're falling back to + # the planner estimate from `explain[0]["Plan"]["Plan Rows"]`. + rows_returned: Optional[int] = None class BenchmarkReporter: @@ -183,6 +187,7 @@ def load_query_metadata(self): parameters=s.get("parameters", []), explain=s.get("explain", []), indexes_used=s.get("indexes_used", []), + rows_returned=s.get("rows_returned"), ) def format_time(self, ns: float, include_indicator: bool = True) -> str: @@ -850,8 +855,18 @@ def _write_query_subsection(self, f, query_type: str, query_name: str): if has_slow_queries: f.write("*⚠️ = Query time exceeds 100ms*\n\n") - f.write("| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) |\n") - f.write("|---------------|-------------|-------------------------|---------------------------|\n") + # Decide column header based on whether any tier has actual rows + # data (preferred) or only planner estimates from EXPLAIN. + any_actual = any( + (m := self.metadata.get((query_type, query_name, rc))) is not None + and m.rows_returned is not None + for rc in row_counts + ) + rows_header = "Rows Returned" if any_actual else "Rows (est.)" + f.write(f"| Data Set Size | {rows_header} | Query Time (no decrypt) | Query Time (with decrypt) |\n") + f.write("|---------------|-") + f.write("-" * len(rows_header)) + f.write("-|-------------------------|---------------------------|\n") for row_count in row_counts: no_decrypt = next((r for r in results if r.row_count == row_count and not r.decrypt), None) @@ -861,15 +876,30 @@ def _write_query_subsection(self, f, query_type: str, query_name: str): with_decrypt_str = self.format_time(with_decrypt.mean_ns) if with_decrypt else "N/A" meta = self.metadata.get((query_type, query_name, row_count)) - rows_est = self.planner_estimated_rows(meta.explain) if meta else None - rows_str = f"{rows_est:,}" if rows_est is not None else "—" + # Prefer the actual row count from a pre-bench execute; fall + # back to the planner's estimate when the sidecar predates + # actual-rows capture, with an explicit (est.) suffix so the + # number isn't misread as authoritative. + if meta is not None and meta.rows_returned is not None: + rows_str = f"{meta.rows_returned:,}" + elif meta is not None: + planner = self.planner_estimated_rows(meta.explain) + rows_str = f"{planner:,} (est.)" if planner is not None else "—" + else: + rows_str = "—" f.write(f"| {row_count:,} | {rows_str} | {no_decrypt_str} | {with_decrypt_str} |\n") f.write("\n") - f.write("_Rows (est.) is the planner's estimate from `EXPLAIN` " - "captured before the bench loop. For LIMIT-bounded queries it " - "matches the LIMIT; for aggregates it's the estimated group count._\n\n") + if not any_actual: + f.write("_Rows are the planner's estimate from `EXPLAIN` " + "captured before the bench loop; re-run the bench with the " + "current source to capture actual row counts._\n\n") + else: + f.write("_Rows Returned is the actual count from a one-shot pre-bench " + "execution. For LIMIT-bounded queries it matches the LIMIT (or " + "is lower when the table doesn't have enough matching rows); " + "for aggregates wrapped in `count(*)` it's 1._\n\n") # Per-tier EXPLAIN plans (collapsed). Useful when the plan shape # changes across data sizes — e.g. the ORE bench, where the planner diff --git a/results/query/ore_metadata_10000.json b/results/query/ore_metadata_10000.json index 7b58a2b..f36db19 100644 --- a/results/query/ore_metadata_10000.json +++ b/results/query/ore_metadata_10000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2817ce2b93478d2e186b01c0864d365f5e681114cf4a542a2b85b0d1dcf8adcb79a5bc1e0a189f65fa7339e21bc6d88ad013dd40988b2797e29c3b64c6d98ce10c6b454aca8ac1505cd2f632b600d48d9e57450526db2b2cc0c74e8f0de7ba4519f21e6fb614cd50f8318b6f70c0f258293c57607eff11d954cbdae9443333420d75af29cda4baeaaa5f4a5cd38bc7ed2bdcad3c8e797837b384348b8aefa2d2e1833f73db493b9e53966d8c21df808e048f4a9ad86d347f9372bbe23a47e96adb85ad1bec51ae648881c6fbc789e22163f84de788e7d75e5a0b1dfb64f014238c0567bed07063b57611c170f59b65e2b251746f12e2e1030a8e8507c77304269d22671f37f5dd116e29403a471aa5cf17\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28bd58c7083f82c2741af23cbc3839c45f495dae3b509cbf755615283299bfb54a93546b75fc0d450dd86698ae15c14ee12f9da647849138f4c93027c8333d85c6af1ca59f934256f43dd3d84ebdd7c52fbf8d68f0eafdef01f2cead45e3495bdbb6418b869f9e7d11e22de571fc34fcb7fa27a9f20c660c5d0fa26cc08c3730424c0efab02a31b7fabb9e0cf677f85020e3e4fb6d9ea4169c2f742303cb286e1952984fc91d44845308b4c110153de68cd80325bf9838149278f6cdf83ca3e555f48c782e22a7fccd1fe61b0ebebc93301d8a889084ce55887eae46dd4cb50cc5d0b1dcda627efca7e013ee175ed2a5f371538846e20d025eadce48f87aa7c8b75fb811b4e8cafe201bcecdf3aeeceaad\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,12 +38,13 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2817ce2b93478d2e186b01c0864d365f5e681114cf4a542a2b85b0d1dcf8adcb79a5bc1e0a189f65fa7339e21bc6d88ad013dd40988b2797e29c3b64c6d98ce10c6b454aca8ac1505cd2f632b600d48d9e57450526db2b2cc0c74e8f0de7ba4519f21e6fb614cd50f8318b6f70c0f258293c57607eff11d954cbdae9443333420d75af29cda4baeaaa5f4a5cd38bc7ed2bdcad3c8e797837b384348b8aefa2d2e1833f73db493b9e53966d8c21df808e048f4a9ad86d347f9372bbe23a47e96adb85ad1bec51ae648881c6fbc789e22163f84de788e7d75e5a0b1dfb64f014238c0567bed07063b57611c170f59b65e2b251746f12e2e1030a8e8507c77304269d22671f37f5dd116e29403a471aa5cf17" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28bd58c7083f82c2741af23cbc3839c45f495dae3b509cbf755615283299bfb54a93546b75fc0d450dd86698ae15c14ee12f9da647849138f4c93027c8333d85c6af1ca59f934256f43dd3d84ebdd7c52fbf8d68f0eafdef01f2cead45e3495bdbb6418b869f9e7d11e22de571fc34fcb7fa27a9f20c660c5d0fa26cc08c3730424c0efab02a31b7fabb9e0cf677f85020e3e4fb6d9ea4169c2f742303cb286e1952984fc91d44845308b4c110153de68cd80325bf9838149278f6cdf83ca3e555f48c782e22a7fccd1fe61b0ebebc93301d8a889084ce55887eae46dd4cb50cc5d0b1dcda627efca7e013ee175ed2a5f371538846e20d025eadce48f87aa7c8b75fb811b4e8cafe201bcecdf3aeeceaad" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value > $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value > $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -58,7 +59,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28934e37c8ab2caaebae6b5e0452177b4b0858f16b024c30b9f292188adc749aa85971e5f33e45b4cc886c1ad34bacb8e03a5f1feca2391301d1d1875fc8d824ed8219ea22fdde9dae3c782c4a070ff206e16dc56c0a7b29765e86138a90c4488ade8075a193c26509d3b1dd51781afeba7461c7bcc109cc4ed1daed8469fa66e5b051e0a952a3c0032f0bda23ef2ea4a58fe7e327baae1f24fbb3abff43b198add2c520698a12cd9959c269fe8a155bd800de5d4a23c9f2aa737bddfae37bf6669fe09ad9c9348dccb57aaa75d9837be787818953a96187e13373087ddfc9e32ac3fe3f7bdd33e9d496a69ea18bbd71401642cfa3e77246558618118ec789a1d46b83349d10662fe4d1c3f6200470f01d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289ad7938b9523d67a22c014f94413933f9553ba9c1d501d6eae8db28a81e41d4f2bf4232b5d9d867def2ea21bb81bde5a0965e0b9d9666f1b44e3c023b9472327e3c20a53243e152fd0667e675ae574636c14e1ec33cbbb91c18eb6b420e48c9d777d1937ec162784054b5b347841b61e1208f33463833571df4b0c6f9e516a5b37af422f81d57a4e7f9ef0abba62e4e007d2c13cdc8d1c38c1a6d9f604b46fd330b153ea06d8931e6b126178ea6e418711c83923ee366ffc81e32fd6150816d51a654933b3f2e9fab5a9849236e6775d6a65bfc5029803417043fe4fe0da97de0ec45dcbdc7c9cf7e494b78e0f7dd9ac1a0ed3a8fce1b259af6c9d0f6b532dbca5b687059e0ac8aff12d7b029b1db701\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -83,12 +84,13 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28934e37c8ab2caaebae6b5e0452177b4b0858f16b024c30b9f292188adc749aa85971e5f33e45b4cc886c1ad34bacb8e03a5f1feca2391301d1d1875fc8d824ed8219ea22fdde9dae3c782c4a070ff206e16dc56c0a7b29765e86138a90c4488ade8075a193c26509d3b1dd51781afeba7461c7bcc109cc4ed1daed8469fa66e5b051e0a952a3c0032f0bda23ef2ea4a58fe7e327baae1f24fbb3abff43b198add2c520698a12cd9959c269fe8a155bd800de5d4a23c9f2aa737bddfae37bf6669fe09ad9c9348dccb57aaa75d9837be787818953a96187e13373087ddfc9e32ac3fe3f7bdd33e9d496a69ea18bbd71401642cfa3e77246558618118ec789a1d46b83349d10662fe4d1c3f6200470f01d" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289ad7938b9523d67a22c014f94413933f9553ba9c1d501d6eae8db28a81e41d4f2bf4232b5d9d867def2ea21bb81bde5a0965e0b9d9666f1b44e3c023b9472327e3c20a53243e152fd0667e675ae574636c14e1ec33cbbb91c18eb6b420e48c9d777d1937ec162784054b5b347841b61e1208f33463833571df4b0c6f9e516a5b37af422f81d57a4e7f9ef0abba62e4e007d2c13cdc8d1c38c1a6d9f604b46fd330b153ea06d8931e6b126178ea6e418711c83923ee366ffc81e32fd6150816d51a654933b3f2e9fab5a9849236e6775d6a65bfc5029803417043fe4fe0da97de0ec45dcbdc7c9cf7e494b78e0f7dd9ac1a0ed3a8fce1b259af6c9d0f6b532dbca5b687059e0ac8aff12d7b029b1db701" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value > $1 LIMIT 100" + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value > $1 LIMIT 100", + "rows_returned": 100 }, { "explain": [ @@ -103,7 +105,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fe666ef7ea3c2e11b4c35ac384045d48fc60112f8fd92c3eb87e5f6c89ca484edf7db1c0a148bf627f5079ea3a71bd55cfe91941934e4f6cd1044862af61c62c72da9cd377788e6dcf0acd7c3ebf5a682a16a1b93409717c1849bd9e6c56e052b97efe13b6d411811520c2f827e63e2d2b88a793ffd9275d1f93d920d195fe180d93bf0d30b78d736c453172bf2cd35ef7ccdf2aeb291942b9082b5ddaf0fdbc354dc47d6d3ba33ba9a0415cd52ba208fde55df87c03c9b8d23160005c156a3ca8153bb91448b78e504382bd278e4b1b4143b58c60a97eb8df45342f2edf64b9f8f0479557d69e68ed1b5f4137339f519ad10e475fb95bce99725086ffcda5a6b1c568c844c9a7540fed0b483828352a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284578caab6d29550a13b118da3842b4b9c8b00f26b24149b724be5b1218287c719fb42247bc75da8e9b17137e977299ae65a4becf49542e78e910e82587a4a441f126ed01edfff4c704721f37bd978c5ab2bcb08f17e1a04a7ea7aa0e804ac4196ec0e1c90f6603238dc9433ad5db47449ee56faeba708e7bcc8c142a542c6d26289ef220640ba2267eaa7ab5038f19d42d798c5181837a299598d9e16a66247e49fa61a275450666cb780284d8008518b53789ab22f6f8758711d5f39aa89460e6b4bce96e2011e8cf33e87a86397a55e14b942f44446de0087a22decf99151c58eda710ad332bc96fddc1009747c5a17fd73f8f6f07563097d38f81fbf88198562f69b67cd32675576e84fb3e3fb35c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -128,12 +130,13 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fe666ef7ea3c2e11b4c35ac384045d48fc60112f8fd92c3eb87e5f6c89ca484edf7db1c0a148bf627f5079ea3a71bd55cfe91941934e4f6cd1044862af61c62c72da9cd377788e6dcf0acd7c3ebf5a682a16a1b93409717c1849bd9e6c56e052b97efe13b6d411811520c2f827e63e2d2b88a793ffd9275d1f93d920d195fe180d93bf0d30b78d736c453172bf2cd35ef7ccdf2aeb291942b9082b5ddaf0fdbc354dc47d6d3ba33ba9a0415cd52ba208fde55df87c03c9b8d23160005c156a3ca8153bb91448b78e504382bd278e4b1b4143b58c60a97eb8df45342f2edf64b9f8f0479557d69e68ed1b5f4137339f519ad10e475fb95bce99725086ffcda5a6b1c568c844c9a7540fed0b483828352a" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284578caab6d29550a13b118da3842b4b9c8b00f26b24149b724be5b1218287c719fb42247bc75da8e9b17137e977299ae65a4becf49542e78e910e82587a4a441f126ed01edfff4c704721f37bd978c5ab2bcb08f17e1a04a7ea7aa0e804ac4196ec0e1c90f6603238dc9433ad5db47449ee56faeba708e7bcc8c142a542c6d26289ef220640ba2267eaa7ab5038f19d42d798c5181837a299598d9e16a66247e49fa61a275450666cb780284d8008518b53789ab22f6f8758711d5f39aa89460e6b4bce96e2011e8cf33e87a86397a55e14b942f44446de0087a22decf99151c58eda710ad332bc96fddc1009747c5a17fd73f8f6f07563097d38f81fbf88198562f69b67cd32675576e84fb3e3fb35c" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value < $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value < $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -148,7 +151,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28613a47d8d474cd8e194852d31798a638b7c5888c014b63a30adaa563dd99bd94952bc58c0146a43be7957396ae6ea520c1363afc8d2161838e7e453dd243ca8c4c413afa00fbcb057b752016d69c4df4b49cd0ecd14cd9ba3704d695b44daff2c4232fbb64a35a77caf8f869abb2ec2489ad5a87f974548c59259dba7db48917c4bd53319e5a58cce7329bd7f0b79017352a7dff4e4e3a240cb52ebbf35faa8a4ae163856d684a21f3e3a2b4b7d3d88f24c67882502ee28a5e2fa209df5ac8266606d2758b0d8f90c406ceed03faa9927e0d3414275d20e170ba39f47c370de73f4105e5c2368eb603ec02b3d10f31e63cc0adb3494a2e637be59831712de558e297b2b9762aaa023130aa2f36ccb9a6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e7af4566916ae8649b78f21cca03b3420a2d73594831faf20ea7532d76523263da6cc9895dd2724f2a6154b89c42d7d3895cc85b5481bbdfc3e4714181da6e0ca6579f6458647cf59302314194edc2ecf1d163a98a0aa36ea62d28c738dc67484dd8d164489e9ddb0743acc282f1f72bdf58303fe380c3d1f8c9dde297432eddc021b010bb114dc90786676aa49fda3861567ab3c68238af8c66903e323201118f60fd3f1c08edc6e86e3e2e0d7a7dfcc5c1fdc560de965090f0d6ea5278ad0c5e57750b83928dbb4420b4101720dc2017f306cf0672cc8d9ae468c769edd1891ad7c3ba34325bf2c28a1b1a1fce30a4eceb20b64906a70c5f6927def20adaa5068cb97e50363823be89dd79be10b9ba\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -173,12 +176,13 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28613a47d8d474cd8e194852d31798a638b7c5888c014b63a30adaa563dd99bd94952bc58c0146a43be7957396ae6ea520c1363afc8d2161838e7e453dd243ca8c4c413afa00fbcb057b752016d69c4df4b49cd0ecd14cd9ba3704d695b44daff2c4232fbb64a35a77caf8f869abb2ec2489ad5a87f974548c59259dba7db48917c4bd53319e5a58cce7329bd7f0b79017352a7dff4e4e3a240cb52ebbf35faa8a4ae163856d684a21f3e3a2b4b7d3d88f24c67882502ee28a5e2fa209df5ac8266606d2758b0d8f90c406ceed03faa9927e0d3414275d20e170ba39f47c370de73f4105e5c2368eb603ec02b3d10f31e63cc0adb3494a2e637be59831712de558e297b2b9762aaa023130aa2f36ccb9a6" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e7af4566916ae8649b78f21cca03b3420a2d73594831faf20ea7532d76523263da6cc9895dd2724f2a6154b89c42d7d3895cc85b5481bbdfc3e4714181da6e0ca6579f6458647cf59302314194edc2ecf1d163a98a0aa36ea62d28c738dc67484dd8d164489e9ddb0743acc282f1f72bdf58303fe380c3d1f8c9dde297432eddc021b010bb114dc90786676aa49fda3861567ab3c68238af8c66903e323201118f60fd3f1c08edc6e86e3e2e0d7a7dfcc5c1fdc560de965090f0d6ea5278ad0c5e57750b83928dbb4420b4101720dc2017f306cf0672cc8d9ae468c769edd1891ad7c3ba34325bf2c28a1b1a1fce30a4eceb20b64906a70c5f6927def20adaa5068cb97e50363823be89dd79be10b9ba" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value < $1 LIMIT 100" + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value < $1 LIMIT 100", + "rows_returned": 100 }, { "explain": [ @@ -193,7 +197,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2800fe970e78f354e987ce5bb688b0859b0abd75318a9549123eaff5ae591c8951cb0bfe6ddef9f0f33d99741f144a5ae4aa5cdc4029e6db0f7c19b661fb8b5f795440bbd0eb6def2aedd59d8d30c5a41fed198793688dd572139f766274d6656e820df591b01af34320c0a51358cdb6e14402f2d3912939f6e92bc73d80c422fcf3cc11ccb6410f9d9506b69702ff8597f4075545c1d1eff2126983ee086c1ca4c6983b17a40ac51ee203dcf223a5158edef85a15f6066d85f0ff8eddf4429f63cc7d1912717f8fb7f17a3ef4ef669bddb0db37b9d9ef5c3dfde80974dbe244d8d8cdb3361d0901de4cbdc98f3eb21f228930a300c7a2502ddb310ab3e2c32574bdba542151c649d054b036b3c07c41c8\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb285f373e72d3376030cb1e9c760d72740d8cd4b26dae72ac66d5a035549cb3970170beef7b5623decca2d426fb980e6e626c259e536aa4fb1b5dac647eb292f0837337399bab45bbee975655cf9f43d6009339fa076e788209e51f867b9649c9e6b28cb7d39183d38a0d5db140f7a71a6fc15c7b542e1f597fe23a3dcc3ee8aa16eda6de1a0362aa58c6c8da80b14c53e090f5aae8f4249a0d6db3c29cd2ac4572e99f2c76b02f15ba435921f5bd03c30eb885b615e31169404982eda710fbd1fa3c746e6551bd3b7b108e3316847b693c9a7db4631f8dc34d062edaeb37427c71304f92c3f5193018ceca7012dee32532487f173e926f8549d47665cbee0537308fbbf06e3016f6ae23c60a28c57ecf17\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -222,12 +226,13 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2800fe970e78f354e987ce5bb688b0859b0abd75318a9549123eaff5ae591c8951cb0bfe6ddef9f0f33d99741f144a5ae4aa5cdc4029e6db0f7c19b661fb8b5f795440bbd0eb6def2aedd59d8d30c5a41fed198793688dd572139f766274d6656e820df591b01af34320c0a51358cdb6e14402f2d3912939f6e92bc73d80c422fcf3cc11ccb6410f9d9506b69702ff8597f4075545c1d1eff2126983ee086c1ca4c6983b17a40ac51ee203dcf223a5158edef85a15f6066d85f0ff8eddf4429f63cc7d1912717f8fb7f17a3ef4ef669bddb0db37b9d9ef5c3dfde80974dbe244d8d8cdb3361d0901de4cbdc98f3eb21f228930a300c7a2502ddb310ab3e2c32574bdba542151c649d054b036b3c07c41c8" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb285f373e72d3376030cb1e9c760d72740d8cd4b26dae72ac66d5a035549cb3970170beef7b5623decca2d426fb980e6e626c259e536aa4fb1b5dac647eb292f0837337399bab45bbee975655cf9f43d6009339fa076e788209e51f867b9649c9e6b28cb7d39183d38a0d5db140f7a71a6fc15c7b542e1f597fe23a3dcc3ee8aa16eda6de1a0362aa58c6c8da80b14c53e090f5aae8f4249a0d6db3c29cd2ac4572e99f2c76b02f15ba435921f5bd03c30eb885b615e31169404982eda710fbd1fa3c746e6551bd3b7b108e3316847b693c9a7db4631f8dc34d062edaeb37427c71304f92c3f5193018ceca7012dee32532487f173e926f8549d47665cbee0537308fbbf06e3016f6ae23c60a28c57ecf17" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10" + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10", + "rows_returned": 10 } ], "target_rows": "10000" diff --git a/results/query/ore_rows_10000.json b/results/query/ore_rows_10000.json index 2dd6e2c..3cb36d3 100644 --- a/results/query/ore_rows_10000.json +++ b/results/query/ore_rows_10000.json @@ -1,11 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[67,134,201,268,335,402,469,536,603,670],"measured_values":[93067791.0,187423417.0,291940291.0,382578833.0,537496083.0,593789250.0,762016083.0,888687250.0,846934459.0,1019892333.0],"unit":"ns","throughput":[],"typical":{"estimate":1527009.5284745106,"lower_bound":1453374.2086923402,"upper_bound":1601413.929461221,"unit":"ns"},"mean":{"estimate":1495880.8036413172,"lower_bound":1439041.6730468788,"upper_bound":1557287.442089108,"unit":"ns"},"median":{"estimate":1464763.472636816,"lower_bound":1404534.7578772802,"upper_bound":1604465.9194029851,"unit":"ns"},"median_abs_dev":{"estimate":93633.57982399028,"lower_bound":15801.396235638145,"upper_bound":159671.87473660085,"unit":"ns"},"slope":{"estimate":1527009.5284745106,"lower_bound":1453374.2086923402,"upper_bound":1601413.929461221,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[127573417.0,218701833.0,368152042.0,452593750.0,539782125.0,706696667.0,789797709.0,963514667.0,1092225166.0,1228620167.0],"unit":"ns","throughput":[],"typical":{"estimate":29721966.427922077,"lower_bound":28605132.03125,"upper_bound":30328597.828948658,"unit":"ns"},"mean":{"estimate":29400431.67905754,"lower_bound":28441521.774494052,"upper_bound":30340482.02131944,"unit":"ns"},"median":{"estimate":29777763.901041664,"lower_bound":27812419.25,"upper_bound":30679336.833333332,"unit":"ns"},"median_abs_dev":{"estimate":1800169.0332806115,"lower_bound":278666.69676351134,"upper_bound":2673309.278376773,"unit":"ns"},"slope":{"estimate":29721966.427922077,"lower_bound":28605132.03125,"upper_bound":30328597.828948658,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[95923333.0,191551500.0,279517125.0,395535125.0,502909416.0,531536875.0,632892917.0,741349333.0,858536333.0,906708708.0],"unit":"ns","throughput":[],"typical":{"estimate":6634219.981076066,"lower_bound":6496213.005936163,"upper_bound":6821723.938401048,"unit":"ns"},"mean":{"estimate":6729088.134197844,"lower_bound":6571205.0341893425,"upper_bound":6892793.158670634,"unit":"ns"},"median":{"estimate":6734475.031746032,"lower_bound":6476490.771428571,"upper_bound":6952126.116071429,"unit":"ns"},"median_abs_dev":{"estimate":278117.868552421,"lower_bound":28085.056034723762,"upper_bound":487259.7436577439,"unit":"ns"},"slope":{"estimate":6634219.981076066,"lower_bound":6496213.005936163,"upper_bound":6821723.938401048,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[98800833.0,189420833.0,265325792.0,395676625.0,467107250.0,576170000.0,617033708.0,697438584.0,814695250.0,974173583.0],"unit":"ns","throughput":[],"typical":{"estimate":46261844.58831169,"lower_bound":44618570.96641791,"upper_bound":47963848.84390367,"unit":"ns"},"mean":{"estimate":46679433.40329365,"lower_bound":45347785.01830158,"upper_bound":47988954.602436505,"unit":"ns"},"median":{"estimate":47032966.625,"lower_bound":44220965.333333336,"upper_bound":48708679.15,"unit":"ns"},"median_abs_dev":{"estimate":3068662.651137013,"lower_bound":514842.09475472645,"upper_bound":3691317.6162660085,"unit":"ns"},"slope":{"estimate":46261844.58831169,"lower_bound":44618570.96641791,"upper_bound":47963848.84390367,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[58,116,174,232,290,348,406,464,522,580],"measured_values":[91196750.0,201436250.0,309060834.0,402497250.0,377061625.0,510999500.0,598148959.0,763420000.0,703287875.0,867738750.0],"unit":"ns","throughput":[],"typical":{"estimate":1490547.5577698164,"lower_bound":1408861.542530199,"upper_bound":1588531.4232566198,"unit":"ns"},"mean":{"estimate":1555056.3747263274,"lower_bound":1457609.3702107281,"upper_bound":1651813.8487684727,"unit":"ns"},"median":{"estimate":1534229.5258620689,"lower_bound":1410284.0388615215,"upper_bound":1734901.9396551724,"unit":"ns"},"median_abs_dev":{"estimate":220912.54399468505,"lower_bound":20542.849850808787,"upper_bound":288532.2033545408,"unit":"ns"},"slope":{"estimate":1490547.5577698164,"lower_bound":1408861.542530199,"upper_bound":1588531.4232566198,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107203667.0,224149709.0,323718250.0,509127042.0,618335041.0,662718708.0,773669708.0,928256708.0,1015263833.0,1135161417.0],"unit":"ns","throughput":[],"typical":{"estimate":28546677.755194806,"lower_bound":28032720.263325065,"upper_bound":29322389.06329369,"unit":"ns"},"mean":{"estimate":28536651.457222223,"lower_bound":27658204.752777778,"upper_bound":29569161.815097224,"unit":"ns"},"median":{"estimate":28110243.381944444,"lower_bound":27303790.916666664,"upper_bound":29647893.7375,"unit":"ns"},"median_abs_dev":{"estimate":1033922.689556703,"lower_bound":267106.5455979114,"upper_bound":2674582.0080875102,"unit":"ns"},"slope":{"estimate":28546677.755194806,"lower_bound":28032720.263325065,"upper_bound":29322389.06329369,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[94911542.0,180641583.0,274363042.0,356457541.0,454659500.0,559228667.0,666894625.0,732514125.0,857312250.0,938533875.0],"unit":"ns","throughput":[],"typical":{"estimate":6672227.806122449,"lower_bound":6560828.006834409,"upper_bound":6746914.749019666,"unit":"ns"},"mean":{"estimate":6613449.817304422,"lower_bound":6520280.8107568035,"upper_bound":6704854.56590136,"unit":"ns"},"median":{"estimate":6598894.40922619,"lower_bound":6491969.244047619,"upper_bound":6779395.857142857,"unit":"ns"},"median_abs_dev":{"estimate":187050.95487918152,"lower_bound":19743.08289234791,"upper_bound":259442.32710647775,"unit":"ns"},"slope":{"estimate":6672227.806122449,"lower_bound":6560828.006834409,"upper_bound":6746914.749019666,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[132203792.0,240565333.0,410169209.0,482148583.0,598658833.0,783835625.0,908656291.0,1120940167.0,1256770000.0,1383163167.0],"unit":"ns","throughput":[],"typical":{"estimate":44969195.995671,"lower_bound":42830239.2941277,"upper_bound":46021853.28026534,"unit":"ns"},"mean":{"estimate":43600023.386917986,"lower_bound":41972461.45533928,"upper_bound":45145894.6818254,"unit":"ns"},"median":{"estimate":43807177.13888889,"lower_bound":40179048.583333336,"upper_bound":46105438.9,"unit":"ns"},"median_abs_dev":{"estimate":3734759.5197036536,"lower_bound":261891.00599051037,"upper_bound":4707440.2767262375,"unit":"ns"},"slope":{"estimate":44969195.995671,"lower_bound":42830239.2941277,"upper_bound":46021853.28026534,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[80,160,240,320,400,480,560,640,720,800],"measured_values":[90954500.0,180185583.0,305892416.0,399387333.0,454684625.0,535217625.0,618208083.0,705070250.0,798766125.0,892632625.0],"unit":"ns","throughput":[],"typical":{"estimate":1121250.6843181818,"lower_bound":1109648.1442825112,"upper_bound":1148551.7401412171,"unit":"ns"},"mean":{"estimate":1146828.002202381,"lower_bound":1115174.930327381,"upper_bound":1187638.5988072916,"unit":"ns"},"median":{"estimate":1120975.3375,"lower_bound":1109397.3958333333,"upper_bound":1192398.4890625,"unit":"ns"},"median_abs_dev":{"estimate":23493.381111659248,"lower_bound":4739.416525233594,"upper_bound":82561.43585580394,"unit":"ns"},"slope":{"estimate":1121250.6843181818,"lower_bound":1109648.1442825112,"upper_bound":1148551.7401412171,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107354084.0,224226667.0,369724000.0,462993834.0,602931750.0,640750250.0,779325041.0,925005541.0,1085581333.0,1151385458.0],"unit":"ns","throughput":[],"typical":{"estimate":28906182.594805196,"lower_bound":28075809.4026972,"upper_bound":29647837.679378532,"unit":"ns"},"mean":{"estimate":28713795.07292659,"lower_bound":27898375.802529763,"upper_bound":29531472.655426584,"unit":"ns"},"median":{"estimate":28845529.803125,"lower_bound":27433427.1875,"upper_bound":30146587.5,"unit":"ns"},"median_abs_dev":{"estimate":1715034.822827045,"lower_bound":113032.06912078019,"upper_bound":2458533.2877439745,"unit":"ns"},"slope":{"estimate":28906182.594805196,"lower_bound":28075809.4026972,"upper_bound":29647837.679378532,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[65,130,195,260,325,390,455,520,585,650],"measured_values":[88627084.0,181315500.0,271349291.0,364215750.0,444277833.0,530014542.0,627456958.0,704422875.0,805093875.0,905981167.0],"unit":"ns","throughput":[],"typical":{"estimate":1376898.4465534466,"lower_bound":1364285.1873504273,"upper_bound":1388049.9153823415,"unit":"ns"},"mean":{"estimate":1378034.48942674,"lower_bound":1368364.6329395603,"upper_bound":1387636.007897436,"unit":"ns"},"median":{"estimate":1377627.5637362637,"lower_bound":1363010.1815384615,"upper_bound":1393817.18,"unit":"ns"},"median_abs_dev":{"estimate":22478.869454920175,"lower_bound":3052.0989333531443,"upper_bound":26481.436620629902,"unit":"ns"},"slope":{"estimate":1376898.4465534466,"lower_bound":1364285.1873504273,"upper_bound":1388049.9153823415,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101493916.0,201094792.0,318509584.0,419031209.0,522990459.0,665270916.0,773879084.0,914482416.0,1018092083.0,1160228292.0],"unit":"ns","throughput":[],"typical":{"estimate":28077947.702597402,"lower_bound":27170271.24754902,"upper_bound":28547658.222560976,"unit":"ns"},"mean":{"estimate":27061354.549900793,"lower_bound":26264121.970555555,"upper_bound":27858355.874298114,"unit":"ns"},"median":{"estimate":27090502.023809522,"lower_bound":25781464.78125,"upper_bound":28280335.638888888,"unit":"ns"},"median_abs_dev":{"estimate":1579571.4182303348,"lower_bound":291288.18359360064,"upper_bound":2254370.1063119285,"unit":"ns"},"slope":{"estimate":28077947.702597402,"lower_bound":27170271.24754902,"upper_bound":28547658.222560976,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[92999042.0,190172375.0,317774250.0,380893834.0,461958333.0,554884958.0,665834375.0,724815334.0,846353750.0,934769500.0],"unit":"ns","throughput":[],"typical":{"estimate":6681555.721335807,"lower_bound":6589676.179831933,"upper_bound":6792468.400559807,"unit":"ns"},"mean":{"estimate":6766737.854767573,"lower_bound":6628685.565943028,"upper_bound":6969037.680836735,"unit":"ns"},"median":{"estimate":6697009.126984127,"lower_bound":6605773.30952381,"upper_bound":6796773.071428571,"unit":"ns"},"median_abs_dev":{"estimate":142389.3448232743,"lower_bound":9016.32205778595,"upper_bound":257484.54564659178,"unit":"ns"},"slope":{"estimate":6681555.721335807,"lower_bound":6589676.179831933,"upper_bound":6792468.400559807,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[138837250.0,264854875.0,354431709.0,544609916.0,636139583.0,806024375.0,965400458.0,1073194209.0,1177240958.0,1218687542.0],"unit":"ns","throughput":[],"typical":{"estimate":43335521.104761906,"lower_bound":41778449.40983607,"upper_bound":44912891.72919593,"unit":"ns"},"mean":{"estimate":43728777.143002644,"lower_bound":42308449.02074075,"upper_bound":44976870.91362599,"unit":"ns"},"median":{"estimate":44429452.27083333,"lower_bound":42112217.51481482,"upper_bound":45384159.666666664,"unit":"ns"},"median_abs_dev":{"estimate":1850807.758704099,"lower_bound":471950.6957878712,"upper_bound":3741711.5266824546,"unit":"ns"},"slope":{"estimate":43335521.104761906,"lower_bound":41778449.40983607,"upper_bound":44912891.72919593,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[82857417.0,173417208.0,244973542.0,319833042.0,465603458.0,498043208.0,620816083.0,741370208.0,798497666.0,926255875.0],"unit":"ns","throughput":[],"typical":{"estimate":1444739.554000838,"lower_bound":1390228.2643485547,"upper_bound":1477494.4061109342,"unit":"ns"},"mean":{"estimate":1403253.0000204812,"lower_bound":1356284.1983870969,"upper_bound":1449290.8623502303,"unit":"ns"},"median":{"estimate":1414488.8375576036,"lower_bound":1327943.940860215,"upper_bound":1493961.0887096773,"unit":"ns"},"median_abs_dev":{"estimate":116792.65585635448,"lower_bound":6465.96043972248,"upper_bound":124291.5179059652,"unit":"ns"},"slope":{"estimate":1444739.554000838,"lower_bound":1390228.2643485547,"upper_bound":1477494.4061109342,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[110388542.0,230606125.0,306386125.0,410174792.0,533008583.0,637435000.0,728104208.0,914953250.0,971164667.0,1119285791.0],"unit":"ns","throughput":[],"typical":{"estimate":27253770.53181818,"lower_bound":26364777.027254798,"upper_bound":27874619.886520736,"unit":"ns"},"mean":{"estimate":27035617.538234122,"lower_bound":26363106.0559127,"upper_bound":27733367.185625,"unit":"ns"},"median":{"estimate":26813612.72777778,"lower_bound":26003721.714285713,"upper_bound":28094712.28125,"unit":"ns"},"median_abs_dev":{"estimate":1466604.9888700566,"lower_bound":309125.53332025744,"upper_bound":1996017.0571727783,"unit":"ns"},"slope":{"estimate":27253770.53181818,"lower_bound":26364777.027254798,"upper_bound":27874619.886520736,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[89711375.0,180115959.0,280128250.0,360373667.0,472349417.0,577120209.0,633601209.0,763575833.0,825342541.0,925154667.0],"unit":"ns","throughput":[],"typical":{"estimate":6638169.891651206,"lower_bound":6545593.924123496,"upper_bound":6750662.185970433,"unit":"ns"},"mean":{"estimate":6600550.503676304,"lower_bound":6504415.790370323,"upper_bound":6703104.924192177,"unit":"ns"},"median":{"estimate":6579292.624206349,"lower_bound":6435244.053571428,"upper_bound":6747848.814285714,"unit":"ns"},"median_abs_dev":{"estimate":215442.80938595894,"lower_bound":24170.55883874358,"upper_bound":285297.3959899581,"unit":"ns"},"slope":{"estimate":6638169.891651206,"lower_bound":6545593.924123496,"upper_bound":6750662.185970433,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[126713833.0,274090167.0,381940500.0,466933958.0,673335833.0,745794584.0,893540083.0,1072602667.0,1161465125.0,1276333542.0],"unit":"ns","throughput":[],"typical":{"estimate":42928157.25541125,"lower_bound":42043562.79452055,"upper_bound":43802148.22867117,"unit":"ns"},"mean":{"estimate":42839370.711653434,"lower_bound":41665376.76237963,"upper_bound":43941928.68772487,"unit":"ns"},"median":{"estimate":42546989.580952376,"lower_bound":41935432.888888896,"upper_bound":44691777.791666664,"unit":"ns"},"median_abs_dev":{"estimate":1174363.2933619916,"lower_bound":86562.18544321222,"upper_bound":3487939.98189918,"unit":"ns"},"slope":{"estimate":42928157.25541125,"lower_bound":42043562.79452055,"upper_bound":43802148.22867117,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[70,140,210,280,350,420,490,560,630,700],"measured_values":[83408542.0,176914542.0,287480458.0,346013542.0,450772125.0,556780250.0,582492792.0,763717916.0,749099375.0,783107042.0],"unit":"ns","throughput":[],"typical":{"estimate":1225915.8797773656,"lower_bound":1163656.3564115958,"upper_bound":1316764.6741993846,"unit":"ns"},"mean":{"estimate":1253384.4496507938,"lower_bound":1204600.8571341268,"upper_bound":1302383.8462698413,"unit":"ns"},"median":{"estimate":1249718.975,"lower_bound":1189046.626984127,"upper_bound":1325851.1749999998,"unit":"ns"},"median_abs_dev":{"estimate":90164.70511092318,"lower_bound":2279.9622428561697,"upper_bound":138890.399606536,"unit":"ns"},"slope":{"estimate":1225915.8797773656,"lower_bound":1163656.3564115958,"upper_bound":1316764.6741993846,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107852459.0,220964417.0,320362959.0,413625750.0,523963375.0,636545209.0,794963625.0,854441667.0,967544667.0,1051344083.0],"unit":"ns","throughput":[],"typical":{"estimate":26770183.664285716,"lower_bound":26356436.978125,"upper_bound":27377548.720604006,"unit":"ns"},"mean":{"estimate":26810577.824613094,"lower_bound":26414418.72622917,"upper_bound":27274652.870089285,"unit":"ns"},"median":{"estimate":26699107.671875,"lower_bound":26283602.075,"upper_bound":27248396.4375,"unit":"ns"},"median_abs_dev":{"estimate":503722.7370346343,"lower_bound":132385.09675906878,"upper_bound":1143093.3429310387,"unit":"ns"},"slope":{"estimate":26770183.664285716,"lower_bound":26356436.978125,"upper_bound":27377548.720604006,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/src/lib.rs b/src/lib.rs index 89aa82a..f5a16cf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -430,6 +430,11 @@ pub struct ScenarioMetadata { pub parameters: Vec, pub explain: serde_json::Value, pub indexes_used: Vec, + /// Actual row count returned by a single pre-bench execution of the + /// query. The cost (one extra round-trip per scenario at startup) is + /// trivial relative to criterion's warmup phase, and gives us a real + /// number rather than the planner's estimate from `Plan Rows`. + pub rows_returned: u64, } /// Walk an `EXPLAIN (FORMAT JSON)` tree and collect every `Index Name`. From 0ef78a6781a825c9ab0e2a195a5ed12e258fe21b Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Fri, 15 May 2026 21:28:31 +1000 Subject: [PATCH 18/30] bench: diagnostic wrapper around bench iter results MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces bare `.unwrap()` / `.expect("...")` in criterion `iter` closures with `bench_assert(result, scenario_id)`. On failure we now print a structured error block before panicking — scenario id, the error's `Display` *and* `Debug` (so anyhow chains show up), plus a hint about the common failure modes we've actually hit in this repo: * "Could not decrypt … keyset" / generic "Unexpected error" → "ZeroKMS decrypt failure, likely scoped-cipher TTL expiry mid-run; re-run picks up fresh credentials, etc." * Connection refused / reset → "postgres container is down." * "relation … does not exist" → "schema missing; run setup-db or prepare:*." * Generic SQL syntax / query failure → "inspect the recorded query in the `*_metadata_.json` sidecar." The hint is matched on the error string, which is brittle but cheap and the failure modes are stable. Worst case the hint doesn't match and we still see the full Display+Debug above it. The bigger payoff is the scenario context. The recurring panic at `ore.rs:187` ("called Result::unwrap() on an Err value: Could not decrypt data using keyset 'dc2d89a1-…'") now reads as "ORE/ore_decrypt/range_lt_100/1000000 — Could not decrypt data using keyset 'dc2d89a1-…' — hint: ZeroKMS TTL expiry, re-run picks up fresh credentials." Much easier to triage at 2am. Also bundles the modified result + metadata files from the user's recent (partially-failed) ladder pass. Some scenarios have actual `rows_returned`, others still rely on planner estimate — the report renders the mix correctly via the per-row fallback. --- benches/exact.rs | 13 ++- benches/group_by.rs | 11 +- benches/json.rs | 34 +++--- benches/match.rs | 15 ++- benches/ore.rs | 13 ++- results/query/exact_metadata_10000.json | 6 +- results/query/exact_metadata_100000.json | 6 +- results/query/exact_metadata_1000000.json | 6 +- results/query/exact_metadata_10000000.json | 6 +- results/query/exact_rows_10000.json | 8 +- results/query/exact_rows_100000.json | 8 +- results/query/exact_rows_1000000.json | 8 +- results/query/exact_rows_10000000.json | 8 +- results/query/group_by_metadata_10000.json | 6 +- results/query/group_by_metadata_100000.json | 6 +- results/query/group_by_metadata_1000000.json | 6 +- results/query/group_by_rows_10000.json | 4 +- results/query/group_by_rows_100000.json | 4 +- results/query/group_by_rows_1000000.json | 4 +- results/query/match_metadata_10000.json | 113 +++++++++--------- results/query/match_metadata_100000.json | 117 ++++++++++--------- results/query/match_metadata_1000000.json | 109 ++++++++--------- results/query/match_rows_10000.json | 12 +- results/query/match_rows_100000.json | 12 +- results/query/match_rows_1000000.json | 12 +- results/query/match_rows_10000000.json | 7 -- results/query/ore_metadata_10000.json | 20 ++-- results/query/ore_metadata_100000.json | 35 +++--- results/query/ore_metadata_1000000.json | 35 +++--- results/query/ore_rows_10000.json | 20 ++-- results/query/ore_rows_100000.json | 20 ++-- results/query/ore_rows_1000000.json | 18 ++- src/lib.rs | 79 +++++++++++++ 33 files changed, 455 insertions(+), 326 deletions(-) diff --git a/benches/exact.rs b/benches/exact.rs index 30a418a..3e344fa 100644 --- a/benches/exact.rs +++ b/benches/exact.rs @@ -6,7 +6,7 @@ use cipherstash_client::{ }; use criterion::{black_box, criterion_group, criterion_main, Criterion}; use dbbenches::{ - extract_indexes_used, init_scoped_cipher, write_metadata_file, EncryptedQuery, + bench_assert, extract_indexes_used, init_scoped_cipher, write_metadata_file, EncryptedQuery, EncryptedQueryBuilder, ScenarioMetadata, }; use sqlx::postgres::PgPoolOptions; @@ -116,16 +116,23 @@ fn criterion_benchmark(c: &mut Criterion) { for (i, query) in queries.into_iter().enumerate() { let (_, _, scenario) = QUERY_TEMPLATES[i]; + let exec_id = format!("EXACT/exact/{}/{}", scenario, target_rows); + let decrypt_id = format!("EXACT/exact_decrypt/{}/{}", scenario, target_rows); + let exec_id_inner = exec_id.clone(); group.bench_function(format!("exact/{}/{}", scenario, target_rows), |b| { b.to_async(&rt).iter(|| async { - let _: Vec<_> = query.execute(&pool).await.unwrap(); + let _: Vec<_> = bench_assert(query.execute(&pool).await, &exec_id_inner); }) }); + let decrypt_id_inner = decrypt_id.clone(); group.bench_function(format!("exact_decrypt/{}/{}", scenario, target_rows), |b| { b.to_async(&rt).iter(|| async { - let _r: Vec = black_box(query.execute_and_decrypt(&pool).await.unwrap()); + let _r: Vec = black_box(bench_assert( + query.execute_and_decrypt(&pool).await, + &decrypt_id_inner, + )); }) }); } diff --git a/benches/group_by.rs b/benches/group_by.rs index 5994251..aba41f1 100644 --- a/benches/group_by.rs +++ b/benches/group_by.rs @@ -1,5 +1,5 @@ use criterion::{black_box, criterion_group, criterion_main, Criterion}; -use dbbenches::{extract_indexes_used, write_metadata_file, ScenarioMetadata}; +use dbbenches::{bench_assert, extract_indexes_used, write_metadata_file, ScenarioMetadata}; use sqlx::postgres::PgPoolOptions; use sqlx::types::Json; use sqlx::Row; @@ -134,12 +134,13 @@ fn criterion_benchmark(c: &mut Criterion) { .strip_prefix("GROUP_BY/") .expect("bench_id missing GROUP_BY/ prefix") .to_string(); + let scenario_id = bench_id.clone(); group.bench_function(function_name, |b| { b.to_async(&rt).iter(|| async { - let rows = sqlx::query(&query_str) - .fetch_all(&pool) - .await - .expect("group_by query failed"); + let rows = bench_assert( + sqlx::query(&query_str).fetch_all(&pool).await, + &scenario_id, + ); // Drain the single-row result to force the aggregation to materialise. black_box(rows.iter().map(|r| r.get::(0)).sum::()) }) diff --git a/benches/json.rs b/benches/json.rs index 71a9564..bf5aabd 100644 --- a/benches/json.rs +++ b/benches/json.rs @@ -1,5 +1,5 @@ use criterion::{black_box, criterion_group, criterion_main, Criterion}; -use dbbenches::{extract_indexes_used, write_metadata_file, ScenarioMetadata}; +use dbbenches::{bench_assert, extract_indexes_used, write_metadata_file, ScenarioMetadata}; use sqlx::postgres::PgPoolOptions; use sqlx::types::Json; use sqlx::Row; @@ -215,33 +215,39 @@ fn criterion_benchmark(c: &mut Criterion) { let mut group = c.benchmark_group("JSON"); group.sample_size(10); + let field_eq_id = format!("JSON/json/field_eq/{}", target_rows); + let field_extract_id = format!("JSON/json/field_extract/{}", target_rows); + let field_group_by_id = format!("JSON/json/field_group_by/{}", target_rows); + + let field_eq_id_inner = field_eq_id.clone(); group.bench_function(format!("json/field_eq/{}", target_rows), |b| { b.to_async(&rt).iter(|| async { - let rows = sqlx::query(&q_field_eq) - .bind(&needle) - .fetch_all(&pool) - .await - .expect("field_eq query failed"); + let rows = bench_assert( + sqlx::query(&q_field_eq).bind(&needle).fetch_all(&pool).await, + &field_eq_id_inner, + ); black_box(rows.iter().map(|r| r.get::(0)).sum::()) }) }); + let field_extract_id_inner = field_extract_id.clone(); group.bench_function(format!("json/field_extract/{}", target_rows), |b| { b.to_async(&rt).iter(|| async { - let rows = sqlx::query(&q_field_extract) - .fetch_all(&pool) - .await - .expect("field_extract query failed"); + let rows = bench_assert( + sqlx::query(&q_field_extract).fetch_all(&pool).await, + &field_extract_id_inner, + ); black_box(rows.len()) }) }); + let field_group_by_id_inner = field_group_by_id.clone(); group.bench_function(format!("json/field_group_by/{}", target_rows), |b| { b.to_async(&rt).iter(|| async { - let rows = sqlx::query(&q_field_group_by) - .fetch_all(&pool) - .await - .expect("field_group_by query failed"); + let rows = bench_assert( + sqlx::query(&q_field_group_by).fetch_all(&pool).await, + &field_group_by_id_inner, + ); black_box(rows.iter().map(|r| r.get::(1)).sum::()) }) }); diff --git a/benches/match.rs b/benches/match.rs index 27be48b..2618461 100644 --- a/benches/match.rs +++ b/benches/match.rs @@ -6,7 +6,7 @@ use cipherstash_client::{ }; use criterion::{black_box, criterion_group, criterion_main, Criterion}; use dbbenches::{ - extract_indexes_used, init_scoped_cipher, write_metadata_file, EncryptedQuery, + bench_assert, extract_indexes_used, init_scoped_cipher, write_metadata_file, EncryptedQuery, EncryptedQueryBuilder, ScenarioMetadata, }; use sqlx::postgres::PgPoolOptions; @@ -114,16 +114,23 @@ fn criterion_benchmark(c: &mut Criterion) { for (i, query) in queries.into_iter().enumerate() { let (_, _, scenario) = QUERY_TEMPLATES[i]; - + let exec_id = format!("MATCH/match/{}/{}", scenario, target_rows); + let decrypt_id = format!("MATCH/match_decrypt/{}/{}", scenario, target_rows); + + let exec_id_inner = exec_id.clone(); group.bench_function(format!("match/{}/{}", scenario, target_rows), |b| { b.to_async(&rt).iter(|| async { - let _: Vec<_> = query.execute(&pool).await.unwrap(); + let _: Vec<_> = bench_assert(query.execute(&pool).await, &exec_id_inner); }) }); + let decrypt_id_inner = decrypt_id.clone(); group.bench_function(format!("match_decrypt/{}/{}", scenario, target_rows), |b| { b.to_async(&rt).iter(|| async { - let _r: Vec = black_box(query.execute_and_decrypt(&pool).await.unwrap()); + let _r: Vec = black_box(bench_assert( + query.execute_and_decrypt(&pool).await, + &decrypt_id_inner, + )); }) }); } diff --git a/benches/ore.rs b/benches/ore.rs index 5c05b6a..1af9d9c 100644 --- a/benches/ore.rs +++ b/benches/ore.rs @@ -9,7 +9,7 @@ use cipherstash_client::{ }; use criterion::{black_box, criterion_group, criterion_main, Criterion}; use dbbenches::{ - extract_indexes_used, init_scoped_cipher, write_metadata_file, EncryptedQuery, + bench_assert, extract_indexes_used, init_scoped_cipher, write_metadata_file, EncryptedQuery, EncryptedQueryBuilder, ScenarioMetadata, }; use sqlx::postgres::PgPoolOptions; @@ -175,16 +175,23 @@ fn criterion_benchmark(c: &mut Criterion) { for (i, query) in queries.into_iter().enumerate() { let (_, _, scenario) = QUERY_TEMPLATES[i]; + let exec_id = format!("ORE/ore/{}/{}", scenario, target_rows); + let decrypt_id = format!("ORE/ore_decrypt/{}/{}", scenario, target_rows); + let exec_id_inner = exec_id.clone(); group.bench_function(format!("ore/{}/{}", scenario, target_rows), |b| { b.to_async(&rt).iter(|| async { - let _: Vec<_> = query.execute(&pool).await.unwrap(); + let _: Vec<_> = bench_assert(query.execute(&pool).await, &exec_id_inner); }) }); + let decrypt_id_inner = decrypt_id.clone(); group.bench_function(format!("ore_decrypt/{}/{}", scenario, target_rows), |b| { b.to_async(&rt).iter(|| async { - let _r: Vec = black_box(query.execute_and_decrypt(&pool).await.unwrap()); + let _r: Vec = black_box(bench_assert( + query.execute_and_decrypt(&pool).await, + &decrypt_id_inner, + )); }) }); } diff --git a/results/query/exact_metadata_10000.json b/results/query/exact_metadata_10000.json index 887d801..1d2f8d1 100644 --- a/results/query/exact_metadata_10000.json +++ b/results/query/exact_metadata_10000.json @@ -45,7 +45,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_10000 WHERE value = $1 LIMIT 1" + "query": "SELECT value FROM string_encrypted_10000 WHERE value = $1 LIMIT 1", + "rows_returned": 0 }, { "explain": [ @@ -92,7 +93,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_10000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1" + "query": "SELECT value FROM string_encrypted_10000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", + "rows_returned": 0 } ], "target_rows": "10000" diff --git a/results/query/exact_metadata_100000.json b/results/query/exact_metadata_100000.json index f83fdd7..2f7b959 100644 --- a/results/query/exact_metadata_100000.json +++ b/results/query/exact_metadata_100000.json @@ -45,7 +45,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_100000 WHERE value = $1 LIMIT 1" + "query": "SELECT value FROM string_encrypted_100000 WHERE value = $1 LIMIT 1", + "rows_returned": 0 }, { "explain": [ @@ -92,7 +93,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_100000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1" + "query": "SELECT value FROM string_encrypted_100000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", + "rows_returned": 0 } ], "target_rows": "100000" diff --git a/results/query/exact_metadata_1000000.json b/results/query/exact_metadata_1000000.json index 7cfc183..edc68e3 100644 --- a/results/query/exact_metadata_1000000.json +++ b/results/query/exact_metadata_1000000.json @@ -45,7 +45,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_1000000 WHERE value = $1 LIMIT 1" + "query": "SELECT value FROM string_encrypted_1000000 WHERE value = $1 LIMIT 1", + "rows_returned": 0 }, { "explain": [ @@ -92,7 +93,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_1000000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1" + "query": "SELECT value FROM string_encrypted_1000000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", + "rows_returned": 0 } ], "target_rows": "1000000" diff --git a/results/query/exact_metadata_10000000.json b/results/query/exact_metadata_10000000.json index 4dfb9d4..c33d4d2 100644 --- a/results/query/exact_metadata_10000000.json +++ b/results/query/exact_metadata_10000000.json @@ -45,7 +45,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_10000000 WHERE value = $1 LIMIT 1" + "query": "SELECT value FROM string_encrypted_10000000 WHERE value = $1 LIMIT 1", + "rows_returned": 0 }, { "explain": [ @@ -92,7 +93,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_10000000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1" + "query": "SELECT value FROM string_encrypted_10000000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", + "rows_returned": 0 } ], "target_rows": "10000000" diff --git a/results/query/exact_rows_10000.json b/results/query/exact_rows_10000.json index adfb58a..5bcfed7 100644 --- a/results/query/exact_rows_10000.json +++ b/results/query/exact_rows_10000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[91169750.0,185783750.0,279599750.0,355242042.0,499289084.0,552492500.0,651093166.0,742019958.0,867189042.0,917842958.0],"unit":"ns","throughput":[],"typical":{"estimate":427098.9488465872,"lower_bound":419805.2296935464,"upper_bound":436112.147615552,"unit":"ns"},"mean":{"estimate":425532.5983007176,"lower_bound":418171.54167753854,"upper_bound":434090.21998586645,"unit":"ns"},"median":{"estimate":423845.5930365297,"lower_bound":418383.1811263318,"upper_bound":432346.22700587084,"unit":"ns"},"median_abs_dev":{"estimate":6018.376350389985,"lower_bound":882.8398072716531,"upper_bound":22618.305351869472,"unit":"ns"},"slope":{"estimate":427098.9488465872,"lower_bound":419805.2296935464,"upper_bound":436112.147615552,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[98133375.0,179057667.0,263332792.0,366414375.0,470580250.0,553263750.0,634259292.0,754238333.0,833210500.0,1008211875.0],"unit":"ns","throughput":[],"typical":{"estimate":432178.4177548479,"lower_bound":418240.6105542974,"upper_bound":446952.2575458556,"unit":"ns"},"mean":{"estimate":425414.825771001,"lower_bound":415572.1048674078,"upper_bound":436488.97362827975,"unit":"ns"},"median":{"estimate":421893.9941653983,"lower_bound":413544.35445205483,"upper_bound":438925.6278538813,"unit":"ns"},"median_abs_dev":{"estimate":12427.171052490059,"lower_bound":3301.495237239114,"upper_bound":30010.989506467857,"unit":"ns"},"slope":{"estimate":432178.4177548479,"lower_bound":418240.6105542974,"upper_bound":446952.2575458556,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[243,486,729,972,1215,1458,1701,1944,2187,2430],"measured_values":[97436875.0,191348375.0,283132917.0,384591292.0,489918167.0,557944625.0,663515833.0,760914291.0,940025584.0,966840375.0],"unit":"ns","throughput":[],"typical":{"estimate":401108.60236224683,"lower_bound":389894.48810599215,"upper_bound":414781.4798294667,"unit":"ns"},"mean":{"estimate":397384.5744289307,"lower_bound":390967.2304658534,"upper_bound":405912.9484268567,"unit":"ns"},"median":{"estimate":394695.4948559671,"lower_bound":389901.08101851854,"upper_bound":400974.7942386831,"unit":"ns"},"median_abs_dev":{"estimate":8080.776493574596,"lower_bound":2247.229174455613,"upper_bound":15126.011947385581,"unit":"ns"},"slope":{"estimate":401108.60236224683,"lower_bound":389894.48810599215,"upper_bound":414781.4798294667,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[233,466,699,932,1165,1398,1631,1864,2097,2330],"measured_values":[90047625.0,181978583.0,270625750.0,361790833.0,420159417.0,553405542.0,636361125.0,749697208.0,824459042.0,923880375.0],"unit":"ns","throughput":[],"typical":{"estimate":392902.4734072794,"lower_bound":384699.7780776662,"upper_bound":397381.57915422355,"unit":"ns"},"mean":{"estimate":389087.90959159343,"lower_bound":381717.33783478953,"upper_bound":394574.82853055384,"unit":"ns"},"median":{"estimate":390339.1065297363,"lower_bound":387161.3018597997,"upper_bound":395855.18025751074,"unit":"ns"},"median_abs_dev":{"estimate":5223.509301899284,"lower_bound":1272.8828667794917,"upper_bound":11893.854097783178,"unit":"ns"},"slope":{"estimate":392902.4734072794,"lower_bound":384699.7780776662,"upper_bound":397381.57915422355,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[224,448,672,896,1120,1344,1568,1792,2016,2240],"measured_values":[96349208.0,192774791.0,280383666.0,382401250.0,437668500.0,599768250.0,649897459.0,739102583.0,883184792.0,930894583.0],"unit":"ns","throughput":[],"typical":{"estimate":421606.19924628944,"lower_bound":411512.00711327617,"upper_bound":432711.9341605737,"unit":"ns"},"mean":{"estimate":422207.4249434878,"lower_bound":412669.8008060516,"upper_bound":431029.9838330854,"unit":"ns"},"median":{"estimate":422012.35379464284,"lower_bound":414011.78833705356,"upper_bound":434109.0436507936,"unit":"ns"},"median_abs_dev":{"estimate":12162.181255953145,"lower_bound":2047.602465879948,"upper_bound":26695.44526824861,"unit":"ns"},"slope":{"estimate":421606.19924628944,"lower_bound":411512.00711327617,"upper_bound":432711.9341605737,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[213,426,639,852,1065,1278,1491,1704,1917,2130],"measured_values":[93880583.0,175860792.0,266212708.0,314779250.0,479496333.0,626740208.0,684524500.0,897371125.0,797347500.0,889940792.0],"unit":"ns","throughput":[],"typical":{"estimate":447624.6097676971,"lower_bound":418926.9588106416,"upper_bound":487201.4329284125,"unit":"ns"},"mean":{"estimate":439975.6711474402,"lower_bound":415412.8119946484,"upper_bound":467157.19086777617,"unit":"ns"},"median":{"estimate":429283.244600939,"lower_bound":414713.5336463224,"upper_bound":470319.1735524257,"unit":"ns"},"median_abs_dev":{"estimate":27733.913947906294,"lower_bound":1785.4531529027438,"upper_bound":76903.31549959932,"unit":"ns"},"slope":{"estimate":447624.6097676971,"lower_bound":418926.9588106416,"upper_bound":487201.4329284125,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[230,460,690,920,1150,1380,1610,1840,2070,2300],"measured_values":[78916750.0,148324625.0,227321042.0,330025583.0,439139334.0,537485208.0,623580459.0,729548792.0,796407000.0,956629458.0],"unit":"ns","throughput":[],"typical":{"estimate":392249.0175607002,"lower_bound":376499.0640392956,"upper_bound":403769.04431054316,"unit":"ns"},"mean":{"estimate":370955.2208250518,"lower_bound":352358.9495869565,"upper_bound":388398.01573913044,"unit":"ns"},"median":{"estimate":383298.98579710146,"lower_bound":343116.3043478261,"upper_bound":391905.48198757763,"unit":"ns"},"median_abs_dev":{"estimate":27999.233282153375,"lower_bound":3824.180002542026,"upper_bound":49699.06633723039,"unit":"ns"},"slope":{"estimate":392249.0175607002,"lower_bound":376499.0640392956,"upper_bound":403769.04431054316,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[229,458,687,916,1145,1374,1603,1832,2061,2290],"measured_values":[89517459.0,170097667.0,271051375.0,353071375.0,432626500.0,537102542.0,631038917.0,730111500.0,842156125.0,936807166.0],"unit":"ns","throughput":[],"typical":{"estimate":399779.29307548347,"lower_bound":389563.0637003434,"upper_bound":405316.3855793329,"unit":"ns"},"mean":{"estimate":392092.99498197826,"lower_bound":384946.3773643169,"upper_bound":399042.057078308,"unit":"ns"},"median":{"estimate":392283.5714285714,"lower_bound":384372.03129548766,"upper_bound":401579.391072295,"unit":"ns"},"median_abs_dev":{"estimate":9698.708547791672,"lower_bound":2043.6778947217986,"upper_bound":22813.920726704102,"unit":"ns"},"slope":{"estimate":399779.29307548347,"lower_bound":389563.0637003434,"upper_bound":405316.3855793329,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000","EXACT/exact_decrypt/eql_cast/10000","EXACT/exact/eql_hash/10000","EXACT/exact_decrypt/eql_hash/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_100000.json b/results/query/exact_rows_100000.json index 189853a..7edac67 100644 --- a/results/query/exact_rows_100000.json +++ b/results/query/exact_rows_100000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[218,436,654,872,1090,1308,1526,1744,1962,2180],"measured_values":[90512792.0,182458167.0,279856333.0,375187208.0,453473541.0,547814833.0,613563500.0,698689042.0,880557958.0,922802833.0],"unit":"ns","throughput":[],"typical":{"estimate":421631.2456570952,"lower_bound":407467.23016306694,"upper_bound":435809.8385656375,"unit":"ns"},"mean":{"estimate":420151.108914009,"lower_bound":412267.0817857143,"upper_bound":428776.3461175732,"unit":"ns"},"median":{"estimate":418650.3570336391,"lower_bound":409051.9192005242,"upper_bound":427914.8822629969,"unit":"ns"},"median_abs_dev":{"estimate":10317.576325496184,"lower_bound":2066.6762407862193,"upper_bound":23580.662793056785,"unit":"ns"},"slope":{"estimate":421631.2456570952,"lower_bound":407467.23016306694,"upper_bound":435809.8385656375,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[217,434,651,868,1085,1302,1519,1736,1953,2170],"measured_values":[89130042.0,176569583.0,263106416.0,355261375.0,432369500.0,474321125.0,507603792.0,679631541.0,794493417.0,884405542.0],"unit":"ns","throughput":[],"typical":{"estimate":390749.6947872404,"lower_bound":366759.07549131615,"upper_bound":405269.720949352,"unit":"ns"},"mean":{"estimate":393385.3029202326,"lower_bound":376904.1642774852,"upper_bound":405858.36127246544,"unit":"ns"},"median":{"estimate":405481.9930875576,"lower_bound":381399.58717357914,"upper_bound":408064.827764977,"unit":"ns"},"median_abs_dev":{"estimate":6716.795346075612,"lower_bound":585.022448646001,"upper_bound":31535.211169170358,"unit":"ns"},"slope":{"estimate":390749.6947872404,"lower_bound":366759.07549131615,"upper_bound":405269.720949352,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[221,442,663,884,1105,1326,1547,1768,1989,2210],"measured_values":[87260458.0,169942500.0,260332291.0,350202458.0,430390000.0,509154167.0,617165000.0,737354042.0,709403542.0,885056583.0],"unit":"ns","throughput":[],"typical":{"estimate":391020.88745372277,"lower_bound":372505.23123308725,"upper_bound":405810.12520203745,"unit":"ns"},"mean":{"estimate":391475.4473148747,"lower_bound":381813.60991367704,"upper_bound":399991.516949095,"unit":"ns"},"median":{"estimate":393750.87858220213,"lower_bound":384485.29411764705,"upper_bound":398943.11570782156,"unit":"ns"},"median_abs_dev":{"estimate":8835.888423629309,"lower_bound":2346.098175995517,"upper_bound":24144.2588103809,"unit":"ns"},"slope":{"estimate":391020.88745372277,"lower_bound":372505.23123308725,"upper_bound":405810.12520203745,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[229,458,687,916,1145,1374,1603,1832,2061,2290],"measured_values":[94972459.0,175307125.0,288406000.0,399471708.0,515747000.0,572108958.0,650823458.0,734043042.0,809935083.0,885856541.0],"unit":"ns","throughput":[],"typical":{"estimate":402610.6730335167,"lower_bound":393769.6848894828,"upper_bound":419671.138167636,"unit":"ns"},"mean":{"estimate":410671.95454044495,"lower_bound":398466.3299656114,"upper_bound":423740.58422769804,"unit":"ns"},"median":{"estimate":410365.15003119153,"lower_bound":392981.60262008733,"upper_bound":426243.2751091703,"unit":"ns"},"median_abs_dev":{"estimate":20067.124868518982,"lower_bound":4555.055022930725,"upper_bound":36883.7846756404,"unit":"ns"},"slope":{"estimate":402610.6730335167,"lower_bound":393769.6848894828,"upper_bound":419671.138167636,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[216,432,648,864,1080,1296,1512,1728,1944,2160],"measured_values":[92268084.0,191103417.0,275137458.0,358749250.0,405367000.0,433251959.0,626659416.0,744996084.0,801333000.0,901877500.0],"unit":"ns","throughput":[],"typical":{"estimate":408111.92436267436,"lower_bound":384035.79718915344,"upper_bound":421492.9429835391,"unit":"ns"},"mean":{"estimate":409432.26159611996,"lower_bound":389020.385515873,"upper_bound":425517.37579365086,"unit":"ns"},"median":{"estimate":416377.45949074073,"lower_bound":395279.4270833334,"upper_bound":427863.41782407404,"unit":"ns"},"median_abs_dev":{"estimate":14089.873406104758,"lower_bound":2231.8363319047785,"upper_bound":40651.36921093287,"unit":"ns"},"slope":{"estimate":408111.92436267436,"lower_bound":384035.79718915344,"upper_bound":421492.9429835391,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[215,430,645,860,1075,1290,1505,1720,1935,2150],"measured_values":[90229500.0,175685166.0,278123791.0,361262250.0,433758250.0,539531291.0,613162250.0,724382458.0,806611125.0,888853750.0],"unit":"ns","throughput":[],"typical":{"estimate":415128.14545454545,"lower_bound":411253.4103572285,"upper_bound":418857.23632424074,"unit":"ns"},"mean":{"estimate":416009.4676245848,"lower_bound":411306.90090462344,"upper_bound":420772.2615116279,"unit":"ns"},"median":{"estimate":417547.30271317833,"lower_bound":408570.1534883721,"upper_bound":420412.34244186047,"unit":"ns"},"median_abs_dev":{"estimate":5731.911651377781,"lower_bound":1357.374293111106,"upper_bound":15696.564914469713,"unit":"ns"},"slope":{"estimate":415128.14545454545,"lower_bound":411253.4103572285,"upper_bound":418857.23632424074,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[228,456,684,912,1140,1368,1596,1824,2052,2280],"measured_values":[95366375.0,188887709.0,272370375.0,411402750.0,472907167.0,546905542.0,640386416.0,722529417.0,820297750.0,886933375.0],"unit":"ns","throughput":[],"typical":{"estimate":399826.6889154705,"lower_bound":394079.9444645187,"upper_bound":410555.0117751275,"unit":"ns"},"mean":{"estimate":408254.7727414021,"lower_bound":399186.5101477652,"upper_bound":419789.2097284879,"unit":"ns"},"median":{"estimate":400514.68723893067,"lower_bound":397939.41133650095,"upper_bound":416250.5032894737,"unit":"ns"},"median_abs_dev":{"estimate":11786.613724901505,"lower_bound":1104.0794222115496,"upper_bound":24333.86297259289,"unit":"ns"},"slope":{"estimate":399826.6889154705,"lower_bound":394079.9444645187,"upper_bound":410555.0117751275,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[212,424,636,848,1060,1272,1484,1696,1908,2120],"measured_values":[83393250.0,168261417.0,262874250.0,333658917.0,422238750.0,524836917.0,656033417.0,725479416.0,770027583.0,867845792.0],"unit":"ns","throughput":[],"typical":{"estimate":414214.2265131095,"lower_bound":404484.31258224143,"upper_bound":425830.6413921377,"unit":"ns"},"mean":{"estimate":409071.3176201707,"lower_bound":400452.00933176104,"upper_bound":418993.0600954627,"unit":"ns"},"median":{"estimate":406469.8102201258,"lower_bound":395902.0737028302,"upper_bound":420183.3643867924,"unit":"ns"},"median_abs_dev":{"estimate":13164.162634261094,"lower_bound":2578.669699738326,"upper_bound":25421.68630374559,"unit":"ns"},"slope":{"estimate":414214.2265131095,"lower_bound":404484.31258224143,"upper_bound":425830.6413921377,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/100000","EXACT/exact_decrypt/eql_cast/100000","EXACT/exact/eql_hash/100000","EXACT/exact_decrypt/eql_hash/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_1000000.json b/results/query/exact_rows_1000000.json index cba8b26..c238cf2 100644 --- a/results/query/exact_rows_1000000.json +++ b/results/query/exact_rows_1000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[211,422,633,844,1055,1266,1477,1688,1899,2110],"measured_values":[86142666.0,205171625.0,284393875.0,373991958.0,542437125.0,511333500.0,579911000.0,711172834.0,782448250.0,888343791.0],"unit":"ns","throughput":[],"typical":{"estimate":422232.459284791,"lower_bound":409520.6501585482,"upper_bound":444806.9359810427,"unit":"ns"},"mean":{"estimate":435188.72402805986,"lower_bound":414275.1545849319,"upper_bound":459640.2660837,"unit":"ns"},"median":{"estimate":421163.46765402844,"lower_bound":407964.32332806743,"upper_bound":464653.55924170616,"unit":"ns"},"median_abs_dev":{"estimate":29074.90797362759,"lower_bound":6030.332910317761,"upper_bound":61002.88461011026,"unit":"ns"},"slope":{"estimate":422232.459284791,"lower_bound":409520.6501585482,"upper_bound":444806.9359810427,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[215,430,645,860,1075,1290,1505,1720,1935,2150],"measured_values":[85319708.0,176858042.0,288345333.0,351055667.0,453458666.0,537877625.0,635183958.0,692224417.0,792472833.0,840856833.0],"unit":"ns","throughput":[],"typical":{"estimate":407463.1278526125,"lower_bound":399035.1981602906,"upper_bound":419017.9842908458,"unit":"ns"},"mean":{"estimate":412731.4412264673,"lower_bound":404131.6816885658,"upper_bound":422555.0469052049,"unit":"ns"},"median":{"estimate":410422.2279069767,"lower_bound":402456.05639534886,"upper_bound":421822.01488372096,"unit":"ns"},"median_abs_dev":{"estimate":14355.984772560558,"lower_bound":2293.217543124437,"upper_bound":24619.19233651497,"unit":"ns"},"slope":{"estimate":407463.1278526125,"lower_bound":399035.1981602906,"upper_bound":419017.9842908458,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[222,444,666,888,1110,1332,1554,1776,1998,2220],"measured_values":[95866875.0,182268625.0,265284333.0,334231375.0,437484750.0,458928750.0,621606833.0,707735500.0,796745750.0,904789541.0],"unit":"ns","throughput":[],"typical":{"estimate":395061.63408213406,"lower_bound":378258.25240200304,"upper_bound":403348.51948672364,"unit":"ns"},"mean":{"estimate":396056.9326794652,"lower_bound":381626.9606573806,"upper_bound":408461.4978823466,"unit":"ns"},"median":{"estimate":398635.6825575576,"lower_bound":387355.7539414414,"upper_bound":407562.8563063063,"unit":"ns"},"median_abs_dev":{"estimate":9957.475676057331,"lower_bound":403.1607098094729,"upper_bound":34101.78353548822,"unit":"ns"},"slope":{"estimate":395061.63408213406,"lower_bound":378258.25240200304,"upper_bound":403348.51948672364,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[232,464,696,928,1160,1392,1624,1856,2088,2320],"measured_values":[88243208.0,207612666.0,278799042.0,395484208.0,478571250.0,556672417.0,648775167.0,735146083.0,843516791.0,925698750.0],"unit":"ns","throughput":[],"typical":{"estimate":402215.92814599193,"lower_bound":399140.24467804364,"upper_bound":407916.8365900383,"unit":"ns"},"mean":{"estimate":406558.61342450057,"lower_bound":396630.09316587984,"upper_bound":418335.3029898741,"unit":"ns"},"median":{"estimate":400240.8408764368,"lower_bound":397791.86872690887,"upper_bound":415075.7325191571,"unit":"ns"},"median_abs_dev":{"estimate":5849.9672928915925,"lower_bound":717.6021234669347,"upper_bound":29175.689513152243,"unit":"ns"},"slope":{"estimate":402215.92814599193,"lower_bound":399140.24467804364,"upper_bound":407916.8365900383,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[210,420,630,840,1050,1260,1470,1680,1890,2100],"measured_values":[84786042.0,170678834.0,254405834.0,336931209.0,433089500.0,525159334.0,645594083.0,701377083.0,781172791.0,913672875.0],"unit":"ns","throughput":[],"typical":{"estimate":422398.87032776745,"lower_bound":412384.4133400878,"upper_bound":430647.85237217596,"unit":"ns"},"mean":{"estimate":414937.5177995087,"lower_bound":407906.26444444444,"upper_bound":422981.3782133409,"unit":"ns"},"median":{"estimate":412892.56375661376,"lower_bound":403818.78412698413,"upper_bound":425937.7218253968,"unit":"ns"},"median_abs_dev":{"estimate":11555.508137070963,"lower_bound":1953.4137153199351,"upper_bound":20560.240623732832,"unit":"ns"},"slope":{"estimate":422398.87032776745,"lower_bound":412384.4133400878,"upper_bound":430647.85237217596,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[223,446,669,892,1115,1338,1561,1784,2007,2230],"measured_values":[94576959.0,175510125.0,261788959.0,377847375.0,470914500.0,544113833.0,627744500.0,721647208.0,863290500.0,922526000.0],"unit":"ns","throughput":[],"typical":{"estimate":413765.9163473298,"lower_bound":405437.2827631986,"upper_bound":422168.2700679741,"unit":"ns"},"mean":{"estimate":411203.0689675422,"lower_bound":403216.0509216848,"upper_bound":419038.5479820628,"unit":"ns"},"median":{"estimate":410175.4233931241,"lower_bound":399015.61322869954,"upper_bound":423595.7118834081,"unit":"ns"},"median_abs_dev":{"estimate":18969.650312212423,"lower_bound":1692.6047749951363,"upper_bound":22677.451953672775,"unit":"ns"},"slope":{"estimate":413765.9163473298,"lower_bound":405437.2827631986,"upper_bound":422168.2700679741,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[234,468,702,936,1170,1404,1638,1872,2106,2340],"measured_values":[96846959.0,184806125.0,287895583.0,362392250.0,472087917.0,527763333.0,632580875.0,753780125.0,833103125.0,959240833.0],"unit":"ns","throughput":[],"typical":{"estimate":397995.09513819515,"lower_bound":388289.2780465652,"upper_bound":405176.91809588496,"unit":"ns"},"mean":{"estimate":397980.22498965537,"lower_bound":390521.52005133295,"upper_bound":404927.5690147198,"unit":"ns"},"median":{"estimate":399122.9263117284,"lower_bound":387171.20726495725,"upper_bound":409931.9799145299,"unit":"ns"},"median_abs_dev":{"estimate":16155.74023003363,"lower_bound":1453.2398780459357,"upper_bound":20522.803243339717,"unit":"ns"},"slope":{"estimate":397995.09513819515,"lower_bound":388289.2780465652,"upper_bound":405176.91809588496,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[228,456,684,912,1140,1368,1596,1824,2052,2280],"measured_values":[88507417.0,171920583.0,265236958.0,368917583.0,463443000.0,567913584.0,635245250.0,734554083.0,828639667.0,955589667.0],"unit":"ns","throughput":[],"typical":{"estimate":407441.6652996127,"lower_bound":400494.612568774,"upper_bound":413885.06602371874,"unit":"ns"},"mean":{"estimate":400284.6097359719,"lower_bound":392584.05222500704,"upper_bound":407664.57211232075,"unit":"ns"},"median":{"estimate":403268.2773818226,"lower_bound":388190.4254385965,"upper_bound":409828.20120614034,"unit":"ns"},"median_abs_dev":{"estimate":12689.698582607556,"lower_bound":1333.4795968852343,"upper_bound":22165.72645463029,"unit":"ns"},"slope":{"estimate":407441.6652996127,"lower_bound":400494.612568774,"upper_bound":413885.06602371874,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/1000000","EXACT/exact_decrypt/eql_cast/1000000","EXACT/exact/eql_hash/1000000","EXACT/exact_decrypt/eql_hash/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_10000000.json b/results/query/exact_rows_10000000.json index e0bf6e5..92199ef 100644 --- a/results/query/exact_rows_10000000.json +++ b/results/query/exact_rows_10000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[87659791.0,183150958.0,280923917.0,356074625.0,443382666.0,564107208.0,673561000.0,711632541.0,829367917.0,943494625.0],"unit":"ns","throughput":[],"typical":{"estimate":420659.1896930342,"lower_bound":410588.26424158463,"upper_bound":428456.5603209687,"unit":"ns"},"mean":{"estimate":416485.52455429296,"lower_bound":408847.5372995896,"upper_bound":424291.1029545454,"unit":"ns"},"median":{"estimate":417562.4313131313,"lower_bound":403852.7032954545,"upper_bound":427353.94545454544,"unit":"ns"},"median_abs_dev":{"estimate":17962.393649853766,"lower_bound":1370.4334514767759,"upper_bound":22416.586628086632,"unit":"ns"},"slope":{"estimate":420659.1896930342,"lower_bound":410588.26424158463,"upper_bound":428456.5603209687,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[96807792.0,189640792.0,276539000.0,360274458.0,439090667.0,537887000.0,639866083.0,815004750.0,880072209.0,938338459.0],"unit":"ns","throughput":[],"typical":{"estimate":430610.5619244392,"lower_bound":413207.5996895787,"upper_bound":444583.6966673908,"unit":"ns"},"mean":{"estimate":425566.87135389616,"lower_bound":414574.67861904757,"upper_bound":437507.0519060606,"unit":"ns"},"median":{"estimate":422757.98310606065,"lower_bound":409402.79318181815,"upper_bound":440035.41818181815,"unit":"ns"},"median_abs_dev":{"estimate":21218.245472482766,"lower_bound":5935.815075072785,"upper_bound":32670.86645122616,"unit":"ns"},"slope":{"estimate":430610.5619244392,"lower_bound":413207.5996895787,"upper_bound":444583.6966673908,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000000","iteration_count":[229,458,687,916,1145,1374,1603,1832,2061,2290],"measured_values":[89731583.0,178744584.0,262831750.0,360068000.0,458324791.0,553676292.0,623562666.0,729353416.0,817719583.0,953888167.0],"unit":"ns","throughput":[],"typical":{"estimate":401381.42817444564,"lower_bound":393359.8212932275,"upper_bound":409376.4212820061,"unit":"ns"},"mean":{"estimate":396144.9364781313,"lower_bound":391059.25556597,"upper_bound":401946.62274747004,"unit":"ns"},"median":{"estimate":394922.9944201844,"lower_bound":390272.0174672489,"upper_bound":400542.70524017466,"unit":"ns"},"median_abs_dev":{"estimate":7421.630671995177,"lower_bound":2086.995772555436,"upper_bound":14625.144805941283,"unit":"ns"},"slope":{"estimate":401381.42817444564,"lower_bound":393359.8212932275,"upper_bound":409376.4212820061,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000000","iteration_count":[225,450,675,900,1125,1350,1575,1800,2025,2250],"measured_values":[87381208.0,178159166.0,271754792.0,346775584.0,434954792.0,535140292.0,610670000.0,776223833.0,835427041.0,957922708.0],"unit":"ns","throughput":[],"typical":{"estimate":411131.1177720058,"lower_bound":393317.84709020803,"upper_bound":421307.09807062906,"unit":"ns"},"mean":{"estimate":401246.5212731922,"lower_bound":392169.51302634925,"upper_bound":411571.18171481474,"unit":"ns"},"median":{"estimate":396154.73703703703,"lower_bound":387493.70311111107,"upper_bound":414171.55881481484,"unit":"ns"},"median_abs_dev":{"estimate":13310.788619597357,"lower_bound":1631.6047539665788,"upper_bound":27445.960047166413,"unit":"ns"},"slope":{"estimate":411131.1177720058,"lower_bound":393317.84709020803,"upper_bound":421307.09807062906,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000000","iteration_count":[217,434,651,868,1085,1302,1519,1736,1953,2170],"measured_values":[88467417.0,179940042.0,265099417.0,354905125.0,447658875.0,522533333.0,641236833.0,704378750.0,829459708.0,922768167.0],"unit":"ns","throughput":[],"typical":{"estimate":417179.57385839964,"lower_bound":407681.6606105757,"upper_bound":422830.6887881035,"unit":"ns"},"mean":{"estimate":413014.9619822983,"lower_bound":408206.4154377881,"upper_bound":418092.74904396164,"unit":"ns"},"median":{"estimate":410732.8485023042,"lower_bound":406716.03859447,"upper_bound":422144.0638578012,"unit":"ns"},"median_abs_dev":{"estimate":6568.1134567797635,"lower_bound":1229.1536644684963,"upper_bound":14056.84472920457,"unit":"ns"},"slope":{"estimate":417179.57385839964,"lower_bound":407681.6606105757,"upper_bound":422830.6887881035,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000000","iteration_count":[224,448,672,896,1120,1344,1568,1792,2016,2240],"measured_values":[114081708.0,183149875.0,271772250.0,360140750.0,458555250.0,648690708.0,628184375.0,644834875.0,918735917.0,938732125.0],"unit":"ns","throughput":[],"typical":{"estimate":418983.02219387755,"lower_bound":388641.7159630809,"upper_bound":446639.89639700577,"unit":"ns"},"mean":{"estimate":425182.4626922122,"lower_bound":400589.6150864955,"upper_bound":452419.05679889006,"unit":"ns"},"median":{"estimate":409120.5078125,"lower_bound":401942.80133928574,"upper_bound":455722.1810515873,"unit":"ns"},"median_abs_dev":{"estimate":13676.281515009985,"lower_bound":2813.382371927491,"upper_bound":72348.68496763738,"unit":"ns"},"slope":{"estimate":418983.02219387755,"lower_bound":388641.7159630809,"upper_bound":446639.89639700577,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000000","iteration_count":[230,460,690,920,1150,1380,1610,1840,2070,2300],"measured_values":[90392333.0,175958625.0,271973334.0,287033333.0,372406584.0,455969542.0,625728542.0,715670542.0,801169500.0,942672083.0],"unit":"ns","throughput":[],"typical":{"estimate":381105.8560022586,"lower_bound":352485.8382734114,"upper_bound":397156.9418522446,"unit":"ns"},"mean":{"estimate":371042.8905714286,"lower_bound":349406.6062608696,"upper_bound":390059.1323164855,"unit":"ns"},"median":{"estimate":387844.8370600414,"lower_bound":330412.7115942029,"upper_bound":393010.14347826084,"unit":"ns"},"median_abs_dev":{"estimate":8632.810608258727,"lower_bound":1640.5627897872255,"upper_bound":51345.791048864834,"unit":"ns"},"slope":{"estimate":381105.8560022586,"lower_bound":352485.8382734114,"upper_bound":397156.9418522446,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000000","iteration_count":[229,458,687,916,1145,1374,1603,1832,2061,2290],"measured_values":[91817000.0,181843375.0,274110875.0,363285041.0,502675166.0,530482875.0,605564209.0,723676875.0,787800417.0,878779166.0],"unit":"ns","throughput":[],"typical":{"estimate":389424.48244768335,"lower_bound":383166.8985423632,"upper_bound":401846.99946746195,"unit":"ns"},"mean":{"estimate":395746.3595950302,"lower_bound":387130.9215866735,"upper_bound":407146.1318512165,"unit":"ns"},"median":{"estimate":395809.7590065502,"lower_bound":383746.36069868994,"upper_bound":398996.90684133914,"unit":"ns"},"median_abs_dev":{"estimate":11016.518991098914,"lower_bound":1495.801344896221,"upper_bound":21576.0958493167,"unit":"ns"},"slope":{"estimate":389424.48244768335,"lower_bound":383166.8985423632,"upper_bound":401846.99946746195,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000000","EXACT/exact_decrypt/eql_cast/10000000","EXACT/exact/eql_hash/10000000","EXACT/exact_decrypt/eql_hash/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/group_by_metadata_10000.json b/results/query/group_by_metadata_10000.json index ceaa815..0c449dc 100644 --- a/results/query/group_by_metadata_10000.json +++ b/results/query/group_by_metadata_10000.json @@ -51,7 +51,8 @@ "id": "GROUP_BY/group_by/count_groups_encrypted/10000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_10000 GROUP BY eql_v2.hmac_256(value)) g" + "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_10000 GROUP BY eql_v2.hmac_256(value)) g", + "rows_returned": 1 }, { "explain": [ @@ -104,7 +105,8 @@ "id": "GROUP_BY/group_by/count_groups_plaintext/10000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_10000 GROUP BY value) g" + "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_10000 GROUP BY value) g", + "rows_returned": 1 } ], "target_rows": "10000" diff --git a/results/query/group_by_metadata_100000.json b/results/query/group_by_metadata_100000.json index e24bdba..3be3aa6 100644 --- a/results/query/group_by_metadata_100000.json +++ b/results/query/group_by_metadata_100000.json @@ -51,7 +51,8 @@ "id": "GROUP_BY/group_by/count_groups_encrypted/100000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_100000 GROUP BY eql_v2.hmac_256(value)) g" + "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_100000 GROUP BY eql_v2.hmac_256(value)) g", + "rows_returned": 1 }, { "explain": [ @@ -104,7 +105,8 @@ "id": "GROUP_BY/group_by/count_groups_plaintext/100000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_100000 GROUP BY value) g" + "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_100000 GROUP BY value) g", + "rows_returned": 1 } ], "target_rows": "100000" diff --git a/results/query/group_by_metadata_1000000.json b/results/query/group_by_metadata_1000000.json index ef3ee56..a50ff60 100644 --- a/results/query/group_by_metadata_1000000.json +++ b/results/query/group_by_metadata_1000000.json @@ -60,7 +60,8 @@ "id": "GROUP_BY/group_by/count_groups_encrypted/1000000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_1000000 GROUP BY eql_v2.hmac_256(value)) g" + "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_1000000 GROUP BY eql_v2.hmac_256(value)) g", + "rows_returned": 1 }, { "explain": [ @@ -122,7 +123,8 @@ "id": "GROUP_BY/group_by/count_groups_plaintext/1000000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_1000000 GROUP BY value) g" + "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_1000000 GROUP BY value) g", + "rows_returned": 1 } ], "target_rows": "1000000" diff --git a/results/query/group_by_rows_10000.json b/results/query/group_by_rows_10000.json index 64af36c..add308e 100644 --- a/results/query/group_by_rows_10000.json +++ b/results/query/group_by_rows_10000.json @@ -1,3 +1,3 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_10000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[95077583.0,172090834.0,265313166.0,366995625.0,438507917.0,529978583.0,676661875.0,758434792.0,813326292.0,901405500.0],"unit":"ns","throughput":[],"typical":{"estimate":4573207.197532468,"lower_bound":4471676.503278612,"upper_bound":4689201.512845333,"unit":"ns"},"mean":{"estimate":4546607.223130953,"lower_bound":4444649.737580357,"upper_bound":4653365.873632441,"unit":"ns"},"median":{"estimate":4512753.45,"lower_bound":4403482.635,"upper_bound":4740217.45,"unit":"ns"},"median_abs_dev":{"estimate":166006.3768192982,"lower_bound":27284.97672459461,"upper_bound":302377.27597672935,"unit":"ns"},"slope":{"estimate":4573207.197532468,"lower_bound":4471676.503278612,"upper_bound":4689201.512845333,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_10000","iteration_count":[35,70,105,140,175,210,245,280,315,350],"measured_values":[92137083.0,167581083.0,254126458.0,352953584.0,458147750.0,513583583.0,621622750.0,694217542.0,781033958.0,882452875.0],"unit":"ns","throughput":[],"typical":{"estimate":2503351.923191095,"lower_bound":2476122.120426632,"upper_bound":2533048.11805752,"unit":"ns"},"mean":{"estimate":2504882.6708730157,"lower_bound":2460385.454452381,"upper_bound":2551589.9963492057,"unit":"ns"},"median":{"estimate":2500284.9555555554,"lower_bound":2445636.1095238095,"upper_bound":2569640.5357142854,"unit":"ns"},"median_abs_dev":{"estimate":67902.78580448443,"lower_bound":11963.607507603243,"upper_bound":143503.3189223061,"unit":"ns"},"slope":{"estimate":2503351.923191095,"lower_bound":2476122.120426632,"upper_bound":2533048.11805752,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_10000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[86256625.0,177621833.0,282895167.0,364681209.0,441698750.0,545241292.0,609450417.0,719834917.0,790208917.0,877664083.0],"unit":"ns","throughput":[],"typical":{"estimate":4926725.175757576,"lower_bound":4882088.560606061,"upper_bound":5001850.122207368,"unit":"ns"},"mean":{"estimate":4957559.113361994,"lower_bound":4885290.0437015,"upper_bound":5041165.023962136,"unit":"ns"},"median":{"estimate":4920851.847222222,"lower_bound":4857370.446208113,"upper_bound":5048530.481481481,"unit":"ns"},"median_abs_dev":{"estimate":120050.21099159923,"lower_bound":23612.121925800853,"upper_bound":224400.48422790028,"unit":"ns"},"slope":{"estimate":4926725.175757576,"lower_bound":4882088.560606061,"upper_bound":5001850.122207368,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_10000","iteration_count":[33,66,99,132,165,198,231,264,297,330],"measured_values":[101797541.0,192063125.0,283459958.0,391344042.0,478774208.0,568160792.0,644830833.0,788726333.0,888472916.0,916804209.0],"unit":"ns","throughput":[],"typical":{"estimate":2888031.51940181,"lower_bound":2812533.6131837685,"upper_bound":2967599.5057159085,"unit":"ns"},"mean":{"estimate":2914270.2710377583,"lower_bound":2859170.864146224,"upper_bound":2970415.064183501,"unit":"ns"},"median":{"estimate":2905854.6075757574,"lower_bound":2830487.208513709,"upper_bound":2987599.746212121,"unit":"ns"},"median_abs_dev":{"estimate":104240.21196550273,"lower_bound":19690.254288609933,"upper_bound":159583.36964258642,"unit":"ns"},"slope":{"estimate":2888031.51940181,"lower_bound":2812533.6131837685,"upper_bound":2967599.5057159085,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/10000","GROUP_BY/group_by/count_groups_plaintext/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_100000.json b/results/query/group_by_rows_100000.json index 3653462..df92eec 100644 --- a/results/query/group_by_rows_100000.json +++ b/results/query/group_by_rows_100000.json @@ -1,3 +1,3 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[131286833.0,263602250.0,415800292.0,568196959.0,673966792.0,798272459.0,954124791.0,1060360458.0,1213949083.0,1344546875.0],"unit":"ns","throughput":[],"typical":{"estimate":67364826.56753246,"lower_bound":66837911.505813695,"upper_bound":68092186.61750242,"unit":"ns"},"mean":{"estimate":67488129.054127,"lower_bound":66588632.902738094,"upper_bound":68536485.2322113,"unit":"ns"},"median":{"estimate":67312011.475,"lower_bound":66211633.70833333,"upper_bound":68370832.19444445,"unit":"ns"},"median_abs_dev":{"estimate":1393082.1890053456,"lower_bound":185455.68172000718,"upper_bound":2556849.2280818447,"unit":"ns"},"slope":{"estimate":67364826.56753246,"lower_bound":66837911.505813695,"upper_bound":68092186.61750242,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[85279875.0,169874667.0,252936000.0,351706333.0,442164750.0,535677167.0,604400625.0,750451916.0,826759958.0,874071250.0],"unit":"ns","throughput":[],"typical":{"estimate":29810840.794805195,"lower_bound":29057800.70096022,"upper_bound":30535375.522130966,"unit":"ns"},"mean":{"estimate":29319568.268915344,"lower_bound":28755931.097222216,"upper_bound":29949585.44351852,"unit":"ns"},"median":{"estimate":29222284.708333332,"lower_bound":28426625.0,"upper_bound":30049194.592592593,"unit":"ns"},"median_abs_dev":{"estimate":988314.1975705829,"lower_bound":253481.35299980734,"upper_bound":1711138.819748992,"unit":"ns"},"slope":{"estimate":29810840.794805195,"lower_bound":29057800.70096022,"upper_bound":30535375.522130966,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[136187333.0,276621667.0,417320084.0,519667083.0,686361958.0,846133125.0,903355375.0,1060869625.0,1192959750.0,1325613292.0],"unit":"ns","throughput":[],"typical":{"estimate":66664783.22857143,"lower_bound":65808683.71118042,"upper_bound":68043007.38113022,"unit":"ns"},"mean":{"estimate":67429404.72660713,"lower_bound":66241445.31793006,"upper_bound":68629002.57666668,"unit":"ns"},"median":{"estimate":67199009.03125,"lower_bound":65619524.9875,"upper_bound":69155416.75,"unit":"ns"},"median_abs_dev":{"estimate":2515671.54892165,"lower_bound":25154.40581466929,"upper_bound":3321948.5737798735,"unit":"ns"},"slope":{"estimate":66664783.22857143,"lower_bound":65808683.71118042,"upper_bound":68043007.38113022,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[86579417.0,179637416.0,261585417.0,365736333.0,432687000.0,535644458.0,594867583.0,711881791.0,818883125.0,871821334.0],"unit":"ns","throughput":[],"typical":{"estimate":29452940.65281385,"lower_bound":28933020.367364746,"upper_bound":29991220.646733113,"unit":"ns"},"mean":{"estimate":29432475.934431214,"lower_bound":29021813.36279167,"upper_bound":29846405.513425924,"unit":"ns"},"median":{"estimate":29363393.8125,"lower_bound":28859805.666666668,"upper_bound":30043515.037037037,"unit":"ns"},"median_abs_dev":{"estimate":757002.172273024,"lower_bound":148931.2197959438,"upper_bound":1138850.8404521886,"unit":"ns"},"slope":{"estimate":29452940.65281385,"lower_bound":28933020.367364746,"upper_bound":29991220.646733113,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/100000","GROUP_BY/group_by/count_groups_plaintext/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_1000000.json b/results/query/group_by_rows_1000000.json index 873a07c..1fff06f 100644 --- a/results/query/group_by_rows_1000000.json +++ b/results/query/group_by_rows_1000000.json @@ -1,3 +1,3 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[819699458.0,788979959.0,817649666.0,804854459.0,802532333.0,793269458.0,781540125.0,769183250.0,773398291.0,778061750.0],"unit":"ns","throughput":[],"typical":{"estimate":792916874.9,"lower_bound":782620416.5,"upper_bound":803568750.09,"unit":"ns"},"mean":{"estimate":792916874.9,"lower_bound":782620416.5,"upper_bound":803568750.09,"unit":"ns"},"median":{"estimate":791124708.5,"lower_bound":777469208.0,"upper_bound":810090999.5,"unit":"ns"},"median_abs_dev":{"estimate":19861434.829089046,"lower_bound":5515148.846286535,"upper_bound":30597156.21549189,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_1000000","iteration_count":[2,2,2,2,2,2,2,2,2,2],"measured_values":[848456250.0,897164750.0,868287750.0,824307208.0,836952250.0,825406958.0,822174000.0,836013833.0,828611583.0,834499292.0],"unit":"ns","throughput":[],"typical":{"estimate":421093693.7,"lower_bound":415049940.52625,"upper_bound":428815079.02875,"unit":"ns"},"mean":{"estimate":421093693.7,"lower_bound":415049940.52625,"upper_bound":428815079.02875,"unit":"ns"},"median":{"estimate":417628281.25,"lower_bound":412703479.0,"upper_bound":426310000.0,"unit":"ns"},"median_abs_dev":{"estimate":7709134.016485512,"lower_bound":909188.866558671,"upper_bound":15893765.272629261,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[770993667.0,812247375.0,745080417.0,757971750.0,766323125.0,754502542.0,752845000.0,775702292.0,778197834.0,813590792.0],"unit":"ns","throughput":[],"typical":{"estimate":772745479.4,"lower_bound":760004121.0,"upper_bound":787562483.5,"unit":"ns"},"mean":{"estimate":772745479.4,"lower_bound":760004121.0,"upper_bound":787562483.5,"unit":"ns"},"median":{"estimate":768658396.0,"lower_bound":754502542.0,"upper_bound":793974833.5,"unit":"ns"},"median_abs_dev":{"estimate":18415744.923055172,"lower_bound":3699890.503513813,"upper_bound":38418983.76792669,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_1000000","iteration_count":[2,2,2,2,2,2,2,2,2,2],"measured_values":[789508083.0,793268792.0,798170125.0,803179542.0,795938625.0,798126083.0,795441792.0,795891750.0,779796667.0,781698084.0],"unit":"ns","throughput":[],"typical":{"estimate":396550977.15,"lower_bound":394249014.7,"upper_bound":398585391.7,"unit":"ns"},"mean":{"estimate":396550977.15,"lower_bound":394249014.7,"upper_bound":398585391.7,"unit":"ns"},"median":{"estimate":397833385.5,"lower_bound":393741719.0,"upper_bound":399063041.5,"unit":"ns"},"median_abs_dev":{"estimate":1839412.120243907,"lower_bound":184151.1481806636,"upper_bound":6089037.721247971,"unit":"ns"},"slope":null,"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/1000000","GROUP_BY/group_by/count_groups_plaintext/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/match_metadata_10000.json b/results/query/match_metadata_10000.json index 3ae4786..21bf7bc 100644 --- a/results/query/match_metadata_10000.json +++ b/results/query/match_metadata_10000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,91,461,1393}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1393,461,1554,453,91}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,91,461,1393}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1393,461,1554,453,91}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.73 @@ -51,11 +51,11 @@ { "bf": [ 1033, + 1393, + 461, 1554, 453, - 91, - 461, - 1393 + 91 ], "i": { "c": "value", @@ -64,7 +64,8 @@ "v": 2 } ], - "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE value LIKE $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE value LIKE $1 LIMIT 10", + "rows_returned": 4 }, { "explain": [ @@ -87,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,1500,1574,1596,1183,865,710,1637,998,1496,61,1735,587,1031,895,1068,1453,1751,1143,421,1200,2028,792,582,1109,1057,682,1018,830,1760}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1574,61,1057,1751,1109,1031,1596,1183,1143,710,865,1068,1760,587,1500,2028,1845,792,1453,1735,421,682,582,1018,1200,1637,830,998,895,1496}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -98,7 +99,7 @@ "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,1500,1574,1596,1183,865,710,1637,998,1496,61,1735,587,1031,895,1068,1453,1751,1143,421,1200,2028,792,582,1109,1057,682,1018,830,1760}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1574,61,1057,1751,1109,1031,1596,1183,1143,710,865,1068,1760,587,1500,2028,1845,792,1453,1735,421,682,582,1018,1200,1637,830,998,895,1496}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -116,36 +117,36 @@ "parameters": [ { "bf": [ - 1845, - 1500, 1574, + 61, + 1057, + 1751, + 1109, + 1031, 1596, 1183, - 865, + 1143, 710, - 1637, - 998, - 1496, - 61, - 1735, - 587, - 1031, - 895, + 865, 1068, - 1453, - 1751, - 1143, - 421, - 1200, + 1760, + 587, + 1500, 2028, + 1845, 792, - 582, - 1109, - 1057, + 1453, + 1735, + 421, 682, + 582, 1018, + 1200, + 1637, 830, - 1760 + 998, + 895, + 1496 ], "i": { "c": "value", @@ -154,7 +155,8 @@ "v": 2 } ], - "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE value LIKE $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE value LIKE $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -177,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{865,998,1735,1018,1751,1760,1031,1637,1057,710,1496,1200,587,895,1453,830,582,1596,1109,421,1143,61,792,1574,1845,2028,1183,1068,1500,682}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{61,1751,1760,587,1200,421,1845,1596,1018,1500,1735,1143,1183,582,1109,682,1496,830,1031,865,1574,710,1453,1068,792,2028,895,1637,998,1057}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -188,7 +190,7 @@ "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{865,998,1735,1018,1751,1760,1031,1637,1057,710,1496,1200,587,895,1453,830,582,1596,1109,421,1143,61,792,1574,1845,2028,1183,1068,1500,682}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{61,1751,1760,587,1200,421,1845,1596,1018,1500,1735,1143,1183,582,1109,682,1496,830,1031,865,1574,710,1453,1068,792,2028,895,1637,998,1057}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -206,36 +208,36 @@ "parameters": [ { "bf": [ - 865, - 998, - 1735, - 1018, + 61, 1751, 1760, - 1031, - 1637, - 1057, - 710, - 1496, - 1200, 587, - 895, - 1453, - 830, - 582, - 1596, - 1109, + 1200, 421, - 1143, - 61, - 792, - 1574, 1845, - 2028, + 1596, + 1018, + 1500, + 1735, + 1143, 1183, + 582, + 1109, + 682, + 1496, + 830, + 1031, + 865, + 1574, + 710, + 1453, 1068, - 1500, - 682 + 792, + 2028, + 895, + 1637, + 998, + 1057 ], "i": { "c": "value", @@ -244,7 +246,8 @@ "v": 2 } ], - "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10" + "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10", + "rows_returned": 10 } ], "target_rows": "10000" diff --git a/results/query/match_metadata_100000.json b/results/query/match_metadata_100000.json index 5612acb..5a505ca 100644 --- a/results/query/match_metadata_100000.json +++ b/results/query/match_metadata_100000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,91,453,1033,461,1393}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1393,1033,91,1554,461,453}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,91,453,1033,461,1393}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1393,1033,91,1554,461,453}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 1554, - 91, - 453, + 1393, 1033, + 91, + 1554, 461, - 1393 + 453 ], "i": { "c": "value", @@ -64,7 +64,8 @@ "v": 2 } ], - "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE value LIKE $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE value LIKE $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -87,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1057,1845,582,1018,587,1031,1735,1453,1496,421,1183,710,1500,1760,682,830,1751,1596,998,2028,1637,61,1068,792,1574,895,1143,1200,865,1109}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,1068,2028,682,1735,710,1500,1596,1574,1057,830,1845,865,1018,1496,1637,1453,582,998,587,1751,1143,61,1200,1109,895,1183,421,1031}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -98,7 +99,7 @@ "Total Cost": 454.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1057,1845,582,1018,587,1031,1735,1453,1496,421,1183,710,1500,1760,682,830,1751,1596,998,2028,1637,61,1068,792,1574,895,1143,1200,865,1109}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,1068,2028,682,1735,710,1500,1596,1574,1057,830,1845,865,1018,1496,1637,1453,582,998,587,1751,1143,61,1200,1109,895,1183,421,1031}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 454.35, "Total Cost": 458.86 @@ -116,36 +117,36 @@ "parameters": [ { "bf": [ - 1057, - 1845, - 582, - 1018, - 587, - 1031, + 792, + 1760, + 1068, + 2028, + 682, 1735, - 1453, - 1496, - 421, - 1183, 710, 1500, - 1760, - 682, - 830, - 1751, 1596, - 998, - 2028, - 1637, - 61, - 1068, - 792, 1574, - 895, + 1057, + 830, + 1845, + 865, + 1018, + 1496, + 1637, + 1453, + 582, + 998, + 587, + 1751, 1143, + 61, 1200, - 865, - 1109 + 1109, + 895, + 1183, + 421, + 1031 ], "i": { "c": "value", @@ -154,7 +155,8 @@ "v": 2 } ], - "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE value LIKE $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE value LIKE $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -177,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{61,1760,1453,2028,865,1500,998,792,1031,1735,1068,1496,682,1109,1637,1143,895,587,421,1845,1596,830,582,1057,710,1018,1183,1574,1200,1751}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{582,587,1109,1068,61,1751,1496,1500,1057,792,710,1183,1031,1637,682,1735,1760,865,1018,1845,1596,2028,1143,998,1200,830,1453,895,1574,421}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -188,7 +190,7 @@ "Total Cost": 454.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{61,1760,1453,2028,865,1500,998,792,1031,1735,1068,1496,682,1109,1637,1143,895,587,421,1845,1596,830,582,1057,710,1018,1183,1574,1200,1751}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{582,587,1109,1068,61,1751,1496,1500,1057,792,710,1183,1031,1637,682,1735,1760,865,1018,1845,1596,2028,1143,998,1200,830,1453,895,1574,421}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 454.35, "Total Cost": 458.86 @@ -206,36 +208,36 @@ "parameters": [ { "bf": [ + 582, + 587, + 1109, + 1068, 61, - 1760, - 1453, - 2028, - 865, + 1751, + 1496, 1500, - 998, + 1057, 792, + 710, + 1183, 1031, - 1735, - 1068, - 1496, - 682, - 1109, 1637, - 1143, - 895, - 587, - 421, + 682, + 1735, + 1760, + 865, + 1018, 1845, 1596, + 2028, + 1143, + 998, + 1200, 830, - 582, - 1057, - 710, - 1018, - 1183, + 1453, + 895, 1574, - 1200, - 1751 + 421 ], "i": { "c": "value", @@ -244,7 +246,8 @@ "v": 2 } ], - "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10" + "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10", + "rows_returned": 10 } ], "target_rows": "100000" diff --git a/results/query/match_metadata_1000000.json b/results/query/match_metadata_1000000.json index 06bcc5d..441f496 100644 --- a/results/query/match_metadata_1000000.json +++ b/results/query/match_metadata_1000000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,461,91,1393}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,461,1393,91}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 307.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,461,91,1393}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,461,1393,91}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 307.85, "Total Cost": 312.36 @@ -54,8 +54,8 @@ 1554, 453, 461, - 91, - 1393 + 1393, + 91 ], "i": { "c": "value", @@ -64,7 +64,8 @@ "v": 2 } ], - "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE value LIKE $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE value LIKE $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -87,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,682,830,1735,1031,1018,865,1637,1453,61,1183,421,1760,1143,587,710,792,1596,582,1068,1500,2028,1109,1751,1574,1496,1057,895,998,1200}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1751,2028,1143,1574,865,710,61,1200,1845,1637,1500,998,1453,587,895,792,1735,1068,1496,582,830,1018,421,1183,1596,1760,1109,682,1057}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -98,7 +99,7 @@ "Total Cost": 1530.98 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,682,830,1735,1031,1018,865,1637,1453,61,1183,421,1760,1143,587,710,792,1596,582,1068,1500,2028,1109,1751,1574,1496,1057,895,998,1200}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1751,2028,1143,1574,865,710,61,1200,1845,1637,1500,998,1453,587,895,792,1735,1068,1496,582,830,1018,421,1183,1596,1760,1109,682,1057}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1530.98, "Total Cost": 1535.49 @@ -116,36 +117,36 @@ "parameters": [ { "bf": [ - 1845, - 682, - 830, - 1735, 1031, - 1018, + 1751, + 2028, + 1143, + 1574, 865, + 710, + 61, + 1200, + 1845, 1637, + 1500, + 998, 1453, - 61, - 1183, - 421, - 1760, - 1143, 587, - 710, + 895, 792, - 1596, - 582, + 1735, 1068, - 1500, - 2028, - 1109, - 1751, - 1574, 1496, - 1057, - 895, - 998, - 1200 + 582, + 830, + 1018, + 421, + 1183, + 1596, + 1760, + 1109, + 682, + 1057 ], "i": { "c": "value", @@ -154,7 +155,8 @@ "v": 2 } ], - "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE value LIKE $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE value LIKE $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -177,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{2028,865,421,587,1496,1057,582,682,1143,895,710,1751,1500,1031,1760,1596,998,1574,1068,1735,1109,61,1200,1183,1637,792,830,1018,1453,1845}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{865,2028,1200,582,1143,1109,895,1057,1068,1496,587,1574,830,1760,1751,1500,1735,1637,1183,421,1031,792,1596,1453,682,710,1845,998,1018,61}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -188,7 +190,7 @@ "Total Cost": 1530.98 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{2028,865,421,587,1496,1057,582,682,1143,895,710,1751,1500,1031,1760,1596,998,1574,1068,1735,1109,61,1200,1183,1637,792,830,1018,1453,1845}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{865,2028,1200,582,1143,1109,895,1057,1068,1496,587,1574,830,1760,1751,1500,1735,1637,1183,421,1031,792,1596,1453,682,710,1845,998,1018,61}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1530.98, "Total Cost": 1535.49 @@ -206,36 +208,36 @@ "parameters": [ { "bf": [ - 2028, 865, - 421, - 587, - 1496, - 1057, + 2028, + 1200, 582, - 682, 1143, + 1109, 895, - 710, + 1057, + 1068, + 1496, + 587, + 1574, + 830, + 1760, 1751, 1500, - 1031, - 1760, - 1596, - 998, - 1574, - 1068, 1735, - 1109, - 61, - 1200, - 1183, 1637, + 1183, + 421, + 1031, 792, - 830, - 1018, + 1596, 1453, - 1845 + 682, + 710, + 1845, + 998, + 1018, + 61 ], "i": { "c": "value", @@ -244,7 +246,8 @@ "v": 2 } ], - "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10" + "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10", + "rows_returned": 10 } ], "target_rows": "1000000" diff --git a/results/query/match_rows_10000.json b/results/query/match_rows_10000.json index bc4d447..6cf7aef 100644 --- a/results/query/match_rows_10000.json +++ b/results/query/match_rows_10000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[150,300,450,600,750,900,1050,1200,1350,1500],"measured_values":[79479167.0,157123333.0,238910375.0,373937417.0,440285500.0,518266958.0,641894375.0,800913875.0,963658000.0,1204410000.0],"unit":"ns","throughput":[],"typical":{"estimate":684585.7921904762,"lower_bound":598711.898396888,"upper_bound":743886.6829296876,"unit":"ns"},"mean":{"estimate":616616.2984431217,"lower_bound":567927.4857566138,"upper_bound":672926.7476111111,"unit":"ns"},"median":{"estimate":599187.6547619049,"lower_bound":530911.9444444445,"upper_bound":668524.884537037,"unit":"ns"},"median_abs_dev":{"estimate":101199.52006793264,"lower_bound":8822.249796873732,"upper_bound":142041.99072825056,"unit":"ns"},"slope":{"estimate":684585.7921904762,"lower_bound":598711.898396888,"upper_bound":743886.6829296876,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[109469166.0,195231042.0,320094667.0,392525416.0,527642125.0,648652333.0,696668833.0,823312667.0,949034834.0,1042336208.0],"unit":"ns","throughput":[],"typical":{"estimate":25966428.76038961,"lower_bound":25467465.066742133,"upper_bound":26364861.717566177,"unit":"ns"},"mean":{"estimate":25941788.71409722,"lower_bound":25326434.16076389,"upper_bound":26532874.15080555,"unit":"ns"},"median":{"estimate":26210241.961111113,"lower_bound":24881029.75,"upper_bound":26704643.395833336,"unit":"ns"},"median_abs_dev":{"estimate":962696.416974348,"lower_bound":231639.09302924856,"upper_bound":1745576.8111798156,"unit":"ns"},"slope":{"estimate":25966428.76038961,"lower_bound":25467465.066742133,"upper_bound":26364861.717566177,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[97,194,291,388,485,582,679,776,873,970],"measured_values":[96921667.0,188224667.0,285696875.0,465213875.0,454994083.0,626047333.0,665984584.0,830531375.0,911754583.0,1105617042.0],"unit":"ns","throughput":[],"typical":{"estimate":1065488.721221047,"lower_bound":1010844.885555092,"upper_bound":1109574.0482016976,"unit":"ns"},"mean":{"estimate":1039932.6241167566,"lower_bound":994677.7351358716,"upper_bound":1090920.9307492124,"unit":"ns"},"median":{"estimate":1021792.4318442154,"lower_bound":976003.2225085911,"upper_bound":1105041.886984536,"unit":"ns"},"median_abs_dev":{"estimate":74161.24314097782,"lower_bound":9259.333401077882,"upper_bound":135915.42305080727,"unit":"ns"},"slope":{"estimate":1065488.721221047,"lower_bound":1010844.885555092,"upper_bound":1109574.0482016976,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118346584.0,254439417.0,344248042.0,438958959.0,529299500.0,647015084.0,786051208.0,854888125.0,1013985208.0,1116488833.0],"unit":"ns","throughput":[],"typical":{"estimate":27647150.676623378,"lower_bound":27097325.53894941,"upper_bound":28070205.347938143,"unit":"ns"},"mean":{"estimate":28180476.966676585,"lower_bound":27348365.990228176,"upper_bound":29190559.72644494,"unit":"ns"},"median":{"estimate":27992739.126785714,"lower_bound":26958961.833333332,"upper_bound":28876450.888888888,"unit":"ns"},"median_abs_dev":{"estimate":1281244.3647533655,"lower_bound":188316.10715088953,"upper_bound":2294186.613230878,"unit":"ns"},"slope":{"estimate":27647150.676623378,"lower_bound":27097325.53894941,"upper_bound":28070205.347938143,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[105,210,315,420,525,630,735,840,945,1050],"measured_values":[97749084.0,192323625.0,307047958.0,388663166.0,474692709.0,603252542.0,674222084.0,761934333.0,946730166.0,882258167.0],"unit":"ns","throughput":[],"typical":{"estimate":917980.3113172542,"lower_bound":871092.9861612733,"upper_bound":970646.6245112782,"unit":"ns"},"mean":{"estimate":927508.5038378686,"lower_bound":901190.9043420351,"upper_bound":952917.0284126985,"unit":"ns"},"median":{"estimate":921348.7241496599,"lower_bound":907064.6821428571,"upper_bound":957543.7174603174,"unit":"ns"},"median_abs_dev":{"estimate":23318.46402980025,"lower_bound":7088.091614161233,"upper_bound":76385.3544738888,"unit":"ns"},"slope":{"estimate":917980.3113172542,"lower_bound":871092.9861612733,"upper_bound":970646.6245112782,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[99902875.0,216142958.0,321749167.0,458766875.0,583511083.0,682329708.0,734316000.0,889337417.0,1070725708.0,1050275250.0],"unit":"ns","throughput":[],"typical":{"estimate":27752099.131818183,"lower_bound":26696137.06870856,"upper_bound":28994764.054195803,"unit":"ns"},"mean":{"estimate":27510153.515843254,"lower_bound":26618531.737648807,"upper_bound":28387635.370347224,"unit":"ns"},"median":{"estimate":27404832.015625,"lower_bound":26256881.25,"upper_bound":28802979.325,"unit":"ns"},"median_abs_dev":{"estimate":1725161.7451128813,"lower_bound":435038.68370151817,"upper_bound":2560958.501008898,"unit":"ns"},"slope":{"estimate":27752099.131818183,"lower_bound":26696137.06870856,"upper_bound":28994764.054195803,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[154,308,462,616,770,924,1078,1232,1386,1540],"measured_values":[96502875.0,199887166.0,277977291.0,359754709.0,500973292.0,559198917.0,728690125.0,819679166.0,810644750.0,946156584.0],"unit":"ns","throughput":[],"typical":{"estimate":624808.9166975882,"lower_bound":600455.3910885862,"upper_bound":654062.7602060387,"unit":"ns"},"mean":{"estimate":625769.1509575346,"lower_bound":606750.5565512264,"upper_bound":645361.0408194187,"unit":"ns"},"median":{"estimate":620514.7188311688,"lower_bound":595037.2025613275,"upper_bound":657154.1517857143,"unit":"ns"},"median_abs_dev":{"estimate":43417.59364736542,"lower_bound":9418.174935521247,"upper_bound":55065.555070442904,"unit":"ns"},"slope":{"estimate":624808.9166975882,"lower_bound":600455.3910885862,"upper_bound":654062.7602060387,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[100773375.0,199089875.0,302744791.0,423145916.0,514937166.0,606023833.0,704467750.0,807176375.0,908916041.0,1005113083.0],"unit":"ns","throughput":[],"typical":{"estimate":25279649.635714285,"lower_bound":25174792.889522344,"upper_bound":25503939.599137932,"unit":"ns"},"mean":{"estimate":25351210.089930553,"lower_bound":25137479.488750003,"upper_bound":25640619.520000003,"unit":"ns"},"median":{"estimate":25226497.151041664,"lower_bound":25159562.5,"upper_bound":25497263.05277778,"unit":"ns"},"median_abs_dev":{"estimate":74195.27169214193,"lower_bound":16501.677469538503,"upper_bound":504473.5828031749,"unit":"ns"},"slope":{"estimate":25279649.635714285,"lower_bound":25174792.889522344,"upper_bound":25503939.599137932,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[102,204,306,408,510,612,714,816,918,1020],"measured_values":[89667833.0,188272250.0,275081667.0,362387167.0,453058000.0,517111541.0,634793709.0,763245084.0,787533625.0,980601750.0],"unit":"ns","throughput":[],"typical":{"estimate":905329.8194041253,"lower_bound":866394.0425503143,"upper_bound":938765.2071420747,"unit":"ns"},"mean":{"estimate":896613.5860449735,"lower_bound":876610.240328548,"upper_bound":917615.9939907212,"unit":"ns"},"median":{"estimate":888707.919467787,"lower_bound":873041.8032407407,"upper_bound":922903.1862745098,"unit":"ns"},"median_abs_dev":{"estimate":30452.551778313325,"lower_bound":747.3471882024654,"upper_bound":57784.10262069572,"unit":"ns"},"slope":{"estimate":905329.8194041253,"lower_bound":866394.0425503143,"upper_bound":938765.2071420747,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[112266500.0,223858708.0,326713250.0,428076917.0,541889792.0,655507500.0,791948375.0,870489292.0,976733875.0,1047764625.0],"unit":"ns","throughput":[],"typical":{"estimate":27058915.181818184,"lower_bound":26571907.30551736,"upper_bound":27645751.143552396,"unit":"ns"},"mean":{"estimate":27324945.014265876,"lower_bound":26952125.22204514,"upper_bound":27699403.675731644,"unit":"ns"},"median":{"estimate":27214447.270833336,"lower_bound":26943151.920138888,"upper_bound":27982338.5,"unit":"ns"},"median_abs_dev":{"estimate":429655.7148733388,"lower_bound":70132.6414632322,"upper_bound":1252011.9204806797,"unit":"ns"},"slope":{"estimate":27058915.181818184,"lower_bound":26571907.30551736,"upper_bound":27645751.143552396,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[93,186,279,372,465,558,651,744,837,930],"measured_values":[83703583.0,177819625.0,266780958.0,349364625.0,442809625.0,445491708.0,610049958.0,692789958.0,802470375.0,862496083.0],"unit":"ns","throughput":[],"typical":{"estimate":926798.1051529116,"lower_bound":889770.517529798,"upper_bound":949317.1357021206,"unit":"ns"},"mean":{"estimate":925649.2503225807,"lower_bound":893612.9755376342,"upper_bound":947673.2529569892,"unit":"ns"},"median":{"estimate":938124.4637096775,"lower_bound":915603.9126344086,"upper_bound":956019.4892473118,"unit":"ns"},"median_abs_dev":{"estimate":23758.16439998241,"lower_bound":2772.9999910920064,"upper_bound":41635.576076949794,"unit":"ns"},"slope":{"estimate":926798.1051529116,"lower_bound":889770.517529798,"upper_bound":949317.1357021206,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[121214625.0,227328333.0,317674375.0,467905583.0,531744125.0,638356708.0,776768500.0,898474584.0,964465083.0,1077976458.0],"unit":"ns","throughput":[],"typical":{"estimate":27256171.506493505,"lower_bound":26864181.101895366,"upper_bound":27815083.560019035,"unit":"ns"},"mean":{"estimate":27718123.490535714,"lower_bound":27011480.736750003,"upper_bound":28522234.94768899,"unit":"ns"},"median":{"estimate":27345571.79642857,"lower_bound":26598196.166666668,"upper_bound":28660714.84375,"unit":"ns"},"median_abs_dev":{"estimate":1116205.9140933787,"lower_bound":142700.67989155833,"upper_bound":2184738.518481888,"unit":"ns"},"slope":{"estimate":27256171.506493505,"lower_bound":26864181.101895366,"upper_bound":27815083.560019035,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000","MATCH/match_decrypt/eql_cast_firstname/10000","MATCH/match/eql_cast_lastname/10000","MATCH/match_decrypt/eql_cast_lastname/10000","MATCH/match/eql_bloom/10000","MATCH/match_decrypt/eql_bloom/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_100000.json b/results/query/match_rows_100000.json index 6e83b00..d0ad9bf 100644 --- a/results/query/match_rows_100000.json +++ b/results/query/match_rows_100000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[80,160,240,320,400,480,560,640,720,800],"measured_values":[90998250.0,174837917.0,260162666.0,358067750.0,492411625.0,534069167.0,638781625.0,726293500.0,813246417.0,953085833.0],"unit":"ns","throughput":[],"typical":{"estimate":1151032.521655844,"lower_bound":1124857.3887223974,"upper_bound":1176945.2280598958,"unit":"ns"},"mean":{"estimate":1137324.2364464286,"lower_bound":1113468.7064583332,"upper_bound":1165073.8812976188,"unit":"ns"},"median":{"estimate":1132171.253125,"lower_bound":1105849.35,"upper_bound":1164417.708125,"unit":"ns"},"median_abs_dev":{"estimate":24267.707557287147,"lower_bound":4683.252240605836,"upper_bound":73107.23450508718,"unit":"ns"},"slope":{"estimate":1151032.521655844,"lower_bound":1124857.3887223974,"upper_bound":1176945.2280598958,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[112409292.0,210066959.0,320292250.0,439739834.0,555700916.0,685194917.0,826472500.0,906830042.0,1015678000.0,1141386958.0],"unit":"ns","throughput":[],"typical":{"estimate":28400631.684415583,"lower_bound":28000326.018404003,"upper_bound":28759666.243362833,"unit":"ns"},"mean":{"estimate":27947355.28819444,"lower_bound":27375424.40916667,"upper_bound":28490813.840260416,"unit":"ns"},"median":{"estimate":28157800.388888888,"lower_bound":27238033.316666666,"upper_bound":28534673.95,"unit":"ns"},"median_abs_dev":{"estimate":569956.9312870748,"lower_bound":164501.55061284456,"upper_bound":1601680.3557232374,"unit":"ns"},"slope":{"estimate":28400631.684415583,"lower_bound":28000326.018404003,"upper_bound":28759666.243362833,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[35,70,105,140,175,210,245,280,315,350],"measured_values":[88724083.0,173675042.0,276532459.0,373315708.0,468107458.0,578949041.0,659868500.0,772484583.0,839002125.0,962670667.0],"unit":"ns","throughput":[],"typical":{"estimate":2712419.136994434,"lower_bound":2671203.1497193226,"upper_bound":2741266.6900366303,"unit":"ns"},"mean":{"estimate":2661422.9778469387,"lower_bound":2603959.6662993203,"upper_bound":2711930.7151583335,"unit":"ns"},"median":{"estimate":2670720.265714286,"lower_bound":2599236.3047619048,"upper_bound":2750487.62,"unit":"ns"},"median_abs_dev":{"estimate":86617.31062823533,"lower_bound":7679.27941266485,"upper_bound":157318.5753655367,"unit":"ns"},"slope":{"estimate":2712419.136994434,"lower_bound":2671203.1497193226,"upper_bound":2741266.6900366303,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[129953042.0,234708083.0,333776833.0,512513750.0,596853458.0,728419750.0,857053292.0,1014069167.0,1069564708.0,1218935834.0],"unit":"ns","throughput":[],"typical":{"estimate":30475914.018831167,"lower_bound":29931285.21493074,"upper_bound":31076341.036579944,"unit":"ns"},"mean":{"estimate":30434934.638938494,"lower_bound":29603402.216091268,"upper_bound":31233101.241875,"unit":"ns"},"median":{"estimate":30412109.383333333,"lower_bound":29590591.6375,"upper_bound":31689661.46875,"unit":"ns"},"median_abs_dev":{"estimate":1316235.6618079797,"lower_bound":196506.94691797122,"upper_bound":2534629.924405491,"unit":"ns"},"slope":{"estimate":30475914.018831167,"lower_bound":29931285.21493074,"upper_bound":31076341.036579944,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[36,72,108,144,180,216,252,288,324,360],"measured_values":[92701958.0,191025125.0,280354250.0,373581500.0,477446167.0,529713291.0,658189666.0,717194666.0,850902375.0,960588334.0],"unit":"ns","throughput":[],"typical":{"estimate":2596287.247041847,"lower_bound":2526452.5292373057,"upper_bound":2645911.3580617416,"unit":"ns"},"mean":{"estimate":2591989.067202381,"lower_bound":2547641.216227513,"upper_bound":2630147.4062301586,"unit":"ns"},"median":{"estimate":2603868.2195767197,"lower_bound":2542287.614583333,"upper_bound":2652478.7055555554,"unit":"ns"},"median_abs_dev":{"estimate":57394.64492604118,"lower_bound":12209.398167406742,"upper_bound":114789.28985208237,"unit":"ns"},"slope":{"estimate":2596287.247041847,"lower_bound":2526452.5292373057,"upper_bound":2645911.3580617416,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[132332833.0,253339500.0,363407709.0,546356458.0,567576208.0,745903583.0,834750291.0,961422708.0,1062018625.0,1212576459.0],"unit":"ns","throughput":[],"typical":{"estimate":30160083.925974026,"lower_bound":29655145.117936067,"upper_bound":30884407.99630197,"unit":"ns"},"mean":{"estimate":30831192.53373016,"lower_bound":29873362.73440476,"upper_bound":31897406.929444443,"unit":"ns"},"median":{"estimate":30299193.6125,"lower_bound":29772488.493055556,"upper_bound":32081262.104166664,"unit":"ns"},"median_abs_dev":{"estimate":1170363.3793427283,"lower_bound":222677.30539418978,"upper_bound":2796627.5440424387,"unit":"ns"},"slope":{"estimate":30160083.925974026,"lower_bound":29655145.117936067,"upper_bound":30884407.99630197,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[72,144,216,288,360,432,504,576,648,720],"measured_values":[107564292.0,191937000.0,288365500.0,390110250.0,474095125.0,575788875.0,664331834.0,689305708.0,763632958.0,1006995708.0],"unit":"ns","throughput":[],"typical":{"estimate":1293275.8611471863,"lower_bound":1220618.8835470085,"upper_bound":1369067.3282967033,"unit":"ns"},"mean":{"estimate":1325807.5886000884,"lower_bound":1273246.019666832,"upper_bound":1378707.8036574074,"unit":"ns"},"median":{"estimate":1332870.2256944445,"lower_bound":1257415.0084325396,"upper_bound":1366815.3064814815,"unit":"ns"},"median_abs_dev":{"estimate":27886.650181996403,"lower_bound":1654.6261859022782,"upper_bound":178237.5819731505,"unit":"ns"},"slope":{"estimate":1293275.8611471863,"lower_bound":1220618.8835470085,"upper_bound":1369067.3282967033,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101556333.0,198334541.0,299829917.0,440736125.0,562267958.0,676102250.0,894237750.0,1033175417.0,1081419792.0,1187278958.0],"unit":"ns","throughput":[],"typical":{"estimate":29973537.824675325,"lower_bound":28596557.403062277,"upper_bound":31017023.708128966,"unit":"ns"},"mean":{"estimate":28294226.698541664,"lower_bound":26725543.144609377,"upper_bound":29898882.85896354,"unit":"ns"},"median":{"estimate":28142162.491666667,"lower_bound":25389083.25,"upper_bound":30809518.225,"unit":"ns"},"median_abs_dev":{"estimate":3447308.4091730425,"lower_bound":463252.64724437054,"upper_bound":4823402.496424988,"unit":"ns"},"slope":{"estimate":29973537.824675325,"lower_bound":28596557.403062277,"upper_bound":31017023.708128966,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[32,64,96,128,160,192,224,256,288,320],"measured_values":[83030917.0,158356208.0,226165958.0,394992208.0,488037958.0,592247583.0,693858209.0,786683542.0,848832333.0,979747750.0],"unit":"ns","throughput":[],"typical":{"estimate":3022672.8590097404,"lower_bound":2944992.7298808857,"upper_bound":3070305.4461325794,"unit":"ns"},"mean":{"estimate":2882527.4077157737,"lower_bound":2701512.5343229165,"upper_bound":3038119.0465937494,"unit":"ns"},"median":{"estimate":3055974.478125,"lower_bound":2594716.15625,"upper_bound":3084622.828125,"unit":"ns"},"median_abs_dev":{"estimate":53009.59031264173,"lower_bound":9606.107749769946,"upper_bound":443791.7176015908,"unit":"ns"},"slope":{"estimate":3022672.8590097404,"lower_bound":2944992.7298808857,"upper_bound":3070305.4461325794,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[105628875.0,224472458.0,353615250.0,566905417.0,630538292.0,755157375.0,831155000.0,957396417.0,1111320208.0,1236302417.0],"unit":"ns","throughput":[],"typical":{"estimate":30784960.582467534,"lower_bound":30198724.669777762,"upper_bound":31546538.216516856,"unit":"ns"},"mean":{"estimate":30373791.86643849,"lower_bound":29023164.871007938,"upper_bound":31827445.614285715,"unit":"ns"},"median":{"estimate":30394321.904513888,"lower_bound":28871582.19642857,"upper_bound":31464890.625,"unit":"ns"},"median_abs_dev":{"estimate":1480341.325281188,"lower_bound":334104.297884088,"upper_bound":3795230.4662261913,"unit":"ns"},"slope":{"estimate":30784960.582467534,"lower_bound":30198724.669777762,"upper_bound":31546538.216516856,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[33,66,99,132,165,198,231,264,297,330],"measured_values":[88425041.0,181899959.0,272397541.0,405010875.0,464265875.0,552694166.0,650676000.0,776436833.0,947308584.0,1082024375.0],"unit":"ns","throughput":[],"typical":{"estimate":3041259.592522629,"lower_bound":2841143.1420700513,"upper_bound":3174787.751599035,"unit":"ns"},"mean":{"estimate":2908675.921699134,"lower_bound":2797455.5614826838,"upper_bound":3035823.1561868684,"unit":"ns"},"median":{"estimate":2815255.898268398,"lower_bound":2756059.984848485,"upper_bound":3068264.2045454546,"unit":"ns"},"median_abs_dev":{"estimate":140519.56286171835,"lower_bound":18824.975141547427,"upper_bound":321376.67809593846,"unit":"ns"},"slope":{"estimate":3041259.592522629,"lower_bound":2841143.1420700513,"upper_bound":3174787.751599035,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[97772834.0,218790459.0,250416542.0,349700250.0,475940625.0,567511042.0,670380667.0,813321459.0,779258959.0,1003999208.0],"unit":"ns","throughput":[],"typical":{"estimate":31794573.85887446,"lower_bound":29952553.436869215,"upper_bound":33146061.73587908,"unit":"ns"},"mean":{"estimate":31741890.133346558,"lower_bound":30229224.135866072,"upper_bound":33291623.46271164,"unit":"ns"},"median":{"estimate":31826131.95238095,"lower_bound":29141687.5,"upper_bound":33466640.266666666,"unit":"ns"},"median_abs_dev":{"estimate":2744863.7132114284,"lower_bound":297978.5436431542,"upper_bound":4741688.328273766,"unit":"ns"},"slope":{"estimate":31794573.85887446,"lower_bound":29952553.436869215,"upper_bound":33146061.73587908,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/100000","MATCH/match_decrypt/eql_cast_firstname/100000","MATCH/match/eql_cast_lastname/100000","MATCH/match_decrypt/eql_cast_lastname/100000","MATCH/match/eql_bloom/100000","MATCH/match_decrypt/eql_bloom/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_1000000.json b/results/query/match_rows_1000000.json index d75f96b..d8783c3 100644 --- a/results/query/match_rows_1000000.json +++ b/results/query/match_rows_1000000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[88101542.0,176249208.0,279356291.0,358619000.0,496926208.0,546821500.0,625992166.0,709327500.0,819872167.0,904421167.0],"unit":"ns","throughput":[],"typical":{"estimate":5044492.237518038,"lower_bound":4978416.458290598,"upper_bound":5153487.711804258,"unit":"ns"},"mean":{"estimate":5050856.843686067,"lower_bound":4959441.195542329,"upper_bound":5173669.394516094,"unit":"ns"},"median":{"estimate":5002690.741666666,"lower_bound":4925885.416666667,"upper_bound":5117101.975308642,"unit":"ns"},"median_abs_dev":{"estimate":101763.15687389835,"lower_bound":23243.687595675696,"upper_bound":211427.9301672893,"unit":"ns"},"slope":{"estimate":5044492.237518038,"lower_bound":4978416.458290598,"upper_bound":5153487.711804258,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[92948917.0,207855209.0,335064000.0,406845750.0,475578500.0,616015083.0,750117708.0,824054208.0,950227791.0,1030742375.0],"unit":"ns","throughput":[],"typical":{"estimate":34560994.65108225,"lower_bound":33844781.86821705,"upper_bound":35132078.08421886,"unit":"ns"},"mean":{"estimate":34229413.041269846,"lower_bound":33136639.185714286,"upper_bound":35256776.07222222,"unit":"ns"},"median":{"estimate":34346835.58333333,"lower_bound":32964146.75,"upper_bound":35193621.88888889,"unit":"ns"},"median_abs_dev":{"estimate":956135.6830085311,"lower_bound":116759.31927710587,"upper_bound":3259613.4146302957,"unit":"ns"},"slope":{"estimate":34560994.65108225,"lower_bound":33844781.86821705,"upper_bound":35132078.08421886,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[108336458.0,203268750.0,305192125.0,415175042.0,515263417.0,618232958.0,734823208.0,828167708.0,922189750.0,1047195750.0],"unit":"ns","throughput":[],"typical":{"estimate":17280361.343722943,"lower_bound":17135055.20963163,"upper_bound":17402087.763020832,"unit":"ns"},"mean":{"estimate":17287793.697407406,"lower_bound":17117478.4362963,"upper_bound":17497712.51851852,"unit":"ns"},"median":{"estimate":17214470.575000003,"lower_bound":17064127.888888888,"upper_bound":17453262.5,"unit":"ns"},"median_abs_dev":{"estimate":278487.5293614138,"lower_bound":59568.04588412214,"upper_bound":454274.02695169207,"unit":"ns"},"slope":{"estimate":17280361.343722943,"lower_bound":17135055.20963163,"upper_bound":17402087.763020832,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[138368292.0,252555583.0,390904250.0,534913292.0,664160083.0,816808208.0,919226834.0,1091578458.0,1214282833.0,1338987000.0],"unit":"ns","throughput":[],"typical":{"estimate":44729979.253679655,"lower_bound":44236748.000861324,"upper_bound":45104082.25138889,"unit":"ns"},"mean":{"estimate":44474232.7423545,"lower_bound":43762376.62084589,"upper_bound":45122592.631943785,"unit":"ns"},"median":{"estimate":44604503.83333333,"lower_bound":43772706.38095238,"upper_bound":45378233.777777776,"unit":"ns"},"median_abs_dev":{"estimate":1190177.4381367923,"lower_bound":263577.46346056426,"upper_bound":1956431.3200775161,"unit":"ns"},"slope":{"estimate":44729979.253679655,"lower_bound":44236748.000861324,"upper_bound":45104082.25138889,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[104740166.0,203600292.0,306504709.0,412153583.0,517959542.0,627537750.0,719274166.0,826607916.0,953175375.0,1044174000.0],"unit":"ns","throughput":[],"typical":{"estimate":17360690.166233767,"lower_bound":17194290.87573998,"upper_bound":17497750.05728277,"unit":"ns"},"mean":{"estimate":17272228.23781746,"lower_bound":17148854.448333334,"upper_bound":17396957.342499997,"unit":"ns"},"median":{"estimate":17243158.15833333,"lower_bound":17100552.673611112,"upper_bound":17431604.166666668,"unit":"ns"},"median_abs_dev":{"estimate":258111.6486226061,"lower_bound":39877.73859203046,"upper_bound":347141.51758700056,"unit":"ns"},"slope":{"estimate":17360690.166233767,"lower_bound":17194290.87573998,"upper_bound":17497750.05728277,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[167868875.0,276177500.0,449909083.0,544619750.0,665623166.0,783855000.0,904806792.0,1037283167.0,1197866500.0,1312546000.0],"unit":"ns","throughput":[],"typical":{"estimate":43998136.21991342,"lower_bound":43564737.47577332,"upper_bound":44761263.0935857,"unit":"ns"},"mean":{"estimate":45970625.89429893,"lower_bound":43986206.05513062,"upper_bound":48681825.014806546,"unit":"ns"},"median":{"estimate":44370151.82962963,"lower_bound":43485832.645833336,"upper_bound":47687438.63888889,"unit":"ns"},"median_abs_dev":{"estimate":1604801.2070465796,"lower_bound":393927.83229388297,"upper_bound":4624499.727665389,"unit":"ns"},"slope":{"estimate":43998136.21991342,"lower_bound":43564737.47577332,"upper_bound":44761263.0935857,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[102657750.0,176604625.0,266968000.0,352871000.0,473095708.0,547120500.0,624732250.0,738684750.0,846400542.0,905365708.0],"unit":"ns","throughput":[],"typical":{"estimate":5089512.58989899,"lower_bound":5009308.281324039,"upper_bound":5169078.041760271,"unit":"ns"},"mean":{"estimate":5111873.17186508,"lower_bound":4989395.751785714,"upper_bound":5269156.078518517,"unit":"ns"},"median":{"estimate":5047870.022222223,"lower_bound":4931938.244047619,"upper_bound":5224694.703703703,"unit":"ns"},"median_abs_dev":{"estimate":182511.14413700247,"lower_bound":35258.93861014069,"upper_bound":335690.49195696856,"unit":"ns"},"slope":{"estimate":5089512.58989899,"lower_bound":5009308.281324039,"upper_bound":5169078.041760271,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[84781292.0,218348541.0,300782541.0,455333834.0,570352708.0,564227083.0,603618208.0,765948916.0,870865875.0,873345667.0],"unit":"ns","throughput":[],"typical":{"estimate":31520740.865800865,"lower_bound":30041241.764075067,"upper_bound":33839675.63176896,"unit":"ns"},"mean":{"estimate":32741016.184603173,"lower_bound":30665305.539404765,"upper_bound":34932570.315107144,"unit":"ns"},"median":{"estimate":32084414.916666668,"lower_bound":29111522.233333334,"upper_bound":36391423.5,"unit":"ns"},"median_abs_dev":{"estimate":4680259.2983887885,"lower_bound":630914.167169037,"upper_bound":6154732.912161646,"unit":"ns"},"slope":{"estimate":31520740.865800865,"lower_bound":30041241.764075067,"upper_bound":33839675.63176896,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[111503125.0,225951958.0,328987792.0,438757375.0,550780959.0,653770875.0,797525875.0,898587667.0,983313708.0,1078093709.0],"unit":"ns","throughput":[],"typical":{"estimate":18348083.5,"lower_bound":18101660.930449534,"upper_bound":18677983.687064677,"unit":"ns"},"mean":{"estimate":18437853.753035713,"lower_bound":18251121.723472223,"upper_bound":18634589.917256445,"unit":"ns"},"median":{"estimate":18320461.295833334,"lower_bound":18209513.111111112,"upper_bound":18720576.395833332,"unit":"ns"},"median_abs_dev":{"estimate":313979.1538007576,"lower_bound":56710.86981818172,"upper_bound":522220.3585412353,"unit":"ns"},"slope":{"estimate":18348083.5,"lower_bound":18101660.930449534,"upper_bound":18677983.687064677,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[123316333.0,244192042.0,380597083.0,522490834.0,671825709.0,758881750.0,944784083.0,1022488500.0,1164381125.0,1274270625.0],"unit":"ns","throughput":[],"typical":{"estimate":43092127.27532467,"lower_bound":42536331.84327765,"upper_bound":43927721.71775469,"unit":"ns"},"mean":{"estimate":42777638.35232804,"lower_bound":41971075.47407408,"upper_bound":43609848.03714286,"unit":"ns"},"median":{"estimate":42539687.5,"lower_bound":41697004.55555555,"upper_bound":43956803.72592592,"unit":"ns"},"median_abs_dev":{"estimate":1176261.2272449676,"lower_bound":233600.4698360972,"upper_bound":2634600.662526492,"unit":"ns"},"slope":{"estimate":43092127.27532467,"lower_bound":42536331.84327765,"upper_bound":43927721.71775469,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[105438250.0,214356250.0,319677084.0,420026250.0,542095375.0,661749917.0,770161541.0,835639209.0,946827291.0,1055239541.0],"unit":"ns","throughput":[],"typical":{"estimate":17750800.375324674,"lower_bound":17543078.136216074,"upper_bound":18091782.84386973,"unit":"ns"},"mean":{"estimate":17801627.63628968,"lower_bound":17606257.95277778,"upper_bound":18018237.428968254,"unit":"ns"},"median":{"estimate":17673581.84166667,"lower_bound":17533838.722222224,"upper_bound":18100100.19047619,"unit":"ns"},"median_abs_dev":{"estimate":268296.5421117833,"lower_bound":48547.694954775245,"upper_bound":589049.1680456193,"unit":"ns"},"slope":{"estimate":17750800.375324674,"lower_bound":17543078.136216074,"upper_bound":18091782.84386973,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[128168125.0,266497208.0,391315541.0,522721250.0,609255333.0,758986834.0,939432375.0,1085544250.0,1173895333.0,1283836208.0],"unit":"ns","throughput":[],"typical":{"estimate":43454538.99134199,"lower_bound":42537605.96999371,"upper_bound":44382730.048780486,"unit":"ns"},"mean":{"estimate":43319950.642037034,"lower_bound":42496722.31444444,"upper_bound":44077937.73479167,"unit":"ns"},"median":{"estimate":43478554.74074074,"lower_bound":42480237.744444445,"upper_bound":44416201.333333336,"unit":"ns"},"median_abs_dev":{"estimate":1255386.3386124372,"lower_bound":61156.68607536698,"upper_bound":2272140.2013031114,"unit":"ns"},"slope":{"estimate":43454538.99134199,"lower_bound":42537605.96999371,"upper_bound":44382730.048780486,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/1000000","MATCH/match_decrypt/eql_cast_firstname/1000000","MATCH/match/eql_cast_lastname/1000000","MATCH/match_decrypt/eql_cast_lastname/1000000","MATCH/match/eql_bloom/1000000","MATCH/match_decrypt/eql_bloom/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_10000000.json b/results/query/match_rows_10000000.json index 9d0ecbb..e69de29 100644 --- a/results/query/match_rows_10000000.json +++ b/results/query/match_rows_10000000.json @@ -1,7 +0,0 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[126114791.0,244066000.0,371039334.0,481022167.0,618773042.0,729370792.0,823406792.0,957111916.0,1093826250.0,1176469209.0],"unit":"ns","throughput":[],"typical":{"estimate":39957934.74891775,"lower_bound":39499935.89976233,"upper_bound":40569932.6010101,"unit":"ns"},"mean":{"estimate":40461707.33103175,"lower_bound":39932585.82984127,"upper_bound":41000861.947142854,"unit":"ns"},"median":{"estimate":40516341.44444445,"lower_bound":39650410.44166666,"upper_bound":41226592.666666664,"unit":"ns"},"median_abs_dev":{"estimate":998478.8206234574,"lower_bound":122746.92282080282,"upper_bound":1558926.263016854,"unit":"ns"},"slope":{"estimate":39957934.74891775,"lower_bound":39499935.89976233,"upper_bound":40569932.6010101,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[128121709.0,258588709.0,397744333.0,591794916.0,643298291.0,760901958.0,899136209.0,1046819584.0,1150230750.0,1314553000.0],"unit":"ns","throughput":[],"typical":{"estimate":65134716.72467533,"lower_bound":64158842.52331002,"upper_bound":66492370.661458336,"unit":"ns"},"mean":{"estimate":65599104.127857134,"lower_bound":64259212.239482135,"upper_bound":67659309.37666667,"unit":"ns"},"median":{"estimate":64488503.175,"lower_bound":64060854.5,"upper_bound":65858473.08333333,"unit":"ns"},"median_abs_dev":{"estimate":1130123.4436362963,"lower_bound":223447.08983302116,"upper_bound":2260246.8872725926,"unit":"ns"},"slope":{"estimate":65134716.72467533,"lower_bound":64158842.52331002,"upper_bound":66492370.661458336,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[491351958.0,485389625.0,500306208.0,500774125.0,513218083.0,529900708.0,497622750.0,484571375.0,487355500.0,484250166.0],"unit":"ns","throughput":[],"typical":{"estimate":165824683.26666668,"lower_bound":163230486.76083332,"upper_bound":168938941.6,"unit":"ns"},"mean":{"estimate":165824683.26666668,"lower_bound":163230486.76083332,"upper_bound":168938941.6,"unit":"ns"},"median":{"estimate":164829118.0,"lower_bound":161796541.66666666,"upper_bound":168920715.1666667,"unit":"ns"},"median_abs_dev":{"estimate":4010329.888102412,"lower_bound":360931.0563921781,"upper_bound":7312800.8201718405,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[551486667.0,562106750.0,569396958.0,544933541.0,579616709.0,566415750.0,552615458.0,547033333.0,574799083.0,577353250.0],"unit":"ns","throughput":[],"typical":{"estimate":187525249.96666664,"lower_bound":184991115.3975,"upper_bound":190029080.395,"unit":"ns"},"mean":{"estimate":187525249.96666664,"lower_bound":184991115.3975,"upper_bound":190029080.395,"unit":"ns"},"median":{"estimate":188087083.3333333,"lower_bound":183274798.5,"upper_bound":191599694.33333334,"unit":"ns"},"median_abs_dev":{"estimate":6034274.555370189,"lower_bound":1118601.4179408255,"upper_bound":6905394.702404694,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[173952583.0,339629375.0,490975583.0,658043208.0,838654584.0,1450012334.0,1195664708.0,2046325000.0,1925307292.0,2012685833.0],"unit":"ns","throughput":[],"typical":{"estimate":207913077.27792206,"lower_bound":183362344.1581344,"upper_bound":229459591.89987832,"unit":"ns"},"mean":{"estimate":192312772.40444443,"lower_bound":173816927.63294446,"upper_bound":213693397.18777776,"unit":"ns"},"median":{"estimate":172380913.5,"lower_bound":167162744.75,"upper_bound":221468652.81666666,"unit":"ns"},"median_abs_dev":{"estimate":12300018.054831035,"lower_bound":2281963.9128470332,"upper_bound":55277023.34904336,"unit":"ns"},"slope":{"estimate":207913077.27792206,"lower_bound":183362344.1581344,"upper_bound":229459591.89987832,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[191931958.0,199774291.0,182709667.0,184414333.0,181063291.0,191016500.0,183387459.0,192083750.0,189686542.0,181211667.0],"unit":"ns","throughput":[],"typical":{"estimate":187727945.8,"lower_bound":184307660.1,"upper_bound":191451275.6,"unit":"ns"},"mean":{"estimate":187727945.8,"lower_bound":184307660.1,"upper_bound":191451275.6,"unit":"ns"},"median":{"estimate":187050437.5,"lower_bound":182299563.0,"upper_bound":191931958.0,"unit":"ns"},"median_abs_dev":{"estimate":6836484.1969281435,"lower_bound":791152.410954237,"upper_bound":11627042.699378729,"unit":"ns"},"slope":null,"change":null} -{"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000000","MATCH/match_decrypt/eql_cast_firstname/10000000","MATCH/match/eql_cast_lastname/10000000","MATCH/match_decrypt/eql_cast_lastname/10000000","MATCH/match/eql_bloom/10000000","MATCH/match_decrypt/eql_bloom/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/ore_metadata_10000.json b/results/query/ore_metadata_10000.json index f36db19..b4e19e6 100644 --- a/results/query/ore_metadata_10000.json +++ b/results/query/ore_metadata_10000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28bd58c7083f82c2741af23cbc3839c45f495dae3b509cbf755615283299bfb54a93546b75fc0d450dd86698ae15c14ee12f9da647849138f4c93027c8333d85c6af1ca59f934256f43dd3d84ebdd7c52fbf8d68f0eafdef01f2cead45e3495bdbb6418b869f9e7d11e22de571fc34fcb7fa27a9f20c660c5d0fa26cc08c3730424c0efab02a31b7fabb9e0cf677f85020e3e4fb6d9ea4169c2f742303cb286e1952984fc91d44845308b4c110153de68cd80325bf9838149278f6cdf83ca3e555f48c782e22a7fccd1fe61b0ebebc93301d8a889084ce55887eae46dd4cb50cc5d0b1dcda627efca7e013ee175ed2a5f371538846e20d025eadce48f87aa7c8b75fb811b4e8cafe201bcecdf3aeeceaad\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2819c50c4299d12d4df612b3a4bba292ab1f77331845b6fd7befdad0a400a08b4752f78c7bafeabbcb372fb1c25dca8baa5e60e6e39ff2c7313ab61db90a2d41145ac80cfe9e10a77c8bdc85f2d1900e04df45e9a270aa9e10aaff01bedae2dadfc77a862605a7cd9bddf620bc2e303ac9344b3695fc7132febb9e7dc627554f08f84f122694b6c973bb209a681e82289230386074295037788fe3f388c8fa1794f3c3de7cdb934930f68cac73e12a411f1ff6c71b8c3f91ada9b3ed33d4d445ef521912f1b5abd558380669d50f38c894e2455bdab5836aef6d8028234c01d78421fc38289b8f07b039c1148e6536854f81ed71cdbb400eaa6b45e3ffadfa0fe75be4835fb1e332ed0a603b86e5183499\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28bd58c7083f82c2741af23cbc3839c45f495dae3b509cbf755615283299bfb54a93546b75fc0d450dd86698ae15c14ee12f9da647849138f4c93027c8333d85c6af1ca59f934256f43dd3d84ebdd7c52fbf8d68f0eafdef01f2cead45e3495bdbb6418b869f9e7d11e22de571fc34fcb7fa27a9f20c660c5d0fa26cc08c3730424c0efab02a31b7fabb9e0cf677f85020e3e4fb6d9ea4169c2f742303cb286e1952984fc91d44845308b4c110153de68cd80325bf9838149278f6cdf83ca3e555f48c782e22a7fccd1fe61b0ebebc93301d8a889084ce55887eae46dd4cb50cc5d0b1dcda627efca7e013ee175ed2a5f371538846e20d025eadce48f87aa7c8b75fb811b4e8cafe201bcecdf3aeeceaad" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2819c50c4299d12d4df612b3a4bba292ab1f77331845b6fd7befdad0a400a08b4752f78c7bafeabbcb372fb1c25dca8baa5e60e6e39ff2c7313ab61db90a2d41145ac80cfe9e10a77c8bdc85f2d1900e04df45e9a270aa9e10aaff01bedae2dadfc77a862605a7cd9bddf620bc2e303ac9344b3695fc7132febb9e7dc627554f08f84f122694b6c973bb209a681e82289230386074295037788fe3f388c8fa1794f3c3de7cdb934930f68cac73e12a411f1ff6c71b8c3f91ada9b3ed33d4d445ef521912f1b5abd558380669d50f38c894e2455bdab5836aef6d8028234c01d78421fc38289b8f07b039c1148e6536854f81ed71cdbb400eaa6b45e3ffadfa0fe75be4835fb1e332ed0a603b86e5183499" ], "v": 2 } @@ -59,7 +59,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289ad7938b9523d67a22c014f94413933f9553ba9c1d501d6eae8db28a81e41d4f2bf4232b5d9d867def2ea21bb81bde5a0965e0b9d9666f1b44e3c023b9472327e3c20a53243e152fd0667e675ae574636c14e1ec33cbbb91c18eb6b420e48c9d777d1937ec162784054b5b347841b61e1208f33463833571df4b0c6f9e516a5b37af422f81d57a4e7f9ef0abba62e4e007d2c13cdc8d1c38c1a6d9f604b46fd330b153ea06d8931e6b126178ea6e418711c83923ee366ffc81e32fd6150816d51a654933b3f2e9fab5a9849236e6775d6a65bfc5029803417043fe4fe0da97de0ec45dcbdc7c9cf7e494b78e0f7dd9ac1a0ed3a8fce1b259af6c9d0f6b532dbca5b687059e0ac8aff12d7b029b1db701\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fb8e13d139959690366f816c90e9d94a2d7d35c0268afd719cc90e532916adaf09273994a979c836cefd500960adac60a6a276bd8321ff5087b696bdc481f38e98a1e9d96df76a7444cdbf13f8c560f2feb9b893fd54d3253271a3dce17ac37ad65b160d56af664cf9e8be1b41828fa18150d231af2830a85fd35ed95368ce5a8ef52684b5f7a731c40d5e958f9c33aba74a821c51b7c70500fe79024b0b22caab180fa558891494a0f5b10857f7d22f1be8a2ca6dbcf0386a63ee37d2f86c14fe7aa961a0fcd7faed34b5fae21c07279e3650ed2989babf6ded0b77dd65de101236d8ceda08606f71465bfcacb4786e295da2707333d209182f67367b0ae655aac543a53defd0d6850c4cffe1e2ee19\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -84,7 +84,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289ad7938b9523d67a22c014f94413933f9553ba9c1d501d6eae8db28a81e41d4f2bf4232b5d9d867def2ea21bb81bde5a0965e0b9d9666f1b44e3c023b9472327e3c20a53243e152fd0667e675ae574636c14e1ec33cbbb91c18eb6b420e48c9d777d1937ec162784054b5b347841b61e1208f33463833571df4b0c6f9e516a5b37af422f81d57a4e7f9ef0abba62e4e007d2c13cdc8d1c38c1a6d9f604b46fd330b153ea06d8931e6b126178ea6e418711c83923ee366ffc81e32fd6150816d51a654933b3f2e9fab5a9849236e6775d6a65bfc5029803417043fe4fe0da97de0ec45dcbdc7c9cf7e494b78e0f7dd9ac1a0ed3a8fce1b259af6c9d0f6b532dbca5b687059e0ac8aff12d7b029b1db701" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fb8e13d139959690366f816c90e9d94a2d7d35c0268afd719cc90e532916adaf09273994a979c836cefd500960adac60a6a276bd8321ff5087b696bdc481f38e98a1e9d96df76a7444cdbf13f8c560f2feb9b893fd54d3253271a3dce17ac37ad65b160d56af664cf9e8be1b41828fa18150d231af2830a85fd35ed95368ce5a8ef52684b5f7a731c40d5e958f9c33aba74a821c51b7c70500fe79024b0b22caab180fa558891494a0f5b10857f7d22f1be8a2ca6dbcf0386a63ee37d2f86c14fe7aa961a0fcd7faed34b5fae21c07279e3650ed2989babf6ded0b77dd65de101236d8ceda08606f71465bfcacb4786e295da2707333d209182f67367b0ae655aac543a53defd0d6850c4cffe1e2ee19" ], "v": 2 } @@ -105,7 +105,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284578caab6d29550a13b118da3842b4b9c8b00f26b24149b724be5b1218287c719fb42247bc75da8e9b17137e977299ae65a4becf49542e78e910e82587a4a441f126ed01edfff4c704721f37bd978c5ab2bcb08f17e1a04a7ea7aa0e804ac4196ec0e1c90f6603238dc9433ad5db47449ee56faeba708e7bcc8c142a542c6d26289ef220640ba2267eaa7ab5038f19d42d798c5181837a299598d9e16a66247e49fa61a275450666cb780284d8008518b53789ab22f6f8758711d5f39aa89460e6b4bce96e2011e8cf33e87a86397a55e14b942f44446de0087a22decf99151c58eda710ad332bc96fddc1009747c5a17fd73f8f6f07563097d38f81fbf88198562f69b67cd32675576e84fb3e3fb35c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28dc25ed657e836e101c6888f1cfc0339d889d5ac2f88de3e309033dc0cd5d4108d57ee3a00cb8cd3db00da0721dfa530e24986648ed1aef3a34163b86d72d97555549b7bab5dc8f97be26b4653e142d1de29709e8189b44858e304b8f8cca9128d39f9720db73b15791b018bfa2655048ebb09086e5ff6ab46adab0d2eb652538742e8b8f9a85eac0bcc8db7ee167a46e05681a29b73be990ad4a2388cbd7589a0df501ceeb00e3dcc1116ee439e3aa78fb26d3b55db9286f704351e809ff1e98c6076f72dc85b79782c25c69e8f39ddf3965bcff1f9bf16fd2509a628e00f7dd05e5b900595ac2b26dca4ae2149748da06a0db612ee03c0df68e494dbc8469d7353c326553d469f1ea540c1c9696084e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -130,7 +130,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284578caab6d29550a13b118da3842b4b9c8b00f26b24149b724be5b1218287c719fb42247bc75da8e9b17137e977299ae65a4becf49542e78e910e82587a4a441f126ed01edfff4c704721f37bd978c5ab2bcb08f17e1a04a7ea7aa0e804ac4196ec0e1c90f6603238dc9433ad5db47449ee56faeba708e7bcc8c142a542c6d26289ef220640ba2267eaa7ab5038f19d42d798c5181837a299598d9e16a66247e49fa61a275450666cb780284d8008518b53789ab22f6f8758711d5f39aa89460e6b4bce96e2011e8cf33e87a86397a55e14b942f44446de0087a22decf99151c58eda710ad332bc96fddc1009747c5a17fd73f8f6f07563097d38f81fbf88198562f69b67cd32675576e84fb3e3fb35c" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28dc25ed657e836e101c6888f1cfc0339d889d5ac2f88de3e309033dc0cd5d4108d57ee3a00cb8cd3db00da0721dfa530e24986648ed1aef3a34163b86d72d97555549b7bab5dc8f97be26b4653e142d1de29709e8189b44858e304b8f8cca9128d39f9720db73b15791b018bfa2655048ebb09086e5ff6ab46adab0d2eb652538742e8b8f9a85eac0bcc8db7ee167a46e05681a29b73be990ad4a2388cbd7589a0df501ceeb00e3dcc1116ee439e3aa78fb26d3b55db9286f704351e809ff1e98c6076f72dc85b79782c25c69e8f39ddf3965bcff1f9bf16fd2509a628e00f7dd05e5b900595ac2b26dca4ae2149748da06a0db612ee03c0df68e494dbc8469d7353c326553d469f1ea540c1c9696084e" ], "v": 2 } @@ -151,7 +151,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e7af4566916ae8649b78f21cca03b3420a2d73594831faf20ea7532d76523263da6cc9895dd2724f2a6154b89c42d7d3895cc85b5481bbdfc3e4714181da6e0ca6579f6458647cf59302314194edc2ecf1d163a98a0aa36ea62d28c738dc67484dd8d164489e9ddb0743acc282f1f72bdf58303fe380c3d1f8c9dde297432eddc021b010bb114dc90786676aa49fda3861567ab3c68238af8c66903e323201118f60fd3f1c08edc6e86e3e2e0d7a7dfcc5c1fdc560de965090f0d6ea5278ad0c5e57750b83928dbb4420b4101720dc2017f306cf0672cc8d9ae468c769edd1891ad7c3ba34325bf2c28a1b1a1fce30a4eceb20b64906a70c5f6927def20adaa5068cb97e50363823be89dd79be10b9ba\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f981f194d28abbbc74904344d05226dfabc7f334074dc380a5cd47f73c6661e119c0c1546a05ce6b9aace54b98233d01d94cd4dc1d7c450ca5a42be954d8b0844a4ac417d8da3d5ee7a88e7c2ac574a943adaec490aed46af3e18ec407d4603135cded13c60206140d8ecde39906d73d8600a7f4245149f637c496c8ba37a63819748b01caf6af183a3961e20243801c6276505a8a852273156c382e94d724e32cb6fe8d825b7bc997578b47032a778a45a720701c5ddebc8bba20985c67730f8c8d48037b9c2a69d0a0010a4fcc6a9370bf00920b19be7f44f1728b684dde52748b5ace0c5158c5989f98de32caace50369f3dd6c6bb68438711a827b87dd159bef36f4fe60c2fef03b3cf2374fc097\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -176,7 +176,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e7af4566916ae8649b78f21cca03b3420a2d73594831faf20ea7532d76523263da6cc9895dd2724f2a6154b89c42d7d3895cc85b5481bbdfc3e4714181da6e0ca6579f6458647cf59302314194edc2ecf1d163a98a0aa36ea62d28c738dc67484dd8d164489e9ddb0743acc282f1f72bdf58303fe380c3d1f8c9dde297432eddc021b010bb114dc90786676aa49fda3861567ab3c68238af8c66903e323201118f60fd3f1c08edc6e86e3e2e0d7a7dfcc5c1fdc560de965090f0d6ea5278ad0c5e57750b83928dbb4420b4101720dc2017f306cf0672cc8d9ae468c769edd1891ad7c3ba34325bf2c28a1b1a1fce30a4eceb20b64906a70c5f6927def20adaa5068cb97e50363823be89dd79be10b9ba" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f981f194d28abbbc74904344d05226dfabc7f334074dc380a5cd47f73c6661e119c0c1546a05ce6b9aace54b98233d01d94cd4dc1d7c450ca5a42be954d8b0844a4ac417d8da3d5ee7a88e7c2ac574a943adaec490aed46af3e18ec407d4603135cded13c60206140d8ecde39906d73d8600a7f4245149f637c496c8ba37a63819748b01caf6af183a3961e20243801c6276505a8a852273156c382e94d724e32cb6fe8d825b7bc997578b47032a778a45a720701c5ddebc8bba20985c67730f8c8d48037b9c2a69d0a0010a4fcc6a9370bf00920b19be7f44f1728b684dde52748b5ace0c5158c5989f98de32caace50369f3dd6c6bb68438711a827b87dd159bef36f4fe60c2fef03b3cf2374fc097" ], "v": 2 } @@ -197,7 +197,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb285f373e72d3376030cb1e9c760d72740d8cd4b26dae72ac66d5a035549cb3970170beef7b5623decca2d426fb980e6e626c259e536aa4fb1b5dac647eb292f0837337399bab45bbee975655cf9f43d6009339fa076e788209e51f867b9649c9e6b28cb7d39183d38a0d5db140f7a71a6fc15c7b542e1f597fe23a3dcc3ee8aa16eda6de1a0362aa58c6c8da80b14c53e090f5aae8f4249a0d6db3c29cd2ac4572e99f2c76b02f15ba435921f5bd03c30eb885b615e31169404982eda710fbd1fa3c746e6551bd3b7b108e3316847b693c9a7db4631f8dc34d062edaeb37427c71304f92c3f5193018ceca7012dee32532487f173e926f8549d47665cbee0537308fbbf06e3016f6ae23c60a28c57ecf17\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb282d378d3a6ffa16edf26df8c603ca86bf37cce03d2fb105516c3eb49e85e0c85064972a8bd1c7d1e3baca56806a47b8dadfdb53d447e519ce4f501a5bd6d66f7a611a3213b89b469c9a5bbd4ee22fc2c71a0c1f494e1fcd9c024ae9db5171073423e10e822bda11ab829ad572aa76a47423f9de20a2f7ba6a91a62b792b746c8a5563f88f13ba79e4b3ea74df96d31ec6c359f4cacf0f9be8a3a4619a712e66dc40cda4be397afbae7d22257ddcd5e3dcbd7ed6340c85ca6f4191a7bb3b876289dbffb1dd60c567c1f16c916d568e0018d67cdedc0f360b9f02b9fc744a92e2bf544761ef51b73b56d6c9486189f58907d9d9e07eafebe397c573e2a33321d21c6422b09a2fa6454474b3c5c350a7f51b\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -226,7 +226,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb285f373e72d3376030cb1e9c760d72740d8cd4b26dae72ac66d5a035549cb3970170beef7b5623decca2d426fb980e6e626c259e536aa4fb1b5dac647eb292f0837337399bab45bbee975655cf9f43d6009339fa076e788209e51f867b9649c9e6b28cb7d39183d38a0d5db140f7a71a6fc15c7b542e1f597fe23a3dcc3ee8aa16eda6de1a0362aa58c6c8da80b14c53e090f5aae8f4249a0d6db3c29cd2ac4572e99f2c76b02f15ba435921f5bd03c30eb885b615e31169404982eda710fbd1fa3c746e6551bd3b7b108e3316847b693c9a7db4631f8dc34d062edaeb37427c71304f92c3f5193018ceca7012dee32532487f173e926f8549d47665cbee0537308fbbf06e3016f6ae23c60a28c57ecf17" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb282d378d3a6ffa16edf26df8c603ca86bf37cce03d2fb105516c3eb49e85e0c85064972a8bd1c7d1e3baca56806a47b8dadfdb53d447e519ce4f501a5bd6d66f7a611a3213b89b469c9a5bbd4ee22fc2c71a0c1f494e1fcd9c024ae9db5171073423e10e822bda11ab829ad572aa76a47423f9de20a2f7ba6a91a62b792b746c8a5563f88f13ba79e4b3ea74df96d31ec6c359f4cacf0f9be8a3a4619a712e66dc40cda4be397afbae7d22257ddcd5e3dcbd7ed6340c85ca6f4191a7bb3b876289dbffb1dd60c567c1f16c916d568e0018d67cdedc0f360b9f02b9fc744a92e2bf544761ef51b73b56d6c9486189f58907d9d9e07eafebe397c573e2a33321d21c6422b09a2fa6454474b3c5c350a7f51b" ], "v": 2 } diff --git a/results/query/ore_metadata_100000.json b/results/query/ore_metadata_100000.json index 98e7b22..dc3b381 100644 --- a/results/query/ore_metadata_100000.json +++ b/results/query/ore_metadata_100000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28980b20bf108668388638b6e601a20ed876445198688a5d266014e00b5e34076375d129887c181c56a060289af61747a28f692f2f2b85406045b209ca5f74e3b3eb2e6e3354114cfde7715a094255a7bb7163a4f20b6ee62db4ba5dad15d203a417506398077408564d5a530fdd8b8bd290ddc255610813455226efbbdd872086bba4a7b6ee20be8bfd115d08670d2174ce5bb9cebb5ecb8e975519ff97636761def8d7d8cb65d08bd64690a80214f64d3b1f69950ff4c01ef6a012e86be580cf974114447da0d70f244af9d79753ab65dfefbcf50f52b65e8d5997bd63129e19c300ef85c697d8ef93fda724576de13dc4558ca70e75e3cf07438d6b7da103fa7c030a9d7c7031b2cf2bbf164b608d06\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d2772c37b458601f1d6daf94f44d52dbfca8f0aa2dd158e65781e52af2c9413d051fe4e5ecfe10ecf294d0d105aa4ef8976cd44f920c234fac7265303b46933ebcba775b9a4510dfeb3296e50bc1c8c5e4b23cb33894cd42e49e11ef3eff08d416b78692bd12a3f2b726fbe8819e94f0a0afa8a322fc6bace88cf4692ce36a303f768c0fdc35608bf3dc31eb433dac8098f4e0a86908f1d13ec145b33449b46dde262a5e2d6fe4bb07ed851de36a5b378cf1f7de7feb6bb709bc135b70d9d2e00a4d92fb45eb6eddcceae05cacb820a3162a282b5870cddd1612fdc8a2be65fb73b7b2f9c3ea49d022fdb6da5f6ba74adabf3e858e9215f589c210d482084f0f5151515d49c8809e446adb02477ca40e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,12 +38,13 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28980b20bf108668388638b6e601a20ed876445198688a5d266014e00b5e34076375d129887c181c56a060289af61747a28f692f2f2b85406045b209ca5f74e3b3eb2e6e3354114cfde7715a094255a7bb7163a4f20b6ee62db4ba5dad15d203a417506398077408564d5a530fdd8b8bd290ddc255610813455226efbbdd872086bba4a7b6ee20be8bfd115d08670d2174ce5bb9cebb5ecb8e975519ff97636761def8d7d8cb65d08bd64690a80214f64d3b1f69950ff4c01ef6a012e86be580cf974114447da0d70f244af9d79753ab65dfefbcf50f52b65e8d5997bd63129e19c300ef85c697d8ef93fda724576de13dc4558ca70e75e3cf07438d6b7da103fa7c030a9d7c7031b2cf2bbf164b608d06" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d2772c37b458601f1d6daf94f44d52dbfca8f0aa2dd158e65781e52af2c9413d051fe4e5ecfe10ecf294d0d105aa4ef8976cd44f920c234fac7265303b46933ebcba775b9a4510dfeb3296e50bc1c8c5e4b23cb33894cd42e49e11ef3eff08d416b78692bd12a3f2b726fbe8819e94f0a0afa8a322fc6bace88cf4692ce36a303f768c0fdc35608bf3dc31eb433dac8098f4e0a86908f1d13ec145b33449b46dde262a5e2d6fe4bb07ed851de36a5b378cf1f7de7feb6bb709bc135b70d9d2e00a4d92fb45eb6eddcceae05cacb820a3162a282b5870cddd1612fdc8a2be65fb73b7b2f9c3ea49d022fdb6da5f6ba74adabf3e858e9215f589c210d482084f0f5151515d49c8809e446adb02477ca40e" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value > $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value > $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -58,7 +59,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d3ae3ec985fff16d19e5239be0dd36b6b1461cd2a9460ad72dfdb5f026bab3f68668520eb92cc682e592b2e4f766b65c6b82c848a0cdce4a00807616adedee178688db0336b8f4de57535507fee25b91a97f6ce4cd393f265395d7ceb03ca4b2be16465d06b49c96586a0828677e9939485720fa900bfe23c9ad6b92dfba19b68b010377edc76d6fa2e07815f9246cfd2747e600375ea4f5ab309a6de9a723e94808ae935a409c71f9570cb96594f69811cbd26fef4f4157b1418e4d1ca123dd78fea435a865af34b33f3186d6ccfa4c572c5ba15950024227b7d9787c6fd81c36fd6067b6812d7bccac91c3332c0fc587d367232f11304124537443c7734036f70c88e6a18dd115d3a1d419b7a26a73\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28ad10a445fef9a23e4a880a12368dcba49bff7e2be045f6f944c417c80ebbafca029f970f3e76ed1d063eb2fb9579d00a217941efe95683d323c3a5b9ea379e5aa0dd7a9c2d279f765124191eca75978b139261009e413dd4fa6bc9d0ef1eadf24a1b0953c6df7d726444a804149a2132f64ba81a49233bac5a4d4eba31a0b92437ee453f2e7e39ece7abb92ce007a5f040981779a5914103119f5fed74c8309e52df518014845bd92add46e8c1af73478d73f3e9af8af43e3103b6d54b15e7e85f1c6f0cf5374cf46061546f5436a4e8e840b3ffeedf83a88c72b3c9905453cd069083875472391bb03da4531bc06537675486c808c3203b134bf30315d7808b1a79625051e3a4e17e24c995cadae24e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -83,12 +84,13 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d3ae3ec985fff16d19e5239be0dd36b6b1461cd2a9460ad72dfdb5f026bab3f68668520eb92cc682e592b2e4f766b65c6b82c848a0cdce4a00807616adedee178688db0336b8f4de57535507fee25b91a97f6ce4cd393f265395d7ceb03ca4b2be16465d06b49c96586a0828677e9939485720fa900bfe23c9ad6b92dfba19b68b010377edc76d6fa2e07815f9246cfd2747e600375ea4f5ab309a6de9a723e94808ae935a409c71f9570cb96594f69811cbd26fef4f4157b1418e4d1ca123dd78fea435a865af34b33f3186d6ccfa4c572c5ba15950024227b7d9787c6fd81c36fd6067b6812d7bccac91c3332c0fc587d367232f11304124537443c7734036f70c88e6a18dd115d3a1d419b7a26a73" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28ad10a445fef9a23e4a880a12368dcba49bff7e2be045f6f944c417c80ebbafca029f970f3e76ed1d063eb2fb9579d00a217941efe95683d323c3a5b9ea379e5aa0dd7a9c2d279f765124191eca75978b139261009e413dd4fa6bc9d0ef1eadf24a1b0953c6df7d726444a804149a2132f64ba81a49233bac5a4d4eba31a0b92437ee453f2e7e39ece7abb92ce007a5f040981779a5914103119f5fed74c8309e52df518014845bd92add46e8c1af73478d73f3e9af8af43e3103b6d54b15e7e85f1c6f0cf5374cf46061546f5436a4e8e840b3ffeedf83a88c72b3c9905453cd069083875472391bb03da4531bc06537675486c808c3203b134bf30315d7808b1a79625051e3a4e17e24c995cadae24e" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value > $1 LIMIT 100" + "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value > $1 LIMIT 100", + "rows_returned": 100 }, { "explain": [ @@ -103,7 +105,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28a033beb35af0337a1e833a4a41dbd757492fdc11701ee223c2506b57dd41d478a483190a3fd3d446e7fe27b9ed375453537a04ac6df237bbc4709f3bf6da861c7a60ca250a178f1d81d22b1a90c13557661ddd1d0c4a981523d29be5286280487150b20aa4c18c57cfd7adca0fc599b01f4f88f42f87bee6fbb221fbd29821c2b88be9f6cfd584643f19f1c95e837a664ed721daa2d5fbbcf0e95a12c7ff7b99e2a4486379c0521c2deb090aab1759fb593360b61f5da8295a4fb1c988f32f07860de7a60f755b65dacca90d5b488adcf3273c63cb9d379157fb079fe43bd1351b2aa22380490978150022c802398c0ebb19dfc312b72c509a0256d21f769f054fdea80b516e294594daf9c010aa3dff\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28ae292752d5c2f873069f897a83f3282f719a26c92595b0b99a4f75b3d755c29d70e4bccec5db0943865bdcb473bb862a8952617cc732fab8419adc971badf0a133e9627ff0fddcce6a34ea9c7fb2c76cf11736cc7da44bdf33cb75227813b8e6ccbf522fa32a9adafc175e13567f347d1f803d3c182fe928d063dfc0f3665f0983f0712bf551f1d899c7896c80ed0472fd2c9815116e097b70e83f2a055e898281f07beb8ed13daef9c8fd4541302a65b51403a00a80589074a96684bb6beaa57006058b0789fdbe7563e4ad3797f23864a4db43177a3f43b3af5d83ffda16dff988572ddc95bb00c7bd76320c3cf5da429dccb4e764d0577ef6cd8889183d21c6f02760fec1938d5e6ddb5f3cb95f1d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -128,12 +130,13 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28a033beb35af0337a1e833a4a41dbd757492fdc11701ee223c2506b57dd41d478a483190a3fd3d446e7fe27b9ed375453537a04ac6df237bbc4709f3bf6da861c7a60ca250a178f1d81d22b1a90c13557661ddd1d0c4a981523d29be5286280487150b20aa4c18c57cfd7adca0fc599b01f4f88f42f87bee6fbb221fbd29821c2b88be9f6cfd584643f19f1c95e837a664ed721daa2d5fbbcf0e95a12c7ff7b99e2a4486379c0521c2deb090aab1759fb593360b61f5da8295a4fb1c988f32f07860de7a60f755b65dacca90d5b488adcf3273c63cb9d379157fb079fe43bd1351b2aa22380490978150022c802398c0ebb19dfc312b72c509a0256d21f769f054fdea80b516e294594daf9c010aa3dff" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28ae292752d5c2f873069f897a83f3282f719a26c92595b0b99a4f75b3d755c29d70e4bccec5db0943865bdcb473bb862a8952617cc732fab8419adc971badf0a133e9627ff0fddcce6a34ea9c7fb2c76cf11736cc7da44bdf33cb75227813b8e6ccbf522fa32a9adafc175e13567f347d1f803d3c182fe928d063dfc0f3665f0983f0712bf551f1d899c7896c80ed0472fd2c9815116e097b70e83f2a055e898281f07beb8ed13daef9c8fd4541302a65b51403a00a80589074a96684bb6beaa57006058b0789fdbe7563e4ad3797f23864a4db43177a3f43b3af5d83ffda16dff988572ddc95bb00c7bd76320c3cf5da429dccb4e764d0577ef6cd8889183d21c6f02760fec1938d5e6ddb5f3cb95f1d" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value < $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value < $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -148,7 +151,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284ccf21aac875dac647810b92b06a1f9b98496c27676f668910513dd3737c176101dd7f21e2bae4dc5c08161c515855e1e583e7d7392c99dc7c403bcca3689bd71e64342b26040c6433e0a9e54794eb681babc8d24270eecc84bb92ebaa836d1037b98de5ca616c0f915605c8f954ba31ecc2a525ba46b2ee3d8ec7c7b83af6775c3a722e032cbd37948b4796dca9e3f8d7944e7ea8ba9916697b6abfa647cdf58fc78c92e8561e87b848246bd75699e804cedc763e87d245b700c492b874b50bf854e5c86b57ae975823a71c73486696023b8c4d19bd2c1be5b2f1417c252f2fc627ffb6c94480ef0fb21ddb9321d129ecf91218f3c5b9ebf8d76b47c7c076c83c9888cf8b931b2a3132c5b7771adbdf\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb281e529bf2483d2661064ad052e5591b8f87d8dfef299b76b83552468aa1479d86cb258a6623a48de43dd06aba5cf4bc864a6b5d282ed70d7ec645b180e9ae12e5e810682f1eff154bd630fc027686b49f2cc7131331bbb9e6738c362e7ce1c6d12e6d25fce2cb87323bc07b066a3794e604bbbda808a0b6693dc08c7edbd482bce2e929e6aafe2ceeb93b033dca4ebaa0204703d7d54d60f27d6814925b8704ca7025e2bcb55018d0c262120aacde155db71bf485d65f9b60dc330eb6276df8d6419933ee5f21972690d7b480c2b8f4925fa724a1773a8b664d87ab2f21e9775bdc18628b460e497f69f2897c9d8ec67a9481e3e07fb2e091e814faa7ac86ee242410c762e063ff31f4b65c776f4d44f1\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -173,12 +176,13 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284ccf21aac875dac647810b92b06a1f9b98496c27676f668910513dd3737c176101dd7f21e2bae4dc5c08161c515855e1e583e7d7392c99dc7c403bcca3689bd71e64342b26040c6433e0a9e54794eb681babc8d24270eecc84bb92ebaa836d1037b98de5ca616c0f915605c8f954ba31ecc2a525ba46b2ee3d8ec7c7b83af6775c3a722e032cbd37948b4796dca9e3f8d7944e7ea8ba9916697b6abfa647cdf58fc78c92e8561e87b848246bd75699e804cedc763e87d245b700c492b874b50bf854e5c86b57ae975823a71c73486696023b8c4d19bd2c1be5b2f1417c252f2fc627ffb6c94480ef0fb21ddb9321d129ecf91218f3c5b9ebf8d76b47c7c076c83c9888cf8b931b2a3132c5b7771adbdf" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb281e529bf2483d2661064ad052e5591b8f87d8dfef299b76b83552468aa1479d86cb258a6623a48de43dd06aba5cf4bc864a6b5d282ed70d7ec645b180e9ae12e5e810682f1eff154bd630fc027686b49f2cc7131331bbb9e6738c362e7ce1c6d12e6d25fce2cb87323bc07b066a3794e604bbbda808a0b6693dc08c7edbd482bce2e929e6aafe2ceeb93b033dca4ebaa0204703d7d54d60f27d6814925b8704ca7025e2bcb55018d0c262120aacde155db71bf485d65f9b60dc330eb6276df8d6419933ee5f21972690d7b480c2b8f4925fa724a1773a8b664d87ab2f21e9775bdc18628b460e497f69f2897c9d8ec67a9481e3e07fb2e091e814faa7ac86ee242410c762e063ff31f4b65c776f4d44f1" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value < $1 LIMIT 100" + "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value < $1 LIMIT 100", + "rows_returned": 100 }, { "explain": [ @@ -193,7 +197,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e70a903a5ae9f1ef15e945c00baff99d426e216bafdbc3ccf0235f0c4f601198bbc1e0a3405b3dd5c7ea295a6289814d64e87934bbcee064476b1e8a05a1b93235294fe17daf9aa71de75a6b8677b8787e4b970a8886c244e320a5cb1cf71a8c781a3c55a7b3fa4002cb8dbe0e9691308662f7268e2c852e187b8617ed1f43624cb4b40bd04e2027ee5a239284bbfefbadf736acd1ffc9b23118e778dec41787be1e1c477e0154409665e96ecf83102517e2bac2ca7c14b19398dd887ee7024a0abd5ba1cdcf37692053f096d5a06b3ce6bc10cf83656b49f7edc806f29dcddffdf723d1050f0ea62961396c6c08629459f0df66c1bbfa3b66727dbe392dc36f1f0794a980ab95e895164b9fe224492f\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28a5d90ce246f0d4b18a5bc8128ea46f67f00ef0d1d2136d296230cd7742422f17e3ca385742a170dd84e44dfa5068387e97f4b2efdb811beaf4c8293472f262af268eddac92ce19326df6cbb368b4221cfa178c305192aa4248992d2b046fa889cca6579a6ab7d2fd6647de93aee37897390f44d390b1636abb980e3ae5fa4331d149c55d347a4d053587aa6752adfab559d7f3c58c67b5fa8c991b82213551aa70b53c5e32fad95d6a3240f07448affcc0950c7196bade57d5444a3befde9b65ae6a94a17345162731a16c28f34dd34e8d45ab9fa65ae5b06e17c843153abda77be0caf0c35b975fa5b26784752f5f23cf9ab7f36c254cc597779ca8ac74f141616554a00e511b21cacb2edbcce606d5\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_100000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -222,12 +226,13 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e70a903a5ae9f1ef15e945c00baff99d426e216bafdbc3ccf0235f0c4f601198bbc1e0a3405b3dd5c7ea295a6289814d64e87934bbcee064476b1e8a05a1b93235294fe17daf9aa71de75a6b8677b8787e4b970a8886c244e320a5cb1cf71a8c781a3c55a7b3fa4002cb8dbe0e9691308662f7268e2c852e187b8617ed1f43624cb4b40bd04e2027ee5a239284bbfefbadf736acd1ffc9b23118e778dec41787be1e1c477e0154409665e96ecf83102517e2bac2ca7c14b19398dd887ee7024a0abd5ba1cdcf37692053f096d5a06b3ce6bc10cf83656b49f7edc806f29dcddffdf723d1050f0ea62961396c6c08629459f0df66c1bbfa3b66727dbe392dc36f1f0794a980ab95e895164b9fe224492f" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28a5d90ce246f0d4b18a5bc8128ea46f67f00ef0d1d2136d296230cd7742422f17e3ca385742a170dd84e44dfa5068387e97f4b2efdb811beaf4c8293472f262af268eddac92ce19326df6cbb368b4221cfa178c305192aa4248992d2b046fa889cca6579a6ab7d2fd6647de93aee37897390f44d390b1636abb980e3ae5fa4331d149c55d347a4d053587aa6752adfab559d7f3c58c67b5fa8c991b82213551aa70b53c5e32fad95d6a3240f07448affcc0950c7196bade57d5444a3befde9b65ae6a94a17345162731a16c28f34dd34e8d45ab9fa65ae5b06e17c843153abda77be0caf0c35b975fa5b26784752f5f23cf9ab7f36c254cc597779ca8ac74f141616554a00e511b21cacb2edbcce606d5" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10" + "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10", + "rows_returned": 10 } ], "target_rows": "100000" diff --git a/results/query/ore_metadata_1000000.json b/results/query/ore_metadata_1000000.json index 383cf5b..ae48ae2 100644 --- a/results/query/ore_metadata_1000000.json +++ b/results/query/ore_metadata_1000000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e67c5c742bbb32a2787920c52f51c95fb332490558c9c4257dd62a8890009deb1875465951a7e0e5d23bc7057c3012b92c51a03714ad703d4b3a20cd537b3bcc874561522b6fb6886dc77a551840a9349c8387dfc0656c89a1ee49fc506c22c23a5a09d6e9c91d604784fee1c969e8907d5dedd7b11a34e13ebcff725212c76acaef861120137157fb8abe1ab8d1899718a40f2c72211f319294569e51dbe3501f1d8bb2d9cf4ab406891a605ba2cf78ae50ea10882f061bcf387f2c61e4f71a8981ed8c675159e8505a0ebe1f92adde7cf0994511a9d2a0a2210c5fc51dbabece4cb8868bfffd11012532a598cf5d52ee88b0348798bfde9196a66b66386365d98a74377211552acdb7460dc88039e8\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb280295abcc6ed7bfb4b042049a08e4d050e258f31c5b66f4fec3c1e5d6f08d5c9c29ec08c8cae990dffc8117ad2b2df987b80c45711c70c82b909e7226ef470912923d20e2a30a317b2f3f0444a3b5280238e27a82e005b7e105997565946b346cbf65d5527a7bf65aa76356c2b5a5b7ab81637a4d5f9796fb5468d4f8d3007c48b0b23dadcfbc21c172603f096f08eb4e099e18e51e1601e68308e6857445a16f2a40e42e534dfff8cfbd91fddba311a82122a7f8530b5e9ef41342b920ccde25d285036a209c6fc1f3008e0538f263410568de743239e511aa2fe8d6891e6b60df0bdd93a579450b53c28b0246cc9eb2d297f722844608f086ece15763d801aa97cf2b17e23703e8324756b0c64712e2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,12 +38,13 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e67c5c742bbb32a2787920c52f51c95fb332490558c9c4257dd62a8890009deb1875465951a7e0e5d23bc7057c3012b92c51a03714ad703d4b3a20cd537b3bcc874561522b6fb6886dc77a551840a9349c8387dfc0656c89a1ee49fc506c22c23a5a09d6e9c91d604784fee1c969e8907d5dedd7b11a34e13ebcff725212c76acaef861120137157fb8abe1ab8d1899718a40f2c72211f319294569e51dbe3501f1d8bb2d9cf4ab406891a605ba2cf78ae50ea10882f061bcf387f2c61e4f71a8981ed8c675159e8505a0ebe1f92adde7cf0994511a9d2a0a2210c5fc51dbabece4cb8868bfffd11012532a598cf5d52ee88b0348798bfde9196a66b66386365d98a74377211552acdb7460dc88039e8" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb280295abcc6ed7bfb4b042049a08e4d050e258f31c5b66f4fec3c1e5d6f08d5c9c29ec08c8cae990dffc8117ad2b2df987b80c45711c70c82b909e7226ef470912923d20e2a30a317b2f3f0444a3b5280238e27a82e005b7e105997565946b346cbf65d5527a7bf65aa76356c2b5a5b7ab81637a4d5f9796fb5468d4f8d3007c48b0b23dadcfbc21c172603f096f08eb4e099e18e51e1601e68308e6857445a16f2a40e42e534dfff8cfbd91fddba311a82122a7f8530b5e9ef41342b920ccde25d285036a209c6fc1f3008e0538f263410568de743239e511aa2fe8d6891e6b60df0bdd93a579450b53c28b0246cc9eb2d297f722844608f086ece15763d801aa97cf2b17e23703e8324756b0c64712e2" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value > $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value > $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -58,7 +59,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb282f4dd513a78aebbec8ca692b96cdae97e9b6c41c10581f11c9ec33769a5d2eb0c8efbb27b03691cc3485710a03010eeeead21c234f65800ebb86fecbb0768cf2f8cbb843bb1b305b73b3dacc7843c8cb60c3730d327eb2fd34ec2e828f857cc77f51f7ef8bab0cf4a14a6f6cf24a2fb42dc119f0f0f665c4b15751e1d8358d8f5fc60e368012b52d4d2a0861109691e15b44d216d1a73f95f28ab34be74c5a5c26b2e9ee7a2538b2db54200201e64022728dbbbdc77bc9516b43fcc8501a5743615eaf814dc80cde01cecf99f578ab01fad07c7870ab81855b9cfddb79ecc073cd81de16c20ea228132d31ff0c6828fa5994153d6df51659ccc86465336ae659fba38b9fddbbebf969c213bf7e4af10c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288a9ac626be185faa2367b26656fe64838a314633b3dd531eec7ad3fe177a4153f3d56621286841c42529812f82c71d52a67758710eff97eeded790af45c137f0c8318510a0dcb55ff0f41fc3528c0c8cd36e35c5c133297e5bb95a43f57e8dcb7f89c2cf0271cb9b2584b15bc3f206ca637d4cb29a19fc349e7d7cf52bb8303e3107a6ee372c47d6081c57dd6d65393befbf3e8684583fb416cd902d557cbe154bc483212365b3714564a78e2df7c9556138c80d4ec57dcbfbda59c5c6209b9e479617701e9b94ea9a327662b62f49220144a8db5d905fd936feb01ebaf53ecd13dad6135bc8a3278437dfd139c01c2e10e7c316d9c665a44ad592860d91e45e4c5bc55a0106ed313c0c456958bb7c5a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -83,12 +84,13 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb282f4dd513a78aebbec8ca692b96cdae97e9b6c41c10581f11c9ec33769a5d2eb0c8efbb27b03691cc3485710a03010eeeead21c234f65800ebb86fecbb0768cf2f8cbb843bb1b305b73b3dacc7843c8cb60c3730d327eb2fd34ec2e828f857cc77f51f7ef8bab0cf4a14a6f6cf24a2fb42dc119f0f0f665c4b15751e1d8358d8f5fc60e368012b52d4d2a0861109691e15b44d216d1a73f95f28ab34be74c5a5c26b2e9ee7a2538b2db54200201e64022728dbbbdc77bc9516b43fcc8501a5743615eaf814dc80cde01cecf99f578ab01fad07c7870ab81855b9cfddb79ecc073cd81de16c20ea228132d31ff0c6828fa5994153d6df51659ccc86465336ae659fba38b9fddbbebf969c213bf7e4af10c" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288a9ac626be185faa2367b26656fe64838a314633b3dd531eec7ad3fe177a4153f3d56621286841c42529812f82c71d52a67758710eff97eeded790af45c137f0c8318510a0dcb55ff0f41fc3528c0c8cd36e35c5c133297e5bb95a43f57e8dcb7f89c2cf0271cb9b2584b15bc3f206ca637d4cb29a19fc349e7d7cf52bb8303e3107a6ee372c47d6081c57dd6d65393befbf3e8684583fb416cd902d557cbe154bc483212365b3714564a78e2df7c9556138c80d4ec57dcbfbda59c5c6209b9e479617701e9b94ea9a327662b62f49220144a8db5d905fd936feb01ebaf53ecd13dad6135bc8a3278437dfd139c01c2e10e7c316d9c665a44ad592860d91e45e4c5bc55a0106ed313c0c456958bb7c5a" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value > $1 LIMIT 100" + "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value > $1 LIMIT 100", + "rows_returned": 100 }, { "explain": [ @@ -103,7 +105,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2852dd641af35f85678b9763d22df20b5c661af02730af1dad4f648aca466b1400466e53c2a5192636ba261eb85dc4abba14b7fba0da00e6c5d8d04073af6d64b32362459f451e8549d3ac6575ee4ce6b2feeefea4919cdab79c7a87e93de84d6f6a185ad9c8ef1da18a410fb3ce8b4c6df9cf68951e70062f95b56a96fb65adbf4913479617c41e01892b744151378f77588eb90e72a0dde315c53c525ee5b4d572cced711b4b80af9e81f2b257cc5f755940a3057ee5669ea685396f01e25ed3f29eb1202a80f6230e92668b04dae9e71188ba90ff93ccd5b971219cb01b4360ecabd4d4f644e5a5c7958d05414c8837efaad4e91dc0ff60cbf5cfe717f3648ccfeb90649367e1d42951795fac8471fe\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284faa84dbb26bca202449eb7fe2fb7b58d37da1a0b5ab3f2fc338b9ea562f6e6c8934382e523d5cd32a049940b435aba9accbfb336d4e41deca665246ae2910708345c54e07de2c3e71eebfc6f9697e2227be47643e6734338b7a5a628e4f9e15d1f78be70658001eabdd93a1f0079951108e1b525ea5a5c809c9886819948afe808fe06b81a5bdedd79668f342b5711cb3b25e78b94396441cfa2e756738c58094437bf67789f4d08ac56df2b04f7a895999d60a7c64cf672299b5ae67c8c85b1fa268df539fcdb8c14cd039d80f49b62ca0da87561bcdb2fb100945d80705a522180fd2845388b4e8001d68408b7eed44924d8cc7b053541c27a63a334806e7a5f6175ca229d9481f06297a92a4c67d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -128,12 +130,13 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2852dd641af35f85678b9763d22df20b5c661af02730af1dad4f648aca466b1400466e53c2a5192636ba261eb85dc4abba14b7fba0da00e6c5d8d04073af6d64b32362459f451e8549d3ac6575ee4ce6b2feeefea4919cdab79c7a87e93de84d6f6a185ad9c8ef1da18a410fb3ce8b4c6df9cf68951e70062f95b56a96fb65adbf4913479617c41e01892b744151378f77588eb90e72a0dde315c53c525ee5b4d572cced711b4b80af9e81f2b257cc5f755940a3057ee5669ea685396f01e25ed3f29eb1202a80f6230e92668b04dae9e71188ba90ff93ccd5b971219cb01b4360ecabd4d4f644e5a5c7958d05414c8837efaad4e91dc0ff60cbf5cfe717f3648ccfeb90649367e1d42951795fac8471fe" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284faa84dbb26bca202449eb7fe2fb7b58d37da1a0b5ab3f2fc338b9ea562f6e6c8934382e523d5cd32a049940b435aba9accbfb336d4e41deca665246ae2910708345c54e07de2c3e71eebfc6f9697e2227be47643e6734338b7a5a628e4f9e15d1f78be70658001eabdd93a1f0079951108e1b525ea5a5c809c9886819948afe808fe06b81a5bdedd79668f342b5711cb3b25e78b94396441cfa2e756738c58094437bf67789f4d08ac56df2b04f7a895999d60a7c64cf672299b5ae67c8c85b1fa268df539fcdb8c14cd039d80f49b62ca0da87561bcdb2fb100945d80705a522180fd2845388b4e8001d68408b7eed44924d8cc7b053541c27a63a334806e7a5f6175ca229d9481f06297a92a4c67d" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value < $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value < $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -148,7 +151,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28da9f8b2f4a04d727439450791a2d22ef57461db05fdc4394e8d2ab653878651c049dd7e35424bcf81d0f52bb8c92fe90008e3cb57b72c6f6fd66f3e4d7bcd25c97bf39e81776e9f43ffbbae6cc991e158691ca9504779797cfcf6e3de8ecae70b8a7fcbfd61e62e5fbcb0f31d6926acce14714f4f0bfcf4e9a764d6f0f31558e776619448216389a2cf97ce10b7b6fba4106e618b189460a4d6c73d6539119031b66994e250a021ce7316e2bae4a003e4edc7fb9abc985ab9cac23de2013fc3ab136b77ec453a4048a4a823dffd0946226ba13768c670a4ce53a9456005c40f86bb0d549d5819528436595605ce19013551ac4f52611c714288b97530f71939837d98ef8e90722aa9648ba03516cf5cd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2819b18b564c51eb6fdbbae80c296500ccb7b5c557caa4938cbabf6e11702abfc7bc4966dc16a3d7ea8e2973bdd7ca5ab0fcba6e5cbaa71f68b74509c05969020202fb1e0f63f4ffea4b78474247c3cdb8743022bdee2e3c346bef97d85906bbfcc74ad1deee62763aed1754e829666288962b14323b95442cb0d3adf5738d964a71094a2357c501965411d28a36efd75d4ee4cff98a5b65af9e0c5d0b7b25be5d6cb2811e2d451fcdd92ccb74c0112b38ffb38e511166467baf2ab566447c2ca3764fd04d581013cbafd9e0a99aefc34e9c9cbc7e4e39294d7af67a8c0eb94d1703afcb7e56567890a4f8c2a3ffd9f956f91214564fa6aab514848ffac69d59f8b76efc327b142530aa32c575e2207a89\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -173,12 +176,13 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28da9f8b2f4a04d727439450791a2d22ef57461db05fdc4394e8d2ab653878651c049dd7e35424bcf81d0f52bb8c92fe90008e3cb57b72c6f6fd66f3e4d7bcd25c97bf39e81776e9f43ffbbae6cc991e158691ca9504779797cfcf6e3de8ecae70b8a7fcbfd61e62e5fbcb0f31d6926acce14714f4f0bfcf4e9a764d6f0f31558e776619448216389a2cf97ce10b7b6fba4106e618b189460a4d6c73d6539119031b66994e250a021ce7316e2bae4a003e4edc7fb9abc985ab9cac23de2013fc3ab136b77ec453a4048a4a823dffd0946226ba13768c670a4ce53a9456005c40f86bb0d549d5819528436595605ce19013551ac4f52611c714288b97530f71939837d98ef8e90722aa9648ba03516cf5cd" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2819b18b564c51eb6fdbbae80c296500ccb7b5c557caa4938cbabf6e11702abfc7bc4966dc16a3d7ea8e2973bdd7ca5ab0fcba6e5cbaa71f68b74509c05969020202fb1e0f63f4ffea4b78474247c3cdb8743022bdee2e3c346bef97d85906bbfcc74ad1deee62763aed1754e829666288962b14323b95442cb0d3adf5738d964a71094a2357c501965411d28a36efd75d4ee4cff98a5b65af9e0c5d0b7b25be5d6cb2811e2d451fcdd92ccb74c0112b38ffb38e511166467baf2ab566447c2ca3764fd04d581013cbafd9e0a99aefc34e9c9cbc7e4e39294d7af67a8c0eb94d1703afcb7e56567890a4f8c2a3ffd9f956f91214564fa6aab514848ffac69d59f8b76efc327b142530aa32c575e2207a89" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value < $1 LIMIT 100" + "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value < $1 LIMIT 100", + "rows_returned": 100 }, { "explain": [ @@ -193,7 +197,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2825e553b73d0e9400f14833cfc1975af57f8b79e9e873918bc567c4c6d04c923efafffc245dc8c8a338f3aa6b685249a1ab53d8422625a534e35141567a37bf0afa5157c81b9c00780121a322d78bce5bf515e7f3f34759001c3faf4687a278f0ca248323bad12fee4382f371368058ae8a177cb5c33e6eca25039ad0a0c15f588e3f7221bd024953e0f55246ca05d2e14008b09b4f928c3f1849e4939688c79fd7beaae5907770d51c30741af2a3c956e78c90345868116dd5fd21739f2669715afb276ddc6aba944d740cc9dba21672c03e66d5f2f6e00bc591b60fcf30d84ff59a813f4bc0606d313388ef9c0704aa83ebdb1daa3602ba6ea1fb602690ade2c1fab04b438be6b4999d179132eac72d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c1390fc21bdeb773b4bdbad6c671917f426c8c4260c21c269440645784d8331d4b3905bb7e6a758386ebe8cc352fc7eda1cbffdd2bd946cfc897d613c858fe690a04c9f0b16e89ee2f8d79935f5f03a1399d0ff17f9a552184c0a1a55195c2e1c26a9777fdd1391214fd1e30928279ce13cea0ea30d1e64e09ca26621ca5aedd9545c3f68b788ef215ad7bfd6a1f2c10a23b8cc962a5fe79b1480ac2b7ca2131d44483a80a74ca410ddff5fff16554353216ab2699a053c6eca0e228789772c63b9123d86171e645f77c05c1476fff4ba038afaf31fe0a531a8645e393f71814a5f318a04f9b543b455da12727b3a6ee1c2b387c03e0c82db503ceb4649701f1206e1b7b9cea08f648076b0a2287d5b5\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_1000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -222,12 +226,13 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2825e553b73d0e9400f14833cfc1975af57f8b79e9e873918bc567c4c6d04c923efafffc245dc8c8a338f3aa6b685249a1ab53d8422625a534e35141567a37bf0afa5157c81b9c00780121a322d78bce5bf515e7f3f34759001c3faf4687a278f0ca248323bad12fee4382f371368058ae8a177cb5c33e6eca25039ad0a0c15f588e3f7221bd024953e0f55246ca05d2e14008b09b4f928c3f1849e4939688c79fd7beaae5907770d51c30741af2a3c956e78c90345868116dd5fd21739f2669715afb276ddc6aba944d740cc9dba21672c03e66d5f2f6e00bc591b60fcf30d84ff59a813f4bc0606d313388ef9c0704aa83ebdb1daa3602ba6ea1fb602690ade2c1fab04b438be6b4999d179132eac72d" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c1390fc21bdeb773b4bdbad6c671917f426c8c4260c21c269440645784d8331d4b3905bb7e6a758386ebe8cc352fc7eda1cbffdd2bd946cfc897d613c858fe690a04c9f0b16e89ee2f8d79935f5f03a1399d0ff17f9a552184c0a1a55195c2e1c26a9777fdd1391214fd1e30928279ce13cea0ea30d1e64e09ca26621ca5aedd9545c3f68b788ef215ad7bfd6a1f2c10a23b8cc962a5fe79b1480ac2b7ca2131d44483a80a74ca410ddff5fff16554353216ab2699a053c6eca0e228789772c63b9123d86171e645f77c05c1476fff4ba038afaf31fe0a531a8645e393f71814a5f318a04f9b543b455da12727b3a6ee1c2b387c03e0c82db503ceb4649701f1206e1b7b9cea08f648076b0a2287d5b5" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10" + "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10", + "rows_returned": 10 } ], "target_rows": "1000000" diff --git a/results/query/ore_rows_10000.json b/results/query/ore_rows_10000.json index 3cb36d3..0c0b153 100644 --- a/results/query/ore_rows_10000.json +++ b/results/query/ore_rows_10000.json @@ -1,11 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[65,130,195,260,325,390,455,520,585,650],"measured_values":[88627084.0,181315500.0,271349291.0,364215750.0,444277833.0,530014542.0,627456958.0,704422875.0,805093875.0,905981167.0],"unit":"ns","throughput":[],"typical":{"estimate":1376898.4465534466,"lower_bound":1364285.1873504273,"upper_bound":1388049.9153823415,"unit":"ns"},"mean":{"estimate":1378034.48942674,"lower_bound":1368364.6329395603,"upper_bound":1387636.007897436,"unit":"ns"},"median":{"estimate":1377627.5637362637,"lower_bound":1363010.1815384615,"upper_bound":1393817.18,"unit":"ns"},"median_abs_dev":{"estimate":22478.869454920175,"lower_bound":3052.0989333531443,"upper_bound":26481.436620629902,"unit":"ns"},"slope":{"estimate":1376898.4465534466,"lower_bound":1364285.1873504273,"upper_bound":1388049.9153823415,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101493916.0,201094792.0,318509584.0,419031209.0,522990459.0,665270916.0,773879084.0,914482416.0,1018092083.0,1160228292.0],"unit":"ns","throughput":[],"typical":{"estimate":28077947.702597402,"lower_bound":27170271.24754902,"upper_bound":28547658.222560976,"unit":"ns"},"mean":{"estimate":27061354.549900793,"lower_bound":26264121.970555555,"upper_bound":27858355.874298114,"unit":"ns"},"median":{"estimate":27090502.023809522,"lower_bound":25781464.78125,"upper_bound":28280335.638888888,"unit":"ns"},"median_abs_dev":{"estimate":1579571.4182303348,"lower_bound":291288.18359360064,"upper_bound":2254370.1063119285,"unit":"ns"},"slope":{"estimate":28077947.702597402,"lower_bound":27170271.24754902,"upper_bound":28547658.222560976,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[92999042.0,190172375.0,317774250.0,380893834.0,461958333.0,554884958.0,665834375.0,724815334.0,846353750.0,934769500.0],"unit":"ns","throughput":[],"typical":{"estimate":6681555.721335807,"lower_bound":6589676.179831933,"upper_bound":6792468.400559807,"unit":"ns"},"mean":{"estimate":6766737.854767573,"lower_bound":6628685.565943028,"upper_bound":6969037.680836735,"unit":"ns"},"median":{"estimate":6697009.126984127,"lower_bound":6605773.30952381,"upper_bound":6796773.071428571,"unit":"ns"},"median_abs_dev":{"estimate":142389.3448232743,"lower_bound":9016.32205778595,"upper_bound":257484.54564659178,"unit":"ns"},"slope":{"estimate":6681555.721335807,"lower_bound":6589676.179831933,"upper_bound":6792468.400559807,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[138837250.0,264854875.0,354431709.0,544609916.0,636139583.0,806024375.0,965400458.0,1073194209.0,1177240958.0,1218687542.0],"unit":"ns","throughput":[],"typical":{"estimate":43335521.104761906,"lower_bound":41778449.40983607,"upper_bound":44912891.72919593,"unit":"ns"},"mean":{"estimate":43728777.143002644,"lower_bound":42308449.02074075,"upper_bound":44976870.91362599,"unit":"ns"},"median":{"estimate":44429452.27083333,"lower_bound":42112217.51481482,"upper_bound":45384159.666666664,"unit":"ns"},"median_abs_dev":{"estimate":1850807.758704099,"lower_bound":471950.6957878712,"upper_bound":3741711.5266824546,"unit":"ns"},"slope":{"estimate":43335521.104761906,"lower_bound":41778449.40983607,"upper_bound":44912891.72919593,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[82857417.0,173417208.0,244973542.0,319833042.0,465603458.0,498043208.0,620816083.0,741370208.0,798497666.0,926255875.0],"unit":"ns","throughput":[],"typical":{"estimate":1444739.554000838,"lower_bound":1390228.2643485547,"upper_bound":1477494.4061109342,"unit":"ns"},"mean":{"estimate":1403253.0000204812,"lower_bound":1356284.1983870969,"upper_bound":1449290.8623502303,"unit":"ns"},"median":{"estimate":1414488.8375576036,"lower_bound":1327943.940860215,"upper_bound":1493961.0887096773,"unit":"ns"},"median_abs_dev":{"estimate":116792.65585635448,"lower_bound":6465.96043972248,"upper_bound":124291.5179059652,"unit":"ns"},"slope":{"estimate":1444739.554000838,"lower_bound":1390228.2643485547,"upper_bound":1477494.4061109342,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[110388542.0,230606125.0,306386125.0,410174792.0,533008583.0,637435000.0,728104208.0,914953250.0,971164667.0,1119285791.0],"unit":"ns","throughput":[],"typical":{"estimate":27253770.53181818,"lower_bound":26364777.027254798,"upper_bound":27874619.886520736,"unit":"ns"},"mean":{"estimate":27035617.538234122,"lower_bound":26363106.0559127,"upper_bound":27733367.185625,"unit":"ns"},"median":{"estimate":26813612.72777778,"lower_bound":26003721.714285713,"upper_bound":28094712.28125,"unit":"ns"},"median_abs_dev":{"estimate":1466604.9888700566,"lower_bound":309125.53332025744,"upper_bound":1996017.0571727783,"unit":"ns"},"slope":{"estimate":27253770.53181818,"lower_bound":26364777.027254798,"upper_bound":27874619.886520736,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[89711375.0,180115959.0,280128250.0,360373667.0,472349417.0,577120209.0,633601209.0,763575833.0,825342541.0,925154667.0],"unit":"ns","throughput":[],"typical":{"estimate":6638169.891651206,"lower_bound":6545593.924123496,"upper_bound":6750662.185970433,"unit":"ns"},"mean":{"estimate":6600550.503676304,"lower_bound":6504415.790370323,"upper_bound":6703104.924192177,"unit":"ns"},"median":{"estimate":6579292.624206349,"lower_bound":6435244.053571428,"upper_bound":6747848.814285714,"unit":"ns"},"median_abs_dev":{"estimate":215442.80938595894,"lower_bound":24170.55883874358,"upper_bound":285297.3959899581,"unit":"ns"},"slope":{"estimate":6638169.891651206,"lower_bound":6545593.924123496,"upper_bound":6750662.185970433,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[126713833.0,274090167.0,381940500.0,466933958.0,673335833.0,745794584.0,893540083.0,1072602667.0,1161465125.0,1276333542.0],"unit":"ns","throughput":[],"typical":{"estimate":42928157.25541125,"lower_bound":42043562.79452055,"upper_bound":43802148.22867117,"unit":"ns"},"mean":{"estimate":42839370.711653434,"lower_bound":41665376.76237963,"upper_bound":43941928.68772487,"unit":"ns"},"median":{"estimate":42546989.580952376,"lower_bound":41935432.888888896,"upper_bound":44691777.791666664,"unit":"ns"},"median_abs_dev":{"estimate":1174363.2933619916,"lower_bound":86562.18544321222,"upper_bound":3487939.98189918,"unit":"ns"},"slope":{"estimate":42928157.25541125,"lower_bound":42043562.79452055,"upper_bound":43802148.22867117,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[70,140,210,280,350,420,490,560,630,700],"measured_values":[83408542.0,176914542.0,287480458.0,346013542.0,450772125.0,556780250.0,582492792.0,763717916.0,749099375.0,783107042.0],"unit":"ns","throughput":[],"typical":{"estimate":1225915.8797773656,"lower_bound":1163656.3564115958,"upper_bound":1316764.6741993846,"unit":"ns"},"mean":{"estimate":1253384.4496507938,"lower_bound":1204600.8571341268,"upper_bound":1302383.8462698413,"unit":"ns"},"median":{"estimate":1249718.975,"lower_bound":1189046.626984127,"upper_bound":1325851.1749999998,"unit":"ns"},"median_abs_dev":{"estimate":90164.70511092318,"lower_bound":2279.9622428561697,"upper_bound":138890.399606536,"unit":"ns"},"slope":{"estimate":1225915.8797773656,"lower_bound":1163656.3564115958,"upper_bound":1316764.6741993846,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107852459.0,220964417.0,320362959.0,413625750.0,523963375.0,636545209.0,794963625.0,854441667.0,967544667.0,1051344083.0],"unit":"ns","throughput":[],"typical":{"estimate":26770183.664285716,"lower_bound":26356436.978125,"upper_bound":27377548.720604006,"unit":"ns"},"mean":{"estimate":26810577.824613094,"lower_bound":26414418.72622917,"upper_bound":27274652.870089285,"unit":"ns"},"median":{"estimate":26699107.671875,"lower_bound":26283602.075,"upper_bound":27248396.4375,"unit":"ns"},"median_abs_dev":{"estimate":503722.7370346343,"lower_bound":132385.09675906878,"upper_bound":1143093.3429310387,"unit":"ns"},"slope":{"estimate":26770183.664285716,"lower_bound":26356436.978125,"upper_bound":27377548.720604006,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[92967542.0,232611959.0,279119417.0,380683667.0,458095333.0,568803250.0,676040417.0,762019250.0,833756334.0,934745292.0],"unit":"ns","throughput":[],"typical":{"estimate":1520790.8416003352,"lower_bound":1504184.4866910747,"upper_bound":1546067.8278264955,"unit":"ns"},"mean":{"estimate":1551367.0689170507,"lower_bound":1504286.7465174731,"upper_bound":1628827.3114976957,"unit":"ns"},"median":{"estimate":1518347.3456989247,"lower_bound":1499476.4838709678,"upper_bound":1543368.9039938557,"unit":"ns"},"median_abs_dev":{"estimate":27318.86836217054,"lower_bound":4785.127284401814,"upper_bound":59281.710072055364,"unit":"ns"},"slope":{"estimate":1520790.8416003352,"lower_bound":1504184.4866910747,"upper_bound":1546067.8278264955,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[100695625.0,220332125.0,346749625.0,468111583.0,543471250.0,700056833.0,774685125.0,884695000.0,1004439166.0,1136853458.0],"unit":"ns","throughput":[],"typical":{"estimate":28104282.6487013,"lower_bound":27731760.307591625,"upper_bound":28514810.51916455,"unit":"ns"},"mean":{"estimate":27884726.414146822,"lower_bound":27128587.886071425,"upper_bound":28528136.628988095,"unit":"ns"},"median":{"estimate":27784206.91865079,"lower_bound":27410140.625,"upper_bound":28895802.083333332,"unit":"ns"},"median_abs_dev":{"estimate":924974.8127134138,"lower_bound":108539.22463554199,"upper_bound":1945047.188191426,"unit":"ns"},"slope":{"estimate":28104282.6487013,"lower_bound":27731760.307591625,"upper_bound":28514810.51916455,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[100761000.0,186552208.0,311553250.0,467783333.0,529270291.0,576888250.0,634099084.0,756615125.0,847139833.0,924819917.0],"unit":"ns","throughput":[],"typical":{"estimate":6818443.730612244,"lower_bound":6655833.465176194,"upper_bound":7167391.125842196,"unit":"ns"},"mean":{"estimate":7061480.2451048745,"lower_bound":6755746.354807256,"upper_bound":7428369.864880952,"unit":"ns"},"median":{"estimate":6811604.724702381,"lower_bound":6662578.857142857,"upper_bound":7417934.523809524,"unit":"ns"},"median_abs_dev":{"estimate":405457.0545875908,"lower_bound":84096.4910769893,"upper_bound":953282.3175775224,"unit":"ns"},"slope":{"estimate":6818443.730612244,"lower_bound":6655833.465176194,"upper_bound":7167391.125842196,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[90592708.0,182162208.0,254569542.0,325809542.0,402180083.0,548305250.0,719429959.0,709621167.0,835311667.0,870295334.0],"unit":"ns","throughput":[],"typical":{"estimate":45138095.097402595,"lower_bound":43133627.11932911,"upper_bound":47418931.37423313,"unit":"ns"},"mean":{"estimate":44556161.579067454,"lower_bound":42779549.21149306,"upper_bound":46536172.62933085,"unit":"ns"},"median":{"estimate":44823838.46875,"lower_bound":42120479.725,"upper_bound":45973377.86111111,"unit":"ns"},"median_abs_dev":{"estimate":2143422.226519981,"lower_bound":362047.94837236404,"upper_bound":5672007.429301735,"unit":"ns"},"slope":{"estimate":45138095.097402595,"lower_bound":43133627.11932911,"upper_bound":47418931.37423313,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[64,128,192,256,320,384,448,512,576,640],"measured_values":[93778375.0,186143625.0,297128042.0,392062750.0,412378792.0,585392333.0,656628417.0,733184542.0,841602000.0,965056500.0],"unit":"ns","throughput":[],"typical":{"estimate":1468620.4125,"lower_bound":1424717.0398004896,"upper_bound":1501122.3875709374,"unit":"ns"},"mean":{"estimate":1467841.8961793156,"lower_bound":1419891.0269433595,"upper_bound":1505784.5701646204,"unit":"ns"},"median":{"estimate":1465487.7700892857,"lower_bound":1446557.8209635415,"upper_bound":1524459.2005208333,"unit":"ns"},"median_abs_dev":{"estimate":56264.46340618422,"lower_bound":3688.092639210726,"upper_bound":101128.24651945842,"unit":"ns"},"slope":{"estimate":1468620.4125,"lower_bound":1424717.0398004896,"upper_bound":1501122.3875709374,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[106076458.0,227742875.0,310567750.0,465177541.0,573429000.0,698845791.0,811247000.0,998615750.0,1048945750.0,1133949459.0],"unit":"ns","throughput":[],"typical":{"estimate":29131075.784415584,"lower_bound":28439303.05608947,"upper_bound":30025751.5843579,"unit":"ns"},"mean":{"estimate":28539720.83956349,"lower_bound":27658174.581229165,"upper_bound":29378452.83393849,"unit":"ns"},"median":{"estimate":28822278.57142857,"lower_bound":27493486.9375,"upper_bound":29118574.625,"unit":"ns"},"median_abs_dev":{"estimate":496317.07191777695,"lower_bound":61226.153777601205,"upper_bound":2800903.2961790273,"unit":"ns"},"slope":{"estimate":29131075.784415584,"lower_bound":28439303.05608947,"upper_bound":30025751.5843579,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[91104542.0,182803625.0,304837917.0,371573875.0,463479917.0,566677583.0,677218750.0,758668833.0,847064375.0,945724417.0],"unit":"ns","throughput":[],"typical":{"estimate":6765434.43135436,"lower_bound":6714041.862426982,"upper_bound":6832038.895215633,"unit":"ns"},"mean":{"estimate":6745889.677939342,"lower_bound":6632483.011406249,"upper_bound":6885528.288316326,"unit":"ns"},"median":{"estimate":6734447.418650794,"lower_bound":6581974.330357143,"upper_bound":6832784.907653062,"unit":"ns"},"median_abs_dev":{"estimate":157530.24875244606,"lower_bound":20509.668079630275,"upper_bound":298690.6118686104,"unit":"ns"},"slope":{"estimate":6765434.43135436,"lower_bound":6714041.862426982,"upper_bound":6832038.895215633,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[138704750.0,279861834.0,364703584.0,520762583.0,692023458.0,821342500.0,981542042.0,1084145333.0,1268710625.0,1343345167.0],"unit":"ns","throughput":[],"typical":{"estimate":45592697.87445887,"lower_bound":44731314.72131147,"upper_bound":46417040.26978945,"unit":"ns"},"mean":{"estimate":45224336.82038359,"lower_bound":43921201.51800694,"upper_bound":46225226.35634755,"unit":"ns"},"median":{"estimate":45882518.04444444,"lower_bound":44284802.0625,"upper_bound":46643639.0,"unit":"ns"},"median_abs_dev":{"estimate":1199942.399303435,"lower_bound":327729.9439927443,"upper_bound":2632860.769682385,"unit":"ns"},"slope":{"estimate":45592697.87445887,"lower_bound":44731314.72131147,"upper_bound":46417040.26978945,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[71,142,213,284,355,426,497,568,639,710],"measured_values":[89062959.0,179063500.0,304477542.0,345292917.0,459789417.0,526114083.0,649214417.0,711251042.0,824789083.0,908369041.0],"unit":"ns","throughput":[],"typical":{"estimate":1278168.1817450156,"lower_bound":1258557.314201878,"upper_bound":1297230.01486435,"unit":"ns"},"mean":{"estimate":1281951.3361390566,"lower_bound":1252462.6587245697,"upper_bound":1320899.9410580145,"unit":"ns"},"median":{"estimate":1270201.7894366197,"lower_bound":1244708.7288732394,"upper_bound":1298508.0856248601,"unit":"ns"},"median_abs_dev":{"estimate":33749.621229791606,"lower_bound":6570.46452147299,"upper_bound":68668.20598258587,"unit":"ns"},"slope":{"estimate":1278168.1817450156,"lower_bound":1258557.314201878,"upper_bound":1297230.01486435,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[111058375.0,208978125.0,307114125.0,452533709.0,552480292.0,716737416.0,756444917.0,956414125.0,1103875916.0,1156518250.0],"unit":"ns","throughput":[],"typical":{"estimate":29071305.814935066,"lower_bound":27891049.63821138,"upper_bound":29905083.79961267,"unit":"ns"},"mean":{"estimate":28173114.097549606,"lower_bound":27181856.738340773,"upper_bound":29144438.54827381,"unit":"ns"},"median":{"estimate":28023975.28125,"lower_bound":26873140.1125,"upper_bound":29864059.0,"unit":"ns"},"median_abs_dev":{"estimate":2111347.7216410856,"lower_bound":488770.37344884017,"upper_bound":2832319.395030028,"unit":"ns"},"slope":{"estimate":29071305.814935066,"lower_bound":27891049.63821138,"upper_bound":29905083.79961267,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_100000.json b/results/query/ore_rows_100000.json index 7a3becd..044489f 100644 --- a/results/query/ore_rows_100000.json +++ b/results/query/ore_rows_100000.json @@ -1,11 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[100,200,300,400,500,600,700,800,900,1000],"measured_values":[95037541.0,186455208.0,272503666.0,388910459.0,496875166.0,574136542.0,743524875.0,794718750.0,919229250.0,975959667.0],"unit":"ns","throughput":[],"typical":{"estimate":996503.3744935065,"lower_bound":971207.1548730965,"upper_bound":1021660.5697992789,"unit":"ns"},"mean":{"estimate":976682.0050190475,"lower_bound":951201.7071416667,"upper_bound":1003386.2277714288,"unit":"ns"},"median":{"estimate":974117.9072499999,"lower_bound":944585.1383333334,"upper_bound":1007382.1354166667,"unit":"ns"},"median_abs_dev":{"estimate":32153.82910775544,"lower_bound":13188.219730362323,"upper_bound":77463.86157009145,"unit":"ns"},"slope":{"estimate":996503.3744935065,"lower_bound":971207.1548730965,"upper_bound":1021660.5697992789,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114683959.0,217493834.0,377702875.0,459957375.0,560239083.0,691140208.0,829196625.0,1048144333.0,1069009375.0,1499530209.0],"unit":"ns","throughput":[],"typical":{"estimate":31997768.778571427,"lower_bound":29110464.81111111,"upper_bound":34866922.43181818,"unit":"ns"},"mean":{"estimate":30244139.30084325,"lower_bound":28711597.49125992,"upper_bound":32202355.24800546,"unit":"ns"},"median":{"estimate":29205836.92261905,"lower_bound":28379645.04375,"upper_bound":31475239.583333332,"unit":"ns"},"median_abs_dev":{"estimate":1281507.4856536966,"lower_bound":113190.85557796061,"upper_bound":3975437.252928134,"unit":"ns"},"slope":{"estimate":31997768.778571427,"lower_bound":29110464.81111111,"upper_bound":34866922.43181818,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[82329792.0,173479916.0,256759375.0,347532708.0,469424208.0,526156542.0,653677125.0,664877083.0,780126500.0,909778708.0],"unit":"ns","throughput":[],"typical":{"estimate":6814673.524875125,"lower_bound":6596447.182769948,"upper_bound":7020364.406211436,"unit":"ns"},"mean":{"estimate":6748212.759685593,"lower_bound":6577668.491021901,"upper_bound":6930282.425971307,"unit":"ns"},"median":{"estimate":6677812.884615385,"lower_bound":6530398.369123932,"upper_bound":6998297.753846154,"unit":"ns"},"median_abs_dev":{"estimate":280955.0495899359,"lower_bound":14922.400414562488,"upper_bound":512824.9229272686,"unit":"ns"},"slope":{"estimate":6814673.524875125,"lower_bound":6596447.182769948,"upper_bound":7020364.406211436,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[92221208.0,191923500.0,288941792.0,343732875.0,460148541.0,518663417.0,635176791.0,697519792.0,790931458.0,916654583.0],"unit":"ns","throughput":[],"typical":{"estimate":44729705.345454544,"lower_bound":43886888.99066951,"upper_bound":45603498.36263736,"unit":"ns"},"mean":{"estimate":45318998.27162699,"lower_bound":44248348.25899603,"upper_bound":46438627.15380952,"unit":"ns"},"median":{"estimate":45601249.96785714,"lower_bound":43581293.986111104,"upper_bound":46997864.55,"unit":"ns"},"median_abs_dev":{"estimate":2718255.4123529806,"lower_bound":205988.62264797755,"upper_bound":3322043.387371942,"unit":"ns"},"slope":{"estimate":44729705.345454544,"lower_bound":43886888.99066951,"upper_bound":45603498.36263736,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[99,198,297,396,495,594,693,792,891,990],"measured_values":[94516292.0,179335458.0,269032000.0,350871291.0,403259708.0,627289750.0,766125458.0,762263709.0,895892292.0,995161083.0],"unit":"ns","throughput":[],"typical":{"estimate":994869.0738029648,"lower_bound":940188.9381748519,"upper_bound":1035461.8713448851,"unit":"ns"},"mean":{"estimate":960170.2669444444,"lower_bound":909728.3484082492,"upper_bound":1011274.3817424241,"unit":"ns"},"median":{"estimate":958582.0991161616,"lower_bound":895935.1317340068,"upper_bound":1030628.2826599327,"unit":"ns"},"median_abs_dev":{"estimate":78279.73080331247,"lower_bound":14672.57747107534,"upper_bound":147826.5515280793,"unit":"ns"},"slope":{"estimate":994869.0738029648,"lower_bound":940188.9381748519,"upper_bound":1035461.8713448851,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[138530541.0,266975375.0,390331708.0,498719750.0,564035958.0,695564000.0,819830416.0,949499541.0,1045919125.0,1187370250.0],"unit":"ns","throughput":[],"typical":{"estimate":29515391.603896104,"lower_bound":29157109.91144816,"upper_bound":30007512.4196008,"unit":"ns"},"mean":{"estimate":30657489.87149801,"lower_bound":29469413.92459325,"upper_bound":31996633.750009917,"unit":"ns"},"median":{"estimate":29678058.453125,"lower_bound":29053309.027777776,"upper_bound":32527642.333333332,"unit":"ns"},"median_abs_dev":{"estimate":1610463.6007416828,"lower_bound":273762.1410314193,"upper_bound":3369179.9251392703,"unit":"ns"},"slope":{"estimate":29515391.603896104,"lower_bound":29157109.91144816,"upper_bound":30007512.4196008,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[91157375.0,175635208.0,265895667.0,391500583.0,458677041.0,540730000.0,626614709.0,754039667.0,818276875.0,920085750.0],"unit":"ns","throughput":[],"typical":{"estimate":6554332.468089053,"lower_bound":6462323.045604396,"upper_bound":6652628.106625549,"unit":"ns"},"mean":{"estimate":6528847.58406746,"lower_bound":6417870.979383928,"upper_bound":6661010.529702382,"unit":"ns"},"median":{"estimate":6502750.992063493,"lower_bound":6384055.55952381,"upper_bound":6642513.091964286,"unit":"ns"},"median_abs_dev":{"estimate":131961.35225721807,"lower_bound":43194.2488398157,"upper_bound":325099.0975008375,"unit":"ns"},"slope":{"estimate":6554332.468089053,"lower_bound":6462323.045604396,"upper_bound":6652628.106625549,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[114678791.0,234879500.0,372085625.0,480259208.0,655433791.0,881280875.0,915651625.0,1087406000.0,1147275041.0,1289357667.0],"unit":"ns","throughput":[],"typical":{"estimate":43735452.04935065,"lower_bound":42519688.70637119,"upper_bound":45374256.0859882,"unit":"ns"},"mean":{"estimate":42577422.83185185,"lower_bound":40805125.144074075,"upper_bound":44496140.75519443,"unit":"ns"},"median":{"estimate":42735128.54259259,"lower_bound":40021600.666666664,"upper_bound":44455520.833333336,"unit":"ns"},"median_abs_dev":{"estimate":2939800.126974782,"lower_bound":531509.9902138151,"upper_bound":5495155.4173114905,"unit":"ns"},"slope":{"estimate":43735452.04935065,"lower_bound":42519688.70637119,"upper_bound":45374256.0859882,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[76,152,228,304,380,456,532,608,684,760],"measured_values":[74067083.0,149728583.0,244110416.0,299688958.0,428824750.0,517816167.0,598964375.0,623416000.0,700643583.0,813679375.0],"unit":"ns","throughput":[],"typical":{"estimate":1065560.3794600137,"lower_bound":1035072.6622437673,"upper_bound":1102833.8074970385,"unit":"ns"},"mean":{"estimate":1052634.1591478693,"lower_bound":1016335.0989583333,"upper_bound":1089486.9649436087,"unit":"ns"},"median":{"estimate":1047993.0098684211,"lower_bound":985818.9407894737,"upper_bound":1125872.8853383458,"unit":"ns"},"median_abs_dev":{"estimate":92744.4949120088,"lower_bound":3874.476839109119,"upper_bound":101107.11632012132,"unit":"ns"},"slope":{"estimate":1065560.3794600137,"lower_bound":1035072.6622437673,"upper_bound":1102833.8074970385,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101440625.0,241291167.0,364606750.0,483742417.0,616722875.0,665777709.0,827072250.0,949498125.0,1076548000.0,1168029125.0],"unit":"ns","throughput":[],"typical":{"estimate":29510264.614285715,"lower_bound":29009033.474862777,"upper_bound":29989748.240950584,"unit":"ns"},"mean":{"estimate":29303118.093105156,"lower_bound":28237453.565373268,"upper_bound":30107463.13816468,"unit":"ns"},"median":{"estimate":29787963.758680556,"lower_bound":28639516.25892857,"upper_bound":30272645.854166664,"unit":"ns"},"median_abs_dev":{"estimate":765891.0849714652,"lower_bound":197959.36289177035,"upper_bound":1959372.9597266754,"unit":"ns"},"slope":{"estimate":29510264.614285715,"lower_bound":29009033.474862777,"upper_bound":29989748.240950584,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[92,184,276,368,460,552,644,736,828,920],"measured_values":[110725416.0,208797791.0,300968875.0,436493167.0,552921667.0,626243250.0,700540958.0,778885458.0,895999958.0,1004985458.0],"unit":"ns","throughput":[],"typical":{"estimate":1099604.536928289,"lower_bound":1080641.89773215,"upper_bound":1134470.6864064615,"unit":"ns"},"mean":{"estimate":1127196.5528657692,"lower_bound":1096580.0588508884,"upper_bound":1159469.6831172358,"unit":"ns"},"median":{"estimate":1113437.0695652175,"lower_bound":1086296.2457729469,"upper_bound":1186122.7364130435,"unit":"ns"},"median_abs_dev":{"estimate":42218.56678206487,"lower_bound":3394.3972151721746,"upper_bound":84661.72564064943,"unit":"ns"},"slope":{"estimate":1099604.536928289,"lower_bound":1080641.89773215,"upper_bound":1134470.6864064615,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[116919334.0,224678208.0,334559375.0,447424750.0,528192916.0,742971208.0,841713750.0,864081458.0,1044525875.0,1179149208.0],"unit":"ns","throughput":[],"typical":{"estimate":28867089.332467534,"lower_bound":27746298.7360595,"upper_bound":29692602.034483597,"unit":"ns"},"mean":{"estimate":28608247.251686506,"lower_bound":27793556.930562504,"upper_bound":29430737.51936508,"unit":"ns"},"median":{"estimate":28549691.819444444,"lower_bound":27483296.21875,"upper_bound":29645519.42857143,"unit":"ns"},"median_abs_dev":{"estimate":1192885.1581237218,"lower_bound":159546.9280091431,"upper_bound":2281117.7559770644,"unit":"ns"},"slope":{"estimate":28867089.332467534,"lower_bound":27746298.7360595,"upper_bound":29692602.034483597,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[94516958.0,186386791.0,271238833.0,364616250.0,438437000.0,517851625.0,592533458.0,687337166.0,800559834.0,870338209.0],"unit":"ns","throughput":[],"typical":{"estimate":6712011.772027972,"lower_bound":6626488.189384389,"upper_bound":6813680.940000888,"unit":"ns"},"mean":{"estimate":6844792.774413919,"lower_bound":6702865.691904763,"upper_bound":6996336.130096154,"unit":"ns"},"median":{"estimate":6793788.17948718,"lower_bound":6639123.397435897,"upper_bound":7061782.301282052,"unit":"ns"},"median_abs_dev":{"estimate":256364.26389670125,"lower_bound":72059.64285914839,"upper_bound":418732.93175061996,"unit":"ns"},"slope":{"estimate":6712011.772027972,"lower_bound":6626488.189384389,"upper_bound":6813680.940000888,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[90079416.0,175154875.0,276329334.0,367196291.0,507921792.0,566575000.0,656952417.0,748902542.0,808312042.0,925098666.0],"unit":"ns","throughput":[],"typical":{"estimate":46484290.37012987,"lower_bound":45665411.88317757,"upper_bound":47632838.46825397,"unit":"ns"},"mean":{"estimate":46368235.403174594,"lower_bound":45373998.08416666,"upper_bound":47567623.9379871,"unit":"ns"},"median":{"estimate":46154911.15,"lower_bound":45039708.0,"upper_bound":47010496.10416667,"unit":"ns"},"median_abs_dev":{"estimate":1356529.810076785,"lower_bound":263455.7358252235,"upper_bound":2539593.370538207,"unit":"ns"},"slope":{"estimate":46484290.37012987,"lower_bound":45665411.88317757,"upper_bound":47632838.46825397,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[95,190,285,380,475,570,665,760,855,950],"measured_values":[94990416.0,193272250.0,344493958.0,380493292.0,537067542.0,577579708.0,664796417.0,954145333.0,943233125.0,983683875.0],"unit":"ns","throughput":[],"typical":{"estimate":1088188.1168557757,"lower_bound":1028914.3598240474,"upper_bound":1164844.2372272369,"unit":"ns"},"mean":{"estimate":1076493.8187314118,"lower_bound":1025952.5878438283,"upper_bound":1135149.2019347951,"unit":"ns"},"median":{"estimate":1026339.5394736843,"lower_bound":1001298.1368421053,"upper_bound":1155973.6836257312,"unit":"ns"},"median_abs_dev":{"estimate":39352.727460823204,"lower_bound":2074.1885758074995,"upper_bound":153453.21486583634,"unit":"ns"},"slope":{"estimate":1088188.1168557757,"lower_bound":1028914.3598240474,"upper_bound":1164844.2372272369,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[105287708.0,256453208.0,315106167.0,428589250.0,532426000.0,679557125.0,745353333.0,866857250.0,1032979917.0,1170284750.0],"unit":"ns","throughput":[],"typical":{"estimate":28032039.259090908,"lower_bound":26984139.82822086,"upper_bound":28755454.081878386,"unit":"ns"},"mean":{"estimate":27802048.987202384,"lower_bound":26848589.761904765,"upper_bound":28985448.737336308,"unit":"ns"},"median":{"estimate":26938058.59375,"lower_bound":26471613.5,"upper_bound":28785999.479166664,"unit":"ns"},"median_abs_dev":{"estimate":960237.702521123,"lower_bound":123846.1956887913,"upper_bound":2862463.1049623676,"unit":"ns"},"slope":{"estimate":28032039.259090908,"lower_bound":26984139.82822086,"upper_bound":28755454.081878386,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[85712833.0,175188625.0,290112792.0,367767708.0,462691583.0,555505417.0,662329667.0,758028167.0,888538042.0,974295083.0],"unit":"ns","throughput":[],"typical":{"estimate":6839390.70890538,"lower_bound":6668035.116545614,"upper_bound":6942894.476253298,"unit":"ns"},"mean":{"estimate":6661456.3672137195,"lower_bound":6480551.50284864,"upper_bound":6828923.7718231995,"unit":"ns"},"median":{"estimate":6685812.857993197,"lower_bound":6433308.182142857,"upper_bound":6907447.428571428,"unit":"ns"},"median_abs_dev":{"estimate":252165.73967316293,"lower_bound":34010.26977119668,"upper_bound":520773.60836442024,"unit":"ns"},"slope":{"estimate":6839390.70890538,"lower_bound":6668035.116545614,"upper_bound":6942894.476253298,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[79145917.0,157557417.0,249752416.0,341857916.0,499840000.0,594125958.0,685257583.0,758939625.0,811996416.0,898475084.0],"unit":"ns","throughput":[],"typical":{"estimate":46410316.981818184,"lower_bound":45046044.92641,"upper_bound":48126757.056603774,"unit":"ns"},"mean":{"estimate":44922981.43934523,"lower_bound":42568888.144999996,"upper_bound":47235873.665178575,"unit":"ns"},"median":{"estimate":45017333.1,"lower_bound":41152599.0,"upper_bound":48946970.21428572,"unit":"ns"},"median_abs_dev":{"estimate":5427477.926693008,"lower_bound":820498.1299832537,"upper_bound":6661563.938573597,"unit":"ns"},"slope":{"estimate":46410316.981818184,"lower_bound":45046044.92641,"upper_bound":48126757.056603774,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[75,150,225,300,375,450,525,600,675,750],"measured_values":[82405750.0,149803292.0,219453042.0,337113625.0,461485959.0,531343250.0,561110292.0,817970583.0,867455375.0,944419875.0],"unit":"ns","throughput":[],"typical":{"estimate":1233148.0203636363,"lower_bound":1140957.249472888,"upper_bound":1289953.3835733333,"unit":"ns"},"mean":{"estimate":1158429.4272756614,"lower_bound":1084039.5632470897,"upper_bound":1233176.3287550265,"unit":"ns"},"median":{"estimate":1152237.4305555555,"lower_bound":1048715.9733333332,"upper_bound":1259226.5,"unit":"ns"},"median_abs_dev":{"estimate":141176.86963960962,"lower_bound":38388.329640693264,"upper_bound":212330.89677748425,"unit":"ns"},"slope":{"estimate":1233148.0203636363,"lower_bound":1140957.249472888,"upper_bound":1289953.3835733333,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120624833.0,270990459.0,381201667.0,454686750.0,623946334.0,647041416.0,834482458.0,903702625.0,1048197958.0,1203938708.0],"unit":"ns","throughput":[],"typical":{"estimate":29331886.25064935,"lower_bound":28488537.549130946,"upper_bound":30111122.077914797,"unit":"ns"},"mean":{"estimate":29963084.838759918,"lower_bound":28848289.543479413,"upper_bound":31162715.668280497,"unit":"ns"},"median":{"estimate":29950706.314285714,"lower_bound":28417921.875,"upper_bound":31197316.7,"unit":"ns"},"median_abs_dev":{"estimate":2060365.3471937026,"lower_bound":261874.09552580782,"upper_bound":3407216.0580573254,"unit":"ns"},"slope":{"estimate":29331886.25064935,"lower_bound":28488537.549130946,"upper_bound":30111122.077914797,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/100000","ORE/ore_decrypt/range_gt_10/100000","ORE/ore/range_gt_100/100000","ORE/ore_decrypt/range_gt_100/100000","ORE/ore/range_lt_10/100000","ORE/ore_decrypt/range_lt_10/100000","ORE/ore/range_lt_100/100000","ORE/ore_decrypt/range_lt_100/100000","ORE/ore/range_lt_hybrid_ordered_10/100000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_1000000.json b/results/query/ore_rows_1000000.json index d60a9dc..c3b5758 100644 --- a/results/query/ore_rows_1000000.json +++ b/results/query/ore_rows_1000000.json @@ -1,11 +1,7 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[96939333.0,217203459.0,284386917.0,367142959.0,486729417.0,584632459.0,638673375.0,767245000.0,885730125.0,949862791.0],"unit":"ns","throughput":[],"typical":{"estimate":1153916.2364888124,"lower_bound":1131328.7851048321,"upper_bound":1174918.888429631,"unit":"ns"},"mean":{"estimate":1165605.402194492,"lower_bound":1136271.1364228341,"upper_bound":1202959.0481526102,"unit":"ns"},"median":{"estimate":1161716.6144578313,"lower_bound":1125132.6436746987,"upper_bound":1179279.167068273,"unit":"ns"},"median_abs_dev":{"estimate":27357.005271785943,"lower_bound":4460.394578041187,"upper_bound":73443.68759008974,"unit":"ns"},"slope":{"estimate":1153916.2364888124,"lower_bound":1131328.7851048321,"upper_bound":1174918.888429631,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[130843625.0,261073167.0,316068834.0,460961375.0,533401208.0,656262167.0,840381084.0,903373209.0,1017479208.0,1135846250.0],"unit":"ns","throughput":[],"typical":{"estimate":28360421.84090909,"lower_bound":27786411.003379986,"upper_bound":28977403.075902335,"unit":"ns"},"mean":{"estimate":28941201.54282738,"lower_bound":27717261.596169643,"upper_bound":30319754.24583333,"unit":"ns"},"median":{"estimate":28329733.791666664,"lower_bound":27344256.958333332,"upper_bound":30722115.90625,"unit":"ns"},"median_abs_dev":{"estimate":1960849.826980455,"lower_bound":122865.63120307401,"upper_bound":3885206.2074988033,"unit":"ns"},"slope":{"estimate":28360421.84090909,"lower_bound":27786411.003379986,"upper_bound":28977403.075902335,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[84153792.0,169192791.0,266516958.0,342489250.0,430747834.0,516207917.0,618863042.0,779232375.0,844472583.0,887829500.0],"unit":"ns","throughput":[],"typical":{"estimate":6970525.966233767,"lower_bound":6711195.717289202,"upper_bound":7202875.570617907,"unit":"ns"},"mean":{"estimate":6798630.7346794875,"lower_bound":6625675.762564102,"upper_bound":7007103.837564103,"unit":"ns"},"median":{"estimate":6713791.261538461,"lower_bound":6562732.628205128,"upper_bound":7023586.038461538,"unit":"ns"},"median_abs_dev":{"estimate":183424.61717048511,"lower_bound":24518.78218008948,"upper_bound":505894.38817627204,"unit":"ns"},"slope":{"estimate":6970525.966233767,"lower_bound":6711195.717289202,"upper_bound":7202875.570617907,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[87046333.0,197808792.0,293294167.0,375748958.0,468441709.0,501224833.0,672395417.0,780610375.0,836448666.0,894296625.0],"unit":"ns","throughput":[],"typical":{"estimate":46282798.644155845,"lower_bound":44794314.15443425,"upper_bound":47936795.320371136,"unit":"ns"},"mean":{"estimate":46543984.64922619,"lower_bound":44999120.2856369,"upper_bound":47939402.091309525,"unit":"ns"},"median":{"estimate":46906395.325,"lower_bound":44714831.25,"upper_bound":48788148.4375,"unit":"ns"},"median_abs_dev":{"estimate":2859727.0099534406,"lower_bound":370093.5860045291,"upper_bound":3972770.935869215,"unit":"ns"},"slope":{"estimate":46282798.644155845,"lower_bound":44794314.15443425,"upper_bound":47936795.320371136,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[96,192,288,384,480,576,672,768,864,960],"measured_values":[86555042.0,174544125.0,257448791.0,357927125.0,450439041.0,523449542.0,640024292.0,743976000.0,823426417.0,919080208.0],"unit":"ns","throughput":[],"typical":{"estimate":948761.0524621212,"lower_bound":931212.6577369792,"upper_bound":957568.8136447564,"unit":"ns"},"mean":{"estimate":931545.2443493716,"lower_bound":915965.880243779,"upper_bound":946995.3941136118,"unit":"ns"},"median":{"estimate":935258.2783854166,"lower_bound":905349.5026041667,"upper_bound":954896.1589285715,"unit":"ns"},"median_abs_dev":{"estimate":35798.28986226582,"lower_bound":4137.083124538211,"upper_bound":43199.7763539535,"unit":"ns"},"slope":{"estimate":948761.0524621212,"lower_bound":931212.6577369792,"upper_bound":957568.8136447564,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[105694250.0,210528292.0,307405041.0,471831542.0,537026875.0,726244834.0,869906792.0,913408250.0,1066953709.0,1146502709.0],"unit":"ns","throughput":[],"typical":{"estimate":29118908.778571427,"lower_bound":28306401.569526628,"upper_bound":29911509.708163265,"unit":"ns"},"mean":{"estimate":28286998.057123017,"lower_bound":27177110.471527778,"upper_bound":29384746.935873013,"unit":"ns"},"median":{"estimate":28603287.76875,"lower_bound":26423562.5,"upper_bound":29874836.395833336,"unit":"ns"},"median_abs_dev":{"estimate":2526986.143437029,"lower_bound":396823.2573799789,"upper_bound":3041346.4607115546,"unit":"ns"},"slope":{"estimate":29118908.778571427,"lower_bound":28306401.569526628,"upper_bound":29911509.708163265,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[91976834.0,174987083.0,256024041.0,350625750.0,428874792.0,508535167.0,619129834.0,697099292.0,800218041.0,890115084.0],"unit":"ns","throughput":[],"typical":{"estimate":6757627.865734266,"lower_bound":6648578.808333334,"upper_bound":6818477.146078059,"unit":"ns"},"mean":{"estimate":6742370.263663003,"lower_bound":6650576.111034799,"upper_bound":6842294.037561356,"unit":"ns"},"median":{"estimate":6736537.653846154,"lower_bound":6598073.723076923,"upper_bound":6839470.435897436,"unit":"ns"},"median_abs_dev":{"estimate":158218.79626182403,"lower_bound":29596.458997634792,"upper_bound":282556.9309089967,"unit":"ns"},"slope":{"estimate":6757627.865734266,"lower_bound":6648578.808333334,"upper_bound":6818477.146078059,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[154355666.0,282541334.0,401656667.0,594122125.0,683088708.0,820588250.0,931251958.0,1061484167.0,1155291292.0,1333129833.0],"unit":"ns","throughput":[],"typical":{"estimate":44484352.27272727,"lower_bound":43730793.15480226,"upper_bound":45664872.98169935,"unit":"ns"},"mean":{"estimate":45960835.5712037,"lower_bound":44538682.258821756,"upper_bound":47653085.63333796,"unit":"ns"},"median":{"estimate":45083882.87777778,"lower_bound":44333084.02916667,"upper_bound":47549206.597222224,"unit":"ns"},"median_abs_dev":{"estimate":1181578.4080036194,"lower_bound":155045.9624648832,"upper_bound":4114474.8047690303,"unit":"ns"},"slope":{"estimate":44484352.27272727,"lower_bound":43730793.15480226,"upper_bound":45664872.98169935,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[76,152,228,304,380,456,532,608,684,760],"measured_values":[100678500.0,197948042.0,260673416.0,349746583.0,482857417.0,527572792.0,648209167.0,790968375.0,998818458.0,832391917.0],"unit":"ns","throughput":[],"typical":{"estimate":1245242.702050581,"lower_bound":1138247.3814589712,"upper_bound":1363131.9480994153,"unit":"ns"},"mean":{"estimate":1242331.531968985,"lower_bound":1180268.941498081,"upper_bound":1309494.6937938593,"unit":"ns"},"median":{"estimate":1244557.8484962406,"lower_bound":1150131.1666666665,"upper_bound":1312825.9662828948,"unit":"ns"},"median_abs_dev":{"estimate":124359.9135605913,"lower_bound":10641.694570940643,"upper_bound":215469.0307983442,"unit":"ns"},"slope":{"estimate":1245242.702050581,"lower_bound":1138247.3814589712,"upper_bound":1363131.9480994153,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[124694458.0,224608500.0,333358459.0,477341875.0,573782875.0,737053375.0,827556250.0,938835250.0,1038402792.0,1144347709.0],"unit":"ns","throughput":[],"typical":{"estimate":29134588.914285716,"lower_bound":28762737.79812294,"upper_bound":29700796.828746177,"unit":"ns"},"mean":{"estimate":29261051.345714282,"lower_bound":28642392.994309522,"upper_bound":29921131.86366071,"unit":"ns"},"median":{"estimate":29091561.78125,"lower_bound":28382603.125,"upper_bound":30133068.82440476,"unit":"ns"},"median_abs_dev":{"estimate":908221.8129270886,"lower_bound":174820.23845381924,"upper_bound":1917465.6931194311,"unit":"ns"},"slope":{"estimate":29134588.914285716,"lower_bound":28762737.79812294,"upper_bound":29700796.828746177,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/1000000","ORE/ore_decrypt/range_gt_10/1000000","ORE/ore/range_gt_100/1000000","ORE/ore_decrypt/range_gt_100/1000000","ORE/ore/range_lt_10/1000000","ORE/ore_decrypt/range_lt_10/1000000","ORE/ore/range_lt_100/1000000","ORE/ore_decrypt/range_lt_100/1000000","ORE/ore/range_lt_hybrid_ordered_10/1000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[88405500.0,179325083.0,256712625.0,338106750.0,442776875.0,515347708.0,563427709.0,712972625.0,835181083.0,842962750.0],"unit":"ns","throughput":[],"typical":{"estimate":1047398.634767642,"lower_bound":1008724.7276490577,"upper_bound":1087236.1434844562,"unit":"ns"},"mean":{"estimate":1047370.7079723654,"lower_bound":1022271.2198508319,"upper_bound":1071543.106007363,"unit":"ns"},"median":{"estimate":1049980.6305220884,"lower_bound":1018393.8253012048,"upper_bound":1073753.9533132531,"unit":"ns"},"median_abs_dev":{"estimate":40077.8475368193,"lower_bound":6395.5265619085885,"upper_bound":72111.78331373575,"unit":"ns"},"slope":{"estimate":1047398.634767642,"lower_bound":1008724.7276490577,"upper_bound":1087236.1434844562,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[129039458.0,228028125.0,310932833.0,461139625.0,545660500.0,740935125.0,795874250.0,891008500.0,1105055458.0,1083553166.0],"unit":"ns","throughput":[],"typical":{"estimate":28582197.72012987,"lower_bound":27460906.493158083,"upper_bound":29914701.73768079,"unit":"ns"},"mean":{"estimate":28770390.8055754,"lower_bound":27659964.02371875,"upper_bound":29957049.094166666,"unit":"ns"},"median":{"estimate":28463797.99107143,"lower_bound":27283025.0,"upper_bound":30695984.944444444,"unit":"ns"},"median_abs_dev":{"estimate":1894571.3865321362,"lower_bound":294404.47680452495,"upper_bound":3381254.9870998906,"unit":"ns"},"slope":{"estimate":28582197.72012987,"lower_bound":27460906.493158083,"upper_bound":29914701.73768079,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[87536875.0,188152917.0,262920708.0,362495792.0,455127792.0,541457000.0,617367833.0,721811333.0,783750625.0,878727917.0],"unit":"ns","throughput":[],"typical":{"estimate":6825987.862337662,"lower_bound":6758613.4551554825,"upper_bound":6935966.248651936,"unit":"ns"},"mean":{"estimate":6880953.269618437,"lower_bound":6788459.451608668,"upper_bound":6984792.581451464,"unit":"ns"},"median":{"estimate":6862377.743818682,"lower_bound":6741556.615384615,"upper_bound":6971861.22051282,"unit":"ns"},"median_abs_dev":{"estimate":170140.43587171135,"lower_bound":19155.003483777033,"upper_bound":311181.46199003933,"unit":"ns"},"slope":{"estimate":6825987.862337662,"lower_bound":6758613.4551554825,"upper_bound":6935966.248651936,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[147378542.0,292071083.0,405989292.0,608787666.0,689347917.0,748991750.0,941315167.0,1014456542.0,1227394542.0,1418400417.0],"unit":"ns","throughput":[],"typical":{"estimate":45247396.43809524,"lower_bound":43464682.756578945,"upper_bound":46802653.35324605,"unit":"ns"},"mean":{"estimate":46104672.72674603,"lower_bound":44383723.70749404,"upper_bound":47806621.01111111,"unit":"ns"},"median":{"estimate":45707792.45555556,"lower_bound":43689471.958333336,"upper_bound":48678513.833333336,"unit":"ns"},"median_abs_dev":{"estimate":3367683.454324997,"lower_bound":470373.63301587204,"upper_bound":5098320.122043392,"unit":"ns"},"slope":{"estimate":45247396.43809524,"lower_bound":43464682.756578945,"upper_bound":46802653.35324605,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[95,190,285,380,475,570,665,760,855,950],"measured_values":[97054208.0,174993625.0,272700250.0,369666542.0,448335917.0,664729000.0,663298208.0,720265542.0,868908916.0,995334084.0],"unit":"ns","throughput":[],"typical":{"estimate":1015792.0666302119,"lower_bound":969452.2574352548,"upper_bound":1059248.4752171692,"unit":"ns"},"mean":{"estimate":999149.4868613199,"lower_bound":962248.4826725146,"upper_bound":1044601.5263350041,"unit":"ns"},"median":{"estimate":985123.8018796992,"lower_bound":947717.8184210527,"upper_bound":1031993.9132163743,"unit":"ns"},"median_abs_dev":{"estimate":54786.08960445774,"lower_bound":9620.512677412244,"upper_bound":101693.6888140148,"unit":"ns"},"slope":{"estimate":1015792.0666302119,"lower_bound":969452.2574352548,"upper_bound":1059248.4752171692,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[113666417.0,246274500.0,377897917.0,484976042.0,586837167.0,654012708.0,774059708.0,976493250.0,995744500.0,1096236041.0],"unit":"ns","throughput":[],"typical":{"estimate":28371753.431818184,"lower_bound":27649331.66063698,"upper_bound":29648728.33969374,"unit":"ns"},"mean":{"estimate":29082167.441170633,"lower_bound":28163353.32562004,"upper_bound":30029345.59081944,"unit":"ns"},"median":{"estimate":28879231.3,"lower_bound":27532735.23472222,"upper_bound":30547657.5625,"unit":"ns"},"median_abs_dev":{"estimate":2153551.777846814,"lower_bound":198852.4556704974,"upper_bound":2504416.381955222,"unit":"ns"},"slope":{"estimate":28371753.431818184,"lower_bound":27649331.66063698,"upper_bound":29648728.33969374,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[95166334.0,187478334.0,279002250.0,362116834.0,462927417.0,555736250.0,635051584.0,739974417.0,846465875.0,911361542.0],"unit":"ns","throughput":[],"typical":{"estimate":6586570.759183673,"lower_bound":6521702.911125797,"upper_bound":6662611.40026455,"unit":"ns"},"mean":{"estimate":6614643.045031178,"lower_bound":6552508.722692531,"upper_bound":6677672.427632936,"unit":"ns"},"median":{"estimate":6614578.2761904765,"lower_bound":6509725.3,"upper_bound":6695654.785714285,"unit":"ns"},"median_abs_dev":{"estimate":136756.03585876132,"lower_bound":8637.793797898255,"upper_bound":190236.1620726326,"unit":"ns"},"slope":{"estimate":6586570.759183673,"lower_bound":6521702.911125797,"upper_bound":6662611.40026455,"unit":"ns"},"change":null} diff --git a/src/lib.rs b/src/lib.rs index f5a16cf..a3aa4fc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -471,6 +471,85 @@ fn collect_index_names(node: &serde_json::Value, out: &mut Vec) { } } +/// Diagnostic wrapper for inner-loop bench failures. Prints a structured +/// error block before panicking, including the scenario id, the error's +/// `Display` *and* `Debug` forms (so the anyhow chain shows up), and a +/// hint about the common failure modes we've seen. +/// +/// Replaces bare `.unwrap()` / `.expect("...")` in criterion `iter` +/// closures — when a bench fails an hour into a 10M run, the +/// difference between "called unwrap on Err" and "ORE/ore_decrypt/.../1M +/// — ZeroKMS decrypt failure, here's what to do" matters. +pub fn bench_assert(result: Result, scenario: &str) -> T +where + E: std::fmt::Display + std::fmt::Debug, +{ + match result { + Ok(v) => v, + Err(e) => { + print_bench_failure(scenario, &e); + panic!("bench failed in `{}`: {}", scenario, e); + } + } +} + +fn print_bench_failure(scenario: &str, e: &E) +where + E: std::fmt::Display + std::fmt::Debug, +{ + let msg = format!("{}", e); + eprintln!(); + eprintln!("==== BENCH FAILURE ===="); + eprintln!("scenario: {}", scenario); + eprintln!("error: {}", e); + eprintln!("debug: {:?}", e); + + // The most common failure on long bench runs is the ZeroKMS scoped + // cipher's TTL expiring mid-iteration. We've hit this several times; + // the underlying message is the bit after "Could not decrypt data + // using keyset", which on its own doesn't tell a fresh reader what + // to do next. + if msg.contains("Could not decrypt") || msg.contains("keyset") { + eprintln!(); + eprintln!("hint: ZeroKMS decrypt failure. Most likely the scoped-cipher TTL"); + eprintln!(" expired mid-run — ScopedCipher::init_default binds the"); + eprintln!(" session to a fixed lifetime (~10-15 minutes on ZeroKMS) and"); + eprintln!(" criterion's full sample sweep at 1M/10M can outlive it."); + eprintln!(" Re-running the bench picks up fresh credentials."); + eprintln!(" If the failure persists across a fresh run:"); + eprintln!(" 1. `mise run truncate` to drop rows that may have been"); + eprintln!(" encrypted under an earlier generation."); + eprintln!(" 2. Re-populate via the relevant `prepare:*` task."); + eprintln!(" 3. Re-run the bench."); + eprintln!(" If still failing, verify CS_CLIENT_ID / CS_CLIENT_KEY /"); + eprintln!(" CS_WORKSPACE_CRN are valid and check the CipherStash"); + eprintln!(" console for rate limits / quota."); + } else if msg.contains("Unexpected error") { + eprintln!(); + eprintln!("hint: opaque cipherstash-client error. The message itself is"); + eprintln!(" unhelpful but the underlying cause is often a ZeroKMS"); + eprintln!(" authentication issue (TTL expiry, rate limit, expired"); + eprintln!(" credential). Same recovery as the decrypt-failure hint:"); + eprintln!(" re-run; if persistent, check the CipherStash console."); + } else if msg.contains("Connection refused") || msg.contains("Connection reset") { + eprintln!(); + eprintln!("hint: database connection error. The postgres container may have"); + eprintln!(" stopped — try `mise run postgres` to start it."); + } else if msg.contains("relation") && msg.contains("does not exist") { + eprintln!(); + eprintln!("hint: missing table. The schema isn't set up — run `mise run"); + eprintln!(" setup-db` or, for query benches, the `prepare:*` task"); + eprintln!(" that creates the target row-count variant table."); + } else if msg.contains("query failed") || msg.contains("syntax error") { + eprintln!(); + eprintln!("hint: SQL execution error. Inspect the recorded query in the"); + eprintln!(" `*_metadata_.json` sidecar for the scenario above"); + eprintln!(" and try running it against the bench database directly."); + } + eprintln!("==== END BENCH FAILURE ===="); + eprintln!(); +} + /// Write the scenario metadata sidecar to /// `results/query/_metadata_.json` (path relative to the /// bench process's current working directory, which `cargo criterion` From ff683ed34192d98a4dc2b26b8d19f833d8698ad4 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Fri, 15 May 2026 22:47:59 +1000 Subject: [PATCH 19/30] results: refresh full ladder with actual rows + regenerate report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full sweep across exact / match / ore / group_by at 10k..10M, all with the new `rows_returned` actual count and unchanged scenario metadata. Regenerated `report/BENCHMARK_REPORT.md` plus the per-scenario charts. The report's per-scenario tables now read "Rows Returned" (not "Rows (est.)") at every tier — every scenario has actual counts populated. The hybrid ordered scenario remains the only ORE entry that engages a functional index across the ladder; everything else (bare-range scenarios) consistently shows `indexes_used: []`, which is the planner correctly preferring Seq Scan + LIMIT over a bitmap index lookup on high-selectivity predicates. --- report/BENCHMARK_REPORT.md | 256 +++++++++--------- report/query_exact_eql_cast_chart.png | Bin 59303 -> 52489 bytes report/query_exact_eql_hash_chart.png | Bin 55539 -> 53861 bytes ..._group_by_count_groups_encrypted_chart.png | Bin 42611 -> 41888 bytes ..._group_by_count_groups_plaintext_chart.png | Bin 39827 -> 40206 bytes report/query_match_eql_bloom_chart.png | Bin 44468 -> 47183 bytes .../query_match_eql_cast_firstname_chart.png | Bin 45985 -> 45635 bytes .../query_match_eql_cast_lastname_chart.png | Bin 49385 -> 49609 bytes report/query_ore_range_gt_100_chart.png | Bin 32333 -> 30910 bytes report/query_ore_range_gt_10_chart.png | Bin 31688 -> 32167 bytes report/query_ore_range_lt_100_chart.png | Bin 34623 -> 32273 bytes report/query_ore_range_lt_10_chart.png | Bin 32181 -> 31811 bytes ...y_ore_range_lt_hybrid_ordered_10_chart.png | Bin 33014 -> 38422 bytes results/query/exact_rows_10000.json | 8 +- results/query/exact_rows_100000.json | 8 +- results/query/exact_rows_1000000.json | 8 +- results/query/exact_rows_10000000.json | 8 +- results/query/group_by_metadata_10000000.json | 6 +- results/query/group_by_rows_10000.json | 4 +- results/query/group_by_rows_100000.json | 4 +- results/query/group_by_rows_1000000.json | 4 +- results/query/group_by_rows_10000000.json | 4 +- results/query/match_metadata_10000.json | 102 +++---- results/query/match_metadata_100000.json | 112 ++++---- results/query/match_metadata_1000000.json | 104 +++---- results/query/match_metadata_10000000.json | 121 +++++---- results/query/match_rows_10000.json | 12 +- results/query/match_rows_100000.json | 12 +- results/query/match_rows_1000000.json | 12 +- results/query/match_rows_10000000.json | 7 + results/query/ore_metadata_10000.json | 20 +- results/query/ore_metadata_100000.json | 20 +- results/query/ore_metadata_1000000.json | 20 +- results/query/ore_metadata_10000000.json | 35 ++- results/query/ore_rows_10000.json | 20 +- results/query/ore_rows_100000.json | 20 +- results/query/ore_rows_1000000.json | 18 +- results/query/ore_rows_10000000.json | 20 +- 38 files changed, 493 insertions(+), 472 deletions(-) diff --git a/report/BENCHMARK_REPORT.md b/report/BENCHMARK_REPORT.md index cde68ec..cf4a965 100644 --- a/report/BENCHMARK_REPORT.md +++ b/report/BENCHMARK_REPORT.md @@ -126,14 +126,14 @@ ON string_encrypted_10000 USING GIN ( - 1,000,000: `string_encrypted_1000000_hash_index` - 10,000,000: `string_encrypted_10000000_hash_index` -| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------|-------------------------|---------------------------| -| 10,000 | 1 | 425.53μs | 425.41μs | -| 100,000 | 1 | 420.15μs | 393.39μs | -| 1,000,000 | 1 | 435.19μs | 412.73μs | -| 10,000,000 | 1 | 416.49μs | 425.57μs | +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 0 | 417.91μs | 411.64μs | +| 100,000 | 0 | 398.18μs | 415.60μs | +| 1,000,000 | 0 | 518.60μs | 413.16μs | +| 10,000,000 | 0 | 429.34μs | 423.97μs | -_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._
EXPLAIN plans (per data set size) @@ -345,14 +345,14 @@ ON string_encrypted_10000 USING GIN ( - 1,000,000: `string_encrypted_1000000_hash_index` - 10,000,000: `string_encrypted_10000000_hash_index` -| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------|-------------------------|---------------------------| -| 10,000 | 1 | 397.38μs | 389.09μs | -| 100,000 | 1 | 391.48μs | 410.67μs | -| 1,000,000 | 1 | 396.06μs | 406.56μs | -| 10,000,000 | 1 | 396.14μs | 401.25μs | +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 0 | 412.70μs | 395.84μs | +| 100,000 | 0 | 406.77μs | 400.13μs | +| 1,000,000 | 0 | 401.58μs | 397.75μs | +| 10,000,000 | 0 | 387.61μs | 399.45μs | -_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._
EXPLAIN plans (per data set size) @@ -566,14 +566,14 @@ ON string_encrypted_10000 USING GIN ( *⚠️ = Query time exceeds 100ms* -| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------|-------------------------|---------------------------| -| 10,000 | 1 | 4.55ms | N/A | -| 100,000 | 1 | 67.49ms | N/A | -| 1,000,000 | 1 | ⚠️ 792.92ms | N/A | -| 10,000,000 | 1 | ⚠️ 11.479s | N/A | +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 1 | 5.26ms | N/A | +| 100,000 | 1 | 65.32ms | N/A | +| 1,000,000 | 1 | ⚠️ 805.12ms | N/A | +| 10,000,000 | 1 | ⚠️ 10.228s | N/A | -_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._
EXPLAIN plans (per data set size) @@ -860,14 +860,14 @@ SELECT count(*) FROM (SELECT 1 FROM {TABLE} GROUP BY value) g *⚠️ = Query time exceeds 100ms* -| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------|-------------------------|---------------------------| -| 10,000 | 1 | 2.50ms | N/A | -| 100,000 | 1 | 29.32ms | N/A | -| 1,000,000 | 1 | ⚠️ 421.09ms | N/A | -| 10,000,000 | 1 | ⚠️ 23.629s | N/A | +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 1 | 2.75ms | N/A | +| 100,000 | 1 | 29.76ms | N/A | +| 1,000,000 | 1 | ⚠️ 411.12ms | N/A | +| 10,000,000 | 1 | ⚠️ 21.479s | N/A | -_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._
EXPLAIN plans (per data set size) @@ -1216,14 +1216,14 @@ ON string_encrypted_10000 USING GIN ( *⚠️ = Query time exceeds 100ms* -| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------|-------------------------|---------------------------| -| 10,000 | 1 | 927.51μs | 27.51ms | -| 100,000 | 1 | 2.59ms | 30.83ms | -| 1,000,000 | 1 | 17.27ms | 45.97ms | -| 10,000,000 | 1 | ⚠️ 192.31ms | ⚠️ 187.73ms | +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 10 | 930.87μs | 28.78ms | +| 100,000 | 10 | 2.66ms | 29.79ms | +| 1,000,000 | 10 | 17.40ms | 43.78ms | +| 10,000,000 | 10 | ⚠️ 164.61ms | ⚠️ 189.74ms | -_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._
EXPLAIN plans (per data set size) @@ -1259,7 +1259,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{865,998,1735,1018,1751,1760,1031,1637,1057,710,1496,1200,587,895,1453,830,582,1596,1109,421,1143,61,792,1574,1845,2028,1183,1068,1500,682}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,682,1057,1760,1496,1183,1453,998,1143,1200,792,1109,1596,865,1845,710,1735,61,582,1574,587,1751,1637,830,2028,1068,895,421,1018,1500}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1270,7 +1270,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{865,998,1735,1018,1751,1760,1031,1637,1057,710,1496,1200,587,895,1453,830,582,1596,1109,421,1143,61,792,1574,1845,2028,1183,1068,1500,682}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,682,1057,1760,1496,1183,1453,998,1143,1200,792,1109,1596,865,1845,710,1735,61,582,1574,587,1751,1637,830,2028,1068,895,421,1018,1500}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -1314,7 +1314,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{61,1760,1453,2028,865,1500,998,792,1031,1735,1068,1496,682,1109,1637,1143,895,587,421,1845,1596,830,582,1057,710,1018,1183,1574,1200,1751}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1183,792,865,1500,1057,1751,830,1596,710,587,61,1574,582,1143,1018,895,1200,421,1453,2028,682,1068,1735,1760,998,1845,1496,1637,1109}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1325,7 +1325,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 454.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{61,1760,1453,2028,865,1500,998,792,1031,1735,1068,1496,682,1109,1637,1143,895,587,421,1845,1596,830,582,1057,710,1018,1183,1574,1200,1751}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1183,792,865,1500,1057,1751,830,1596,710,587,61,1574,582,1143,1018,895,1200,421,1453,2028,682,1068,1735,1760,998,1845,1496,1637,1109}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 454.35, "Total Cost": 458.86 @@ -1369,7 +1369,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{2028,865,421,587,1496,1057,582,682,1143,895,710,1751,1500,1031,1760,1596,998,1574,1068,1735,1109,61,1200,1183,1637,792,830,1018,1453,1845}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1637,61,830,682,1109,1068,1031,1735,1596,1751,1845,1496,998,792,582,1183,1143,2028,865,1574,1018,587,1500,1760,895,421,1057,1200,1453,710}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1380,7 +1380,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 1530.98 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{2028,865,421,587,1496,1057,582,682,1143,895,710,1751,1500,1031,1760,1596,998,1574,1068,1735,1109,61,1200,1183,1637,792,830,1018,1453,1845}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1637,61,830,682,1109,1068,1031,1735,1596,1751,1845,1496,998,792,582,1183,1143,2028,865,1574,1018,587,1500,1760,895,421,1057,1200,1453,710}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1530.98, "Total Cost": 1535.49 @@ -1424,7 +1424,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1453,830,1057,1500,865,1637,792,1143,682,1200,895,1018,61,1574,1109,1496,1183,1845,2028,998,1760,1068,710,421,587,1596,1031,1735,1751,582}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1735,2028,1845,830,710,1183,61,587,792,1596,895,1018,1751,421,865,1637,1031,998,1574,1143,1453,1496,1068,682,582,1760,1500,1109,1057,1200}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1435,7 +1435,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 11294.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1453,830,1057,1500,865,1637,792,1143,682,1200,895,1018,61,1574,1109,1496,1183,1845,2028,998,1760,1068,710,421,587,1596,1031,1735,1751,582}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1735,2028,1845,830,710,1183,61,587,792,1596,895,1018,1751,421,865,1637,1031,998,1574,1143,1453,1496,1068,682,582,1760,1500,1109,1057,1200}'::smallint[])", "Relation Name": "string_encrypted_10000000", "Startup Cost": 11294.85, "Total Cost": 11299.36 @@ -1487,14 +1487,14 @@ ON string_encrypted_10000 USING GIN ( - 1,000,000: `string_encrypted_1000000_gin_index` - 10,000,000: `string_encrypted_10000000_gin_index` -| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------|-------------------------|---------------------------| -| 10,000 | 1 | 616.62μs | 25.94ms | -| 100,000 | 1 | 1.14ms | 27.95ms | -| 1,000,000 | 1 | 5.05ms | 34.23ms | -| 10,000,000 | 1 | 40.46ms | 65.60ms | +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 4 | 620.15μs | 26.75ms | +| 100,000 | 10 | 1.24ms | 28.74ms | +| 1,000,000 | 10 | 4.97ms | 32.56ms | +| 10,000,000 | 10 | 40.05ms | 65.93ms | -_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._
EXPLAIN plans (per data set size) @@ -1530,7 +1530,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,91,461,1393}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,461,453,1393,1554}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1541,7 +1541,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,91,461,1393}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,461,453,1393,1554}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.73 @@ -1585,7 +1585,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,91,453,1033,461,1393}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,453,91,1033,1393,461}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1596,7 +1596,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,91,453,1033,461,1393}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,453,91,1033,1393,461}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -1640,7 +1640,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,461,91,1393}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,461,91,453,1393}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1651,7 +1651,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 307.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,461,91,1393}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,461,91,453,1393}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 307.85, "Total Cost": 312.36 @@ -1695,7 +1695,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,1554,461,1393,453}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,1393,453,1554,1033,461}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1706,7 +1706,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 2258.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,1554,461,1393,453}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,1393,453,1554,1033,461}'::smallint[])", "Relation Name": "string_encrypted_10000000", "Startup Cost": 2258.97, "Total Cost": 2263.48 @@ -1760,14 +1760,14 @@ ON string_encrypted_10000 USING GIN ( *⚠️ = Query time exceeds 100ms* -| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------|-------------------------|---------------------------| -| 10,000 | 1 | 1.04ms | 28.18ms | -| 100,000 | 1 | 2.66ms | 30.43ms | -| 1,000,000 | 1 | 17.29ms | 44.47ms | -| 10,000,000 | 1 | ⚠️ 165.82ms | ⚠️ 187.53ms | +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 10 | 959.00μs | 28.34ms | +| 100,000 | 10 | 2.71ms | 30.04ms | +| 1,000,000 | 10 | 17.18ms | 43.77ms | +| 10,000,000 | 10 | ⚠️ 164.52ms | ⚠️ 188.25ms | -_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._
EXPLAIN plans (per data set size) @@ -1803,7 +1803,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,1500,1574,1596,1183,865,710,1637,998,1496,61,1735,587,1031,895,1068,1453,1751,1143,421,1200,2028,792,582,1109,1057,682,1018,830,1760}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1109,1596,895,61,1143,1845,1057,865,710,830,1496,582,1068,792,1751,1574,1500,682,2028,1031,1200,587,421,1637,1735,1760,1183,1453,998,1018}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1814,7 +1814,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,1500,1574,1596,1183,865,710,1637,998,1496,61,1735,587,1031,895,1068,1453,1751,1143,421,1200,2028,792,582,1109,1057,682,1018,830,1760}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1109,1596,895,61,1143,1845,1057,865,710,830,1496,582,1068,792,1751,1574,1500,682,2028,1031,1200,587,421,1637,1735,1760,1183,1453,998,1018}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -1858,7 +1858,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1057,1845,582,1018,587,1031,1735,1453,1496,421,1183,710,1500,1760,682,830,1751,1596,998,2028,1637,61,1068,792,1574,895,1143,1200,865,1109}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1496,1500,1735,1183,895,1143,1845,1109,421,830,1751,682,1574,792,1637,1760,1068,61,865,2028,582,1018,587,1453,998,1200,1031,710,1596,1057}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1869,7 +1869,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 454.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1057,1845,582,1018,587,1031,1735,1453,1496,421,1183,710,1500,1760,682,830,1751,1596,998,2028,1637,61,1068,792,1574,895,1143,1200,865,1109}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1496,1500,1735,1183,895,1143,1845,1109,421,830,1751,682,1574,792,1637,1760,1068,61,865,2028,582,1018,587,1453,998,1200,1031,710,1596,1057}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 454.35, "Total Cost": 458.86 @@ -1913,7 +1913,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,682,830,1735,1031,1018,865,1637,1453,61,1183,421,1760,1143,587,710,792,1596,582,1068,1500,2028,1109,1751,1574,1496,1057,895,998,1200}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{830,421,1735,1574,1751,1200,1143,710,895,1031,792,1068,2028,1018,61,1845,1596,682,1109,1637,1496,865,1500,582,587,1183,1760,1453,1057,998}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1924,7 +1924,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 1530.98 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1845,682,830,1735,1031,1018,865,1637,1453,61,1183,421,1760,1143,587,710,792,1596,582,1068,1500,2028,1109,1751,1574,1496,1057,895,998,1200}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{830,421,1735,1574,1751,1200,1143,710,895,1031,792,1068,2028,1018,61,1845,1596,682,1109,1637,1496,865,1500,582,587,1183,1760,1453,1057,998}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1530.98, "Total Cost": 1535.49 @@ -1968,7 +1968,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1143,582,1496,865,682,1183,421,2028,1500,61,998,710,1845,1018,587,1031,1574,1735,1637,1109,1453,1760,1596,792,830,1200,1751,1057,1068,895}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,710,1109,1200,421,1637,587,61,1143,2028,865,1574,998,682,582,1751,1845,1453,1183,1057,1031,1500,1596,1068,1496,1018,830,895,1735}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1979,7 +1979,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 11294.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1143,582,1496,865,682,1183,421,2028,1500,61,998,710,1845,1018,587,1031,1574,1735,1637,1109,1453,1760,1596,792,830,1200,1751,1057,1068,895}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,710,1109,1200,421,1637,587,61,1143,2028,865,1574,998,682,582,1751,1845,1453,1183,1057,1031,1500,1596,1068,1496,1018,830,895,1735}'::smallint[])", "Relation Name": "string_encrypted_10000000", "Startup Cost": 11294.85, "Total Cost": 11299.36 @@ -2027,14 +2027,14 @@ ON integer_encrypted_10000 ( - 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ - 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.50ms | 29.40ms | -| 100,000 | 10 | 976.68μs | 30.24ms | -| 1,000,000 | 10 | 1.17ms | 28.94ms | -| 10,000,000 | 10 | 1.31ms | 28.55ms | +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 10 | 1.38ms | 27.89ms | +| 100,000 | 10 | 959.89μs | 27.28ms | +| 1,000,000 | 10 | 1.14ms | 29.31ms | +| 10,000,000 | 10 | 1.56ms | 30.66ms | -_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._
EXPLAIN plans (per data set size) @@ -2061,7 +2061,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2817ce2b93478d2e186b01c0864d365f5e681114cf4a542a2b85b0d1dcf8adcb79a5bc1e0a189f65fa7339e21bc6d88ad013dd40988b2797e29c3b64c6d98ce10c6b454aca8ac1505cd2f632b600d48d9e57450526db2b2cc0c74e8f0de7ba4519f21e6fb614cd50f8318b6f70c0f258293c57607eff11d954cbdae9443333420d75af29cda4baeaaa5f4a5cd38bc7ed2bdcad3c8e797837b384348b8aefa2d2e1833f73db493b9e53966d8c21df808e048f4a9ad86d347f9372bbe23a47e96adb85ad1bec51ae648881c6fbc789e22163f84de788e7d75e5a0b1dfb64f014238c0567bed07063b57611c170f59b65e2b251746f12e2e1030a8e8507c77304269d22671f37f5dd116e29403a471aa5cf17\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2866753ccc8560ed378bd1ea2688055b68219930c9c62efe6a5585561cbd40c8184791898ed8a61b0200c21fdc26fc3eec04c9e43e1f177a29a11417528933534e6181b33321564659f34a5ab47323a8e267a75afe52b8383c705950e4e7cf0ccbe92bf4b85412ce624167d57355339e891bc20473831361267090f2b30d968747a0894c186cb570e9dd6ca1ddfbffa8ab1c80867b250e6e95ab40f226cedc47c708692bea93cbf90e5483e1da65e36c9a6d65b19f54aca925996022d325664ed50f793db1b8f02a2749b9691cac6785708ce6d639493d402f258ffd876403512333bcfd7d3dc7e23b2fe7e8732d90732b3eeeb2b23e94f772777168610d0a87e57587851d361eedee8b0864ceb83d6afb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2101,7 +2101,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28980b20bf108668388638b6e601a20ed876445198688a5d266014e00b5e34076375d129887c181c56a060289af61747a28f692f2f2b85406045b209ca5f74e3b3eb2e6e3354114cfde7715a094255a7bb7163a4f20b6ee62db4ba5dad15d203a417506398077408564d5a530fdd8b8bd290ddc255610813455226efbbdd872086bba4a7b6ee20be8bfd115d08670d2174ce5bb9cebb5ecb8e975519ff97636761def8d7d8cb65d08bd64690a80214f64d3b1f69950ff4c01ef6a012e86be580cf974114447da0d70f244af9d79753ab65dfefbcf50f52b65e8d5997bd63129e19c300ef85c697d8ef93fda724576de13dc4558ca70e75e3cf07438d6b7da103fa7c030a9d7c7031b2cf2bbf164b608d06\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d00b4211483444a28607a5bb934773618d331665f575ce0476d41ea94f67d2fefc6bc53bcf427e70f19f00f4365a3736993d4ce1aba8c558c26113c7efff5e914754a40615e408043bc791899668848321621f722a1bf621c092351f7f29afdd9940fe1795fc81645d684c86e3c0197cc11130a43d335962754e594ab96647c2354281c0185044dc3ed9db19bd8d352965809ceb90fd23caea82b377b0a1b58351fd3830c67a4597c6ac542b15479972422922e08db7c8f7a0e9b80c83f7c4dbb51e4deabb318b6164ed0e37b360294bffce8b4c39dccec64293ddc5eae77cb130c1a78d2d944f92149d615c9cf0d0b251cfcdf45eded3faab0f118afb3d1e9c7e37cdc4ae44b69ae18fc945ceb4c058\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2141,7 +2141,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e67c5c742bbb32a2787920c52f51c95fb332490558c9c4257dd62a8890009deb1875465951a7e0e5d23bc7057c3012b92c51a03714ad703d4b3a20cd537b3bcc874561522b6fb6886dc77a551840a9349c8387dfc0656c89a1ee49fc506c22c23a5a09d6e9c91d604784fee1c969e8907d5dedd7b11a34e13ebcff725212c76acaef861120137157fb8abe1ab8d1899718a40f2c72211f319294569e51dbe3501f1d8bb2d9cf4ab406891a605ba2cf78ae50ea10882f061bcf387f2c61e4f71a8981ed8c675159e8505a0ebe1f92adde7cf0994511a9d2a0a2210c5fc51dbabece4cb8868bfffd11012532a598cf5d52ee88b0348798bfde9196a66b66386365d98a74377211552acdb7460dc88039e8\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28cf5cc89b82640ab18c8d144a0505f4aac3a1b44eb0d446b6583aa58e3396788c4356256e7664ceb5d3a6ceea00d70031d209d1bcb718535b1d7b4e4fabc474cafffa8127017c7f8ceff14073f726621131c03fa28458716cf97a8f153236ff3cc98f8af000ee28bd357d3c1e4d1bb4b5e364330ab582e26ad1ed38e6ef4859026497b4a468a01743c448e50f555ac3b6296c5edcded0a88559b5b2a46068f6de824051670a6a4b51272eaecd42744d221efecb0c336f5bfdc9262bd589daa99197c2f363bfdc7ca1a95fea481a01efc47df38764be95198024f64e3423bc025801f7d5c14b80ab9ec17f2f61ce51d12e3b008650fabe4f2f1ce417edcde29971cdc959849f8d6fd2cce59bf3f9153669\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2181,7 +2181,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289161674bf4e1c28e73caaa834dc21dbd88eb8b876c124726a77adf6b0c73cc161cd4977ed110cc6e14ab232ad0fc14b457b37e195bd963b738310274fdd7951a3ee2e0edcabf1a7b56d1d018dc2dfcb9c87fba6c919f77f945de184e67fe62e42d837fd24eb3878be2df92aaeba606b64b8e4edad95e42015b8746db94222acda1a82e385f3d3ee5345a268b0abd6b6abfac704e703532834c57686c7e4b771049b57ae6d77655b63cfae34baf348f52bec7a45c560959f4a1ec9c2eaaf81e8fb2ac0cdd0721fc17dee72316374e6f71b5a4b23097f09ab3e0cd46281cb4d16d3d9939c7fc9f16e46eb103f607abba433abb20de3607e512b1a347ec7690d83a8946111f411893b66793de0834beb797\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283605730cb2c4133689844265909d50beb6dad11754437265b47924ab44e0642a2e9869a812cf24d33ef2d20ad82e89239bdb64512670f4b016397c3333ac1c7368ff15b878966f9b6b429fbeba128da9aeff54f249f3dab72b129fae5ed7b2bd4a71048349b84920269854c2716da3cae689ffade3f88eb7ebd0abaf86c8bffea342ea06ed4d10a4247e24ca878d1c83da0823a30b644447926256ec415a043f6e1bff8c35f7f1f645a48dcc42934787ff9bf432402e411b5f327f506e39c384b3363bbe596a08e4444985270fba26552f3b54c48fa25c8351946b003534712a9ca12f64891e2d0efaa608a734f372c16481d6d36bd6e75e2ef374d80751c1d8ea715346d1e2beff102c0907bdb03543\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2232,14 +2232,14 @@ ON integer_encrypted_10000 ( - 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ - 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------|-------------------------|---------------------------| -| 10,000 | 100 | 6.73ms | 46.68ms | -| 100,000 | 100 | 6.75ms | 45.32ms | -| 1,000,000 | 100 | 6.80ms | 46.54ms | -| 10,000,000 | 100 | 6.74ms | 44.68ms | +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 100 | 6.46ms | 45.43ms | +| 100,000 | 100 | 6.49ms | 46.66ms | +| 1,000,000 | 100 | 7.28ms | 47.45ms | +| 10,000,000 | 100 | 6.80ms | 44.63ms | -_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._
EXPLAIN plans (per data set size) @@ -2266,7 +2266,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28934e37c8ab2caaebae6b5e0452177b4b0858f16b024c30b9f292188adc749aa85971e5f33e45b4cc886c1ad34bacb8e03a5f1feca2391301d1d1875fc8d824ed8219ea22fdde9dae3c782c4a070ff206e16dc56c0a7b29765e86138a90c4488ade8075a193c26509d3b1dd51781afeba7461c7bcc109cc4ed1daed8469fa66e5b051e0a952a3c0032f0bda23ef2ea4a58fe7e327baae1f24fbb3abff43b198add2c520698a12cd9959c269fe8a155bd800de5d4a23c9f2aa737bddfae37bf6669fe09ad9c9348dccb57aaa75d9837be787818953a96187e13373087ddfc9e32ac3fe3f7bdd33e9d496a69ea18bbd71401642cfa3e77246558618118ec789a1d46b83349d10662fe4d1c3f6200470f01d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2821366b822d32f8a20f54272076a7dd206f920630769511696e06743f63acecb52068e2172f22db6d0906d81ff152fdbae91ce150d03bd942e8e27e3ea56ac0da6069168fd6e9c2793d20dd8946332e5cc487cec97cc7a1fb74c3596661e673f062b01618bb50be72c855eb3e41a8f4585085639a42942b677d35ebf4b71bcdef75730335885664b617a5347a9a47eb3e0628e7a4bdabc9d64d36e37f6f68a923a6c8904e1ce7fbad38cf1f82796658de1a18f0bcbc31e20d1aaee6d7f93c72e430734d43e46c1c7417de915324bd259cc8f874fe348c87d170317e0adbee823d1ad35278bd8629dfbc81e29ccf4db1d9b2b8936dddb00dbf449c5d011e4e5a52fc18ff4a2c1b5792b1047b06397d0eba\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2306,7 +2306,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d3ae3ec985fff16d19e5239be0dd36b6b1461cd2a9460ad72dfdb5f026bab3f68668520eb92cc682e592b2e4f766b65c6b82c848a0cdce4a00807616adedee178688db0336b8f4de57535507fee25b91a97f6ce4cd393f265395d7ceb03ca4b2be16465d06b49c96586a0828677e9939485720fa900bfe23c9ad6b92dfba19b68b010377edc76d6fa2e07815f9246cfd2747e600375ea4f5ab309a6de9a723e94808ae935a409c71f9570cb96594f69811cbd26fef4f4157b1418e4d1ca123dd78fea435a865af34b33f3186d6ccfa4c572c5ba15950024227b7d9787c6fd81c36fd6067b6812d7bccac91c3332c0fc587d367232f11304124537443c7734036f70c88e6a18dd115d3a1d419b7a26a73\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288e58e5089db6ea54ef0825214cd5699afefd9b328e8994790781267949aa9f8d6bb80e181f5357989def2f5a04e2acc6f5f6bd66f305fd869e70be94fb8e9c78b5e5d6dc4dfe882b621518a017866be7130be8ce17434e02d6e374f5b07a17ab4b40bf13c67cd8f041033d2588d5bafe682c1856081656c82b324a7fee52e6c212be290dfb80d97e321e6c25b91a2b9c640d1a26b43990a507016868414281792eeb6e8342170dc74e84015c8e67b69965b694937f58cd2975032b3b76fd21cb3761f94a932388b668e5b1869af04d64e19f83d07c2b01ae32136b28fb7d400ec58c6c39709df47d63509ec3099e58c8e1c1305754d94bf493825a9c15f3c80c0d21e6ccbf1f74ec43cd6a606fd0da97\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2346,7 +2346,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb282f4dd513a78aebbec8ca692b96cdae97e9b6c41c10581f11c9ec33769a5d2eb0c8efbb27b03691cc3485710a03010eeeead21c234f65800ebb86fecbb0768cf2f8cbb843bb1b305b73b3dacc7843c8cb60c3730d327eb2fd34ec2e828f857cc77f51f7ef8bab0cf4a14a6f6cf24a2fb42dc119f0f0f665c4b15751e1d8358d8f5fc60e368012b52d4d2a0861109691e15b44d216d1a73f95f28ab34be74c5a5c26b2e9ee7a2538b2db54200201e64022728dbbbdc77bc9516b43fcc8501a5743615eaf814dc80cde01cecf99f578ab01fad07c7870ab81855b9cfddb79ecc073cd81de16c20ea228132d31ff0c6828fa5994153d6df51659ccc86465336ae659fba38b9fddbbebf969c213bf7e4af10c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2829721df213f24f5a49d72133263260e440f42d347acb5234497377af104689569a2abededff4a40e2b84bcae090690f80534ee697d22aeec41c1fe5a80f439e405a7b816553c26bedeb08ca907535d9e2f14a0f48fa9c853a8a532ca1cdbb2a7ad41b10326b596e7a5e4d7f6089a62f4bed7b34f5285e28411fa2897a82d9f70a845a41d9d666f7dc2c3e229caa9737623bf96c498572ebd601a21f97375fe35fc66e25668905f5efcbfee0223ba5d75ae2ec020e5986dfa8cd986651093ed8340d3136d02635e25af2c6d82c3def0e777f74a4a2c4cae73a16d05913de579cde92ed2bc2b2b3c326690a94b467cd311ebd6ca77bc5f0a0e0cb31548c57ba62a4933cbd9cfc4cb815da83dfbd4fe3d26\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2386,7 +2386,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289debaf9f991b0e2e92fa616e2c52a42610746a6585a09e73f2db9ac3e0a60fed2310d939609e95e0d1adf353ad8b1517e6a2443523f2a8e60f83f5ece6864140c35cbd5ca3b737da90480ee7f6e9c9c6541b904ef83ec41efc4d62eabb4bdeb5dd201155113c10fa2bd72065862f4f71d21b668c3feb2c336a0097fe8854f5f955b9bf9e25b3e0f0d9c96d7901544fc46cff5f824ded8b4e3a0968f434c610242319a0d8e12751e8c2a17ea7a3449785baec5ca7d6782661461cde717c082c21553bbae14a5e505e2cb9d1364293b983d21696188e7e0d2312f99bdb431e88c203da9ca221ef9a387aac58ca9e7558e66ca2e9b81dc440e7da657f673ad5d4c8b71005d3bf95eb3900d967fb9712e5d4\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb286048e82b076e777e50b8ff912b52bb690956d258fcd42d7fd52322f44102e5ef9d08e1810c14e6a731f3108c4f6748d7fc9b7dc6a9367dcde70d4265ca498018e1332e4e54c8e499335dddb31b62c6c94e734e1815b897eeb53fd030a0c5300877e2cc07e74a01d132a9259f864ef9d24bb6949306819ff6ba9c97c47d486870a98574b5fe987183a71b12ebd600fad72b061342adea94905f3b3ab6c38e8e68130d00c6e9ea2498afb7bed57486a322a53544aa8bbde8a2d4f9dcbaee22804181b24ac93fe2d549ef7ca366370be32cb97b958b0e86e4d203b1d9619c6e5d6e3168f849283f9a00d022486ac3813834f9cf510bfe2f973573abf6c58522b47a3eb9750b6ad7e852a013da39ff9d31f0\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2437,14 +2437,14 @@ ON integer_encrypted_10000 ( - 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ - 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.56ms | 28.54ms | -| 100,000 | 10 | 960.17μs | 30.66ms | -| 1,000,000 | 10 | 931.55μs | 28.29ms | -| 10,000,000 | 10 | 1.28ms | 28.38ms | +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 10 | 1.35ms | 28.71ms | +| 100,000 | 10 | 902.88μs | 27.53ms | +| 1,000,000 | 10 | 1.02ms | 28.40ms | +| 10,000,000 | 10 | 1.53ms | 28.93ms | -_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._
EXPLAIN plans (per data set size) @@ -2471,7 +2471,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fe666ef7ea3c2e11b4c35ac384045d48fc60112f8fd92c3eb87e5f6c89ca484edf7db1c0a148bf627f5079ea3a71bd55cfe91941934e4f6cd1044862af61c62c72da9cd377788e6dcf0acd7c3ebf5a682a16a1b93409717c1849bd9e6c56e052b97efe13b6d411811520c2f827e63e2d2b88a793ffd9275d1f93d920d195fe180d93bf0d30b78d736c453172bf2cd35ef7ccdf2aeb291942b9082b5ddaf0fdbc354dc47d6d3ba33ba9a0415cd52ba208fde55df87c03c9b8d23160005c156a3ca8153bb91448b78e504382bd278e4b1b4143b58c60a97eb8df45342f2edf64b9f8f0479557d69e68ed1b5f4137339f519ad10e475fb95bce99725086ffcda5a6b1c568c844c9a7540fed0b483828352a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28477c857070b9399a0a5377458eabdd5584b5a120936f7eefdd135c4fd3358580807f9f5cd8b1eb4ea8f1a5d97f94cd874f293c663490fefdda6b83cb4cdab2087820aafbf2774f66662f9f3f9bf1c2d3feefd292f893a689806161035383698949aa9862812ea7695a017989bd192bc0e5f1ac4358eb330546fa628eb8a4e3530b9e0297d912dcc80b12b78dbe027474a7733adc1e63c1e6864293e8fc6910d1604d3d8d5971be79ba17eca9a8829c357dca82081d4e9a1e325a191426b1aae558837da29ae1243503027408c32ebe32a5ef5d796f0d4c54bbbbba3c65e8c01262f28aa78b7cda939737094d84d71a207cdef6ec421d9fe5aed7b761feb965eb47f27574ebfc47c7754045816505cd6f\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2511,7 +2511,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28a033beb35af0337a1e833a4a41dbd757492fdc11701ee223c2506b57dd41d478a483190a3fd3d446e7fe27b9ed375453537a04ac6df237bbc4709f3bf6da861c7a60ca250a178f1d81d22b1a90c13557661ddd1d0c4a981523d29be5286280487150b20aa4c18c57cfd7adca0fc599b01f4f88f42f87bee6fbb221fbd29821c2b88be9f6cfd584643f19f1c95e837a664ed721daa2d5fbbcf0e95a12c7ff7b99e2a4486379c0521c2deb090aab1759fb593360b61f5da8295a4fb1c988f32f07860de7a60f755b65dacca90d5b488adcf3273c63cb9d379157fb079fe43bd1351b2aa22380490978150022c802398c0ebb19dfc312b72c509a0256d21f769f054fdea80b516e294594daf9c010aa3dff\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2874d04c959852b019a0e4dd672cdb85ad0e0e01320c7b9f4fd5bbecd68a3bc0712d6644994b6459441cc699c1e4988622419949a1a92a82ed4b0b1391597552d082a123efc22e625b9ac5f380127dbc793c296bde791ccd927ecd79242081e0b5a17d23b6082ab04071d90338a1239a679fbafec5cbf246fce547a201c81cc52c12ea7da34daa7ac8ee7bba3c95e90d907be26557c2fb341f7e4c7f07e8911aa4a412dcffda035d0ea20108f94eeb6fc5c641e5fbeaed7c51091ea67837e6de9215defd292c4e401e5c69c600196c19ba8bdc9f397ab1b6ced97baa0e116720fda5706eaf4a1e6903bbc85354cf8bb6f70dd8c190ef210cbf2513aa29463f1c23194c209133a778d6b3757b70f375087d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2551,7 +2551,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2852dd641af35f85678b9763d22df20b5c661af02730af1dad4f648aca466b1400466e53c2a5192636ba261eb85dc4abba14b7fba0da00e6c5d8d04073af6d64b32362459f451e8549d3ac6575ee4ce6b2feeefea4919cdab79c7a87e93de84d6f6a185ad9c8ef1da18a410fb3ce8b4c6df9cf68951e70062f95b56a96fb65adbf4913479617c41e01892b744151378f77588eb90e72a0dde315c53c525ee5b4d572cced711b4b80af9e81f2b257cc5f755940a3057ee5669ea685396f01e25ed3f29eb1202a80f6230e92668b04dae9e71188ba90ff93ccd5b971219cb01b4360ecabd4d4f644e5a5c7958d05414c8837efaad4e91dc0ff60cbf5cfe717f3648ccfeb90649367e1d42951795fac8471fe\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288a3d7d6cedb08cef232d94fdd36b136c500834ed262d47d8fd23d66ebd95a2ce1b1e55617da1bf5fcccc4bde63cdb98bd4d8185f26eb435715877626f04204132748b79865f9f4cfac7c6985af2df82c64fcb462a96a93cc4afba7c7b98e84d7a106efd4ca5cabfc6242c71da6c3ca3b2493e6a9f14f9066a4fb23c7c42b76296e4170af6ca8a380147dcbb4bc4f7877f1a4e525e45296cf98bdf539cfd8d2a547aa80c0c412282a2b710db584e2f6902c46baa25887f7f21feeea68591f42c121190c867341028027e40bb155709874082c2abcb9bb5a65914293f3e9fa1102b5dd6168f48098b68e244b3343f21a754478d694f5cc5a47688e803a8bb32d8fed23d80f5bdf0bf66686b83fa7bd09e0\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2591,7 +2591,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c4e2c6c7ebf0c5e05185e7581d967b4bcdbd02eaf3a12fc72f09e3dab676ea6eebc5f7e655db087f86ae65b1940581f49da1fc737f2e609a25b9c70c4261cc4477c25c190298e65062ce719dd458ef23f3a97b7e12ae4de8c8f7afc93108c795dbf73bac1ad0a682ca54b8bdb4002c827f19698e0d4f1d91804686248fd515621e7ad1410cde2cdd6878e72f15ce55c231a8d15486edd061651f9a16ae430e3c7ef7dab1b9b3e72018661ddd748a0b787395da7ff4e39d0a508b8bedb3c30476f0f5b5eec0cc6f58bf600084d9b97c93cee15191505fe87c3daca9cd42d68e286c99140b1ff5af98e095a83b65e304e6295f6e5db8bb41841a2732770167e87521f960a9784a2513f1b1a7bbbaf406eb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284d810cde25a7670e7b685dfdcdb9af84f015e9883a86e5b642398c22f72ba8908a2dcd921f29c2c9ee3d84e6d984b9c6395af88f7141a21a4633abeedd0eac9b09f72a339f32954bf8e968e0e9b3bb41392bc5733876fd8e6d8547eccace2176dd61f86b442c26fca3da52c1032f70874ee3d2118a950f256aeaf423ec7fd0c6df45f51cad5537aa4c3ea67840644a4b743d3e0a038087377c5da739145d1867361e71f4688ce7126c8358c914d1ea0156262887c55d6173bec6d6f4c0f1e1a3392712284df4757492ed1b7e53a025ebe271c1e5be28aeb053d8ac86378e1813adc29fdba6531c7323703d3af8e649cdd8facb00bd36a66778200e680bc7b4e07e9902a7d9c97c0cb1b06a9c87302cf7\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2642,14 +2642,14 @@ ON integer_encrypted_10000 ( - 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ - 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------|-------------------------|---------------------------| -| 10,000 | 100 | 6.61ms | 43.60ms | -| 100,000 | 100 | 6.53ms | 42.58ms | -| 1,000,000 | 100 | 6.74ms | 45.96ms | -| 10,000,000 | 100 | 8.80ms | 43.61ms | +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 100 | 6.63ms | 45.24ms | +| 100,000 | 100 | 6.37ms | 44.34ms | +| 1,000,000 | 100 | 7.03ms | 47.43ms | +| 10,000,000 | 100 | 7.13ms | 51.37ms | -_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._
EXPLAIN plans (per data set size) @@ -2676,7 +2676,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28613a47d8d474cd8e194852d31798a638b7c5888c014b63a30adaa563dd99bd94952bc58c0146a43be7957396ae6ea520c1363afc8d2161838e7e453dd243ca8c4c413afa00fbcb057b752016d69c4df4b49cd0ecd14cd9ba3704d695b44daff2c4232fbb64a35a77caf8f869abb2ec2489ad5a87f974548c59259dba7db48917c4bd53319e5a58cce7329bd7f0b79017352a7dff4e4e3a240cb52ebbf35faa8a4ae163856d684a21f3e3a2b4b7d3d88f24c67882502ee28a5e2fa209df5ac8266606d2758b0d8f90c406ceed03faa9927e0d3414275d20e170ba39f47c370de73f4105e5c2368eb603ec02b3d10f31e63cc0adb3494a2e637be59831712de558e297b2b9762aaa023130aa2f36ccb9a6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28171e61eec64bdb92961722f3582b257924b876c33a1473c2f2956c5ae39a589f5ccda06e767c62b711690c3321f66b658f75817ebb94c8e8bba344e071fc6c89aa49b5b2d769c578ae913f547863787f37a20d0f1adcc939e903f0538b5c49089af5b4920e7cfa16cbc9cc70bd16418f7e3f4b6ea530f82b35e645cfa0694296aa97bf61e187e631dd85b17ecd98b9ec350904a994341cb251184047a6634573bbb89dba7db085b95d16dedbea7872786d751cc7908ba2be24c00a5198f77ddeb5d27da50565dce2f232a58aec2489e568b87d6760b8024c3bd81916cc907991ad760d219b9989e24402b8ccbf63f2bf462c64ec5135a4fb4d6d15d6968642f7116a426a0ebc6f2ade4e126b07b84556\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2716,7 +2716,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284ccf21aac875dac647810b92b06a1f9b98496c27676f668910513dd3737c176101dd7f21e2bae4dc5c08161c515855e1e583e7d7392c99dc7c403bcca3689bd71e64342b26040c6433e0a9e54794eb681babc8d24270eecc84bb92ebaa836d1037b98de5ca616c0f915605c8f954ba31ecc2a525ba46b2ee3d8ec7c7b83af6775c3a722e032cbd37948b4796dca9e3f8d7944e7ea8ba9916697b6abfa647cdf58fc78c92e8561e87b848246bd75699e804cedc763e87d245b700c492b874b50bf854e5c86b57ae975823a71c73486696023b8c4d19bd2c1be5b2f1417c252f2fc627ffb6c94480ef0fb21ddb9321d129ecf91218f3c5b9ebf8d76b47c7c076c83c9888cf8b931b2a3132c5b7771adbdf\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb281aef769518e698df7c8adcb76b629160bf2f1a9305598b13ef214f364f64d77e1e8713c9b32f165428ffd0e19ba8448578fcbf4362d9381e37c8cad8779ca075701899a783c179aafa474886a729ca2563d6912f4533cc7e2a385037fdfd20124915428710afd87d4c3035ca6b65dd0c3c272f3b9f6993ae0726da4e2ae8756f1032e18b16f5c8108a1d15ffa96b26053303ad99973ce4e07f37551e70fea502ff41296391338bf0ab5a5e085d1a18c16ddaecd8f05eda92b9083b13f4dbf298add3264d717b9f01a7ed6d05dcc3d0f35446128cec3901b34a2e8dd6525a0282b0b95cbd3e222ef75e511e7a7bfa6cb76e6f5cd8a0b5e40679968ef04a83cfdf63bcd077a090b336c8a0416a10ab3ea2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2756,7 +2756,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28da9f8b2f4a04d727439450791a2d22ef57461db05fdc4394e8d2ab653878651c049dd7e35424bcf81d0f52bb8c92fe90008e3cb57b72c6f6fd66f3e4d7bcd25c97bf39e81776e9f43ffbbae6cc991e158691ca9504779797cfcf6e3de8ecae70b8a7fcbfd61e62e5fbcb0f31d6926acce14714f4f0bfcf4e9a764d6f0f31558e776619448216389a2cf97ce10b7b6fba4106e618b189460a4d6c73d6539119031b66994e250a021ce7316e2bae4a003e4edc7fb9abc985ab9cac23de2013fc3ab136b77ec453a4048a4a823dffd0946226ba13768c670a4ce53a9456005c40f86bb0d549d5819528436595605ce19013551ac4f52611c714288b97530f71939837d98ef8e90722aa9648ba03516cf5cd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28b4dbe701b41c719741e2eff5a0e2f548fb9de16f5a002836bbfca43c6dbc0f7123afd76d309428860f33374a22d69a08d23f2acd180e0956448b69c5bcfc7d99de9c47441574f9aaeb0c32c64114418fef7466e1b8f195b64ba3ce0e346d999c41d2e60f97a9f9a852c3c37bae9722e0e8b94d1195b9c9e8e9eb64b0bd1ca3a488fbc74e60162dcf39bf0ce5126171af14b7b5c306eb8836527957a0b47809828d43c79d3f1b80328c96bbc4123b5c6368bf7c5437cc1cc867e818d362f0dc4a9d6b9498e3a9a02ce3131b95aab7876356451be74c3a2ffe6f1e73b3367de432ba5357ffe0a935c12fb9cb169a0e7754a02e49f3e7ab6bac88e1442934328a618114e7eeec8717b49c25fff29fcf9e39\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2796,7 +2796,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f9533cf70d88611efd8c5f50fe07ebfb32020fe350dab197f35b352d1e8fa063389358d26faddd169633742b39e4aef4124083587abe2a5910f2bdef1c71b11c88b64ffdfe6a87a34e234fbe6509c584869cf7794efa5a71aa2ac55165c7440d5c2290afb506b90727982a6a3b0e5a1492f52bf36718e62fc4f2ab000e229584c13eb8f663f8bb2eb5d0b916204ceb8e6d2b11af6e1b54a38bbe67ed2c1e78abff6b334039af0758ae689596dcfb4db1a9d0fe2bd11eeed3eabc8ea2e83024c322657d1aea63798549269ad6d595f8479bed39c12903d95503b175fd7cd1c7a66e8d0d16d4c224621dd533ac32aaf96d359d303ee973d563e45212ca9acc6256bf01b1d50d89dc5185605245600fd8f9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f82ab8190bc3260864a052a8d00cd0ae8c3296e163f811a932c7482430a36e9035b0663d7fe5d440ace8afb73becb2e536afcf2689ff61b53f05655d06239186d9fa37a7da2308b8e12ab9ba94d77db95038889670c9fddd9b68cd490ea7f96f3bbb716fb650c078a6ff2e9e3660e94712edce5c4c70210536142462a9812ca22b78c4380c56b3aaefb73ab0999b2a18cfee2e26f67efe93ef9aab52822e3a3291d8263cd72dc1745fb1a9f0695241887dc1cd4477eec3a2eaa6eec0aad5ca91157a20d1e5c71d32bd11d05192bd5beeb175c0dbf2ae391950a3730a5f347004a04d90662e9e5f60b187809af9bf6bc9edb9fa0f6ccc6f1c7b275e377fc28283c940d7873a67dd1c0b5a33dd4a546028\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -2847,14 +2847,14 @@ ON integer_encrypted_10000 ( - 1,000,000: `integer_encrypted_1000000_ore_index` - 10,000,000: `integer_encrypted_10000000_ore_index` -| Data Set Size | Rows (est.) | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|-------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.15ms | 28.71ms | -| 100,000 | 10 | 1.05ms | 29.30ms | -| 1,000,000 | 10 | 1.24ms | 29.26ms | -| 10,000,000 | 10 | 1.08ms | 27.93ms | +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 10 | 1.17ms | 28.40ms | +| 100,000 | 10 | 1.08ms | 28.47ms | +| 1,000,000 | 10 | 1.21ms | 34.50ms | +| 10,000,000 | 10 | 1.18ms | 29.04ms | -_Rows (est.) is the planner's estimate from `EXPLAIN` captured before the bench loop. For LIMIT-bounded queries it matches the LIMIT; for aggregates it's the estimated group count._ +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._
EXPLAIN plans (per data set size) @@ -2881,7 +2881,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2800fe970e78f354e987ce5bb688b0859b0abd75318a9549123eaff5ae591c8951cb0bfe6ddef9f0f33d99741f144a5ae4aa5cdc4029e6db0f7c19b661fb8b5f795440bbd0eb6def2aedd59d8d30c5a41fed198793688dd572139f766274d6656e820df591b01af34320c0a51358cdb6e14402f2d3912939f6e92bc73d80c422fcf3cc11ccb6410f9d9506b69702ff8597f4075545c1d1eff2126983ee086c1ca4c6983b17a40ac51ee203dcf223a5158edef85a15f6066d85f0ff8eddf4429f63cc7d1912717f8fb7f17a3ef4ef669bddb0db37b9d9ef5c3dfde80974dbe244d8d8cdb3361d0901de4cbdc98f3eb21f228930a300c7a2502ddb310ab3e2c32574bdba542151c649d054b036b3c07c41c8\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288c7fc4fbe45d08147e2a77a725807a26658454abbe8ef3b42e2c541fef1e5031f7f9acf75f12909d7c4d748eca10cbabac5226f324b1754cd88040d6ffd6b7fafd1db7d8858c64b12aaf659551bec51d7de9d04261fd71846b8b8c1e1df968ac45a432f558676b13bf1928474a82da050f3c7eb204c9eada77399754faf09f6c519787389dcaa5e5b581e683165ac606c80031564ba6d5822bfcb7b3a0023b5d12bf268b532ca01218da92e9f319ce4f6f20b1669c8c9f6eea6d490707aacc38eabc4b9461c094345e6a2bfe27448f6c543b23d5b18409a560d7c0b850bd972d90dbb9e8f98139a502fcb57360df32991df27a483a3387c50d9f7de7a5a993fcd8b83c545a797e335310b415bac5b99a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -2923,7 +2923,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e70a903a5ae9f1ef15e945c00baff99d426e216bafdbc3ccf0235f0c4f601198bbc1e0a3405b3dd5c7ea295a6289814d64e87934bbcee064476b1e8a05a1b93235294fe17daf9aa71de75a6b8677b8787e4b970a8886c244e320a5cb1cf71a8c781a3c55a7b3fa4002cb8dbe0e9691308662f7268e2c852e187b8617ed1f43624cb4b40bd04e2027ee5a239284bbfefbadf736acd1ffc9b23118e778dec41787be1e1c477e0154409665e96ecf83102517e2bac2ca7c14b19398dd887ee7024a0abd5ba1cdcf37692053f096d5a06b3ce6bc10cf83656b49f7edc806f29dcddffdf723d1050f0ea62961396c6c08629459f0df66c1bbfa3b66727dbe392dc36f1f0794a980ab95e895164b9fe224492f\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28438afc98bf36fef6e83c178b3ab0c64d59caa952da0255aff98a301c6f4ca13dd511de88efd661b0cb48d77b4747886b6e86352a46be56496e130dabf9dec5e7396ff2a0947bb93250b7335dc553e8e8d22d9f7c38ade7f0c319bd0d8f6c1dba8178f0702bf8909f73126afb3ff5de63e219246e172754781fa2957aaff37a1a85a8c890e610943387252cca785941efedd90270dbc44234010b9fd46b80bfe79be2c40441d25756965646f0ca9de7245acdac17fcbf4cec3069516e8251208e0ea4dbffd37eb25b3dbd49bb219f416158db8ae4fdd28ccb34ecf03de2955283cb00095c9699004807b9b4c90fd4f679313aa6fec7afb545b8f32682105be0482079485e7ee47f5308c017c2922346f7\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_100000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -2965,7 +2965,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2825e553b73d0e9400f14833cfc1975af57f8b79e9e873918bc567c4c6d04c923efafffc245dc8c8a338f3aa6b685249a1ab53d8422625a534e35141567a37bf0afa5157c81b9c00780121a322d78bce5bf515e7f3f34759001c3faf4687a278f0ca248323bad12fee4382f371368058ae8a177cb5c33e6eca25039ad0a0c15f588e3f7221bd024953e0f55246ca05d2e14008b09b4f928c3f1849e4939688c79fd7beaae5907770d51c30741af2a3c956e78c90345868116dd5fd21739f2669715afb276ddc6aba944d740cc9dba21672c03e66d5f2f6e00bc591b60fcf30d84ff59a813f4bc0606d313388ef9c0704aa83ebdb1daa3602ba6ea1fb602690ade2c1fab04b438be6b4999d179132eac72d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c0f6362f3cad82bc6b39f6288ea86857f68a29b00b9033f3e630aa22afe465dbe174f8994479de4533cc97b3408bc77c3f9cd6bf5eb6fb299405269d6bd30295a0c8b2c7f9a5f548c639d3ca11f04adedcfffd6cf449a76996d818d8e526e6699ec77409c59da6ba6e7befd591c7bdb35971e386cd0eea33b938a77428515e93919de5e3d7bd74ae6f72b238a2687d4a89aee2b572deaf79d66b4a445f438f41190670efed806f2d4785e46707b31f5b026dbb6fac40e3e8f99136780cfb9adc69715ea7979e553fd6b5437391819fbba3c2738297368a031fd8583bbe8eaa9e1796f35d6b45581b935d0ed3e8f156abbfe59c71be9ad181b68014f2fde16723c481ab5827a2184e6cca7387c4fe44cc\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_1000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -3007,7 +3007,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e3d7300dc58ea91cf8a4191c154e03703ce05ee3e6171c7d090590845a66319db717e79d096859d7eb0554abffed13033c449740d9cddb18a67b1a6ea2f46859c04deadf6d2b57b5b20239b27be563f0994611654f3fc8e850e52b0e8249efde498f12475f55cb3401f72468f7086b8e4f9ff1be938447ffd322cfbf0105f1adaeca9a843bd877c16de3239270d1bc8f6ce925d98d41227264b1170ae964929af7c99de50a3245c056655ab2a0a7150da5f5b7be71890aef53fc9b4ce802a90298cda3b926902955d63f35cf6aeb5cae873f29baaa351235171e0a323e09baec00c4ae491d91db9f42a8ba4eca64e3d3ba7287fb6ec56fe4d98e4549004447e3786aa6f201ed6b0e63123e5c54206cea\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb280fb6813c30e165c1b663cd926c07aac3ab1f56ef8768d7d7af43fd86b9d03c01f144844e102ef05c7caea1fc7dacca5069f230db61e989ec75af089851257f810a776030960c6cbe933cc2b06152132f5a01991ffdf372d25aefff82b7e43dc845f08971a5b48a2b5dd8808fab3e78fdaf19b36d4c276cfd1bbb95889d9b3e46aa1cc50ac1d6a86f626b298be0660058dc76cb8ff2d8449009c97e11108818d304effa5bab02ddd43b60afaff8e54322b5f9eca31412ad8fe0bab8a84887c26b2f48df0d85b99a978eb4c6b9db879933011f75b53124ace001788b21a6946ccc24040f68ba6292950806d7f340b1b1d5be6afd14e6f293c36448f48c4a64cd3b7dbf080b57a983e3bbc64b60ee291072\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, diff --git a/report/query_exact_eql_cast_chart.png b/report/query_exact_eql_cast_chart.png index 0089fc86d1acc10cf7b5ab1e63ee398ca32feb19..ca7265dbe16a313278f35d12f0557db61e19d3fe 100644 GIT binary patch literal 52489 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 z

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

O=>cTEiKV2)a7 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 EUzhc#mH+?% literal 59303 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 I`_S><0bTM;rT_o{ diff --git a/report/query_exact_eql_hash_chart.png b/report/query_exact_eql_hash_chart.png index eb2d172b0c561a008e0cc67a8d4b0f1df1429225..d51202ecee74e29fdb0b179948a6e4c3ed24701f 100644 GIT binary patch literal 53861 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 NZewoc+%$RgzW`CO%n$$o literal 55539 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 diff --git a/report/query_group_by_count_groups_encrypted_chart.png b/report/query_group_by_count_groups_encrypted_chart.png index 2549a3bea85d0185629e520390e6b9d6963a2894..92de3d2e8e95b53ade6b3bfe5a7e1bf35adb1ce0 100644 GIT binary patch literal 41888 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�C$ehxd8(Gk1+1j2M7$3zi3wBjJE!usGrocjE# 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 literal 42611 zcmb@uXH-*L*e#6xpaLEdJ#Cy>O6jXYV-jUux2ps}g02QS}K$?_L3`GdNBr4K- zC^2-T_g+Kbu6X3U-}mF*aev(HaL6#(d$0Pe`OG;V-m0t0QCy_ENJd6Rp&R;!<|5&e--UI)LyFb=**L1OV_cC*{B2zJQf9~kw?r3Lz)6>cgYUkoC$jg6^ zSB(3nt-Jeks5l>=(|_OKb#b%d`)26T37$g!TwWhaMn+{u`g(NT3^Atg=%JQ( z^3uo!Z_WPWrgaxDj#!y=tJS)6?Z2(w-1^k4cI{F25zXTVk?C*#x>c$E=v?fCNzhHs z+?#J+(qH5Dd$lBa(YQPDFl{yOt({$ZY^lQF?xN4eR_c@pq^hbeI${hO4)3=wBlQnl zkrB0%DvGr%#{GGOBXJR(m+mLfo4NbCGZ(&cf^zPFAzFx-Y^7!2~{s@nG>|^xa zuS+NwMa6eQPJ?~uh_tjc$KlHLj9Cfat=!nVPrsv0gD=ud4Oc;{7EH~iy+`L}$-GO_ z0+04fa1Y5Id?StEn%-*dX1G?K#^Wa+=vbu>*IqH)_f(FKj=lqd=!Y{)JAcn@iD6HA z&RG-G92Fww>grnJv8ak#RCu5L#w2vq)be_ zC(i9JAd3W+j$65kn&)~lmzSeil@ueGB(uyL-ep(YkJkFQO?*EG2|TJD_8Nm_yD7;g z*M2G@ZuP1qIZ=#C5w|q`$SN#bt|szZgj{A67s7QFeH;Ax;!H<*NWd!Q7%ge!3%aFp zGdE6S@B+oJzOle#9+%qn5Q+64)Y)~SR5vqT_2r$CVGU~W+G!?d^ zPq1idX&HD&!!^i^)XY&0nH|CeV*0zfx{kc3TjL5sshB&zbY-g~<$wG3Z3p)K`*&q& z$E|G!Q&U2WejKOvQbdJaFI&CEV7X*A0Ww(T0Pk;WYdi8r>J+&78$mY)W7yR?yLbDM zxo|CO zSMCoh!g-yXMr*4)z=P@)fgUBcyN?656 z*IO_L?3sm3y627ccIC@OFwIC%{`J=v5r={HYTKS$gd=G%4I#6w3)w|ph%Je_$?*H_ zRi7)u8Sfk5icHfc4%__$AgT1#V=fq?b=`ElVSYo{4bfdlKzZOXv7*dn3_b8!8~Jfp zyVUln!>jWY`M00E|H35hK9_N18Q?6Zi_MWfKJ4|M8O#BTLVu{j#pNKnpRhVoQ?U;V z3=DL5_Uuy`n3;icry+wh--W!eqe3VrKY!1`Op?n-OdVKJA2$mf@g)P!Bh~u41qL2H zM~PiDMB)t-?{CR|gM7p!pTqU04x;}4L@0CqNR5{$?v`Zd0eV}Eib1T~ccCwjA<(l3 ztm_brX_G@XwrgO0P}F6#mRp*BWVN`7Nsu^jghT3fF;Imym*J%WN8P-M@WP1B=*YYHGZJC`RksOD8+TKQ=23%AqEPK9Zn~;cV#v`IFpim z_5qJUY4a7z`ym>nozy=xM2K!O9fPA}^Wu37t;H@d%3h~1b1ZirvH$)~iLn=<1UD$^ z1K~?WFM0&Jz@I2!)ympM1EbO>7M}MH7n<^!OAqDUXWDWR$VnS1wrEnmXYZhvCM8+F z2wVGhVW&xGsyNs(Jnh5zH41u>_7XnXkjur=xam%tCJZ|(lB`dOZtSnrtbW|D-14iTd`j9dS>RN# z_5Qn2

fVg>go=MMu3Y%2y`}YgVEUwinxyA7n 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

  • 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 ABme*a literal 39827 zcmb@ug;$i__dbjT7GNU{0s>Off`oudhjb$~bVx`Hr6{O~bPOrNfOHI?~iIKvZR-(E)x+Ek;=h?_6O~VP|=3(k$Nu+G*=4|ieW^ZH0@Y>SF)yBz@pPTm~_ajaQYd1G% zS5Y1whyNYH?c`#`^V7h+8(ig*vz(qQ5fQm5;oq6>l36xHL``2M6>#=#`?c%W-j%e6 z*L7rayG}D)v=q)IKfs*2w{jcm

    )K5htYNZO{M4{0*H4(<;&2Ks}A#gH@q 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Ν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 S8y5ZnrE*o{O7W%J5B~>SAu!$m literal 44468 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 diff --git a/report/query_match_eql_cast_lastname_chart.png b/report/query_match_eql_cast_lastname_chart.png index a7a79aeeca08d08cc6f432af4da7636902b1bb0b..2741bb54d0ff14f2eb680c85084a6a67761d18fb 100644 GIT binary patch literal 49609 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 literal 49385 zcmb?@XH-*L7cDltpyE{&1Qcw56hR2R3o0$N&b9Bk}eY%EQ0x>-0mTiV+}c=#Uh zh;ZM0?&9L$EXK=g`@e7S*gGM4YxP|_z*(pq6yVMj6cjii=*O zj^@V0yFX!zR3d$)=cWbhBiMv%(ilA5R=j+!)4Y)b7X&XE%JufaUnOu@!|cE--xN!yQCD*NuK&9{Vz;=X(lQAv`3gVSgX6sLgv2BQRUxx5?xGq9`ltpJ=#wL|S1tD)HPv9In<~5xUr`>Apa_xCLAY?y={xblk`FL2?P`S}~twRhy-Ynhvy|C~wo zUJn9KS8`=;&RrXyrWC`C`|;zMmlPY@6IymvXrVIV)>vM1f5ng0Rpd8yT}r?T{lvkZkW zl3s4&b$R-wcH3Vna^UzUI}?62K1L1iuHvTzR)Szyr6G)6&G8ZG%#Ll0h41dn9GEN+-H4_OJ{+8=cbm;>%y^0#gwN zCr+GjGXO(PJroZL4XygI0~HxgkvmHoZMU|19}O=b&eG-*f7N-F5LYnn(xcMiTMEVS z({rOGkBbE%Owy!9NM8=Thk3yN%sH#Bj}Kd7av5h=W?I;jd+(QynzBgWy<7jjsnQ)v zAz?TArM|`)y}@GLldghVYoK4UMjEXIUSMLQ?3aIk{rlIKr?fxHoFFj@TXxq=?F5Uu z{0dLR-1?K?&{>W zkco-O`|$98z2J#ruGg_j(Mpvn6V*PvUpg~0@5v`gcwV;OAV4}r#K7sF4&>_ZL`)48 zn8_EeRqp-_rmq?^_B)JTbh8~UQe1Nu+QDqPx0@x|_hxFe*qOc8M2%E>;!|DbyIYur z=Q-}(YvyxZ=ryl#KG=1X2M>oA<>d_J*^+1{&X!lg@dzB_itvQ@)IaCXS5A9K@BVmI zKjORI!j7&?6eUNwS&~*apV1;Xd1`RA4!yYH5)r*AnY1Z+jhWfEp{abUU;l=qqhnCb z26$rP2L}f{BylETyQ0#nZl8*y@s8sP+wQcM$MzFNmObX3)?nr7dWRexlGsU!8!XvI zRVey{_xbtxX6w@}@A)lS4K{r$Kxmrpl)22q$c#XWZ^BE{8EQ5Z> z$-~Yh$)%jD5K<%eBm}SjB$N@my6WI{Sa(s{yI~xPM|P?T$<-0!hQ2taB03T*i6HRE z7thj2eUjC**T!3OH@iIt*SimbCYoI>$sEm^I1_p4=hV~^lySg@4bqb)AI9v)@X7K) z4H(H|dHE3r*{y{><;9(?QRmJfY%~u-G*$F)t%=1AXO7w<=GVA@JTih!3dA(H3>doO zoMu{wE8JJkC`-Qb_wW7UXeQ3pNZ{m$ye2H(+z^YyCb5NiE*3N`=5Rpj*lypJooWhG zJ2(VEIW%N9>+ZHRY=M+56L{YBwc~v}zlG9IBI11~IaSq0bXr>=s4*m=&ISUCe}xGG zX(e2P;Cl$rtYp6XUwr0m`rD|Y&)|BA%bVCd?^-Ssx0r|?4CAP*n)qQ2WHCehQQ4sO|jpsz1 zuS?#XIpS1_{lvI$5Sb0J_yKQ_4c!`VQcy62s)M2|{6P6Rbnscs zH_XkJ)3;}XGq~=}k5`ed%Hh(KcL*>pS}BZ$DBIfyCa;J>D^)v2SxuIVvFsMriy1oI z%sR_9JS%!h$Qb!Jb)4*L>L8!egFZO9%`S< z;&;Gj*l7KYR`;d_bEiZeyn5C&#xgF+hz9{r7sbp(&w5@LcOy_jmWGS*DN)vz7^-N( zVeH&2wUexz+){)ZovGNnmBH!#3jV1Yt$P+RXX0)SG;j;M@+q$v zB-5XzxvpSfI*$r9^dsf%1X7Ja@69dn?bOq%4bHqnFnkon?37Y{J3-O>{CBYn!ra&b z4`c*RlP(=X49=p;CWN5d_>3P#Qr^nr{ehr+G*V(qOH#zZAJ|uI#av*kY)F#yTC_>r zz`Up@oG!agD_a)(AjP!d9lA0XBWMvjE~QBF#eD7Rqa_5;BKq}FuVIQ_GR4oo--h3` zh^4@R+8$I)#Z2JNSKexH;=|_{n7pQnBP_KO7-_X)88p~3A-6IxSIv3ao+CRF3jA2i zn%=9NpW)e&IPYvTOTd_Q#wV#8`|e?Ve7Ll;(wOYN)CNk=Zk5v^bYh88(643)PE3-@ zlWur0+xf+j()AFoe+SJ$_%-*|u`)z`zeKI&Y~|3{s*n9BX6l6GI<4i_M^| z+{sEyHn|S({2`M_3;cjC~BzvTx9ir*3 zMVxL1I&G>7CSvZN(4VV6@^xK_0OO_KFydQbfZ&nGM~80k%wVbsX3yyl=HibKr+Z|i z=b>MtBrZanTL}L`I-3ma5VEYcm3A@HnAOh;A8zBA2liGb(k30dR|x?GUFx(BmgBv5 zbob*tq~;fkH}aJkMc8l1S&b6`JQE<}!O>>#Ni{KIQ-GFYjf0U=_l$XQoOl^GcWDzaNqRey0O9mHc8QEP6 zFuDkxu}aU4h{FpQU)}VKNI1V0!iLolf$nZn;$(%eL{<-|{44D8t4n#jzqp6(f9Zt` zK^C1j2GG4x+$r!98_beiG;H=`j|nd<1Sr{B)O%yPs4KR}-O# z@5B?7)p%vul4}%W`orSj`G@8)dBs+J3!j<>1%t+ zt09bhAQjFaMXURBeSqQot$Am@Fl!_Bfsmv$d~yW;i6|;vsG3lZ9M}AL4&9rPMMHag zDQbF>^gR+1^W2T%E0vG}lWK-kVr;tbhLL;K^6Zx}U(%A$3utSlp9<|kk(K&Iim!dQ z!E*oFPFSSDb9Z8Km$DOJT_j^!f1m@GwOnXTC=^Jbx`9N{Zxz!^v zBGBr)T6=b>ThMuEPcn$$^rR=#d-RJV+WS1MSlp0jI(y`vW!%eSfH+#dMW*2!B6#Kn z9;SI3V;(ef^C@RnKbkH35{HRLOt4W9k|Zm9n9+Jx2!soUXz25qP^g3tXg}~VocH_^ z_a?sDaCS=wa*lVve$k1ruDT(TSA!lf@@hW{jiqp$ZvKEaEJVjZjqh&^vV{wU*&YS9 zBVP}luMMd^ZO--sk}~`4^|`Tb@$(cEze9>Zs8_U1W`k6)&v&zJoH;O6scAp|&jxEx z09T%cJBTajGqdW-xN2=S2?&UH=XC)#hX=R9s92y+&D`>xmkiuQXWI@trH^ykO>^Dq0})FbTf>+@Ifhe|IWuX$Il>Oz$-e(ULjuJhKqJHTi~xjYqCxsbplc zM@`yrbBAD)0cefUrWmaahBZ`?B!?NJ1MuBmpMB|}MV_+lJ&SQO1m>eC1KTyPjdo#L zq%CI3@>}I5A|^Qw6N>1MrAmjYCkk{?Qrv_%*xdjuRKlN1D?(_T`N6ZVkL{5NRm{!X z^Ox^KNUX&M%4N`-ru#;iBN0S~G^C=9kjHnSL}gXby!l@XH#VCGoekV_0?G*l8kh6| zH3fyYhT{MW-5hz731C@JjhUU9+czc&kI#n8hU!jT6Po1auTb)9Pg1l2?03jl<-(?JBdzXYXyF z@U7VQ@GkDnC6}gPF=vqDLdrlRalhLt8Pi9Y3P!tN0 zSLh4tu1ZhmiV+i~8zK%eAPtxQTq3A?B{eSkq9f)IZm+;o`}ke-?=>U=iy^b%UY)|B z<}~jfv)@85hxkxabiM&KIOCU?MT|^qj~otAB+_+>z4r4I%fG+BM@4bKv^i{mW4)|+ z=D*AR-;>j}^ZT>a2l2x8{lmr9#jZ^>0LqSxb^O=^)LJ!JDtB=RZ|pd)uSZ3FUTe+t zv34rT6%a;EUtizWdjYV4F6+C1Z)1Ey3JMBJ@~=o@!!H9y%CLU|%qqo?h5JU8PdDfe z(yn{1<2;6xT4P?GpzKE1-AW7+OSP#TiqhbJ?=gPGK;YlqRh#+G5&|1ZuTv{m;N#&w?|U^NYJL!9KvS7>^e&8lP<7 zxkkHqz@s43q-V2- z&?+S z)5jBI>^|15<;Q)%y0-7TwA}R$TSF{OrW-R7_Ft%>5Lqpa9TbXlS&&8#`2dwjVvnrDA& zz<6f<<&O{s$mT+Jez~mydA|8G&Z1n4Q(CfFXaBydC_sGxfAt-ZN%o2@-$Jlg?TnCyfQwl)CTm2-Z|#$FChl zSE(chhPoQ>bO>>mF{Vl%Yw^-}stb?01P6vCe|mXQGHcD)&*T+u1LG)Y)vZ;>4%Hsv z8H2eTSGd~@grBI=&VyO_NFe;j4^dHiMZ{-eZPCz!S!LUaO2vG?_1A$C#}U49!t&sx z_tsE7W-S5cHHTkh!X!5QrEUnrXE?RH4<(noXD=KNk4Wrnld@o`F_KaUc#5d&Lf=jV znu$%_>$AJCb`DI1B{b<{3UB47*V5h@^nntY8&#WwcQ`fDLwxLJx3(ycmYHRAHtY6J zp*)udD8?Dc_qk3TET4j)A$y4n9Zg3MAeZ}ac!yx?G{So(GE*9T7 z54b|!C}VdG+DFA8KiW~VO?-3k96hB+QV0fS_fOg~Q;is)z1PnN7oy{dJ$gXx(@Img zBu;8U^+fljVeBorz`IgMGqH}b zGVLK)AmF-50AN{ZU()?GU&H)|AcZd4Ml!!iYnlg2{z6YiSXJVXV5bE7zJAGFqm{U^l4rFi zwQ;ZpsZOvGhZ!8mfnF)MTasyA&Mmb_m zrz>E#HMer_+}(qTU(iFa}nd0y+2%1n(bkb z(WnwXa-^UyWCwL4Axew8`m(fg<1R!eeL;St|5kh7CR!wjiqf_>u?FW*^O8s(~4~d_=bG?Eqk9m&{g;b=E5Ae+1 ztKa6|qD^CRuksp=cD!(sJnBPDe~@2%(+Yr%t?f4<+NeI9W>d#)5`g@G65p!m?X(#D zY=QzH-u5Htgixv^hXnJR$7H4vE|NlATv69{tRN@ z95f3XGIJYq9l(L>i@7bvDn;E(neR!o{?g7T(78o!xcqYFH;HB-C5Sq2&L#T|&$&0< za35sQS3FhcKH;M~)fn3Ivmv+`h~(z^H^`5=6LBQJJLL%5}Oc1wSR77fL)*6moOkUq5traWGylFm69DJT+M@d3hz@?Yp;? z4mM#4@9Hp7Z7s!yxzV=MEfcTiJMdxk7uPtC7>^OVYVx^r9mr4jAg{8Htfe`cj}2tK zIL^rW3+$w@aWJL=x$8VrWO>|b%jsKe;rx@Y=S3}I)$fRj?SD$qdiLz&(tQi5MV^wh zPVnatelqd)0gPB^ksn_K4L6JV2Rxwu4my6R!%a=5Zy;p2)&u7=dmrp* ze17&&oVG=fl2!q2`+#28nIuwO-V4XQLy$ij@C#xp4Xa1945;Cs5wZ;$m1iiKe zh}U2fgbf<|tjQjM04u|An}5K1Q7^)hc_0Avv_LGsp)!}cCfa{Q@@rqW*kASI9g&$G zC_d(p??}K^PmGC|3_WP%wyh}ZOAJECuXyO*(Os6<&X|wa`tr2kTpq7cp;qC(QnndS zLx9EXl}o-#HOK4tag=XtlGme2$-X|PG=Zx=LvT<9_qO|`2HR5Y=L^ypg={jd`m!tuv3zcH(ep^4#&cAJJm7$c zw>C^nOpJ$#>Tp=tS^MULrbZANgZ;qv4-_ShfG300W$+L*ODHH-%uu63Us8f7CHb{L zLvv5QgBn*|lL_fqDOdEGi(^Il@g8$I?inlfT6L)p6(R>x4oNP=MBAuw0+hWc z+j40kdf)EJ`Zgy${#O&r=5)6GU7ksjV}}iCtN@jWDzO{QDWf|+NHsiZsfxb*@3m(& z^6As-pr&Rye7HSa;hluilJZ%mj-Bh z(1XK+zMbl`OKUB^=N(fJby+u#V zZLS+|{xfydL>#K&|@wASv65W?lwAx*ZS zBppOdG*^9j?~IxhsVK?Y{B6gh$Jv%+>#cNGKAw`V+Z@TtMHR_ANAtv~Ii(#`6bDl! zJ|V=W*18uDL>T)j*_a-06~Qqe7lAb|qlE6l7-^`C@AnA_);zuY>~`?CGXE`-rf^%Q z@Y1RCc7G;T`xNW3)% zrgG`o-?MdjE6%TgqF7RuY0!2Y!GB@a5T8LPY}L-zVcj0$@9g_Bx*^!qcaSuHYF4ir z=`Rc+<$$2k6(qOwDU!JSYGqrEKYy&=+m*Z_<{)z`B_(U*7piJ&XrLv|JtJ@^db#fV z)Yh~%kzDAq|^K#zk5!YOSbwcY}`5_EyJpW*1(VG z-`y@Pr@NZ1)AQ-f1aWCD`Fjg((~_fQUkaX?d3*G#Uun}vFPEQ#8j`NZ&zShfP)KV@ z(riV``?_X~v*5v!@MhoHm4)V%SFMr4$yvRbIJ?76ALHw*U8%!WW)(@EKbRA##c`x$ z550>LdjwWqdq;V$*Vhk}joWwSoaysRcQkUI@d)A!Rrj0>MNa&*diB-5Ix*L)+^s0` z3H0XG%W;){u@#q;EN;>Ykn#VRMdu?`#aA4oaj7tQQ{f$W*I_>VYZS= z&eYVDXIQPZAwU@6_JPWh;3R?PCM4vgAv=@EeQ?_cW^RiRd^9ua*R2Xr?dOv)DS|G) z)Z3G#CwK(CzzSGeFWX?55Lgfjt#4QL03M8*X|p)PWg2FQ=gCA+t`;ws+gI;Bv9DYU z1f9WHvo*l)vH=JP@<}MM8?$n6fRqYW{KOnRofV_KjA4C)SOnT*J|)d{kD)o6xbk=@ zO}2vy08E#-i#ISBEw)|$$%y${i*K^{S1BejBn*QJ@T1@l%b_A}NBnXd6^OG9wXe<+ zL8rIqu!KO!0jYYZjZ9L^FYHlY>55PG@fjMaJi_784lqD4G>(}?U2A8gbKL^(@CYvS z_C&FCF3s8%5r^-<$5Oo1yg;9-h{tWh-Q|~!8rtdT(4b>4OrzrA9UmdbxICS1lE-?q zv*epjB;uOn)&kSE3kQO7XfCo^Wo@Q$tGIQr2P=@HqjYRH!Ts96$IpURR^{M`-a-eH zir1#=E<|1O8PCp3yc8XUYoD3j-!whR-ZMQKz^_OW!Kk+eh#>kS;3aMx2%(Ou9q>iN zieZe3ea)fUJLZAYy65P)yVj&LZAI*Z#sD3k{mp_YzN*}gi_K7H zyPmYs0G-)2-nrNGMxQ$yBy?$g0nHeC&>jHgLCk-`6j&hcV18tRR(gqLnI-qK)jq;) z3?e>_AwecTcrJ4+HJST!(QcOcr*B{k4+$-&y@9!-!d7pYdKmh7bG?msB)p|k2R)4I z;=Yiho1dgtYG>=Eg|YBV$L;SaZNVZ}Eta?WLJ<-7Gi&YNQ=S zlT7>tH;(wkZvvl-K1M~as_BFpGF>G8-{D1n4BU9FSdpJv!xjJ0Lr)S?$xDqG2FjqghVM2w(L zo&o&zIr@H}%!*W#59x+J??@1HT|X_~+tbjbNX$^abT%3jkSLP!@vF>8ljxm)l}=a^ z1e}F0^s8LV-iVK^U@VEpMq?c3nZeO72)Rx(N@Aa_Gd^`BIPR#2>rt(B2g1995;-cW z@{_MP%&0WxMPpu;`tETQR+oMeP$OlqTFn>aAE$DsmD46vVf2?9}k3BeZu3K&} zGIqw1X-=W3M9jK|0_ViUF*xMjG8x|SC{d&2hm8{9HT0(I_Wq_5=VDsS{Ua3(lcwH} zW=s}W{`kox0xX#&KO0MjGK;G^vxn$B+fHbWxg%a1#qOXmT&hGp;$=sv)za9Vhn=(g z8U86X6(os}*c@|Vh2S8K`j*I6hU=M0h83AMLxp6e_4i0U!f!u*_p7Cer3aMirR8z9 z`UjII`S;G_W{ed{bYj-Vez^Ha*mu3TG49&sr^s(jA;TwzZ8|K*HKRGTTR$7Yc>bQ~ znzXdEcBXo5Qg{pItHY5Q?CS~)OM$%E=USpLSXn9@60_eT5kv)c3Lu%j)c`E|=k2I(toQYb znuXfLJ=do#!eH~=SaNg4>24>Pz-v{w*}f+Wr4;5CHC1=+d+r#FZJXf`^zQHP^#GRm zoP9@uG+?lAo~LGJ?7j9HsOwkg>CqnWM~?zdo;=wLx}3q38lVH;0}^Kbsk1bLl-7;E zzNbb5MMi)@v&Q#uaVj>FK|V$HwabWYsU_%Hxn0Q3crcYLXsuJ&#_V_CcnE^ij)|5$ zhOg~0zPImtFB$kWRlvrimal81KT6#QF+Z81MpShCj;;>%3*Y>~$>AO(;58U;SKbn+ z&ZV2D1xVYH1+c4WOn!S^Y%|0U1auA&kwK$she_FJZa54mO8DY36_n*rA(rgL+1>TH zA?BhWeX#lpbg(b^kd{j0AjtOzhdpyk479Xn?(_=0qRz8L?Bp@Y&=nn6BUw1mBgT=8 zG;VWm`R^l?EYfL-+0_G*I0wdyaaCM$p?+Ujit#l~EA()L89^qU4du=;} zJzyvr$>lJFBoO$E>oeT;izv@udxkW}s1vjEtIL0WA?QT1ZF1`5#4hybW+Rh4p8$hU zKe-!?v?z;hVi9;A4q6Z&ySmiJyf@nS0Vat``NJMEHr?j=xDH+wDR?93}M(F1U1$WP=sz^-|=iP`-eOy&5v|KKU8}i82D^B zcW+%RbAE(jOwpn<`9=dd*V>REth^H^XdUCRhk+m$2^_ljqNCug$o(f6^(O9l2s<9y zJ_8Dc=HdR<7Pw0y@G%a60cQZpZn!0)^3?n!18vurQ9#w)l%cdbxq8K|lut`Xor2%9 zNZaKnOZ!z{2weU$MMK(U)3O3eK_Q9E2bT`xh~yzMIRU*u9lijQnT`shvr5 zA6Go6%1HJd?wH;O9)LwxE}fju((N|9&JqS&ds6$q?s$0M z^`)O?FgL#`aYbK_r$#aOk1n0|9OcTi0%XUG(DZ}JNGdqMKuk>5UaAZT#Cs}B9y%oq z!=v=lD9m@~0#+ZkfB8+K)_OJ7=3iZu`fLKIlWQ@jZk|mY(-fGlf%Ta-(CkDoFtCmC z`G6%Q4I$3^9g~uQgESp&>?^t^1r3jiqKaeoS}dp^4p0Lg2MneU8;t*+fJvNLaGi0g zyC6LHp!LDS@4#PVk{mzpXMwO|Nbl^Qi4l!ki!(EAd`{-<+k>&;yz>MuT7@ysxy0>C zPoBOk?H(ZREv=C!fx_JMxFZTN#?>;Jlke3fs!WZ3d@q^~+*!4;2 zF)Ql$GvLBgXr`$@2Y}|A(frDrz_@9Ro-oV>%Y-e-{fsV~g3^UIbsw&s$5^1!S#+ws z_aep`Pg|!mRG1*>E--uVZIvPDbYTdL@yd9Wt(hyWQm#>z9*_u2t8ya9t_hyZd_+dA zW`?RIFsBHODz)~`@jis2&bK=$*Ik$UFF!WdACXk!q!gSI#)`6QZz5T6cWId&90OpM zwS=ciR1i&0)|Z;w2OP;9(Xumb=u*j0!ucDtN|*<&_dtt@tR!KT(Zj?D9>WSo#M!De zXlB%~;iiz?=yNYa2DWgq8kU$~Yxb|8To|rNsiX;LbF#WC zqRtzpB(N_%`W;8`j{an&p0Q|CO#m(oi{>Ldl$3kn3! z9%BwRw%JdIX$H`H<_I1PMf0W&e?>h;(+YE>&E~+L(vc$fX7RlX8D^6Kn0qV4u4+rC z!aUE1w2cC3c&Shhf4!q`bTmMTw|e)Jt+x@-`bSDzHrw}?D^_e+GPwBgSb{T7>h>8q6oYItE10h2i4tC3%Z)an>fX_clD(2FVr1P-++WE=OjkK!-M{ zZ4mm^9N~# zK^Y8~Z@ydSSEYl1pIA~LgjR^utp|X%Kb*=iV)@=1XSd~1OXLF#zGT3|B6-tJ1P5q__Xcytxt zUE@u~eB}t0Wlu|jfAd%z0x*aEczTk2vph?KLY6io&RogwgriW<4<|JzkPL(S z3LrTu*S)z|^J|N2aCBo7bxOMc)X9aYMYsIQbtO?KPr@4V0o)D zdT5DE7AXpgno~Pu76x^Yi5Vfi$dV}hiwgN!ZGP>0u7Wf-#L~!{4S+sJZ-9&;R_!lj zbHWSLP@BI}K=-A2LfSUTN=D{IVxlX62v_f^e@*JlfjZF9(<76;5X|iSog`K^w#Mqx z_WsnDFJCS*UnXDCyb{8m=D38tb1X_UV8vEDW4mrwGFlSMG!j(-7*m2aL`+ zpdN98ofLZIE;wLON1#`$0A)s3=KuQj+{+0x54C=VeAqyS#yVs?Eifg!&)pUWQwSX) z6Q|G1C|Ll|(GX0p=6y^7kM=x{{~S|uisHuxtqk2|A0??Nv6i_XV)|mT?^;a|3a{xP z$1>2JH)`Z{mhN)E%%p_zg#k;4mV<*sVcQ#;8*v`hi1s+Qk|wa;Qpvjt9zJ|XU&ZS@ z2Kcvk?F^z(K})Omu^+pDfY#dDS}TFTBq||c03e`w`W0CH>DXD9^=ZZT*MN%3(*61K z0}@>6%S8%~Ca~hwW@wpk5*ueZR)1LOHzC{dr`+GGd)v6puTGw4kn=|$F!h>WGGbD? z4=;QKQg(L~hi0C~2mql&tTq55Yk__n4~hvA&uJNJflwlEj^OEpOh#t#+am_}<Ws775?_^Kel725`2}pmk>t1W%CWcN}C}*78sV( zcgDR|{3pnMH!}FHxRX3DY+=?`a0x%I!i163^bbS<&m9rBx|)mi^VP2=v=4bAn9{Fy{}=nkJ2F zE&#;qHvfrTjdY5_{RiX<#qPoB9}R?M2mEqmzp7im@52t6EE{Lxi(Iu_)lC@!x@)7z z-zA#Dp_nk5;2D;5F3tN?njP&Zvx3FrKOF8R@ic5gnl+bsD#zy_t>TIDRXgXM=EA#w z=vcVmNnEmVRE*zzj*mB1)mT|uufoe5PWQ(ewdxx@9(A<)%V5mzi&j;nxO~*iC8gg{ zO|eok?K590+}W2a9c8uSF!%N=^uNtgKl+Xip!+j3&aQ2xY5Rv`qPG(o{{AUZCnTKi zytwYfenjuCk^B396aiiTJ@YFYJEtv=x}04%Okk0>makvxko)5`scb8^$BJG|%C`5= zvf7Rkmk$WO3Cx$|*SOh~fo0=Z#GP8WaQQ%)O=nZn*qu7hfBy4ay>K5qNEOJfnSSfu zzqPM?f8uU;y`Mk%;gukgLp^7fbWvz1O~ITp9`iyI!Sd52PN1AW&tKFbPT^|mq^ zSt<5=gcS66wh0Xr}HmkO9L+sF#;TI$?1B7 zeeZ0GCijHnfju0L6<{#~yqB+^asv20v%K10@?)}IjmJS)ru?yy6K(p0bsG)Jf6;d`e&&8`8`e8f+cKfe4^_z z43;bk>+oL}0Q>zq2?iM~N0QHpHYa=;`)Xb;M7L%i2}gY|T#_$#UAYv^Ya|oeI=eH> z@IO7|rn8tcjB&t7>>wXcbDw7`k!yyNP3?S|(Xm}>dfuotkwTiq=X*ucg|zduGJ-tu zY8K9o+0Sad*SFSXTA%&Vk(#|f)nTa;v8RqjhzYL~mABWUBG~tBz6<$O)t4P~HOcRP zw!R^l{Zt0d@FxhH4NO&)0TT4m6(KI}CBD?Ec3OWlbu^51r?XMYF$-B)FzSo)p=|2L2@at0v+ z#bHH0AMiBP(WuTSYF#wD-tL5nq|g?N==F~M>e(3=HArW|QZ)15wL${&ThCbqeL4~1 zi|erbdDwTc^+#>)*9WSmbUAoxF$$O=4YiV0!jRGYYx2ev@cN=FTPd)?Y&m6sTuN41 z5Y^`V-gU*Kl?OEahN=+7D$Wxw?>ZsT*&kv?*X{+?_6 z&1k!yAM#tb?_63CcPjgqI%Q+)Hc0xYY`eF2Ss^j(@3r1omTZnqb;qrB3=bGD@T+qA z1qhf-%_6WPG7aa(UrVAV=BV=dx&2pU-tSVvC(%Dio=pY0BYf| z^3{w@w?FlH)$=cjdp7oKzYDN>R72TH_iJuB#X|3Io}D^{GdB8g#OS+yk_A_XhV{8I z?r4a08_)YhV_j~UAi6w@)urTcFV~|JJ^0Z1z<*QE?tWlvH zep=lhaUAXUEIj-C;Oi6455g4{Z)Pw3d0sM&Pq(8tdp714MvmD9uP=U(m%de-!d_#T zoh-~;;`&}jI&^tL{VMhAFJ8}?U;UZHv>NSH>`JnT?!-Z*%OP2bxwjyI?@=O0d-(u?*QtL%^4{2HP80LmrJ9wlrWzZ?oQY*E%~D;i#eP0d&c6pp z9mVsiu-p~BoZ$MZwtFdGQA�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%0A8<&kLYX)tOsUE2upx`NvM2KvBJ_1e6fy9@?2sd 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%0DMGUb_yk;SpaVmYYTET}| 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 Sf3<)FS!y@5RSK`)dGcSY*a4{k diff --git a/report/query_ore_range_gt_100_chart.png b/report/query_ore_range_gt_100_chart.png index a28efd85402417ff6b5a217326b87489d1572e6d..a6954b5ce65c397c5d9654da828e287e1f79274c 100644 GIT binary patch literal 30910 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 z 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 diff --git a/report/query_ore_range_gt_10_chart.png b/report/query_ore_range_gt_10_chart.png index 29d335e8bbb2fca98b0ba7a91d335ead259b848b..50be2dc06238c6f5e6ad522ec6afc3a685b84fd7 100644 GIT binary patch literal 32167 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 LT52Sfi#Pud6uy|y literal 31688 zcmeFZXIN9+_bnP53W_L*1*M2eFG}yAh(M@PrHj%+l`bWK3RnSw5PB1m(2-84q9DBn zh;-?MDm6kVX9fKI|L2^0znm}kxgXAc9$$TTlAWEk*P3(8F~(f)HPscVsTimr5D2xh z(nBo>9n<>qPbVhK?*cY9&)imrsm`#m3F;g{uTVzr%mMgU`vun!nD-y#ri@@`aLtD+EGgPX2Q&Lly&rKzxLh zAKuq_nXoi++E;sXr*Rb%S!ifwaJ=y11x+2fix*VeV_YBJa8fy*ykUHL;%SRbE8o&~Z4z_B=XB+GG@*HJ7H)=xMYyW_iNAk4Gc-#~ z5Nj>uIRf#N)9m8cNpAYtl zwLK+v`kBVqLIWbWZ1k%Wr(5`IceT>*fgd+UyEjY&fv~)#VMaV&ofHgju&+ji4K$5QIgr7qAQZo)S;2y_)Piu?2keo z>`a{9)O57jR=NM=&kzClj$5p-9kObBCf=n(eD)8;G024nfner*%TJYm+fod}8JCq* z5PDSjqqualng&bkrb9$WKPM#I*d~toqdZqe3tz526QBGfxa+u5(8wgH`*_Flpikc{ zDkq1>wbqYNyO39zZrO_5&RbAn+R zrm)$vJlt^Oz2`sA*^O3t>5;aUatke64Ph{tRV<^V$CDp#Y04_x2+#U*jqqIhc?nSn zgarzNF*2$2C^7Y#rsozF#Xql9LGrBr+H$Jhvr>x{XpmT~r_0qsK@D`X^-3tt->_L4 z#tL@EY%P!2jlhW`dP{>P?S<`e!h)m?Fm%LUXqmTVo}*rk5(m5Mx$}M5@%QvHH0vZ5 za*A^Braru#SI?$>ecrP-_0lW6-Y_9rgIXekqNHQvN%xG?vQ(XdjqFI zzV4}I-IWh?xiudsBobB3(s+4!+l`$Di<_;5qt%^z3GcnTGeawCWcNtKXnJnFa!04J z8WU4*!W|s0sd|E4QqstKYmsp8eC`}}_2+f9hB#S66uP>i7}`Dp=41P>4FUgs-*rE> z+qX{^%YKkRYjT@ZxTPWwb{6v6g|vnmu9z+EV8N*MU|p@fh$EiuOXM+8)jb7)q~7NM z|MhjDxx%HF!(p8aFYTNjmgn@T-hIGH{b+x8T|>~a1#bBC?RmyEID2twg(!7kUhTfO z;@EvSoFRp9iQnN}?)`)hVPVm9>SFiRC6|OUO{*(lXYz41HKb)pI$N8%C=qu&+i=Av zeg-9ipUmC{&JxTAs}JdhHNMy!!xAW%@Yas9o4wjhD`DzBi#SXe0hM0&UY3Dp@D)Pc z6$e3sr(J0NgTl3zLS>Mn%6*~VrBj-C$+q^SAlhf88ZRW_|9AYY36Zd0fU)S$Gco!w z1R{i#BR=13Y-Q+wZNsPyzHlKMGjnc-PiNk%BFVzgd^@e%G7sN0WaYlEJmHPNOdze zaLw_T!`oLHQmcUrTVUF_Cnjpx#!D$e~WJHJLkg9YWW_{$tU#{1+e%h=|@KFO&zjG!YbS&qwmZWvzTzM$u7^y5N_ zbtjWStzWfWq6#0j{&`DWeo+&riQ@I1q2<~GKi5?SvyXbGV4C#ro;F^3A6k52-TyiS z5_tY_Tr(eqFsy-i9-myY)5t6xnMCy7x9LQE`gG2LE(}_*t3eT#eI$Cs%(#4-PM=+C+Q!O3{EjX zPf4PcQnc@m3|I$lxEpadx^ZzsAZMt_x#xGJx@3_&C$-RJep7pfcpqG*=jg(=>ujQD z+=7u)b>9YWA*Oi5xslPO?$nj?xL`$Z_h?aS{HV{0G~Qw9EGlHe-8)s}9G>9K@QMB* zhD0wk((S_xyXEdF;m~y@w`%SDRIwIMR{)P}T_`85%?h{YPAt9?y;L^lw;p2)l?Au( zfc?)SkWNw_UK6tU+_+S^T*0kD-`s;znLgNGIgr}nn!W-Za5EfyLnAYH&&0kbU0KVx z7!$5%=w)Wrk#H?y$!;@xgruD4vy4UGFQw3u$ZfBT^>}O(md2(QSMFH5*>B`B*L4%` z;DBEKm^W!kU+jP2M@Q>zR_vm7J>&|y`Q_K=YxMO?LuDEXZY`Xcm`5a$C4wc65V~`% z3^wTjfn1Q#fr2|s-Z=N-&1o9sY?4pM@IEDG_+@J9uAm45H zVir%yUk@D8wXWS=`&jHWX4)aSBISy%++Lq087q!O4>{G2B&>Giy})IqfQ1;V31;ku z^!~(0{*wtjNu8Ed{V3%u>|;*YAS%3ipK_-$W223p=FNRg*jM+4}rpL#;?&*WBpH z$mb^ReY&TXaq5W@^xn*;B-z}@gRbltlT$hOhM3#pD_=*qu^|^%*Y&+B5PzPWz0AY0 z0q$3BKc?n11hNZNRYibM^N1WzwGF=X-7?foBiaRh)GJhtxm%}$c3T;(?()%!f1{tR z*Y55!QUBh`&_Jk%5TcD%y$63=+@cuoW4GA_lJBmb|0$KS+85&w))N{TJrgpua0FKk zneBA(_*BW<-!Az`Z}6y9<+nca*ZeBU+fwe?*RS>=ir_d(9yDd%%e-RxvTmcir}IHd zlt*fMb)_5EY=XF}>X?v&Ro*0?^ON_CT<);MY=Y|zW{@8X_|zjaU(k?oVo=(+384qI zKAf-JoAh#ma=j?nd@x_-1TsQ`4NOVw94E*^7lJw@7I<)~Cf8f-6gu-vDpgStK2ecd zCtU@0-`4|_7SN=C0?}LUlI=)ENvz&XSkf`g&f6I6b?90QI6cKm#-#5a@YnqPB2F3y z52ejbY^f;)UbA8E?rkN%bWK-B-wa;j3t-MEKH_?(?3JMyDoFs`FGwGP*x!*Nh4@EH zr#L$~O6{|NefZ@9L7Rc$tqrp*J&9Ea<2t2;f)+ z;j(4c%%7XlJBd9cUYLgX;=)9L4Vc4Pr8z}WT90P=*4kS-E$bAMV~S?_Knf4XpfKRE zgX8hD_Q4XZ&2ov8T4%74LnYBuF4OJBnwSgZhz1_xohYH&gM!Dlcvtj?Q+HI1jT3Ho z`oh<*xl)m{6F46K1_3G}GV&Hm3#yXt<+HWWQ)QdAI9Tvwcz?DtWM=E_N*j0S?72SI zIT0&WF9{3Mc(v%k^*?*zY$(-h;xGOLJnvK_BPKB25MM*}isjO6OXdX@-e{yR#WLQq z@@z|9uc$hh84g(S{0=W0<+kyIs%)!~G>x4^VgpWWev zo&P()USs2K;^-Lqko8{~^<_9;_TaYYM&%QACu9A=-b}XHQb_|-Z>xxfRiEHt7I=p} zH+M8|_*u!4=tw(^%E7u%Ea!_#&n3jr>8)tod|yNorW8Rl>W6zi)GA}hf#1V~C3ro6 z7pc}VSvO-o%AB`NkO)yrK1iR;YB69J3CA#1j0LhShb_2O^qIlUlhzRxebcK2X~&al z%3h9>Twr*07w8B>Pu_ip_4Tzd*>g6wQ}MGnll^mLL|GDB%Ux!0YQ(}y<3iv z>h0H+7Yuc$B8ntitW_>!nV7p~Z*0%6(-$sI(zKUv2v~mq;kV*BR$HO5318?&2Mx>a ziVT!_<}a-B%aVF?(psr2XSmjxhGqWPzCZPToQXW@5C}(HeEuSLRJLB!X*RWRm(0wy z+2AqD1+>2ua@%uAFZS+?={2E6b!Am(#47RA=Zm7o?5I{mxX6-5^nr1o+33qnODqY! zfa>GKK-&l1+r0e`u#Y7?S2#~NGH|V~uCjfuSS>tg+9(@~#C3=X{=V0dAYs53TB(s& zGj4TFX8Gp!p8vvh=3C~wsl7{Sjb1$2lND20$6WTlN~XIJzIoda>}r+l0Qs11OTD@Ww*GR)CVez1laj2{{ zm-q>}!5}*Ct1st{^p5e=x*zJ* zU?QI8^I85%Ek`EjFt256_D|6{pGNX#OGBzB^~6^qYSuP{^HqEwyskg~pUD*?a^=8h zlG%kQAJ$?Z?Hx-R^k^Eg=6sIl^YYq1-Sd?|IkQ#D8$UfB{=@Qj*U;2Y$z=gzi5S6R z+oDdgaBhz{l~pGiOUf%>ej>|C?XAAh)vaUI4!3;tEft~1sOGg{j`e7|OLsLBC+QiU zK4lSmcZUg_;nhmjvc#`NZ`JDMRZf>aSbCe>pBMgPU_fBLyAfrNU7M*nZ&E=~oTq-u zcP45e;)T$nvN9)cn$vYw(U5Y*c~M)Qv!j3WbIi*0MvZr{LiRnqB}*Z-2W+^c7#2D+ z?}1^nJYO$P?b4iBy}1tj9?~+F>ub^#O_kJuQ0WD110`C#j#0?>CLoznUucNRT}8Y#{W4Z9_rN9Wn8w>JK%0+Yj`SC z2bI+*vSICj$i*!g>g99f+Ui7fM)M&Ix#c-_Pl| zxYM$^o;mk$FYg}z6|+)MWQG%!)5(kyLaOqBcEEEg8dAWcJdD-8ZC$kg$aAVjAWDI2 z>fj?tz;d^{z7C zz80@pSH3oxXt_k(ka~GHg|q-xQlDMFz}`1LX0fI|?JWC&!uxMsL=w5M8$W{9R()1t zX1hMm$9?oxdG_GTMy>O^0om{Xki#?!ZGw8c}mjwJD*`2D^2~V}&M#=?v)`{LPa1vTJv=Boan+v(WmY)`d91DVY4`>l+d; zHG@szvBn3+LgHf@Nygr>ZE&yPb91ht=gPM)(=}OITEuV_F3JzM z48fnbyKG(;4&Ocy9oi`F;o_F8U-LY8M`A`^6g`L7BW)=+=8d!?p7@uDi*y*lF9CBoWV5&y}Nm8QKMw@9lRHkwiQx5F}DYbi4* z#$=3Z{<>jz|Ll1N4fY4b2SdF~iLl%)*2h&r}GW?e2Ngd5jXO`@?@Khh5j7Hn;ua6{W5#h)HwUN&c5B^Th=0Zv2GvsrR37R=89j%c*P3pHDFG&>Eq-;am0u-U20m4}QX_b* z&!KFD4OC~Jv97amS41tEK;iP`<5W?n%voaBF_zM)8|UwCtQLJ*u=c+h$#{8MslKOR zY0PViHm4r({8&`y-PZG1E%-rBbl|%k3fbDypWP6g7b-wi9X!}F=8Q9w>l&-^_Dr^>i1a8v94u?YP;T8wf8ro8RmVSp4K_NDWN^}^k?|c%xs&lpNu!7YI4?MwIZKE{B1Gk zQ-KCGep^&^ZU@1cfj58@k>+4D5vm@0>cbn6qAT0TW{c zs6V!B{e0xqlm%H$Xj~iAumz>KUm2zvGptdWvCc3(=U?Bw&s-R4h7o^6T7Z0r+M;dI z=5+hU4Ou%EJh7{HbvrK3!vZU2A_6t2`JVic2x;Q|tIV_H#aHFl|`V;I(Xpz4MP2q6fq)-CaE*&#v=SIZE zsjf-7bqXWXGF~%X!{stU{;7H)KmJn*sqkPZCS7S}*<_}Y<=IC|zi4T1Mz+{W4`pnj z<;MiUlNElT{!@z+x_1mA^22*FL^R$1V80NA?UXW6zulMDL>-NjNM%lAj<54=&`yQR z?0esO=5BO*KPoQ&K~hVJJlMQX$FvQXBF(vX+-D9`T=AdPd)CseLb!#ebS#S;UM5!b z&)+m7&Q_~mROZl?GJo9B-Fhr{@k7ph-d{LUM@)uiiMc!$p?te$!Bmh;=f+xt(^^aFz%u2-r6~ z1^b`|O0_txK+2C109aT0Ybit!#h6Z88Yi zu)s-MQDAu*c`OZ1Kjzgfb2PaoVjly0&18epA!`L5&&C&h81ews6!qrf1E$N{2@*34 zIaZ4Pp@Q`CqwTp%P}VWsN6vMsmLDKH(}SM1toc-|f+dShoyg9{YHvm_4Heg~_NDdB ze^o5T)bRy62WlBl3MLAk!(ySVu#!7$1pmfm-6tNFNRyCh=OH_ZFV(6s488GBThbU> z_axMK{B;dI6r%Gw{q^Mv$gxWNx~L=K3c3@KwaL&#NUT)Cu66HKUv9LKDsozp0l4#HBl&##6A>Dx0`Md7cwMBNwxmJg>-Cj=#blY?lgZ<_&5bv zHIcAfvs%+bK7XV$8E65qA4T^jE}rdE*ts7Pg?}yg{fqqpri#Xr=2oKBr4Y9dPgvk@ zceglOtaoCEN+%}hsHBA|Rv*TEa1S%qam<^#?GX8QV=JWKU;ZKG$+%i|$)YmeF4KL=)4Yom{cX6WZ98F#N} zZP#L*n*7aT*rvI4Bhsg;#=I`VH}E-c-kw*=oVqkS=w<8P|7x$0Ur@fMB`SO&?;4A4 zmJa8d)rq}oi7yW_!*3}<^G&N&*IjrwdjywwO)7L`cK^sLtEfbhB|bnmIMPb04F;cQ zv^~z*QT6s~tN4wlbK38UlD7@{RQo6uE+-=YmdUSc3 z+QMdpp(%+}d}MpPXuN1D5c1eQ&-drXd+j!}Ckr`!(u2Y_b%5MCHDH|_MQd56E26L(gg#Hmzl+re@zZ-Vg{yo&0^1jab?M&8|l^k2| zM?#RV1bzb#B|4tm8+|`lw{>B$3nTk)a-VisW$u-1jG2?hCZ5i%_BdH0J)5R6U%20W zP=mM+DcxPy8v%is+SitDiJ{g$2L6>{;qlA7bKFKWqq-9^`_ zx7pU-aPDzq$L4RY6vdy?G)K(xz!dY}Y=6Ho`bN}I~lk$Gt;kyYYYCl-j*F$OZ zZtqWqrESohWis#Y?&2Eb;w66O7WAdh$=f&F=PFuE-aBcAc9u%^3_K6WvENS^RJUj! zM`>{c?CXlu%0UT}6~2XR2FfLp`HP zfeH}Ks+-@7Yhqxo9CA{rT4n@Es?bp>vbF{wR&>?yBxavHa5DNU)^(Js~QV8 z@BpPNJmjGN*k668(A?mK^rvEPPQ&Tz$4_;A8?^pBWs;kYalu#$Lw?)%=V}=i=;WQ* zD{%=`l|NT3(2Cb-c)DXppyd59Y{s4Wd*9%cnnrpp5LWLnr0VeO>~g;6uo^T-(eCoq zrJ2T`8#*7U6%!0-Oqs#!S#CkMqQ7k51?r+|TX;y;%s9HGhTB`6S-;tT zxfmh$4FL$}eUKTUig|ac$CKkTRod=@Ti$wrzx;HN#Qq+U>pP`2wQsn53|U)r%X{;8 zAs#oM{k>-k;}+u9~))%mHy&hNzbmT><0d!%mdiC;TYlU7iS0ES<12p zTsL(gU$@4vd&h1&!OCV#Uyg2D-k?spEYG^1_nCjL99PlS(z#`E2;_x42YpB#Vh@iV zHWp9#s&-pCQE(Vg4G#_dc{6p3_YM6>)~8;0Jj|`)g8JubdSwoU3(7RIGi6%f?3U_K z+SDdxVWz`Qv&5K%QliJ&kmLQOq% z>cS6DAGcFD3^#*~r9sLuB-UiOm5I9lwPF8KDR+kJSH)`qv`2*GJ7I;Td=%~i4f7wt zy}Q~LLmI4Rs=O~HqZn>bin-7*Q(}v$R8I)HlI9wQ&)VMm&c!gJGppn~&qDSNFGc7Tl2|0?;ot>)?(eSzeTG&El< zT)yR=Zr^lS4*q$!Sc4E!1FiYsh|A`XqE1-s;uO_C&u&krtRbs)@nrq8xy$;rm>7z? zK|;6tUYzH-9-^(P0{KViK`SC88iZ27tw!>fJDz^Ac8at$y2M(`A0F}PAM;#as+91o z0#?$ren%4Vr4+1J^6_6f!5Mt4>N?$|wSeW$5!D)i<9flS{qOn#FETU>J1qbtwz7?GIB zJ5uQx4TL~%9?!i^d@C^hm_$?3u?0G`9es+U>fw8qvsd^w%B5XrRJHGIwu_D_HHI>p z5TiM@A7$z1GX-A+ITRc$GhC=DOACvb1rSQThRGHc72tYGSNM2Yz-3Blpv=iE=FyqM zw+3Y7BV3~6Q7y6t2Fx}uhh=TLSn!?f zNiVxPSXlSV-ihpS!@extwEYujA>-fwmutpV>*PG?4z%C4;kZ!+ky@nm~j)|)dm6E z-i*5;fCwWWkC~zLy`xb13;=A!MgFNcm%`?f(*N_EA08=c|2KXdiIo30QXWm5|Gz{^ zaiFyi`>wZZVO=aafl<*I%X4^^iY`xqFKzu$aEGk0z5SI%*S4{B&Wg{N( zRlv?A;JIvEw2M}YpZfBVk7}X(P;Y{0ioK`3f0@sC&e>*js=EyqI`G_81&vp`H5K<+&?oCf}9Xnhs9^TDbjOsE`3Nh9=BrdZWN=WneOVD?|AZ>B zmg4n}Aqb}bj~L3y$(ec<<+r=4cum^7xN2`}2o242o$YXGz7rkOmHDjU16#vTiCr{h zuG@!^spiP(SErePnp)LmY}bkTepSHYT@`WEr_guXMSQt@(wL~9Z)!qz09SghY-J#O zidG2EYY<$zEyh)Z>o=C13VUembN*k$@3A1QT*HzG*G_5u%REn>?ug%Eo2eZf|M7Mj zIBUZJyBg~*tV9(UY$X5oyzn?4xW>rIgDI>GhI+i`DXn7``Z{` ztddEYJ(>t|e@|V4<^tP^W}iBP;pXB1&bW9*#~i&#h~0GaPT4{ik{+T^C}l92+BbpO zx7|(3!7mTDB2?ca_d)PT{e;v%;n4j>@Lb+leEI4y*7p-$EnBt4+&n>X?yjut_EaSL zoGLeJBgb3Xd*d^(i;B#x9?j!#UiXvXo%r6$J1WSSlnn3-?k5ImlwDLR%Hh;T#~fK_ zAYZgK6N{FsiKgPff-Chs9oSb@${a^jS2F1|q#pZ`mdZ3k>5hKS9chI3db{X!F;3le z#1GJ&s_Uz#nSHwwg!$Ro6@P{@UT<+e!W1d#8e=3dVbjfj1m_JoRc|7N?D|!~Jb^im zy_^im+t>UzLP}hyjYaQ4$(E!FjINe9TG|L0ou|h952&qhM{nUc_L>T1SZs4Mzj`Zf zaj>K{;hGb`G3aQ71Mp}9G#~Zf_Xpn@o$F2`+q3h26Fv!c{IT(^d0KZ|92i;UMWIL6 zt4E|f;FNA11rwH=*?+e{Cqwi8&eqa`w`w*8kY( zL41iF9vK)IDAk$>u)(7F(YpfK5E3u{q=-+Bg6H^@ZUIC*U@x=>?$18v|hEB_DT;HA6bIwY5>;!KX4)ADx5- zraZ`8$gefE>P%AWqn9DCo!rhJy>iKiqYvm>1~tB3 znz&szlcTdKU8y?2lb>!>=17j-O~6Jujnj~glJ?n}GT`IpRzdQaZ~?6;0{AK+uNg#G_{KQMnO8dL)iNAj}Is01rIfw4`q2b zHdrN+O)a94*?(9Enrn>J^4s6Grqj%9iQ-nlq18};O7BUPKdlUfQn~$SwU|@Ex2o&w zACgyd+rN80L*ZI;boc+q4IvLTIHG_z%XOwLyzb5E)}Sk<9Cr9TVWPE#MHBGv-T`As z{XeaiOi-1yUb9ZPNw(*=B}p5Ndd)Hp)W9pfa*VMqF0H&}O`!6jpD*}VdOW&KQPeZy zImRoy`{#`>m{2Y~%IrX8tXL=r3_Q8r>A!z#rS_mkYWL5N)EnG~zu|F1A&&&p?dt$-SPuIwuT?tW#%Q7H>r^n~SvGHB|)4H7Q3%O-+ zk7lDyJYqqJs~g5xPvG{o;^tv2!Y_V*W2O1GL<%@Fo~UGhF?~6H3M><>F?_SH2Uulc zz|MJ&K}d$icdT3z!LQFMHm1Ic3stc8BfMO$T#+GzF3K!>P;U$7egx5k9RS71?7Rx- z{vOc`Kk1Eb091k!DDufQtd)<)*G&+EVw~riC&1WPbm(9@$p%@cs@34emouHoPD!`8 zxm!y{$;M;hxIFw9g|ncqDb}uX%SW@|nL<$x$?wIO1`wL zMz+S^GPh8&Cp`VxRb;I}_e;T;!yRwpseG`%H;p&*j{+#nfUjbX75jJMqcop4^WkuE z+(`T)x;(<%fPW}Wl7Ux=q1Rwdsk)jXdj==YQ)@4R#-}kSF3h4_ePS@XguD8QE7U?8 zE}-Y2g2{j4J^K_wTRnWGhNSLTL0}`d@0g5tf;I@0Vi*&f*fzko7NDF4NiDhQ^G*5V zOttDpp#5ypm|n9kkjvXew6#!GE?vkTm$H~1sV<;v0Z0}^u2ETBre7)0y;^`R{n_zc zfGi$cwZ~b0=l1j*gO?3#X~^zb2t@kr?KA`PfE3aT7@ntP54OV;qj13gIt}c{cS$+q zfL`h8-bIR~FO*(*`l^*tD&bb;)^_qJ z>M=r3GjZ*AqZZe_)Nf0=yk^i*#=)B@M5Q-uxnH|$v>0Sy7rwkg1Ya3+g~BqN0ilze zicp`%#cCUtq|qyl3Z3b`+rsyf3z!yrsgi)Pkf{g`r3*wB^iUlVn&7}-Cr=&nLTbwc5R>Llu1JB91hIM2PZOlW0P>J zA10Ju&<~D2G^9t-s~BdcYu7M{I`V)eDO`t8Z^d;fVdlv0XVu5tIY?fk3cu1f+|K zjwe3ARDapv@fqwL*1w$+uCQ5r$-r6vit;-ect9#{t(XBS&$(o6ful;Ik@+iEv%98( zJKMsX_#O0TXwS{|Q4BG(*`Sb&zvmEw)L)9T6k&ZxpJWa=lf#2$nW($JX3GdVQgC&L zl)U2T(k;gxx@uTMco}fV$NpRdrLe$FZF6I<=_o6PQ2_27ydT3(xH}C#9nDMXfkln^ zu7_lIB5U-b#uobavKC;>cYSt}D4Y!8fQl2O#H7rO5#Gw1z3Z?fV>~r%qTk&r{{Mt> z8wMOn>B($AE1lkeTu|N*k#^VME+$u=d|>SsQ8v2mBoNo_(w0Ff**JO5t7gt% zxzv7um0Up>D0XfUf4`xL6P$(h#Z-XSRdVy0%YbEcEG$IAQlnD~gS#etuIHYeKM!?u zF*8yo?|#Gh9^mgnva{f3h6f#$NVj15m|b*A z2$S@naq)!GSx2GSuDk8QBS~v-XEPEc8_|ulLjVNfIL4+L^AxQ#UtC8vWGG((SL-<2XZ0L3nB~QG8UWu| zvh^75{N~}ag!~cmSbP#@YBV|$Rc!8afie1-EJ9+vO|ZR0WWcceg?Un=JBF~^_$A@> z#iI`taA#;jD@*@XU7^8Rpjnn?hw|vl15y|g|Gm;+%86=kD^ctPz6&RYxP_(Hb88@I zYlTz%D>G?tKzU88o=i+m-T@89fm+^1@|fLA8)8Ra1I-I~kV$SL9~(M6kz!$3;g*@; z-fvI{+;?O@+1PZb?EXu#jR-4e0g#e_)2Ng|wYU5G5yoRgL=P3{{IQ~6u{r#7K+|&V zLy_Dq|L#V4d(b$h1!_ZbIk8X!%0DG7tq8Z}VR4NMD8Y0`$@3?cY}TD-j&UCKUdVL; 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 diff --git a/report/query_ore_range_lt_100_chart.png b/report/query_ore_range_lt_100_chart.png index c8dccf3a8743e958a344e7dc88eba8d1eccda7fd..0081a3f0f082aea090306d7ac6fe7abd0589e7c4 100644 GIT binary patch literal 32273 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 diff --git a/report/query_ore_range_lt_10_chart.png b/report/query_ore_range_lt_10_chart.png index 07eefec915e093cd532e583b548d2657b37966fc..9d91fe37544834bee569794bd40ea8a6db76fc3b 100644 GIT binary patch literal 31811 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%0AHxf!h6Z7H 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 '{1033,1393,461,1554,453,91}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,461,453,1393,1554}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1393,461,1554,453,91}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,461,453,1393,1554}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.73 @@ -51,11 +51,11 @@ { "bf": [ 1033, - 1393, + 91, 461, - 1554, 453, - 91 + 1393, + 1554 ], "i": { "c": "value", @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1574,61,1057,1751,1109,1031,1596,1183,1143,710,865,1068,1760,587,1500,2028,1845,792,1453,1735,421,682,582,1018,1200,1637,830,998,895,1496}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1109,1596,895,61,1143,1845,1057,865,710,830,1496,582,1068,792,1751,1574,1500,682,2028,1031,1200,587,421,1637,1735,1760,1183,1453,998,1018}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -99,7 +99,7 @@ "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1574,61,1057,1751,1109,1031,1596,1183,1143,710,865,1068,1760,587,1500,2028,1845,792,1453,1735,421,682,582,1018,1200,1637,830,998,895,1496}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1109,1596,895,61,1143,1845,1057,865,710,830,1496,582,1068,792,1751,1574,1500,682,2028,1031,1200,587,421,1637,1735,1760,1183,1453,998,1018}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ - 1574, - 61, - 1057, - 1751, 1109, - 1031, 1596, - 1183, + 895, + 61, 1143, - 710, + 1845, + 1057, 865, + 710, + 830, + 1496, + 582, 1068, - 1760, - 587, - 1500, - 2028, - 1845, 792, - 1453, - 1735, - 421, + 1751, + 1574, + 1500, 682, - 582, - 1018, + 2028, + 1031, 1200, + 587, + 421, 1637, - 830, + 1735, + 1760, + 1183, + 1453, 998, - 895, - 1496 + 1018 ], "i": { "c": "value", @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{61,1751,1760,587,1200,421,1845,1596,1018,1500,1735,1143,1183,582,1109,682,1496,830,1031,865,1574,710,1453,1068,792,2028,895,1637,998,1057}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,682,1057,1760,1496,1183,1453,998,1143,1200,792,1109,1596,865,1845,710,1735,61,582,1574,587,1751,1637,830,2028,1068,895,421,1018,1500}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -190,7 +190,7 @@ "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{61,1751,1760,587,1200,421,1845,1596,1018,1500,1735,1143,1183,582,1109,682,1496,830,1031,865,1574,710,1453,1068,792,2028,895,1637,998,1057}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,682,1057,1760,1496,1183,1453,998,1143,1200,792,1109,1596,865,1845,710,1735,61,582,1574,587,1751,1637,830,2028,1068,895,421,1018,1500}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -208,36 +208,36 @@ "parameters": [ { "bf": [ - 61, - 1751, + 1031, + 682, + 1057, 1760, - 587, + 1496, + 1183, + 1453, + 998, + 1143, 1200, - 421, - 1845, + 792, + 1109, 1596, - 1018, - 1500, + 865, + 1845, + 710, 1735, - 1143, - 1183, + 61, 582, - 1109, - 682, - 1496, - 830, - 1031, - 865, 1574, - 710, - 1453, - 1068, - 792, + 587, + 1751, + 1637, + 830, 2028, + 1068, 895, - 1637, - 998, - 1057 + 421, + 1018, + 1500 ], "i": { "c": "value", diff --git a/results/query/match_metadata_100000.json b/results/query/match_metadata_100000.json index 5a505ca..d52bbe9 100644 --- a/results/query/match_metadata_100000.json +++ b/results/query/match_metadata_100000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1393,1033,91,1554,461,453}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,453,91,1033,1393,461}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1393,1033,91,1554,461,453}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,453,91,1033,1393,461}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 1393, - 1033, - 91, 1554, - 461, - 453 + 453, + 91, + 1033, + 1393, + 461 ], "i": { "c": "value", @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,1068,2028,682,1735,710,1500,1596,1574,1057,830,1845,865,1018,1496,1637,1453,582,998,587,1751,1143,61,1200,1109,895,1183,421,1031}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1496,1500,1735,1183,895,1143,1845,1109,421,830,1751,682,1574,792,1637,1760,1068,61,865,2028,582,1018,587,1453,998,1200,1031,710,1596,1057}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -99,7 +99,7 @@ "Total Cost": 454.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,1068,2028,682,1735,710,1500,1596,1574,1057,830,1845,865,1018,1496,1637,1453,582,998,587,1751,1143,61,1200,1109,895,1183,421,1031}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1496,1500,1735,1183,895,1143,1845,1109,421,830,1751,682,1574,792,1637,1760,1068,61,865,2028,582,1018,587,1453,998,1200,1031,710,1596,1057}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 454.35, "Total Cost": 458.86 @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ + 1496, + 1500, + 1735, + 1183, + 895, + 1143, + 1845, + 1109, + 421, + 830, + 1751, + 682, + 1574, 792, + 1637, 1760, 1068, - 2028, - 682, - 1735, - 710, - 1500, - 1596, - 1574, - 1057, - 830, - 1845, + 61, 865, + 2028, + 582, 1018, - 1496, - 1637, + 587, 1453, - 582, 998, - 587, - 1751, - 1143, - 61, 1200, - 1109, - 895, - 1183, - 421, - 1031 + 1031, + 710, + 1596, + 1057 ], "i": { "c": "value", @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{582,587,1109,1068,61,1751,1496,1500,1057,792,710,1183,1031,1637,682,1735,1760,865,1018,1845,1596,2028,1143,998,1200,830,1453,895,1574,421}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1183,792,865,1500,1057,1751,830,1596,710,587,61,1574,582,1143,1018,895,1200,421,1453,2028,682,1068,1735,1760,998,1845,1496,1637,1109}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -190,7 +190,7 @@ "Total Cost": 454.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{582,587,1109,1068,61,1751,1496,1500,1057,792,710,1183,1031,1637,682,1735,1760,865,1018,1845,1596,2028,1143,998,1200,830,1453,895,1574,421}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1183,792,865,1500,1057,1751,830,1596,710,587,61,1574,582,1143,1018,895,1200,421,1453,2028,682,1068,1735,1760,998,1845,1496,1637,1109}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 454.35, "Total Cost": 458.86 @@ -208,36 +208,36 @@ "parameters": [ { "bf": [ - 582, - 587, - 1109, - 1068, - 61, - 1751, - 1496, + 1031, + 1183, + 792, + 865, 1500, 1057, - 792, + 1751, + 830, + 1596, 710, - 1183, - 1031, - 1637, + 587, + 61, + 1574, + 582, + 1143, + 1018, + 895, + 1200, + 421, + 1453, + 2028, 682, + 1068, 1735, 1760, - 865, - 1018, - 1845, - 1596, - 2028, - 1143, 998, - 1200, - 830, - 1453, - 895, - 1574, - 421 + 1845, + 1496, + 1637, + 1109 ], "i": { "c": "value", diff --git a/results/query/match_metadata_1000000.json b/results/query/match_metadata_1000000.json index 441f496..1e649e1 100644 --- a/results/query/match_metadata_1000000.json +++ b/results/query/match_metadata_1000000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,461,1393,91}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,461,91,453,1393}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 307.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,453,461,1393,91}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,461,91,453,1393}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 307.85, "Total Cost": 312.36 @@ -52,10 +52,10 @@ "bf": [ 1033, 1554, - 453, 461, - 1393, - 91 + 91, + 453, + 1393 ], "i": { "c": "value", @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1751,2028,1143,1574,865,710,61,1200,1845,1637,1500,998,1453,587,895,792,1735,1068,1496,582,830,1018,421,1183,1596,1760,1109,682,1057}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{830,421,1735,1574,1751,1200,1143,710,895,1031,792,1068,2028,1018,61,1845,1596,682,1109,1637,1496,865,1500,582,587,1183,1760,1453,1057,998}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -99,7 +99,7 @@ "Total Cost": 1530.98 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1751,2028,1143,1574,865,710,61,1200,1845,1637,1500,998,1453,587,895,792,1735,1068,1496,582,830,1018,421,1183,1596,1760,1109,682,1057}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{830,421,1735,1574,1751,1200,1143,710,895,1031,792,1068,2028,1018,61,1845,1596,682,1109,1637,1496,865,1500,582,587,1183,1760,1453,1057,998}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1530.98, "Total Cost": 1535.49 @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ - 1031, + 830, + 421, + 1735, + 1574, 1751, - 2028, + 1200, 1143, - 1574, - 865, 710, - 61, - 1200, - 1845, - 1637, - 1500, - 998, - 1453, - 587, 895, + 1031, 792, - 1735, 1068, + 2028, + 1018, + 61, + 1845, + 1596, + 682, + 1109, + 1637, 1496, + 865, + 1500, 582, - 830, - 1018, - 421, + 587, 1183, - 1596, 1760, - 1109, - 682, - 1057 + 1453, + 1057, + 998 ], "i": { "c": "value", @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{865,2028,1200,582,1143,1109,895,1057,1068,1496,587,1574,830,1760,1751,1500,1735,1637,1183,421,1031,792,1596,1453,682,710,1845,998,1018,61}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1637,61,830,682,1109,1068,1031,1735,1596,1751,1845,1496,998,792,582,1183,1143,2028,865,1574,1018,587,1500,1760,895,421,1057,1200,1453,710}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -190,7 +190,7 @@ "Total Cost": 1530.98 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{865,2028,1200,582,1143,1109,895,1057,1068,1496,587,1574,830,1760,1751,1500,1735,1637,1183,421,1031,792,1596,1453,682,710,1845,998,1018,61}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1637,61,830,682,1109,1068,1031,1735,1596,1751,1845,1496,998,792,582,1183,1143,2028,865,1574,1018,587,1500,1760,895,421,1057,1200,1453,710}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1530.98, "Total Cost": 1535.49 @@ -208,36 +208,36 @@ "parameters": [ { "bf": [ - 865, - 2028, - 1200, - 582, - 1143, + 1637, + 61, + 830, + 682, 1109, - 895, - 1057, 1068, - 1496, - 587, - 1574, - 830, - 1760, - 1751, - 1500, - 1735, - 1637, - 1183, - 421, 1031, - 792, + 1735, 1596, - 1453, - 682, - 710, + 1751, 1845, + 1496, 998, + 792, + 582, + 1183, + 1143, + 2028, + 865, + 1574, 1018, - 61 + 587, + 1500, + 1760, + 895, + 421, + 1057, + 1200, + 1453, + 710 ], "i": { "c": "value", diff --git a/results/query/match_metadata_10000000.json b/results/query/match_metadata_10000000.json index 7470849..8f95d08 100644 --- a/results/query/match_metadata_10000000.json +++ b/results/query/match_metadata_10000000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,1554,461,1393,453}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,1393,453,1554,1033,461}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 2258.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,1554,461,1393,453}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,1393,453,1554,1033,461}'::smallint[])", "Relation Name": "string_encrypted_10000000", "Startup Cost": 2258.97, "Total Cost": 2263.48 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 1033, 91, - 1554, - 461, 1393, - 453 + 453, + 1554, + 1033, + 461 ], "i": { "c": "value", @@ -64,7 +64,8 @@ "v": 2 } ], - "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE value LIKE $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE value LIKE $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -87,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1143,582,1496,865,682,1183,421,2028,1500,61,998,710,1845,1018,587,1031,1574,1735,1637,1109,1453,1760,1596,792,830,1200,1751,1057,1068,895}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,710,1109,1200,421,1637,587,61,1143,2028,865,1574,998,682,582,1751,1845,1453,1183,1057,1031,1500,1596,1068,1496,1018,830,895,1735}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -98,7 +99,7 @@ "Total Cost": 11294.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1143,582,1496,865,682,1183,421,2028,1500,61,998,710,1845,1018,587,1031,1574,1735,1637,1109,1453,1760,1596,792,830,1200,1751,1057,1068,895}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,710,1109,1200,421,1637,587,61,1143,2028,865,1574,998,682,582,1751,1845,1453,1183,1057,1031,1500,1596,1068,1496,1018,830,895,1735}'::smallint[])", "Relation Name": "string_encrypted_10000000", "Startup Cost": 11294.85, "Total Cost": 11299.36 @@ -116,36 +117,36 @@ "parameters": [ { "bf": [ - 1143, - 582, - 1496, - 865, - 682, - 1183, + 792, + 1760, + 710, + 1109, + 1200, 421, - 2028, - 1500, + 1637, + 587, 61, + 1143, + 2028, + 865, + 1574, 998, - 710, + 682, + 582, + 1751, 1845, - 1018, - 587, - 1031, - 1574, - 1735, - 1637, - 1109, 1453, - 1760, - 1596, - 792, - 830, - 1200, - 1751, + 1183, 1057, + 1031, + 1500, + 1596, 1068, - 895 + 1496, + 1018, + 830, + 895, + 1735 ], "i": { "c": "value", @@ -154,7 +155,8 @@ "v": 2 } ], - "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE value LIKE $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE value LIKE $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -177,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1453,830,1057,1500,865,1637,792,1143,682,1200,895,1018,61,1574,1109,1496,1183,1845,2028,998,1760,1068,710,421,587,1596,1031,1735,1751,582}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1735,2028,1845,830,710,1183,61,587,792,1596,895,1018,1751,421,865,1637,1031,998,1574,1143,1453,1496,1068,682,582,1760,1500,1109,1057,1200}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -188,7 +190,7 @@ "Total Cost": 11294.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1453,830,1057,1500,865,1637,792,1143,682,1200,895,1018,61,1574,1109,1496,1183,1845,2028,998,1760,1068,710,421,587,1596,1031,1735,1751,582}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1735,2028,1845,830,710,1183,61,587,792,1596,895,1018,1751,421,865,1637,1031,998,1574,1143,1453,1496,1068,682,582,1760,1500,1109,1057,1200}'::smallint[])", "Relation Name": "string_encrypted_10000000", "Startup Cost": 11294.85, "Total Cost": 11299.36 @@ -206,36 +208,36 @@ "parameters": [ { "bf": [ - 1453, + 1735, + 2028, + 1845, 830, - 1057, - 1500, - 865, - 1637, + 710, + 1183, + 61, + 587, 792, - 1143, - 682, - 1200, + 1596, 895, 1018, - 61, + 1751, + 421, + 865, + 1637, + 1031, + 998, 1574, - 1109, + 1143, + 1453, 1496, - 1183, - 1845, - 2028, - 998, - 1760, 1068, - 710, - 421, - 587, - 1596, - 1031, - 1735, - 1751, - 582 + 682, + 582, + 1760, + 1500, + 1109, + 1057, + 1200 ], "i": { "c": "value", @@ -244,7 +246,8 @@ "v": 2 } ], - "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10" + "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10", + "rows_returned": 10 } ], "target_rows": "10000000" diff --git a/results/query/match_rows_10000.json b/results/query/match_rows_10000.json index 6cf7aef..b8fc82b 100644 --- a/results/query/match_rows_10000.json +++ b/results/query/match_rows_10000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[154,308,462,616,770,924,1078,1232,1386,1540],"measured_values":[96502875.0,199887166.0,277977291.0,359754709.0,500973292.0,559198917.0,728690125.0,819679166.0,810644750.0,946156584.0],"unit":"ns","throughput":[],"typical":{"estimate":624808.9166975882,"lower_bound":600455.3910885862,"upper_bound":654062.7602060387,"unit":"ns"},"mean":{"estimate":625769.1509575346,"lower_bound":606750.5565512264,"upper_bound":645361.0408194187,"unit":"ns"},"median":{"estimate":620514.7188311688,"lower_bound":595037.2025613275,"upper_bound":657154.1517857143,"unit":"ns"},"median_abs_dev":{"estimate":43417.59364736542,"lower_bound":9418.174935521247,"upper_bound":55065.555070442904,"unit":"ns"},"slope":{"estimate":624808.9166975882,"lower_bound":600455.3910885862,"upper_bound":654062.7602060387,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[100773375.0,199089875.0,302744791.0,423145916.0,514937166.0,606023833.0,704467750.0,807176375.0,908916041.0,1005113083.0],"unit":"ns","throughput":[],"typical":{"estimate":25279649.635714285,"lower_bound":25174792.889522344,"upper_bound":25503939.599137932,"unit":"ns"},"mean":{"estimate":25351210.089930553,"lower_bound":25137479.488750003,"upper_bound":25640619.520000003,"unit":"ns"},"median":{"estimate":25226497.151041664,"lower_bound":25159562.5,"upper_bound":25497263.05277778,"unit":"ns"},"median_abs_dev":{"estimate":74195.27169214193,"lower_bound":16501.677469538503,"upper_bound":504473.5828031749,"unit":"ns"},"slope":{"estimate":25279649.635714285,"lower_bound":25174792.889522344,"upper_bound":25503939.599137932,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[102,204,306,408,510,612,714,816,918,1020],"measured_values":[89667833.0,188272250.0,275081667.0,362387167.0,453058000.0,517111541.0,634793709.0,763245084.0,787533625.0,980601750.0],"unit":"ns","throughput":[],"typical":{"estimate":905329.8194041253,"lower_bound":866394.0425503143,"upper_bound":938765.2071420747,"unit":"ns"},"mean":{"estimate":896613.5860449735,"lower_bound":876610.240328548,"upper_bound":917615.9939907212,"unit":"ns"},"median":{"estimate":888707.919467787,"lower_bound":873041.8032407407,"upper_bound":922903.1862745098,"unit":"ns"},"median_abs_dev":{"estimate":30452.551778313325,"lower_bound":747.3471882024654,"upper_bound":57784.10262069572,"unit":"ns"},"slope":{"estimate":905329.8194041253,"lower_bound":866394.0425503143,"upper_bound":938765.2071420747,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[112266500.0,223858708.0,326713250.0,428076917.0,541889792.0,655507500.0,791948375.0,870489292.0,976733875.0,1047764625.0],"unit":"ns","throughput":[],"typical":{"estimate":27058915.181818184,"lower_bound":26571907.30551736,"upper_bound":27645751.143552396,"unit":"ns"},"mean":{"estimate":27324945.014265876,"lower_bound":26952125.22204514,"upper_bound":27699403.675731644,"unit":"ns"},"median":{"estimate":27214447.270833336,"lower_bound":26943151.920138888,"upper_bound":27982338.5,"unit":"ns"},"median_abs_dev":{"estimate":429655.7148733388,"lower_bound":70132.6414632322,"upper_bound":1252011.9204806797,"unit":"ns"},"slope":{"estimate":27058915.181818184,"lower_bound":26571907.30551736,"upper_bound":27645751.143552396,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[93,186,279,372,465,558,651,744,837,930],"measured_values":[83703583.0,177819625.0,266780958.0,349364625.0,442809625.0,445491708.0,610049958.0,692789958.0,802470375.0,862496083.0],"unit":"ns","throughput":[],"typical":{"estimate":926798.1051529116,"lower_bound":889770.517529798,"upper_bound":949317.1357021206,"unit":"ns"},"mean":{"estimate":925649.2503225807,"lower_bound":893612.9755376342,"upper_bound":947673.2529569892,"unit":"ns"},"median":{"estimate":938124.4637096775,"lower_bound":915603.9126344086,"upper_bound":956019.4892473118,"unit":"ns"},"median_abs_dev":{"estimate":23758.16439998241,"lower_bound":2772.9999910920064,"upper_bound":41635.576076949794,"unit":"ns"},"slope":{"estimate":926798.1051529116,"lower_bound":889770.517529798,"upper_bound":949317.1357021206,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[121214625.0,227328333.0,317674375.0,467905583.0,531744125.0,638356708.0,776768500.0,898474584.0,964465083.0,1077976458.0],"unit":"ns","throughput":[],"typical":{"estimate":27256171.506493505,"lower_bound":26864181.101895366,"upper_bound":27815083.560019035,"unit":"ns"},"mean":{"estimate":27718123.490535714,"lower_bound":27011480.736750003,"upper_bound":28522234.94768899,"unit":"ns"},"median":{"estimate":27345571.79642857,"lower_bound":26598196.166666668,"upper_bound":28660714.84375,"unit":"ns"},"median_abs_dev":{"estimate":1116205.9140933787,"lower_bound":142700.67989155833,"upper_bound":2184738.518481888,"unit":"ns"},"slope":{"estimate":27256171.506493505,"lower_bound":26864181.101895366,"upper_bound":27815083.560019035,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[143,286,429,572,715,858,1001,1144,1287,1430],"measured_values":[86528166.0,179315750.0,278116458.0,383753125.0,469210625.0,501319000.0,576440083.0,662555416.0,790569875.0,915790625.0],"unit":"ns","throughput":[],"typical":{"estimate":613514.6253564617,"lower_bound":590509.6142453053,"upper_bound":635928.9211575658,"unit":"ns"},"mean":{"estimate":620149.1398074147,"lower_bound":600270.1360855812,"upper_bound":640090.7193196386,"unit":"ns"},"median":{"estimate":620625.777000777,"lower_bound":584287.8787878788,"upper_bound":648325.8304195805,"unit":"ns"},"median_abs_dev":{"estimate":46907.383264896554,"lower_bound":8685.273312239286,"upper_bound":56945.46166220955,"unit":"ns"},"slope":{"estimate":613514.6253564617,"lower_bound":590509.6142453053,"upper_bound":635928.9211575658,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[79149334.0,163464708.0,246110500.0,317035167.0,396469875.0,492383709.0,560295417.0,639450208.0,713004250.0,798289958.0],"unit":"ns","throughput":[],"typical":{"estimate":26655246.71861472,"lower_bound":26511077.402010936,"upper_bound":26893575.533613447,"unit":"ns"},"mean":{"estimate":26752013.608544968,"lower_bound":26531809.187962964,"upper_bound":26998484.759384256,"unit":"ns"},"median":{"estimate":26626711.96666667,"lower_bound":26419444.907407407,"upper_bound":27244118.0,"unit":"ns"},"median_abs_dev":{"estimate":315987.9175228748,"lower_bound":17839.288088846926,"upper_bound":602220.9486251045,"unit":"ns"},"slope":{"estimate":26655246.71861472,"lower_bound":26511077.402010936,"upper_bound":26893575.533613447,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[101,202,303,404,505,606,707,808,909,1010],"measured_values":[93227584.0,177024042.0,288983542.0,401163458.0,495142000.0,614643875.0,696473417.0,786742042.0,835187375.0,981238583.0],"unit":"ns","throughput":[],"typical":{"estimate":966459.4531567442,"lower_bound":943041.7908900419,"upper_bound":988245.3712228365,"unit":"ns"},"mean":{"estimate":958998.7879875846,"lower_bound":933509.4930642974,"upper_bound":981895.9813059876,"unit":"ns"},"median":{"estimate":972606.9977722772,"lower_bound":923045.3861386139,"upper_bound":986729.0321782178,"unit":"ns"},"median_abs_dev":{"estimate":29086.975975187084,"lower_bound":6638.977725797956,"upper_bound":67620.22391880793,"unit":"ns"},"slope":{"estimate":966459.4531567442,"lower_bound":943041.7908900419,"upper_bound":988245.3712228365,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[104943750.0,234518959.0,352569584.0,474884833.0,549209583.0,700403958.0,767393041.0,913441375.0,1021216625.0,1111368542.0],"unit":"ns","throughput":[],"typical":{"estimate":28223129.056493506,"lower_bound":27842680.922339115,"upper_bound":28734699.84712838,"unit":"ns"},"mean":{"estimate":28335916.48165675,"lower_bound":27660750.253001485,"upper_bound":28956041.512406997,"unit":"ns"},"median":{"estimate":28456085.720486112,"lower_bound":27460479.15,"upper_bound":29314869.875,"unit":"ns"},"median_abs_dev":{"estimate":1322106.3772727111,"lower_bound":146258.79627838824,"upper_bound":1945332.4955090706,"unit":"ns"},"slope":{"estimate":28223129.056493506,"lower_bound":27842680.922339115,"upper_bound":28734699.84712838,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[102,204,306,408,510,612,714,816,918,1020],"measured_values":[91556833.0,180803208.0,289868792.0,354296917.0,448313792.0,617015791.0,795204458.0,778227750.0,802231583.0,898167333.0],"unit":"ns","throughput":[],"typical":{"estimate":933986.0397759103,"lower_bound":884065.2558791463,"upper_bound":1010403.7906353798,"unit":"ns"},"mean":{"estimate":930869.6097510116,"lower_bound":890547.942542756,"upper_bound":981919.7749323063,"unit":"ns"},"median":{"estimate":891953.1225490195,"lower_bound":877223.4110566449,"upper_bound":977739.6854575163,"unit":"ns"},"median_abs_dev":{"estimate":30868.35061513071,"lower_bound":5369.668956434011,"upper_bound":109079.19474438863,"unit":"ns"},"slope":{"estimate":933986.0397759103,"lower_bound":884065.2558791463,"upper_bound":1010403.7906353798,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[130113625.0,221571417.0,334337417.0,485540666.0,553209500.0,688770792.0,772243875.0,881627417.0,1033309334.0,1168025333.0],"unit":"ns","throughput":[],"typical":{"estimate":28477835.988961037,"lower_bound":27838915.2394958,"upper_bound":28999449.05138121,"unit":"ns"},"mean":{"estimate":28782649.99713294,"lower_bound":27964848.588454362,"upper_bound":29802400.66157738,"unit":"ns"},"median":{"estimate":28280117.208333336,"lower_bound":27638282.75892857,"upper_bound":29524664.340277776,"unit":"ns"},"median_abs_dev":{"estimate":978235.0475828607,"lower_bound":86204.83560705902,"upper_bound":2077090.5523488545,"unit":"ns"},"slope":{"estimate":28477835.988961037,"lower_bound":27838915.2394958,"upper_bound":28999449.05138121,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000","MATCH/match_decrypt/eql_cast_firstname/10000","MATCH/match/eql_cast_lastname/10000","MATCH/match_decrypt/eql_cast_lastname/10000","MATCH/match/eql_bloom/10000","MATCH/match_decrypt/eql_bloom/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_100000.json b/results/query/match_rows_100000.json index d0ad9bf..b137dde 100644 --- a/results/query/match_rows_100000.json +++ b/results/query/match_rows_100000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[72,144,216,288,360,432,504,576,648,720],"measured_values":[107564292.0,191937000.0,288365500.0,390110250.0,474095125.0,575788875.0,664331834.0,689305708.0,763632958.0,1006995708.0],"unit":"ns","throughput":[],"typical":{"estimate":1293275.8611471863,"lower_bound":1220618.8835470085,"upper_bound":1369067.3282967033,"unit":"ns"},"mean":{"estimate":1325807.5886000884,"lower_bound":1273246.019666832,"upper_bound":1378707.8036574074,"unit":"ns"},"median":{"estimate":1332870.2256944445,"lower_bound":1257415.0084325396,"upper_bound":1366815.3064814815,"unit":"ns"},"median_abs_dev":{"estimate":27886.650181996403,"lower_bound":1654.6261859022782,"upper_bound":178237.5819731505,"unit":"ns"},"slope":{"estimate":1293275.8611471863,"lower_bound":1220618.8835470085,"upper_bound":1369067.3282967033,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101556333.0,198334541.0,299829917.0,440736125.0,562267958.0,676102250.0,894237750.0,1033175417.0,1081419792.0,1187278958.0],"unit":"ns","throughput":[],"typical":{"estimate":29973537.824675325,"lower_bound":28596557.403062277,"upper_bound":31017023.708128966,"unit":"ns"},"mean":{"estimate":28294226.698541664,"lower_bound":26725543.144609377,"upper_bound":29898882.85896354,"unit":"ns"},"median":{"estimate":28142162.491666667,"lower_bound":25389083.25,"upper_bound":30809518.225,"unit":"ns"},"median_abs_dev":{"estimate":3447308.4091730425,"lower_bound":463252.64724437054,"upper_bound":4823402.496424988,"unit":"ns"},"slope":{"estimate":29973537.824675325,"lower_bound":28596557.403062277,"upper_bound":31017023.708128966,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[32,64,96,128,160,192,224,256,288,320],"measured_values":[83030917.0,158356208.0,226165958.0,394992208.0,488037958.0,592247583.0,693858209.0,786683542.0,848832333.0,979747750.0],"unit":"ns","throughput":[],"typical":{"estimate":3022672.8590097404,"lower_bound":2944992.7298808857,"upper_bound":3070305.4461325794,"unit":"ns"},"mean":{"estimate":2882527.4077157737,"lower_bound":2701512.5343229165,"upper_bound":3038119.0465937494,"unit":"ns"},"median":{"estimate":3055974.478125,"lower_bound":2594716.15625,"upper_bound":3084622.828125,"unit":"ns"},"median_abs_dev":{"estimate":53009.59031264173,"lower_bound":9606.107749769946,"upper_bound":443791.7176015908,"unit":"ns"},"slope":{"estimate":3022672.8590097404,"lower_bound":2944992.7298808857,"upper_bound":3070305.4461325794,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[105628875.0,224472458.0,353615250.0,566905417.0,630538292.0,755157375.0,831155000.0,957396417.0,1111320208.0,1236302417.0],"unit":"ns","throughput":[],"typical":{"estimate":30784960.582467534,"lower_bound":30198724.669777762,"upper_bound":31546538.216516856,"unit":"ns"},"mean":{"estimate":30373791.86643849,"lower_bound":29023164.871007938,"upper_bound":31827445.614285715,"unit":"ns"},"median":{"estimate":30394321.904513888,"lower_bound":28871582.19642857,"upper_bound":31464890.625,"unit":"ns"},"median_abs_dev":{"estimate":1480341.325281188,"lower_bound":334104.297884088,"upper_bound":3795230.4662261913,"unit":"ns"},"slope":{"estimate":30784960.582467534,"lower_bound":30198724.669777762,"upper_bound":31546538.216516856,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[33,66,99,132,165,198,231,264,297,330],"measured_values":[88425041.0,181899959.0,272397541.0,405010875.0,464265875.0,552694166.0,650676000.0,776436833.0,947308584.0,1082024375.0],"unit":"ns","throughput":[],"typical":{"estimate":3041259.592522629,"lower_bound":2841143.1420700513,"upper_bound":3174787.751599035,"unit":"ns"},"mean":{"estimate":2908675.921699134,"lower_bound":2797455.5614826838,"upper_bound":3035823.1561868684,"unit":"ns"},"median":{"estimate":2815255.898268398,"lower_bound":2756059.984848485,"upper_bound":3068264.2045454546,"unit":"ns"},"median_abs_dev":{"estimate":140519.56286171835,"lower_bound":18824.975141547427,"upper_bound":321376.67809593846,"unit":"ns"},"slope":{"estimate":3041259.592522629,"lower_bound":2841143.1420700513,"upper_bound":3174787.751599035,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[97772834.0,218790459.0,250416542.0,349700250.0,475940625.0,567511042.0,670380667.0,813321459.0,779258959.0,1003999208.0],"unit":"ns","throughput":[],"typical":{"estimate":31794573.85887446,"lower_bound":29952553.436869215,"upper_bound":33146061.73587908,"unit":"ns"},"mean":{"estimate":31741890.133346558,"lower_bound":30229224.135866072,"upper_bound":33291623.46271164,"unit":"ns"},"median":{"estimate":31826131.95238095,"lower_bound":29141687.5,"upper_bound":33466640.266666666,"unit":"ns"},"median_abs_dev":{"estimate":2744863.7132114284,"lower_bound":297978.5436431542,"upper_bound":4741688.328273766,"unit":"ns"},"slope":{"estimate":31794573.85887446,"lower_bound":29952553.436869215,"upper_bound":33146061.73587908,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[71,142,213,284,355,426,497,568,639,710],"measured_values":[75818959.0,145975875.0,232709583.0,291887417.0,435101209.0,584232250.0,704053125.0,792398542.0,864493834.0,984729834.0],"unit":"ns","throughput":[],"typical":{"estimate":1346612.4648984817,"lower_bound":1268809.3415799143,"upper_bound":1380326.2869472322,"unit":"ns"},"mean":{"estimate":1236475.4713637377,"lower_bound":1137378.3869919516,"upper_bound":1332026.4591851106,"unit":"ns"},"median":{"estimate":1289261.353834116,"lower_bound":1060266.1866197183,"upper_bound":1386943.4281690142,"unit":"ns"},"median_abs_dev":{"estimate":172834.8579001358,"lower_bound":17517.399837947603,"upper_bound":255538.6768207932,"unit":"ns"},"slope":{"estimate":1346612.4648984817,"lower_bound":1268809.3415799143,"upper_bound":1380326.2869472322,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[123516583.0,223632625.0,339216875.0,503036500.0,569955375.0,704350292.0,762868209.0,914285958.0,1001152375.0,1095899125.0],"unit":"ns","throughput":[],"typical":{"estimate":28117003.14090909,"lower_bound":27639405.74095607,"upper_bound":28948899.829279512,"unit":"ns"},"mean":{"estimate":28741077.13105159,"lower_bound":27975705.712008927,"upper_bound":29628670.182725694,"unit":"ns"},"median":{"estimate":28382920.833333336,"lower_bound":27675778.125,"upper_bound":29725290.96875,"unit":"ns"},"median_abs_dev":{"estimate":1140223.6353653166,"lower_bound":224883.18867627438,"upper_bound":2275314.7155384226,"unit":"ns"},"slope":{"estimate":28117003.14090909,"lower_bound":27639405.74095607,"upper_bound":28948899.829279512,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[35,70,105,140,175,210,245,280,315,350],"measured_values":[101663542.0,192080291.0,273260542.0,390895750.0,473684250.0,567388833.0,658047917.0,733761292.0,841177625.0,925293666.0],"unit":"ns","throughput":[],"typical":{"estimate":2667302.7115398888,"lower_bound":2646385.308964388,"upper_bound":2701069.85437788,"unit":"ns"},"mean":{"estimate":2707247.6622131513,"lower_bound":2659233.8719563494,"upper_bound":2763564.4338321993,"unit":"ns"},"median":{"estimate":2693880.725510204,"lower_bound":2643696.1885714284,"upper_bound":2749439.8214285714,"unit":"ns"},"median_abs_dev":{"estimate":74358.29578187644,"lower_bound":15461.499574075006,"upper_bound":138251.75707754082,"unit":"ns"},"slope":{"estimate":2667302.7115398888,"lower_bound":2646385.308964388,"upper_bound":2701069.85437788,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[84376083.0,189697917.0,284669958.0,350356000.0,468534042.0,529400917.0,601002541.0,765637375.0,786014083.0,885138667.0],"unit":"ns","throughput":[],"typical":{"estimate":29866590.222510822,"lower_bound":29186057.481875714,"upper_bound":30911732.72442239,"unit":"ns"},"mean":{"estimate":30035175.486997355,"lower_bound":29232505.826309524,"upper_bound":30877943.378223542,"unit":"ns"},"median":{"estimate":29457892.144444443,"lower_bound":28907750.976190478,"upper_bound":31616319.5,"unit":"ns"},"median_abs_dev":{"estimate":1609551.058178088,"lower_bound":211446.7712085731,"upper_bound":2059073.2118966454,"unit":"ns"},"slope":{"estimate":29866590.222510822,"lower_bound":29186057.481875714,"upper_bound":30911732.72442239,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[35,70,105,140,175,210,245,280,315,350],"measured_values":[91970625.0,180430667.0,280207959.0,363596875.0,437600834.0,596459333.0,693508709.0,767382667.0,801553541.0,919093583.0],"unit":"ns","throughput":[],"typical":{"estimate":2665168.348942486,"lower_bound":2586974.2465733793,"upper_bound":2760428.490523338,"unit":"ns"},"mean":{"estimate":2655383.5852233563,"lower_bound":2590449.168746032,"upper_bound":2725473.0815430833,"unit":"ns"},"median":{"estimate":2626856.904285714,"lower_bound":2570867.475793651,"upper_bound":2749647.5102040814,"unit":"ns"},"median_abs_dev":{"estimate":97494.61454645747,"lower_bound":22692.383972129406,"upper_bound":188392.27101786822,"unit":"ns"},"slope":{"estimate":2665168.348942486,"lower_bound":2586974.2465733793,"upper_bound":2760428.490523338,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[117248500.0,271347625.0,351883208.0,449214375.0,643868250.0,694936042.0,785304833.0,951262291.0,1079163458.0,1135039875.0],"unit":"ns","throughput":[],"typical":{"estimate":29267214.55,"lower_bound":28576028.773346305,"upper_bound":30160248.636683334,"unit":"ns"},"mean":{"estimate":29790546.5515377,"lower_bound":28803030.347912945,"upper_bound":30987321.04424603,"unit":"ns"},"median":{"estimate":29317862.833333336,"lower_bound":28375996.875,"upper_bound":30960179.546875,"unit":"ns"},"median_abs_dev":{"estimate":1186647.7014786266,"lower_bound":265899.08308559685,"upper_bound":2654750.7034052126,"unit":"ns"},"slope":{"estimate":29267214.55,"lower_bound":28576028.773346305,"upper_bound":30160248.636683334,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/100000","MATCH/match_decrypt/eql_cast_firstname/100000","MATCH/match/eql_cast_lastname/100000","MATCH/match_decrypt/eql_cast_lastname/100000","MATCH/match/eql_bloom/100000","MATCH/match_decrypt/eql_bloom/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_1000000.json b/results/query/match_rows_1000000.json index d8783c3..2d3435b 100644 --- a/results/query/match_rows_1000000.json +++ b/results/query/match_rows_1000000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[102657750.0,176604625.0,266968000.0,352871000.0,473095708.0,547120500.0,624732250.0,738684750.0,846400542.0,905365708.0],"unit":"ns","throughput":[],"typical":{"estimate":5089512.58989899,"lower_bound":5009308.281324039,"upper_bound":5169078.041760271,"unit":"ns"},"mean":{"estimate":5111873.17186508,"lower_bound":4989395.751785714,"upper_bound":5269156.078518517,"unit":"ns"},"median":{"estimate":5047870.022222223,"lower_bound":4931938.244047619,"upper_bound":5224694.703703703,"unit":"ns"},"median_abs_dev":{"estimate":182511.14413700247,"lower_bound":35258.93861014069,"upper_bound":335690.49195696856,"unit":"ns"},"slope":{"estimate":5089512.58989899,"lower_bound":5009308.281324039,"upper_bound":5169078.041760271,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[84781292.0,218348541.0,300782541.0,455333834.0,570352708.0,564227083.0,603618208.0,765948916.0,870865875.0,873345667.0],"unit":"ns","throughput":[],"typical":{"estimate":31520740.865800865,"lower_bound":30041241.764075067,"upper_bound":33839675.63176896,"unit":"ns"},"mean":{"estimate":32741016.184603173,"lower_bound":30665305.539404765,"upper_bound":34932570.315107144,"unit":"ns"},"median":{"estimate":32084414.916666668,"lower_bound":29111522.233333334,"upper_bound":36391423.5,"unit":"ns"},"median_abs_dev":{"estimate":4680259.2983887885,"lower_bound":630914.167169037,"upper_bound":6154732.912161646,"unit":"ns"},"slope":{"estimate":31520740.865800865,"lower_bound":30041241.764075067,"upper_bound":33839675.63176896,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[111503125.0,225951958.0,328987792.0,438757375.0,550780959.0,653770875.0,797525875.0,898587667.0,983313708.0,1078093709.0],"unit":"ns","throughput":[],"typical":{"estimate":18348083.5,"lower_bound":18101660.930449534,"upper_bound":18677983.687064677,"unit":"ns"},"mean":{"estimate":18437853.753035713,"lower_bound":18251121.723472223,"upper_bound":18634589.917256445,"unit":"ns"},"median":{"estimate":18320461.295833334,"lower_bound":18209513.111111112,"upper_bound":18720576.395833332,"unit":"ns"},"median_abs_dev":{"estimate":313979.1538007576,"lower_bound":56710.86981818172,"upper_bound":522220.3585412353,"unit":"ns"},"slope":{"estimate":18348083.5,"lower_bound":18101660.930449534,"upper_bound":18677983.687064677,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[123316333.0,244192042.0,380597083.0,522490834.0,671825709.0,758881750.0,944784083.0,1022488500.0,1164381125.0,1274270625.0],"unit":"ns","throughput":[],"typical":{"estimate":43092127.27532467,"lower_bound":42536331.84327765,"upper_bound":43927721.71775469,"unit":"ns"},"mean":{"estimate":42777638.35232804,"lower_bound":41971075.47407408,"upper_bound":43609848.03714286,"unit":"ns"},"median":{"estimate":42539687.5,"lower_bound":41697004.55555555,"upper_bound":43956803.72592592,"unit":"ns"},"median_abs_dev":{"estimate":1176261.2272449676,"lower_bound":233600.4698360972,"upper_bound":2634600.662526492,"unit":"ns"},"slope":{"estimate":43092127.27532467,"lower_bound":42536331.84327765,"upper_bound":43927721.71775469,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[105438250.0,214356250.0,319677084.0,420026250.0,542095375.0,661749917.0,770161541.0,835639209.0,946827291.0,1055239541.0],"unit":"ns","throughput":[],"typical":{"estimate":17750800.375324674,"lower_bound":17543078.136216074,"upper_bound":18091782.84386973,"unit":"ns"},"mean":{"estimate":17801627.63628968,"lower_bound":17606257.95277778,"upper_bound":18018237.428968254,"unit":"ns"},"median":{"estimate":17673581.84166667,"lower_bound":17533838.722222224,"upper_bound":18100100.19047619,"unit":"ns"},"median_abs_dev":{"estimate":268296.5421117833,"lower_bound":48547.694954775245,"upper_bound":589049.1680456193,"unit":"ns"},"slope":{"estimate":17750800.375324674,"lower_bound":17543078.136216074,"upper_bound":18091782.84386973,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[128168125.0,266497208.0,391315541.0,522721250.0,609255333.0,758986834.0,939432375.0,1085544250.0,1173895333.0,1283836208.0],"unit":"ns","throughput":[],"typical":{"estimate":43454538.99134199,"lower_bound":42537605.96999371,"upper_bound":44382730.048780486,"unit":"ns"},"mean":{"estimate":43319950.642037034,"lower_bound":42496722.31444444,"upper_bound":44077937.73479167,"unit":"ns"},"median":{"estimate":43478554.74074074,"lower_bound":42480237.744444445,"upper_bound":44416201.333333336,"unit":"ns"},"median_abs_dev":{"estimate":1255386.3386124372,"lower_bound":61156.68607536698,"upper_bound":2272140.2013031114,"unit":"ns"},"slope":{"estimate":43454538.99134199,"lower_bound":42537605.96999371,"upper_bound":44382730.048780486,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[80611542.0,175420708.0,282734709.0,359375250.0,468721500.0,527399584.0,641039666.0,707922500.0,799192833.0,915779250.0],"unit":"ns","throughput":[],"typical":{"estimate":5011017.135353535,"lower_bound":4938518.915307189,"upper_bound":5086175.727886841,"unit":"ns"},"mean":{"estimate":4969440.991534391,"lower_bound":4834949.059920634,"upper_bound":5086410.732407408,"unit":"ns"},"median":{"estimate":4962306.00462963,"lower_bound":4883329.481481481,"upper_bound":5147816.531746032,"unit":"ns"},"median_abs_dev":{"estimate":159245.28657283104,"lower_bound":32121.290321399923,"upper_bound":334141.26519558433,"unit":"ns"},"slope":{"estimate":5011017.135353535,"lower_bound":4938518.915307189,"upper_bound":5086175.727886841,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[98870625.0,199818334.0,315841875.0,391809833.0,465770875.0,534447084.0,628600000.0,770837750.0,941907375.0,1018918292.0],"unit":"ns","throughput":[],"typical":{"estimate":32711740.626839828,"lower_bound":30872605.87177786,"upper_bound":33954743.82024223,"unit":"ns"},"mean":{"estimate":32564816.240000002,"lower_bound":31430424.96333333,"upper_bound":33649482.74670833,"unit":"ns"},"median":{"estimate":32803847.208333336,"lower_bound":31025786.458333332,"upper_bound":34094257.0,"unit":"ns"},"median_abs_dev":{"estimate":2159074.3144887704,"lower_bound":453757.9997941833,"upper_bound":3394700.9436570033,"unit":"ns"},"slope":{"estimate":32711740.626839828,"lower_bound":30872605.87177786,"upper_bound":33954743.82024223,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[102115042.0,204828416.0,307197917.0,408185542.0,523214125.0,619269875.0,723708791.0,832540375.0,930495208.0,1031492583.0],"unit":"ns","throughput":[],"typical":{"estimate":17235266.193506494,"lower_bound":17179357.845051736,"upper_bound":17296742.886751574,"unit":"ns"},"mean":{"estimate":17180359.06270503,"lower_bound":17099198.72351852,"upper_bound":17266011.14326058,"unit":"ns"},"median":{"estimate":17196742.01111111,"lower_bound":17044104.166666668,"upper_bound":17287876.41815476,"unit":"ns"},"median_abs_dev":{"estimate":191180.08876254002,"lower_bound":16965.020848810673,"upper_bound":249803.36546343687,"unit":"ns"},"slope":{"estimate":17235266.193506494,"lower_bound":17179357.845051736,"upper_bound":17296742.886751574,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[123792208.0,248740083.0,383148625.0,512186292.0,661221583.0,772977750.0,948945875.0,1076259375.0,1203259000.0,1443474792.0],"unit":"ns","throughput":[],"typical":{"estimate":45264253.57316017,"lower_bound":43691323.2220954,"upper_bound":46689638.73704695,"unit":"ns"},"mean":{"estimate":43771267.14604497,"lower_bound":42644685.671704695,"upper_bound":45043984.90898148,"unit":"ns"},"median":{"estimate":43512323.6,"lower_bound":42069435.75,"upper_bound":44876523.47883598,"unit":"ns"},"median_abs_dev":{"estimate":1767734.766791155,"lower_bound":275125.2534488886,"upper_bound":3506650.9900389444,"unit":"ns"},"slope":{"estimate":45264253.57316017,"lower_bound":43691323.2220954,"upper_bound":46689638.73704695,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[103537708.0,210388167.0,310509792.0,422167708.0,518356167.0,620593458.0,721339250.0,832582083.0,942300875.0,1071602167.0],"unit":"ns","throughput":[],"typical":{"estimate":17474725.883982684,"lower_bound":17266850.477198698,"upper_bound":17677528.213352583,"unit":"ns"},"mean":{"estimate":17397699.958048947,"lower_bound":17284008.14200215,"upper_bound":17532568.791620366,"unit":"ns"},"median":{"estimate":17311999.48125,"lower_bound":17247495.916666668,"upper_bound":17532347.25,"unit":"ns"},"median_abs_dev":{"estimate":156079.0429802904,"lower_bound":17285.756643117395,"upper_bound":356769.48749662936,"unit":"ns"},"slope":{"estimate":17474725.883982684,"lower_bound":17266850.477198698,"upper_bound":17677528.213352583,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[127277500.0,256201125.0,384963291.0,527293916.0,635696417.0,865253791.0,953621125.0,1059275333.0,1162622208.0,1286486792.0],"unit":"ns","throughput":[],"typical":{"estimate":43940925.06406926,"lower_bound":43035835.22448358,"upper_bound":45380647.55449367,"unit":"ns"},"mean":{"estimate":43778027.250357136,"lower_bound":42885233.914895825,"upper_bound":44939418.25333333,"unit":"ns"},"median":{"estimate":42971487.42222223,"lower_bound":42599766.16666667,"upper_bound":44675844.71428572,"unit":"ns"},"median_abs_dev":{"estimate":843140.0590779438,"lower_bound":135439.63416546842,"upper_bound":2212555.423219287,"unit":"ns"},"slope":{"estimate":43940925.06406926,"lower_bound":43035835.22448358,"upper_bound":45380647.55449367,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/1000000","MATCH/match_decrypt/eql_cast_firstname/1000000","MATCH/match/eql_cast_lastname/1000000","MATCH/match_decrypt/eql_cast_lastname/1000000","MATCH/match/eql_bloom/1000000","MATCH/match_decrypt/eql_bloom/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_10000000.json b/results/query/match_rows_10000000.json index e69de29..129a32b 100644 --- a/results/query/match_rows_10000000.json +++ b/results/query/match_rows_10000000.json @@ -0,0 +1,7 @@ +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[121939917.0,240735125.0,356027625.0,477838042.0,593258334.0,700628125.0,901989250.0,966096125.0,1046338167.0,1196068666.0],"unit":"ns","throughput":[],"typical":{"estimate":39976908.6952381,"lower_bound":39149621.736415245,"upper_bound":41122146.58636788,"unit":"ns"},"mean":{"estimate":40045005.722261906,"lower_bound":39451781.87700694,"upper_bound":40808908.11834127,"unit":"ns"},"median":{"estimate":39844396.18333334,"lower_bound":39241204.86111111,"upper_bound":40384579.91666667,"unit":"ns"},"median_abs_dev":{"estimate":521467.1853996076,"lower_bound":194938.7309141457,"upper_bound":1403557.791815199,"unit":"ns"},"slope":{"estimate":39976908.6952381,"lower_bound":39149621.736415245,"upper_bound":41122146.58636788,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[132055250.0,279493250.0,383963292.0,526243666.0,635570916.0,810254209.0,909632583.0,1076937208.0,1172384583.0,1302363583.0],"unit":"ns","throughput":[],"typical":{"estimate":65643258.37142857,"lower_bound":64913663.09926892,"upper_bound":66609700.41022399,"unit":"ns"},"mean":{"estimate":65928654.08452381,"lower_bound":64900858.129523806,"upper_bound":67094768.72054166,"unit":"ns"},"median":{"estimate":65456467.54166667,"lower_bound":64556030.575,"upper_bound":67308575.5,"unit":"ns"},"median_abs_dev":{"estimate":1507613.6591345072,"lower_bound":128258.67707796046,"upper_bound":3095378.3555969875,"unit":"ns"},"slope":{"estimate":65643258.37142857,"lower_bound":64913663.09926892,"upper_bound":66609700.41022399,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[168509291.0,336638959.0,508969125.0,669813583.0,802896792.0,968070958.0,1121471750.0,1309826625.0,1466986416.0,1623771833.0],"unit":"ns","throughput":[],"typical":{"estimate":162702259.6051948,"lower_bound":161697471.9732393,"upper_bound":163956235.87782806,"unit":"ns"},"mean":{"estimate":164517731.14083332,"lower_bound":162461625.64739585,"upper_bound":166647291.64497918,"unit":"ns"},"median":{"estimate":163363409.3958333,"lower_bound":161345159.66666666,"upper_bound":168319479.5,"unit":"ns"},"median_abs_dev":{"estimate":4401253.985204589,"lower_bound":782735.1349286735,"upper_bound":5396064.711410693,"unit":"ns"},"slope":{"estimate":162702259.6051948,"lower_bound":161697471.9732393,"upper_bound":163956235.87782806,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[553277916.0,561466042.0,578220625.0,567133500.0,567096291.0,568247709.0,561489000.0,569806458.0,566369250.0,554325958.0],"unit":"ns","throughput":[],"typical":{"estimate":188247758.3,"lower_bound":186794348.92749998,"upper_bound":189701766.66666666,"unit":"ns"},"mean":{"estimate":188247758.3,"lower_bound":186794348.92749998,"upper_bound":189701766.66666666,"unit":"ns"},"median":{"estimate":188910923.5,"lower_bound":185969159.6666667,"upper_bound":189489993.0,"unit":"ns"},"median_abs_dev":{"estimate":2055243.835312128,"lower_bound":188846.17164731026,"upper_bound":4140057.3857992887,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[167090625.0,332500333.0,485399291.0,635446500.0,851494958.0,968149750.0,1170110042.0,1295010666.0,1462549208.0,1689298583.0],"unit":"ns","throughput":[],"typical":{"estimate":164943461.76103896,"lower_bound":162158792.00130022,"upper_bound":167565673.5613079,"unit":"ns"},"mean":{"estimate":164612969.996746,"lower_bound":162409642.4261905,"upper_bound":166850981.25738093,"unit":"ns"},"median":{"estimate":164377817.0277778,"lower_bound":161617312.4583333,"upper_bound":168010241.65,"unit":"ns"},"median_abs_dev":{"estimate":4072382.1626174143,"lower_bound":440785.25002451224,"upper_bound":5777339.271578389,"unit":"ns"},"slope":{"estimate":164943461.76103896,"lower_bound":162158792.00130022,"upper_bound":167565673.5613079,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[570977958.0,578695875.0,553997416.0,599768666.0,564343166.0,563273625.0,557343167.0,563725958.0,571024375.0,569131709.0],"unit":"ns","throughput":[],"typical":{"estimate":189742730.5,"lower_bound":187522231.735,"upper_bound":192480740.23333335,"unit":"ns"},"mean":{"estimate":189742730.5,"lower_bound":187522231.735,"upper_bound":192480740.23333335,"unit":"ns"},"median":{"estimate":188912479.16666666,"lower_bound":186844854.16666666,"upper_bound":191612305.5,"unit":"ns"},"median_abs_dev":{"estimate":2107134.8343909006,"lower_bound":264283.5764080212,"upper_bound":5714578.55784595,"unit":"ns"},"slope":null,"change":null} +{"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000000","MATCH/match_decrypt/eql_cast_firstname/10000000","MATCH/match/eql_cast_lastname/10000000","MATCH/match_decrypt/eql_cast_lastname/10000000","MATCH/match/eql_bloom/10000000","MATCH/match_decrypt/eql_bloom/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/ore_metadata_10000.json b/results/query/ore_metadata_10000.json index b4e19e6..9dce476 100644 --- a/results/query/ore_metadata_10000.json +++ b/results/query/ore_metadata_10000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2819c50c4299d12d4df612b3a4bba292ab1f77331845b6fd7befdad0a400a08b4752f78c7bafeabbcb372fb1c25dca8baa5e60e6e39ff2c7313ab61db90a2d41145ac80cfe9e10a77c8bdc85f2d1900e04df45e9a270aa9e10aaff01bedae2dadfc77a862605a7cd9bddf620bc2e303ac9344b3695fc7132febb9e7dc627554f08f84f122694b6c973bb209a681e82289230386074295037788fe3f388c8fa1794f3c3de7cdb934930f68cac73e12a411f1ff6c71b8c3f91ada9b3ed33d4d445ef521912f1b5abd558380669d50f38c894e2455bdab5836aef6d8028234c01d78421fc38289b8f07b039c1148e6536854f81ed71cdbb400eaa6b45e3ffadfa0fe75be4835fb1e332ed0a603b86e5183499\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2866753ccc8560ed378bd1ea2688055b68219930c9c62efe6a5585561cbd40c8184791898ed8a61b0200c21fdc26fc3eec04c9e43e1f177a29a11417528933534e6181b33321564659f34a5ab47323a8e267a75afe52b8383c705950e4e7cf0ccbe92bf4b85412ce624167d57355339e891bc20473831361267090f2b30d968747a0894c186cb570e9dd6ca1ddfbffa8ab1c80867b250e6e95ab40f226cedc47c708692bea93cbf90e5483e1da65e36c9a6d65b19f54aca925996022d325664ed50f793db1b8f02a2749b9691cac6785708ce6d639493d402f258ffd876403512333bcfd7d3dc7e23b2fe7e8732d90732b3eeeb2b23e94f772777168610d0a87e57587851d361eedee8b0864ceb83d6afb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2819c50c4299d12d4df612b3a4bba292ab1f77331845b6fd7befdad0a400a08b4752f78c7bafeabbcb372fb1c25dca8baa5e60e6e39ff2c7313ab61db90a2d41145ac80cfe9e10a77c8bdc85f2d1900e04df45e9a270aa9e10aaff01bedae2dadfc77a862605a7cd9bddf620bc2e303ac9344b3695fc7132febb9e7dc627554f08f84f122694b6c973bb209a681e82289230386074295037788fe3f388c8fa1794f3c3de7cdb934930f68cac73e12a411f1ff6c71b8c3f91ada9b3ed33d4d445ef521912f1b5abd558380669d50f38c894e2455bdab5836aef6d8028234c01d78421fc38289b8f07b039c1148e6536854f81ed71cdbb400eaa6b45e3ffadfa0fe75be4835fb1e332ed0a603b86e5183499" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2866753ccc8560ed378bd1ea2688055b68219930c9c62efe6a5585561cbd40c8184791898ed8a61b0200c21fdc26fc3eec04c9e43e1f177a29a11417528933534e6181b33321564659f34a5ab47323a8e267a75afe52b8383c705950e4e7cf0ccbe92bf4b85412ce624167d57355339e891bc20473831361267090f2b30d968747a0894c186cb570e9dd6ca1ddfbffa8ab1c80867b250e6e95ab40f226cedc47c708692bea93cbf90e5483e1da65e36c9a6d65b19f54aca925996022d325664ed50f793db1b8f02a2749b9691cac6785708ce6d639493d402f258ffd876403512333bcfd7d3dc7e23b2fe7e8732d90732b3eeeb2b23e94f772777168610d0a87e57587851d361eedee8b0864ceb83d6afb" ], "v": 2 } @@ -59,7 +59,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fb8e13d139959690366f816c90e9d94a2d7d35c0268afd719cc90e532916adaf09273994a979c836cefd500960adac60a6a276bd8321ff5087b696bdc481f38e98a1e9d96df76a7444cdbf13f8c560f2feb9b893fd54d3253271a3dce17ac37ad65b160d56af664cf9e8be1b41828fa18150d231af2830a85fd35ed95368ce5a8ef52684b5f7a731c40d5e958f9c33aba74a821c51b7c70500fe79024b0b22caab180fa558891494a0f5b10857f7d22f1be8a2ca6dbcf0386a63ee37d2f86c14fe7aa961a0fcd7faed34b5fae21c07279e3650ed2989babf6ded0b77dd65de101236d8ceda08606f71465bfcacb4786e295da2707333d209182f67367b0ae655aac543a53defd0d6850c4cffe1e2ee19\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2821366b822d32f8a20f54272076a7dd206f920630769511696e06743f63acecb52068e2172f22db6d0906d81ff152fdbae91ce150d03bd942e8e27e3ea56ac0da6069168fd6e9c2793d20dd8946332e5cc487cec97cc7a1fb74c3596661e673f062b01618bb50be72c855eb3e41a8f4585085639a42942b677d35ebf4b71bcdef75730335885664b617a5347a9a47eb3e0628e7a4bdabc9d64d36e37f6f68a923a6c8904e1ce7fbad38cf1f82796658de1a18f0bcbc31e20d1aaee6d7f93c72e430734d43e46c1c7417de915324bd259cc8f874fe348c87d170317e0adbee823d1ad35278bd8629dfbc81e29ccf4db1d9b2b8936dddb00dbf449c5d011e4e5a52fc18ff4a2c1b5792b1047b06397d0eba\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -84,7 +84,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fb8e13d139959690366f816c90e9d94a2d7d35c0268afd719cc90e532916adaf09273994a979c836cefd500960adac60a6a276bd8321ff5087b696bdc481f38e98a1e9d96df76a7444cdbf13f8c560f2feb9b893fd54d3253271a3dce17ac37ad65b160d56af664cf9e8be1b41828fa18150d231af2830a85fd35ed95368ce5a8ef52684b5f7a731c40d5e958f9c33aba74a821c51b7c70500fe79024b0b22caab180fa558891494a0f5b10857f7d22f1be8a2ca6dbcf0386a63ee37d2f86c14fe7aa961a0fcd7faed34b5fae21c07279e3650ed2989babf6ded0b77dd65de101236d8ceda08606f71465bfcacb4786e295da2707333d209182f67367b0ae655aac543a53defd0d6850c4cffe1e2ee19" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2821366b822d32f8a20f54272076a7dd206f920630769511696e06743f63acecb52068e2172f22db6d0906d81ff152fdbae91ce150d03bd942e8e27e3ea56ac0da6069168fd6e9c2793d20dd8946332e5cc487cec97cc7a1fb74c3596661e673f062b01618bb50be72c855eb3e41a8f4585085639a42942b677d35ebf4b71bcdef75730335885664b617a5347a9a47eb3e0628e7a4bdabc9d64d36e37f6f68a923a6c8904e1ce7fbad38cf1f82796658de1a18f0bcbc31e20d1aaee6d7f93c72e430734d43e46c1c7417de915324bd259cc8f874fe348c87d170317e0adbee823d1ad35278bd8629dfbc81e29ccf4db1d9b2b8936dddb00dbf449c5d011e4e5a52fc18ff4a2c1b5792b1047b06397d0eba" ], "v": 2 } @@ -105,7 +105,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28dc25ed657e836e101c6888f1cfc0339d889d5ac2f88de3e309033dc0cd5d4108d57ee3a00cb8cd3db00da0721dfa530e24986648ed1aef3a34163b86d72d97555549b7bab5dc8f97be26b4653e142d1de29709e8189b44858e304b8f8cca9128d39f9720db73b15791b018bfa2655048ebb09086e5ff6ab46adab0d2eb652538742e8b8f9a85eac0bcc8db7ee167a46e05681a29b73be990ad4a2388cbd7589a0df501ceeb00e3dcc1116ee439e3aa78fb26d3b55db9286f704351e809ff1e98c6076f72dc85b79782c25c69e8f39ddf3965bcff1f9bf16fd2509a628e00f7dd05e5b900595ac2b26dca4ae2149748da06a0db612ee03c0df68e494dbc8469d7353c326553d469f1ea540c1c9696084e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28477c857070b9399a0a5377458eabdd5584b5a120936f7eefdd135c4fd3358580807f9f5cd8b1eb4ea8f1a5d97f94cd874f293c663490fefdda6b83cb4cdab2087820aafbf2774f66662f9f3f9bf1c2d3feefd292f893a689806161035383698949aa9862812ea7695a017989bd192bc0e5f1ac4358eb330546fa628eb8a4e3530b9e0297d912dcc80b12b78dbe027474a7733adc1e63c1e6864293e8fc6910d1604d3d8d5971be79ba17eca9a8829c357dca82081d4e9a1e325a191426b1aae558837da29ae1243503027408c32ebe32a5ef5d796f0d4c54bbbbba3c65e8c01262f28aa78b7cda939737094d84d71a207cdef6ec421d9fe5aed7b761feb965eb47f27574ebfc47c7754045816505cd6f\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -130,7 +130,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28dc25ed657e836e101c6888f1cfc0339d889d5ac2f88de3e309033dc0cd5d4108d57ee3a00cb8cd3db00da0721dfa530e24986648ed1aef3a34163b86d72d97555549b7bab5dc8f97be26b4653e142d1de29709e8189b44858e304b8f8cca9128d39f9720db73b15791b018bfa2655048ebb09086e5ff6ab46adab0d2eb652538742e8b8f9a85eac0bcc8db7ee167a46e05681a29b73be990ad4a2388cbd7589a0df501ceeb00e3dcc1116ee439e3aa78fb26d3b55db9286f704351e809ff1e98c6076f72dc85b79782c25c69e8f39ddf3965bcff1f9bf16fd2509a628e00f7dd05e5b900595ac2b26dca4ae2149748da06a0db612ee03c0df68e494dbc8469d7353c326553d469f1ea540c1c9696084e" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28477c857070b9399a0a5377458eabdd5584b5a120936f7eefdd135c4fd3358580807f9f5cd8b1eb4ea8f1a5d97f94cd874f293c663490fefdda6b83cb4cdab2087820aafbf2774f66662f9f3f9bf1c2d3feefd292f893a689806161035383698949aa9862812ea7695a017989bd192bc0e5f1ac4358eb330546fa628eb8a4e3530b9e0297d912dcc80b12b78dbe027474a7733adc1e63c1e6864293e8fc6910d1604d3d8d5971be79ba17eca9a8829c357dca82081d4e9a1e325a191426b1aae558837da29ae1243503027408c32ebe32a5ef5d796f0d4c54bbbbba3c65e8c01262f28aa78b7cda939737094d84d71a207cdef6ec421d9fe5aed7b761feb965eb47f27574ebfc47c7754045816505cd6f" ], "v": 2 } @@ -151,7 +151,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f981f194d28abbbc74904344d05226dfabc7f334074dc380a5cd47f73c6661e119c0c1546a05ce6b9aace54b98233d01d94cd4dc1d7c450ca5a42be954d8b0844a4ac417d8da3d5ee7a88e7c2ac574a943adaec490aed46af3e18ec407d4603135cded13c60206140d8ecde39906d73d8600a7f4245149f637c496c8ba37a63819748b01caf6af183a3961e20243801c6276505a8a852273156c382e94d724e32cb6fe8d825b7bc997578b47032a778a45a720701c5ddebc8bba20985c67730f8c8d48037b9c2a69d0a0010a4fcc6a9370bf00920b19be7f44f1728b684dde52748b5ace0c5158c5989f98de32caace50369f3dd6c6bb68438711a827b87dd159bef36f4fe60c2fef03b3cf2374fc097\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28171e61eec64bdb92961722f3582b257924b876c33a1473c2f2956c5ae39a589f5ccda06e767c62b711690c3321f66b658f75817ebb94c8e8bba344e071fc6c89aa49b5b2d769c578ae913f547863787f37a20d0f1adcc939e903f0538b5c49089af5b4920e7cfa16cbc9cc70bd16418f7e3f4b6ea530f82b35e645cfa0694296aa97bf61e187e631dd85b17ecd98b9ec350904a994341cb251184047a6634573bbb89dba7db085b95d16dedbea7872786d751cc7908ba2be24c00a5198f77ddeb5d27da50565dce2f232a58aec2489e568b87d6760b8024c3bd81916cc907991ad760d219b9989e24402b8ccbf63f2bf462c64ec5135a4fb4d6d15d6968642f7116a426a0ebc6f2ade4e126b07b84556\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -176,7 +176,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f981f194d28abbbc74904344d05226dfabc7f334074dc380a5cd47f73c6661e119c0c1546a05ce6b9aace54b98233d01d94cd4dc1d7c450ca5a42be954d8b0844a4ac417d8da3d5ee7a88e7c2ac574a943adaec490aed46af3e18ec407d4603135cded13c60206140d8ecde39906d73d8600a7f4245149f637c496c8ba37a63819748b01caf6af183a3961e20243801c6276505a8a852273156c382e94d724e32cb6fe8d825b7bc997578b47032a778a45a720701c5ddebc8bba20985c67730f8c8d48037b9c2a69d0a0010a4fcc6a9370bf00920b19be7f44f1728b684dde52748b5ace0c5158c5989f98de32caace50369f3dd6c6bb68438711a827b87dd159bef36f4fe60c2fef03b3cf2374fc097" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28171e61eec64bdb92961722f3582b257924b876c33a1473c2f2956c5ae39a589f5ccda06e767c62b711690c3321f66b658f75817ebb94c8e8bba344e071fc6c89aa49b5b2d769c578ae913f547863787f37a20d0f1adcc939e903f0538b5c49089af5b4920e7cfa16cbc9cc70bd16418f7e3f4b6ea530f82b35e645cfa0694296aa97bf61e187e631dd85b17ecd98b9ec350904a994341cb251184047a6634573bbb89dba7db085b95d16dedbea7872786d751cc7908ba2be24c00a5198f77ddeb5d27da50565dce2f232a58aec2489e568b87d6760b8024c3bd81916cc907991ad760d219b9989e24402b8ccbf63f2bf462c64ec5135a4fb4d6d15d6968642f7116a426a0ebc6f2ade4e126b07b84556" ], "v": 2 } @@ -197,7 +197,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb282d378d3a6ffa16edf26df8c603ca86bf37cce03d2fb105516c3eb49e85e0c85064972a8bd1c7d1e3baca56806a47b8dadfdb53d447e519ce4f501a5bd6d66f7a611a3213b89b469c9a5bbd4ee22fc2c71a0c1f494e1fcd9c024ae9db5171073423e10e822bda11ab829ad572aa76a47423f9de20a2f7ba6a91a62b792b746c8a5563f88f13ba79e4b3ea74df96d31ec6c359f4cacf0f9be8a3a4619a712e66dc40cda4be397afbae7d22257ddcd5e3dcbd7ed6340c85ca6f4191a7bb3b876289dbffb1dd60c567c1f16c916d568e0018d67cdedc0f360b9f02b9fc744a92e2bf544761ef51b73b56d6c9486189f58907d9d9e07eafebe397c573e2a33321d21c6422b09a2fa6454474b3c5c350a7f51b\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288c7fc4fbe45d08147e2a77a725807a26658454abbe8ef3b42e2c541fef1e5031f7f9acf75f12909d7c4d748eca10cbabac5226f324b1754cd88040d6ffd6b7fafd1db7d8858c64b12aaf659551bec51d7de9d04261fd71846b8b8c1e1df968ac45a432f558676b13bf1928474a82da050f3c7eb204c9eada77399754faf09f6c519787389dcaa5e5b581e683165ac606c80031564ba6d5822bfcb7b3a0023b5d12bf268b532ca01218da92e9f319ce4f6f20b1669c8c9f6eea6d490707aacc38eabc4b9461c094345e6a2bfe27448f6c543b23d5b18409a560d7c0b850bd972d90dbb9e8f98139a502fcb57360df32991df27a483a3387c50d9f7de7a5a993fcd8b83c545a797e335310b415bac5b99a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -226,7 +226,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb282d378d3a6ffa16edf26df8c603ca86bf37cce03d2fb105516c3eb49e85e0c85064972a8bd1c7d1e3baca56806a47b8dadfdb53d447e519ce4f501a5bd6d66f7a611a3213b89b469c9a5bbd4ee22fc2c71a0c1f494e1fcd9c024ae9db5171073423e10e822bda11ab829ad572aa76a47423f9de20a2f7ba6a91a62b792b746c8a5563f88f13ba79e4b3ea74df96d31ec6c359f4cacf0f9be8a3a4619a712e66dc40cda4be397afbae7d22257ddcd5e3dcbd7ed6340c85ca6f4191a7bb3b876289dbffb1dd60c567c1f16c916d568e0018d67cdedc0f360b9f02b9fc744a92e2bf544761ef51b73b56d6c9486189f58907d9d9e07eafebe397c573e2a33321d21c6422b09a2fa6454474b3c5c350a7f51b" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288c7fc4fbe45d08147e2a77a725807a26658454abbe8ef3b42e2c541fef1e5031f7f9acf75f12909d7c4d748eca10cbabac5226f324b1754cd88040d6ffd6b7fafd1db7d8858c64b12aaf659551bec51d7de9d04261fd71846b8b8c1e1df968ac45a432f558676b13bf1928474a82da050f3c7eb204c9eada77399754faf09f6c519787389dcaa5e5b581e683165ac606c80031564ba6d5822bfcb7b3a0023b5d12bf268b532ca01218da92e9f319ce4f6f20b1669c8c9f6eea6d490707aacc38eabc4b9461c094345e6a2bfe27448f6c543b23d5b18409a560d7c0b850bd972d90dbb9e8f98139a502fcb57360df32991df27a483a3387c50d9f7de7a5a993fcd8b83c545a797e335310b415bac5b99a" ], "v": 2 } diff --git a/results/query/ore_metadata_100000.json b/results/query/ore_metadata_100000.json index dc3b381..710f7d6 100644 --- a/results/query/ore_metadata_100000.json +++ b/results/query/ore_metadata_100000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d2772c37b458601f1d6daf94f44d52dbfca8f0aa2dd158e65781e52af2c9413d051fe4e5ecfe10ecf294d0d105aa4ef8976cd44f920c234fac7265303b46933ebcba775b9a4510dfeb3296e50bc1c8c5e4b23cb33894cd42e49e11ef3eff08d416b78692bd12a3f2b726fbe8819e94f0a0afa8a322fc6bace88cf4692ce36a303f768c0fdc35608bf3dc31eb433dac8098f4e0a86908f1d13ec145b33449b46dde262a5e2d6fe4bb07ed851de36a5b378cf1f7de7feb6bb709bc135b70d9d2e00a4d92fb45eb6eddcceae05cacb820a3162a282b5870cddd1612fdc8a2be65fb73b7b2f9c3ea49d022fdb6da5f6ba74adabf3e858e9215f589c210d482084f0f5151515d49c8809e446adb02477ca40e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d00b4211483444a28607a5bb934773618d331665f575ce0476d41ea94f67d2fefc6bc53bcf427e70f19f00f4365a3736993d4ce1aba8c558c26113c7efff5e914754a40615e408043bc791899668848321621f722a1bf621c092351f7f29afdd9940fe1795fc81645d684c86e3c0197cc11130a43d335962754e594ab96647c2354281c0185044dc3ed9db19bd8d352965809ceb90fd23caea82b377b0a1b58351fd3830c67a4597c6ac542b15479972422922e08db7c8f7a0e9b80c83f7c4dbb51e4deabb318b6164ed0e37b360294bffce8b4c39dccec64293ddc5eae77cb130c1a78d2d944f92149d615c9cf0d0b251cfcdf45eded3faab0f118afb3d1e9c7e37cdc4ae44b69ae18fc945ceb4c058\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d2772c37b458601f1d6daf94f44d52dbfca8f0aa2dd158e65781e52af2c9413d051fe4e5ecfe10ecf294d0d105aa4ef8976cd44f920c234fac7265303b46933ebcba775b9a4510dfeb3296e50bc1c8c5e4b23cb33894cd42e49e11ef3eff08d416b78692bd12a3f2b726fbe8819e94f0a0afa8a322fc6bace88cf4692ce36a303f768c0fdc35608bf3dc31eb433dac8098f4e0a86908f1d13ec145b33449b46dde262a5e2d6fe4bb07ed851de36a5b378cf1f7de7feb6bb709bc135b70d9d2e00a4d92fb45eb6eddcceae05cacb820a3162a282b5870cddd1612fdc8a2be65fb73b7b2f9c3ea49d022fdb6da5f6ba74adabf3e858e9215f589c210d482084f0f5151515d49c8809e446adb02477ca40e" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d00b4211483444a28607a5bb934773618d331665f575ce0476d41ea94f67d2fefc6bc53bcf427e70f19f00f4365a3736993d4ce1aba8c558c26113c7efff5e914754a40615e408043bc791899668848321621f722a1bf621c092351f7f29afdd9940fe1795fc81645d684c86e3c0197cc11130a43d335962754e594ab96647c2354281c0185044dc3ed9db19bd8d352965809ceb90fd23caea82b377b0a1b58351fd3830c67a4597c6ac542b15479972422922e08db7c8f7a0e9b80c83f7c4dbb51e4deabb318b6164ed0e37b360294bffce8b4c39dccec64293ddc5eae77cb130c1a78d2d944f92149d615c9cf0d0b251cfcdf45eded3faab0f118afb3d1e9c7e37cdc4ae44b69ae18fc945ceb4c058" ], "v": 2 } @@ -59,7 +59,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28ad10a445fef9a23e4a880a12368dcba49bff7e2be045f6f944c417c80ebbafca029f970f3e76ed1d063eb2fb9579d00a217941efe95683d323c3a5b9ea379e5aa0dd7a9c2d279f765124191eca75978b139261009e413dd4fa6bc9d0ef1eadf24a1b0953c6df7d726444a804149a2132f64ba81a49233bac5a4d4eba31a0b92437ee453f2e7e39ece7abb92ce007a5f040981779a5914103119f5fed74c8309e52df518014845bd92add46e8c1af73478d73f3e9af8af43e3103b6d54b15e7e85f1c6f0cf5374cf46061546f5436a4e8e840b3ffeedf83a88c72b3c9905453cd069083875472391bb03da4531bc06537675486c808c3203b134bf30315d7808b1a79625051e3a4e17e24c995cadae24e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288e58e5089db6ea54ef0825214cd5699afefd9b328e8994790781267949aa9f8d6bb80e181f5357989def2f5a04e2acc6f5f6bd66f305fd869e70be94fb8e9c78b5e5d6dc4dfe882b621518a017866be7130be8ce17434e02d6e374f5b07a17ab4b40bf13c67cd8f041033d2588d5bafe682c1856081656c82b324a7fee52e6c212be290dfb80d97e321e6c25b91a2b9c640d1a26b43990a507016868414281792eeb6e8342170dc74e84015c8e67b69965b694937f58cd2975032b3b76fd21cb3761f94a932388b668e5b1869af04d64e19f83d07c2b01ae32136b28fb7d400ec58c6c39709df47d63509ec3099e58c8e1c1305754d94bf493825a9c15f3c80c0d21e6ccbf1f74ec43cd6a606fd0da97\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -84,7 +84,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28ad10a445fef9a23e4a880a12368dcba49bff7e2be045f6f944c417c80ebbafca029f970f3e76ed1d063eb2fb9579d00a217941efe95683d323c3a5b9ea379e5aa0dd7a9c2d279f765124191eca75978b139261009e413dd4fa6bc9d0ef1eadf24a1b0953c6df7d726444a804149a2132f64ba81a49233bac5a4d4eba31a0b92437ee453f2e7e39ece7abb92ce007a5f040981779a5914103119f5fed74c8309e52df518014845bd92add46e8c1af73478d73f3e9af8af43e3103b6d54b15e7e85f1c6f0cf5374cf46061546f5436a4e8e840b3ffeedf83a88c72b3c9905453cd069083875472391bb03da4531bc06537675486c808c3203b134bf30315d7808b1a79625051e3a4e17e24c995cadae24e" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288e58e5089db6ea54ef0825214cd5699afefd9b328e8994790781267949aa9f8d6bb80e181f5357989def2f5a04e2acc6f5f6bd66f305fd869e70be94fb8e9c78b5e5d6dc4dfe882b621518a017866be7130be8ce17434e02d6e374f5b07a17ab4b40bf13c67cd8f041033d2588d5bafe682c1856081656c82b324a7fee52e6c212be290dfb80d97e321e6c25b91a2b9c640d1a26b43990a507016868414281792eeb6e8342170dc74e84015c8e67b69965b694937f58cd2975032b3b76fd21cb3761f94a932388b668e5b1869af04d64e19f83d07c2b01ae32136b28fb7d400ec58c6c39709df47d63509ec3099e58c8e1c1305754d94bf493825a9c15f3c80c0d21e6ccbf1f74ec43cd6a606fd0da97" ], "v": 2 } @@ -105,7 +105,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28ae292752d5c2f873069f897a83f3282f719a26c92595b0b99a4f75b3d755c29d70e4bccec5db0943865bdcb473bb862a8952617cc732fab8419adc971badf0a133e9627ff0fddcce6a34ea9c7fb2c76cf11736cc7da44bdf33cb75227813b8e6ccbf522fa32a9adafc175e13567f347d1f803d3c182fe928d063dfc0f3665f0983f0712bf551f1d899c7896c80ed0472fd2c9815116e097b70e83f2a055e898281f07beb8ed13daef9c8fd4541302a65b51403a00a80589074a96684bb6beaa57006058b0789fdbe7563e4ad3797f23864a4db43177a3f43b3af5d83ffda16dff988572ddc95bb00c7bd76320c3cf5da429dccb4e764d0577ef6cd8889183d21c6f02760fec1938d5e6ddb5f3cb95f1d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2874d04c959852b019a0e4dd672cdb85ad0e0e01320c7b9f4fd5bbecd68a3bc0712d6644994b6459441cc699c1e4988622419949a1a92a82ed4b0b1391597552d082a123efc22e625b9ac5f380127dbc793c296bde791ccd927ecd79242081e0b5a17d23b6082ab04071d90338a1239a679fbafec5cbf246fce547a201c81cc52c12ea7da34daa7ac8ee7bba3c95e90d907be26557c2fb341f7e4c7f07e8911aa4a412dcffda035d0ea20108f94eeb6fc5c641e5fbeaed7c51091ea67837e6de9215defd292c4e401e5c69c600196c19ba8bdc9f397ab1b6ced97baa0e116720fda5706eaf4a1e6903bbc85354cf8bb6f70dd8c190ef210cbf2513aa29463f1c23194c209133a778d6b3757b70f375087d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -130,7 +130,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28ae292752d5c2f873069f897a83f3282f719a26c92595b0b99a4f75b3d755c29d70e4bccec5db0943865bdcb473bb862a8952617cc732fab8419adc971badf0a133e9627ff0fddcce6a34ea9c7fb2c76cf11736cc7da44bdf33cb75227813b8e6ccbf522fa32a9adafc175e13567f347d1f803d3c182fe928d063dfc0f3665f0983f0712bf551f1d899c7896c80ed0472fd2c9815116e097b70e83f2a055e898281f07beb8ed13daef9c8fd4541302a65b51403a00a80589074a96684bb6beaa57006058b0789fdbe7563e4ad3797f23864a4db43177a3f43b3af5d83ffda16dff988572ddc95bb00c7bd76320c3cf5da429dccb4e764d0577ef6cd8889183d21c6f02760fec1938d5e6ddb5f3cb95f1d" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2874d04c959852b019a0e4dd672cdb85ad0e0e01320c7b9f4fd5bbecd68a3bc0712d6644994b6459441cc699c1e4988622419949a1a92a82ed4b0b1391597552d082a123efc22e625b9ac5f380127dbc793c296bde791ccd927ecd79242081e0b5a17d23b6082ab04071d90338a1239a679fbafec5cbf246fce547a201c81cc52c12ea7da34daa7ac8ee7bba3c95e90d907be26557c2fb341f7e4c7f07e8911aa4a412dcffda035d0ea20108f94eeb6fc5c641e5fbeaed7c51091ea67837e6de9215defd292c4e401e5c69c600196c19ba8bdc9f397ab1b6ced97baa0e116720fda5706eaf4a1e6903bbc85354cf8bb6f70dd8c190ef210cbf2513aa29463f1c23194c209133a778d6b3757b70f375087d" ], "v": 2 } @@ -151,7 +151,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb281e529bf2483d2661064ad052e5591b8f87d8dfef299b76b83552468aa1479d86cb258a6623a48de43dd06aba5cf4bc864a6b5d282ed70d7ec645b180e9ae12e5e810682f1eff154bd630fc027686b49f2cc7131331bbb9e6738c362e7ce1c6d12e6d25fce2cb87323bc07b066a3794e604bbbda808a0b6693dc08c7edbd482bce2e929e6aafe2ceeb93b033dca4ebaa0204703d7d54d60f27d6814925b8704ca7025e2bcb55018d0c262120aacde155db71bf485d65f9b60dc330eb6276df8d6419933ee5f21972690d7b480c2b8f4925fa724a1773a8b664d87ab2f21e9775bdc18628b460e497f69f2897c9d8ec67a9481e3e07fb2e091e814faa7ac86ee242410c762e063ff31f4b65c776f4d44f1\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb281aef769518e698df7c8adcb76b629160bf2f1a9305598b13ef214f364f64d77e1e8713c9b32f165428ffd0e19ba8448578fcbf4362d9381e37c8cad8779ca075701899a783c179aafa474886a729ca2563d6912f4533cc7e2a385037fdfd20124915428710afd87d4c3035ca6b65dd0c3c272f3b9f6993ae0726da4e2ae8756f1032e18b16f5c8108a1d15ffa96b26053303ad99973ce4e07f37551e70fea502ff41296391338bf0ab5a5e085d1a18c16ddaecd8f05eda92b9083b13f4dbf298add3264d717b9f01a7ed6d05dcc3d0f35446128cec3901b34a2e8dd6525a0282b0b95cbd3e222ef75e511e7a7bfa6cb76e6f5cd8a0b5e40679968ef04a83cfdf63bcd077a090b336c8a0416a10ab3ea2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -176,7 +176,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb281e529bf2483d2661064ad052e5591b8f87d8dfef299b76b83552468aa1479d86cb258a6623a48de43dd06aba5cf4bc864a6b5d282ed70d7ec645b180e9ae12e5e810682f1eff154bd630fc027686b49f2cc7131331bbb9e6738c362e7ce1c6d12e6d25fce2cb87323bc07b066a3794e604bbbda808a0b6693dc08c7edbd482bce2e929e6aafe2ceeb93b033dca4ebaa0204703d7d54d60f27d6814925b8704ca7025e2bcb55018d0c262120aacde155db71bf485d65f9b60dc330eb6276df8d6419933ee5f21972690d7b480c2b8f4925fa724a1773a8b664d87ab2f21e9775bdc18628b460e497f69f2897c9d8ec67a9481e3e07fb2e091e814faa7ac86ee242410c762e063ff31f4b65c776f4d44f1" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb281aef769518e698df7c8adcb76b629160bf2f1a9305598b13ef214f364f64d77e1e8713c9b32f165428ffd0e19ba8448578fcbf4362d9381e37c8cad8779ca075701899a783c179aafa474886a729ca2563d6912f4533cc7e2a385037fdfd20124915428710afd87d4c3035ca6b65dd0c3c272f3b9f6993ae0726da4e2ae8756f1032e18b16f5c8108a1d15ffa96b26053303ad99973ce4e07f37551e70fea502ff41296391338bf0ab5a5e085d1a18c16ddaecd8f05eda92b9083b13f4dbf298add3264d717b9f01a7ed6d05dcc3d0f35446128cec3901b34a2e8dd6525a0282b0b95cbd3e222ef75e511e7a7bfa6cb76e6f5cd8a0b5e40679968ef04a83cfdf63bcd077a090b336c8a0416a10ab3ea2" ], "v": 2 } @@ -197,7 +197,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28a5d90ce246f0d4b18a5bc8128ea46f67f00ef0d1d2136d296230cd7742422f17e3ca385742a170dd84e44dfa5068387e97f4b2efdb811beaf4c8293472f262af268eddac92ce19326df6cbb368b4221cfa178c305192aa4248992d2b046fa889cca6579a6ab7d2fd6647de93aee37897390f44d390b1636abb980e3ae5fa4331d149c55d347a4d053587aa6752adfab559d7f3c58c67b5fa8c991b82213551aa70b53c5e32fad95d6a3240f07448affcc0950c7196bade57d5444a3befde9b65ae6a94a17345162731a16c28f34dd34e8d45ab9fa65ae5b06e17c843153abda77be0caf0c35b975fa5b26784752f5f23cf9ab7f36c254cc597779ca8ac74f141616554a00e511b21cacb2edbcce606d5\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28438afc98bf36fef6e83c178b3ab0c64d59caa952da0255aff98a301c6f4ca13dd511de88efd661b0cb48d77b4747886b6e86352a46be56496e130dabf9dec5e7396ff2a0947bb93250b7335dc553e8e8d22d9f7c38ade7f0c319bd0d8f6c1dba8178f0702bf8909f73126afb3ff5de63e219246e172754781fa2957aaff37a1a85a8c890e610943387252cca785941efedd90270dbc44234010b9fd46b80bfe79be2c40441d25756965646f0ca9de7245acdac17fcbf4cec3069516e8251208e0ea4dbffd37eb25b3dbd49bb219f416158db8ae4fdd28ccb34ecf03de2955283cb00095c9699004807b9b4c90fd4f679313aa6fec7afb545b8f32682105be0482079485e7ee47f5308c017c2922346f7\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_100000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -226,7 +226,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28a5d90ce246f0d4b18a5bc8128ea46f67f00ef0d1d2136d296230cd7742422f17e3ca385742a170dd84e44dfa5068387e97f4b2efdb811beaf4c8293472f262af268eddac92ce19326df6cbb368b4221cfa178c305192aa4248992d2b046fa889cca6579a6ab7d2fd6647de93aee37897390f44d390b1636abb980e3ae5fa4331d149c55d347a4d053587aa6752adfab559d7f3c58c67b5fa8c991b82213551aa70b53c5e32fad95d6a3240f07448affcc0950c7196bade57d5444a3befde9b65ae6a94a17345162731a16c28f34dd34e8d45ab9fa65ae5b06e17c843153abda77be0caf0c35b975fa5b26784752f5f23cf9ab7f36c254cc597779ca8ac74f141616554a00e511b21cacb2edbcce606d5" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28438afc98bf36fef6e83c178b3ab0c64d59caa952da0255aff98a301c6f4ca13dd511de88efd661b0cb48d77b4747886b6e86352a46be56496e130dabf9dec5e7396ff2a0947bb93250b7335dc553e8e8d22d9f7c38ade7f0c319bd0d8f6c1dba8178f0702bf8909f73126afb3ff5de63e219246e172754781fa2957aaff37a1a85a8c890e610943387252cca785941efedd90270dbc44234010b9fd46b80bfe79be2c40441d25756965646f0ca9de7245acdac17fcbf4cec3069516e8251208e0ea4dbffd37eb25b3dbd49bb219f416158db8ae4fdd28ccb34ecf03de2955283cb00095c9699004807b9b4c90fd4f679313aa6fec7afb545b8f32682105be0482079485e7ee47f5308c017c2922346f7" ], "v": 2 } diff --git a/results/query/ore_metadata_1000000.json b/results/query/ore_metadata_1000000.json index ae48ae2..e4373c2 100644 --- a/results/query/ore_metadata_1000000.json +++ b/results/query/ore_metadata_1000000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb280295abcc6ed7bfb4b042049a08e4d050e258f31c5b66f4fec3c1e5d6f08d5c9c29ec08c8cae990dffc8117ad2b2df987b80c45711c70c82b909e7226ef470912923d20e2a30a317b2f3f0444a3b5280238e27a82e005b7e105997565946b346cbf65d5527a7bf65aa76356c2b5a5b7ab81637a4d5f9796fb5468d4f8d3007c48b0b23dadcfbc21c172603f096f08eb4e099e18e51e1601e68308e6857445a16f2a40e42e534dfff8cfbd91fddba311a82122a7f8530b5e9ef41342b920ccde25d285036a209c6fc1f3008e0538f263410568de743239e511aa2fe8d6891e6b60df0bdd93a579450b53c28b0246cc9eb2d297f722844608f086ece15763d801aa97cf2b17e23703e8324756b0c64712e2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28cf5cc89b82640ab18c8d144a0505f4aac3a1b44eb0d446b6583aa58e3396788c4356256e7664ceb5d3a6ceea00d70031d209d1bcb718535b1d7b4e4fabc474cafffa8127017c7f8ceff14073f726621131c03fa28458716cf97a8f153236ff3cc98f8af000ee28bd357d3c1e4d1bb4b5e364330ab582e26ad1ed38e6ef4859026497b4a468a01743c448e50f555ac3b6296c5edcded0a88559b5b2a46068f6de824051670a6a4b51272eaecd42744d221efecb0c336f5bfdc9262bd589daa99197c2f363bfdc7ca1a95fea481a01efc47df38764be95198024f64e3423bc025801f7d5c14b80ab9ec17f2f61ce51d12e3b008650fabe4f2f1ce417edcde29971cdc959849f8d6fd2cce59bf3f9153669\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb280295abcc6ed7bfb4b042049a08e4d050e258f31c5b66f4fec3c1e5d6f08d5c9c29ec08c8cae990dffc8117ad2b2df987b80c45711c70c82b909e7226ef470912923d20e2a30a317b2f3f0444a3b5280238e27a82e005b7e105997565946b346cbf65d5527a7bf65aa76356c2b5a5b7ab81637a4d5f9796fb5468d4f8d3007c48b0b23dadcfbc21c172603f096f08eb4e099e18e51e1601e68308e6857445a16f2a40e42e534dfff8cfbd91fddba311a82122a7f8530b5e9ef41342b920ccde25d285036a209c6fc1f3008e0538f263410568de743239e511aa2fe8d6891e6b60df0bdd93a579450b53c28b0246cc9eb2d297f722844608f086ece15763d801aa97cf2b17e23703e8324756b0c64712e2" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28cf5cc89b82640ab18c8d144a0505f4aac3a1b44eb0d446b6583aa58e3396788c4356256e7664ceb5d3a6ceea00d70031d209d1bcb718535b1d7b4e4fabc474cafffa8127017c7f8ceff14073f726621131c03fa28458716cf97a8f153236ff3cc98f8af000ee28bd357d3c1e4d1bb4b5e364330ab582e26ad1ed38e6ef4859026497b4a468a01743c448e50f555ac3b6296c5edcded0a88559b5b2a46068f6de824051670a6a4b51272eaecd42744d221efecb0c336f5bfdc9262bd589daa99197c2f363bfdc7ca1a95fea481a01efc47df38764be95198024f64e3423bc025801f7d5c14b80ab9ec17f2f61ce51d12e3b008650fabe4f2f1ce417edcde29971cdc959849f8d6fd2cce59bf3f9153669" ], "v": 2 } @@ -59,7 +59,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288a9ac626be185faa2367b26656fe64838a314633b3dd531eec7ad3fe177a4153f3d56621286841c42529812f82c71d52a67758710eff97eeded790af45c137f0c8318510a0dcb55ff0f41fc3528c0c8cd36e35c5c133297e5bb95a43f57e8dcb7f89c2cf0271cb9b2584b15bc3f206ca637d4cb29a19fc349e7d7cf52bb8303e3107a6ee372c47d6081c57dd6d65393befbf3e8684583fb416cd902d557cbe154bc483212365b3714564a78e2df7c9556138c80d4ec57dcbfbda59c5c6209b9e479617701e9b94ea9a327662b62f49220144a8db5d905fd936feb01ebaf53ecd13dad6135bc8a3278437dfd139c01c2e10e7c316d9c665a44ad592860d91e45e4c5bc55a0106ed313c0c456958bb7c5a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2829721df213f24f5a49d72133263260e440f42d347acb5234497377af104689569a2abededff4a40e2b84bcae090690f80534ee697d22aeec41c1fe5a80f439e405a7b816553c26bedeb08ca907535d9e2f14a0f48fa9c853a8a532ca1cdbb2a7ad41b10326b596e7a5e4d7f6089a62f4bed7b34f5285e28411fa2897a82d9f70a845a41d9d666f7dc2c3e229caa9737623bf96c498572ebd601a21f97375fe35fc66e25668905f5efcbfee0223ba5d75ae2ec020e5986dfa8cd986651093ed8340d3136d02635e25af2c6d82c3def0e777f74a4a2c4cae73a16d05913de579cde92ed2bc2b2b3c326690a94b467cd311ebd6ca77bc5f0a0e0cb31548c57ba62a4933cbd9cfc4cb815da83dfbd4fe3d26\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -84,7 +84,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288a9ac626be185faa2367b26656fe64838a314633b3dd531eec7ad3fe177a4153f3d56621286841c42529812f82c71d52a67758710eff97eeded790af45c137f0c8318510a0dcb55ff0f41fc3528c0c8cd36e35c5c133297e5bb95a43f57e8dcb7f89c2cf0271cb9b2584b15bc3f206ca637d4cb29a19fc349e7d7cf52bb8303e3107a6ee372c47d6081c57dd6d65393befbf3e8684583fb416cd902d557cbe154bc483212365b3714564a78e2df7c9556138c80d4ec57dcbfbda59c5c6209b9e479617701e9b94ea9a327662b62f49220144a8db5d905fd936feb01ebaf53ecd13dad6135bc8a3278437dfd139c01c2e10e7c316d9c665a44ad592860d91e45e4c5bc55a0106ed313c0c456958bb7c5a" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2829721df213f24f5a49d72133263260e440f42d347acb5234497377af104689569a2abededff4a40e2b84bcae090690f80534ee697d22aeec41c1fe5a80f439e405a7b816553c26bedeb08ca907535d9e2f14a0f48fa9c853a8a532ca1cdbb2a7ad41b10326b596e7a5e4d7f6089a62f4bed7b34f5285e28411fa2897a82d9f70a845a41d9d666f7dc2c3e229caa9737623bf96c498572ebd601a21f97375fe35fc66e25668905f5efcbfee0223ba5d75ae2ec020e5986dfa8cd986651093ed8340d3136d02635e25af2c6d82c3def0e777f74a4a2c4cae73a16d05913de579cde92ed2bc2b2b3c326690a94b467cd311ebd6ca77bc5f0a0e0cb31548c57ba62a4933cbd9cfc4cb815da83dfbd4fe3d26" ], "v": 2 } @@ -105,7 +105,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284faa84dbb26bca202449eb7fe2fb7b58d37da1a0b5ab3f2fc338b9ea562f6e6c8934382e523d5cd32a049940b435aba9accbfb336d4e41deca665246ae2910708345c54e07de2c3e71eebfc6f9697e2227be47643e6734338b7a5a628e4f9e15d1f78be70658001eabdd93a1f0079951108e1b525ea5a5c809c9886819948afe808fe06b81a5bdedd79668f342b5711cb3b25e78b94396441cfa2e756738c58094437bf67789f4d08ac56df2b04f7a895999d60a7c64cf672299b5ae67c8c85b1fa268df539fcdb8c14cd039d80f49b62ca0da87561bcdb2fb100945d80705a522180fd2845388b4e8001d68408b7eed44924d8cc7b053541c27a63a334806e7a5f6175ca229d9481f06297a92a4c67d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288a3d7d6cedb08cef232d94fdd36b136c500834ed262d47d8fd23d66ebd95a2ce1b1e55617da1bf5fcccc4bde63cdb98bd4d8185f26eb435715877626f04204132748b79865f9f4cfac7c6985af2df82c64fcb462a96a93cc4afba7c7b98e84d7a106efd4ca5cabfc6242c71da6c3ca3b2493e6a9f14f9066a4fb23c7c42b76296e4170af6ca8a380147dcbb4bc4f7877f1a4e525e45296cf98bdf539cfd8d2a547aa80c0c412282a2b710db584e2f6902c46baa25887f7f21feeea68591f42c121190c867341028027e40bb155709874082c2abcb9bb5a65914293f3e9fa1102b5dd6168f48098b68e244b3343f21a754478d694f5cc5a47688e803a8bb32d8fed23d80f5bdf0bf66686b83fa7bd09e0\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -130,7 +130,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284faa84dbb26bca202449eb7fe2fb7b58d37da1a0b5ab3f2fc338b9ea562f6e6c8934382e523d5cd32a049940b435aba9accbfb336d4e41deca665246ae2910708345c54e07de2c3e71eebfc6f9697e2227be47643e6734338b7a5a628e4f9e15d1f78be70658001eabdd93a1f0079951108e1b525ea5a5c809c9886819948afe808fe06b81a5bdedd79668f342b5711cb3b25e78b94396441cfa2e756738c58094437bf67789f4d08ac56df2b04f7a895999d60a7c64cf672299b5ae67c8c85b1fa268df539fcdb8c14cd039d80f49b62ca0da87561bcdb2fb100945d80705a522180fd2845388b4e8001d68408b7eed44924d8cc7b053541c27a63a334806e7a5f6175ca229d9481f06297a92a4c67d" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288a3d7d6cedb08cef232d94fdd36b136c500834ed262d47d8fd23d66ebd95a2ce1b1e55617da1bf5fcccc4bde63cdb98bd4d8185f26eb435715877626f04204132748b79865f9f4cfac7c6985af2df82c64fcb462a96a93cc4afba7c7b98e84d7a106efd4ca5cabfc6242c71da6c3ca3b2493e6a9f14f9066a4fb23c7c42b76296e4170af6ca8a380147dcbb4bc4f7877f1a4e525e45296cf98bdf539cfd8d2a547aa80c0c412282a2b710db584e2f6902c46baa25887f7f21feeea68591f42c121190c867341028027e40bb155709874082c2abcb9bb5a65914293f3e9fa1102b5dd6168f48098b68e244b3343f21a754478d694f5cc5a47688e803a8bb32d8fed23d80f5bdf0bf66686b83fa7bd09e0" ], "v": 2 } @@ -151,7 +151,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2819b18b564c51eb6fdbbae80c296500ccb7b5c557caa4938cbabf6e11702abfc7bc4966dc16a3d7ea8e2973bdd7ca5ab0fcba6e5cbaa71f68b74509c05969020202fb1e0f63f4ffea4b78474247c3cdb8743022bdee2e3c346bef97d85906bbfcc74ad1deee62763aed1754e829666288962b14323b95442cb0d3adf5738d964a71094a2357c501965411d28a36efd75d4ee4cff98a5b65af9e0c5d0b7b25be5d6cb2811e2d451fcdd92ccb74c0112b38ffb38e511166467baf2ab566447c2ca3764fd04d581013cbafd9e0a99aefc34e9c9cbc7e4e39294d7af67a8c0eb94d1703afcb7e56567890a4f8c2a3ffd9f956f91214564fa6aab514848ffac69d59f8b76efc327b142530aa32c575e2207a89\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28b4dbe701b41c719741e2eff5a0e2f548fb9de16f5a002836bbfca43c6dbc0f7123afd76d309428860f33374a22d69a08d23f2acd180e0956448b69c5bcfc7d99de9c47441574f9aaeb0c32c64114418fef7466e1b8f195b64ba3ce0e346d999c41d2e60f97a9f9a852c3c37bae9722e0e8b94d1195b9c9e8e9eb64b0bd1ca3a488fbc74e60162dcf39bf0ce5126171af14b7b5c306eb8836527957a0b47809828d43c79d3f1b80328c96bbc4123b5c6368bf7c5437cc1cc867e818d362f0dc4a9d6b9498e3a9a02ce3131b95aab7876356451be74c3a2ffe6f1e73b3367de432ba5357ffe0a935c12fb9cb169a0e7754a02e49f3e7ab6bac88e1442934328a618114e7eeec8717b49c25fff29fcf9e39\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -176,7 +176,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2819b18b564c51eb6fdbbae80c296500ccb7b5c557caa4938cbabf6e11702abfc7bc4966dc16a3d7ea8e2973bdd7ca5ab0fcba6e5cbaa71f68b74509c05969020202fb1e0f63f4ffea4b78474247c3cdb8743022bdee2e3c346bef97d85906bbfcc74ad1deee62763aed1754e829666288962b14323b95442cb0d3adf5738d964a71094a2357c501965411d28a36efd75d4ee4cff98a5b65af9e0c5d0b7b25be5d6cb2811e2d451fcdd92ccb74c0112b38ffb38e511166467baf2ab566447c2ca3764fd04d581013cbafd9e0a99aefc34e9c9cbc7e4e39294d7af67a8c0eb94d1703afcb7e56567890a4f8c2a3ffd9f956f91214564fa6aab514848ffac69d59f8b76efc327b142530aa32c575e2207a89" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28b4dbe701b41c719741e2eff5a0e2f548fb9de16f5a002836bbfca43c6dbc0f7123afd76d309428860f33374a22d69a08d23f2acd180e0956448b69c5bcfc7d99de9c47441574f9aaeb0c32c64114418fef7466e1b8f195b64ba3ce0e346d999c41d2e60f97a9f9a852c3c37bae9722e0e8b94d1195b9c9e8e9eb64b0bd1ca3a488fbc74e60162dcf39bf0ce5126171af14b7b5c306eb8836527957a0b47809828d43c79d3f1b80328c96bbc4123b5c6368bf7c5437cc1cc867e818d362f0dc4a9d6b9498e3a9a02ce3131b95aab7876356451be74c3a2ffe6f1e73b3367de432ba5357ffe0a935c12fb9cb169a0e7754a02e49f3e7ab6bac88e1442934328a618114e7eeec8717b49c25fff29fcf9e39" ], "v": 2 } @@ -197,7 +197,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c1390fc21bdeb773b4bdbad6c671917f426c8c4260c21c269440645784d8331d4b3905bb7e6a758386ebe8cc352fc7eda1cbffdd2bd946cfc897d613c858fe690a04c9f0b16e89ee2f8d79935f5f03a1399d0ff17f9a552184c0a1a55195c2e1c26a9777fdd1391214fd1e30928279ce13cea0ea30d1e64e09ca26621ca5aedd9545c3f68b788ef215ad7bfd6a1f2c10a23b8cc962a5fe79b1480ac2b7ca2131d44483a80a74ca410ddff5fff16554353216ab2699a053c6eca0e228789772c63b9123d86171e645f77c05c1476fff4ba038afaf31fe0a531a8645e393f71814a5f318a04f9b543b455da12727b3a6ee1c2b387c03e0c82db503ceb4649701f1206e1b7b9cea08f648076b0a2287d5b5\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c0f6362f3cad82bc6b39f6288ea86857f68a29b00b9033f3e630aa22afe465dbe174f8994479de4533cc97b3408bc77c3f9cd6bf5eb6fb299405269d6bd30295a0c8b2c7f9a5f548c639d3ca11f04adedcfffd6cf449a76996d818d8e526e6699ec77409c59da6ba6e7befd591c7bdb35971e386cd0eea33b938a77428515e93919de5e3d7bd74ae6f72b238a2687d4a89aee2b572deaf79d66b4a445f438f41190670efed806f2d4785e46707b31f5b026dbb6fac40e3e8f99136780cfb9adc69715ea7979e553fd6b5437391819fbba3c2738297368a031fd8583bbe8eaa9e1796f35d6b45581b935d0ed3e8f156abbfe59c71be9ad181b68014f2fde16723c481ab5827a2184e6cca7387c4fe44cc\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_1000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -226,7 +226,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c1390fc21bdeb773b4bdbad6c671917f426c8c4260c21c269440645784d8331d4b3905bb7e6a758386ebe8cc352fc7eda1cbffdd2bd946cfc897d613c858fe690a04c9f0b16e89ee2f8d79935f5f03a1399d0ff17f9a552184c0a1a55195c2e1c26a9777fdd1391214fd1e30928279ce13cea0ea30d1e64e09ca26621ca5aedd9545c3f68b788ef215ad7bfd6a1f2c10a23b8cc962a5fe79b1480ac2b7ca2131d44483a80a74ca410ddff5fff16554353216ab2699a053c6eca0e228789772c63b9123d86171e645f77c05c1476fff4ba038afaf31fe0a531a8645e393f71814a5f318a04f9b543b455da12727b3a6ee1c2b387c03e0c82db503ceb4649701f1206e1b7b9cea08f648076b0a2287d5b5" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c0f6362f3cad82bc6b39f6288ea86857f68a29b00b9033f3e630aa22afe465dbe174f8994479de4533cc97b3408bc77c3f9cd6bf5eb6fb299405269d6bd30295a0c8b2c7f9a5f548c639d3ca11f04adedcfffd6cf449a76996d818d8e526e6699ec77409c59da6ba6e7befd591c7bdb35971e386cd0eea33b938a77428515e93919de5e3d7bd74ae6f72b238a2687d4a89aee2b572deaf79d66b4a445f438f41190670efed806f2d4785e46707b31f5b026dbb6fac40e3e8f99136780cfb9adc69715ea7979e553fd6b5437391819fbba3c2738297368a031fd8583bbe8eaa9e1796f35d6b45581b935d0ed3e8f156abbfe59c71be9ad181b68014f2fde16723c481ab5827a2184e6cca7387c4fe44cc" ], "v": 2 } diff --git a/results/query/ore_metadata_10000000.json b/results/query/ore_metadata_10000000.json index c38eea6..d6b810a 100644 --- a/results/query/ore_metadata_10000000.json +++ b/results/query/ore_metadata_10000000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289161674bf4e1c28e73caaa834dc21dbd88eb8b876c124726a77adf6b0c73cc161cd4977ed110cc6e14ab232ad0fc14b457b37e195bd963b738310274fdd7951a3ee2e0edcabf1a7b56d1d018dc2dfcb9c87fba6c919f77f945de184e67fe62e42d837fd24eb3878be2df92aaeba606b64b8e4edad95e42015b8746db94222acda1a82e385f3d3ee5345a268b0abd6b6abfac704e703532834c57686c7e4b771049b57ae6d77655b63cfae34baf348f52bec7a45c560959f4a1ec9c2eaaf81e8fb2ac0cdd0721fc17dee72316374e6f71b5a4b23097f09ab3e0cd46281cb4d16d3d9939c7fc9f16e46eb103f607abba433abb20de3607e512b1a347ec7690d83a8946111f411893b66793de0834beb797\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283605730cb2c4133689844265909d50beb6dad11754437265b47924ab44e0642a2e9869a812cf24d33ef2d20ad82e89239bdb64512670f4b016397c3333ac1c7368ff15b878966f9b6b429fbeba128da9aeff54f249f3dab72b129fae5ed7b2bd4a71048349b84920269854c2716da3cae689ffade3f88eb7ebd0abaf86c8bffea342ea06ed4d10a4247e24ca878d1c83da0823a30b644447926256ec415a043f6e1bff8c35f7f1f645a48dcc42934787ff9bf432402e411b5f327f506e39c384b3363bbe596a08e4444985270fba26552f3b54c48fa25c8351946b003534712a9ca12f64891e2d0efaa608a734f372c16481d6d36bd6e75e2ef374d80751c1d8ea715346d1e2beff102c0907bdb03543\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,12 +38,13 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289161674bf4e1c28e73caaa834dc21dbd88eb8b876c124726a77adf6b0c73cc161cd4977ed110cc6e14ab232ad0fc14b457b37e195bd963b738310274fdd7951a3ee2e0edcabf1a7b56d1d018dc2dfcb9c87fba6c919f77f945de184e67fe62e42d837fd24eb3878be2df92aaeba606b64b8e4edad95e42015b8746db94222acda1a82e385f3d3ee5345a268b0abd6b6abfac704e703532834c57686c7e4b771049b57ae6d77655b63cfae34baf348f52bec7a45c560959f4a1ec9c2eaaf81e8fb2ac0cdd0721fc17dee72316374e6f71b5a4b23097f09ab3e0cd46281cb4d16d3d9939c7fc9f16e46eb103f607abba433abb20de3607e512b1a347ec7690d83a8946111f411893b66793de0834beb797" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283605730cb2c4133689844265909d50beb6dad11754437265b47924ab44e0642a2e9869a812cf24d33ef2d20ad82e89239bdb64512670f4b016397c3333ac1c7368ff15b878966f9b6b429fbeba128da9aeff54f249f3dab72b129fae5ed7b2bd4a71048349b84920269854c2716da3cae689ffade3f88eb7ebd0abaf86c8bffea342ea06ed4d10a4247e24ca878d1c83da0823a30b644447926256ec415a043f6e1bff8c35f7f1f645a48dcc42934787ff9bf432402e411b5f327f506e39c384b3363bbe596a08e4444985270fba26552f3b54c48fa25c8351946b003534712a9ca12f64891e2d0efaa608a734f372c16481d6d36bd6e75e2ef374d80751c1d8ea715346d1e2beff102c0907bdb03543" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value > $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value > $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -58,7 +59,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289debaf9f991b0e2e92fa616e2c52a42610746a6585a09e73f2db9ac3e0a60fed2310d939609e95e0d1adf353ad8b1517e6a2443523f2a8e60f83f5ece6864140c35cbd5ca3b737da90480ee7f6e9c9c6541b904ef83ec41efc4d62eabb4bdeb5dd201155113c10fa2bd72065862f4f71d21b668c3feb2c336a0097fe8854f5f955b9bf9e25b3e0f0d9c96d7901544fc46cff5f824ded8b4e3a0968f434c610242319a0d8e12751e8c2a17ea7a3449785baec5ca7d6782661461cde717c082c21553bbae14a5e505e2cb9d1364293b983d21696188e7e0d2312f99bdb431e88c203da9ca221ef9a387aac58ca9e7558e66ca2e9b81dc440e7da657f673ad5d4c8b71005d3bf95eb3900d967fb9712e5d4\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb286048e82b076e777e50b8ff912b52bb690956d258fcd42d7fd52322f44102e5ef9d08e1810c14e6a731f3108c4f6748d7fc9b7dc6a9367dcde70d4265ca498018e1332e4e54c8e499335dddb31b62c6c94e734e1815b897eeb53fd030a0c5300877e2cc07e74a01d132a9259f864ef9d24bb6949306819ff6ba9c97c47d486870a98574b5fe987183a71b12ebd600fad72b061342adea94905f3b3ab6c38e8e68130d00c6e9ea2498afb7bed57486a322a53544aa8bbde8a2d4f9dcbaee22804181b24ac93fe2d549ef7ca366370be32cb97b958b0e86e4d203b1d9619c6e5d6e3168f849283f9a00d022486ac3813834f9cf510bfe2f973573abf6c58522b47a3eb9750b6ad7e852a013da39ff9d31f0\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -83,12 +84,13 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb289debaf9f991b0e2e92fa616e2c52a42610746a6585a09e73f2db9ac3e0a60fed2310d939609e95e0d1adf353ad8b1517e6a2443523f2a8e60f83f5ece6864140c35cbd5ca3b737da90480ee7f6e9c9c6541b904ef83ec41efc4d62eabb4bdeb5dd201155113c10fa2bd72065862f4f71d21b668c3feb2c336a0097fe8854f5f955b9bf9e25b3e0f0d9c96d7901544fc46cff5f824ded8b4e3a0968f434c610242319a0d8e12751e8c2a17ea7a3449785baec5ca7d6782661461cde717c082c21553bbae14a5e505e2cb9d1364293b983d21696188e7e0d2312f99bdb431e88c203da9ca221ef9a387aac58ca9e7558e66ca2e9b81dc440e7da657f673ad5d4c8b71005d3bf95eb3900d967fb9712e5d4" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb286048e82b076e777e50b8ff912b52bb690956d258fcd42d7fd52322f44102e5ef9d08e1810c14e6a731f3108c4f6748d7fc9b7dc6a9367dcde70d4265ca498018e1332e4e54c8e499335dddb31b62c6c94e734e1815b897eeb53fd030a0c5300877e2cc07e74a01d132a9259f864ef9d24bb6949306819ff6ba9c97c47d486870a98574b5fe987183a71b12ebd600fad72b061342adea94905f3b3ab6c38e8e68130d00c6e9ea2498afb7bed57486a322a53544aa8bbde8a2d4f9dcbaee22804181b24ac93fe2d549ef7ca366370be32cb97b958b0e86e4d203b1d9619c6e5d6e3168f849283f9a00d022486ac3813834f9cf510bfe2f973573abf6c58522b47a3eb9750b6ad7e852a013da39ff9d31f0" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value > $1 LIMIT 100" + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value > $1 LIMIT 100", + "rows_returned": 100 }, { "explain": [ @@ -103,7 +105,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c4e2c6c7ebf0c5e05185e7581d967b4bcdbd02eaf3a12fc72f09e3dab676ea6eebc5f7e655db087f86ae65b1940581f49da1fc737f2e609a25b9c70c4261cc4477c25c190298e65062ce719dd458ef23f3a97b7e12ae4de8c8f7afc93108c795dbf73bac1ad0a682ca54b8bdb4002c827f19698e0d4f1d91804686248fd515621e7ad1410cde2cdd6878e72f15ce55c231a8d15486edd061651f9a16ae430e3c7ef7dab1b9b3e72018661ddd748a0b787395da7ff4e39d0a508b8bedb3c30476f0f5b5eec0cc6f58bf600084d9b97c93cee15191505fe87c3daca9cd42d68e286c99140b1ff5af98e095a83b65e304e6295f6e5db8bb41841a2732770167e87521f960a9784a2513f1b1a7bbbaf406eb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284d810cde25a7670e7b685dfdcdb9af84f015e9883a86e5b642398c22f72ba8908a2dcd921f29c2c9ee3d84e6d984b9c6395af88f7141a21a4633abeedd0eac9b09f72a339f32954bf8e968e0e9b3bb41392bc5733876fd8e6d8547eccace2176dd61f86b442c26fca3da52c1032f70874ee3d2118a950f256aeaf423ec7fd0c6df45f51cad5537aa4c3ea67840644a4b743d3e0a038087377c5da739145d1867361e71f4688ce7126c8358c914d1ea0156262887c55d6173bec6d6f4c0f1e1a3392712284df4757492ed1b7e53a025ebe271c1e5be28aeb053d8ac86378e1813adc29fdba6531c7323703d3af8e649cdd8facb00bd36a66778200e680bc7b4e07e9902a7d9c97c0cb1b06a9c87302cf7\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -128,12 +130,13 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c4e2c6c7ebf0c5e05185e7581d967b4bcdbd02eaf3a12fc72f09e3dab676ea6eebc5f7e655db087f86ae65b1940581f49da1fc737f2e609a25b9c70c4261cc4477c25c190298e65062ce719dd458ef23f3a97b7e12ae4de8c8f7afc93108c795dbf73bac1ad0a682ca54b8bdb4002c827f19698e0d4f1d91804686248fd515621e7ad1410cde2cdd6878e72f15ce55c231a8d15486edd061651f9a16ae430e3c7ef7dab1b9b3e72018661ddd748a0b787395da7ff4e39d0a508b8bedb3c30476f0f5b5eec0cc6f58bf600084d9b97c93cee15191505fe87c3daca9cd42d68e286c99140b1ff5af98e095a83b65e304e6295f6e5db8bb41841a2732770167e87521f960a9784a2513f1b1a7bbbaf406eb" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284d810cde25a7670e7b685dfdcdb9af84f015e9883a86e5b642398c22f72ba8908a2dcd921f29c2c9ee3d84e6d984b9c6395af88f7141a21a4633abeedd0eac9b09f72a339f32954bf8e968e0e9b3bb41392bc5733876fd8e6d8547eccace2176dd61f86b442c26fca3da52c1032f70874ee3d2118a950f256aeaf423ec7fd0c6df45f51cad5537aa4c3ea67840644a4b743d3e0a038087377c5da739145d1867361e71f4688ce7126c8358c914d1ea0156262887c55d6173bec6d6f4c0f1e1a3392712284df4757492ed1b7e53a025ebe271c1e5be28aeb053d8ac86378e1813adc29fdba6531c7323703d3af8e649cdd8facb00bd36a66778200e680bc7b4e07e9902a7d9c97c0cb1b06a9c87302cf7" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value < $1 LIMIT 10" + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value < $1 LIMIT 10", + "rows_returned": 10 }, { "explain": [ @@ -148,7 +151,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f9533cf70d88611efd8c5f50fe07ebfb32020fe350dab197f35b352d1e8fa063389358d26faddd169633742b39e4aef4124083587abe2a5910f2bdef1c71b11c88b64ffdfe6a87a34e234fbe6509c584869cf7794efa5a71aa2ac55165c7440d5c2290afb506b90727982a6a3b0e5a1492f52bf36718e62fc4f2ab000e229584c13eb8f663f8bb2eb5d0b916204ceb8e6d2b11af6e1b54a38bbe67ed2c1e78abff6b334039af0758ae689596dcfb4db1a9d0fe2bd11eeed3eabc8ea2e83024c322657d1aea63798549269ad6d595f8479bed39c12903d95503b175fd7cd1c7a66e8d0d16d4c224621dd533ac32aaf96d359d303ee973d563e45212ca9acc6256bf01b1d50d89dc5185605245600fd8f9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f82ab8190bc3260864a052a8d00cd0ae8c3296e163f811a932c7482430a36e9035b0663d7fe5d440ace8afb73becb2e536afcf2689ff61b53f05655d06239186d9fa37a7da2308b8e12ab9ba94d77db95038889670c9fddd9b68cd490ea7f96f3bbb716fb650c078a6ff2e9e3660e94712edce5c4c70210536142462a9812ca22b78c4380c56b3aaefb73ab0999b2a18cfee2e26f67efe93ef9aab52822e3a3291d8263cd72dc1745fb1a9f0695241887dc1cd4477eec3a2eaa6eec0aad5ca91157a20d1e5c71d32bd11d05192bd5beeb175c0dbf2ae391950a3730a5f347004a04d90662e9e5f60b187809af9bf6bc9edb9fa0f6ccc6f1c7b275e377fc28283c940d7873a67dd1c0b5a33dd4a546028\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -173,12 +176,13 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f9533cf70d88611efd8c5f50fe07ebfb32020fe350dab197f35b352d1e8fa063389358d26faddd169633742b39e4aef4124083587abe2a5910f2bdef1c71b11c88b64ffdfe6a87a34e234fbe6509c584869cf7794efa5a71aa2ac55165c7440d5c2290afb506b90727982a6a3b0e5a1492f52bf36718e62fc4f2ab000e229584c13eb8f663f8bb2eb5d0b916204ceb8e6d2b11af6e1b54a38bbe67ed2c1e78abff6b334039af0758ae689596dcfb4db1a9d0fe2bd11eeed3eabc8ea2e83024c322657d1aea63798549269ad6d595f8479bed39c12903d95503b175fd7cd1c7a66e8d0d16d4c224621dd533ac32aaf96d359d303ee973d563e45212ca9acc6256bf01b1d50d89dc5185605245600fd8f9" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f82ab8190bc3260864a052a8d00cd0ae8c3296e163f811a932c7482430a36e9035b0663d7fe5d440ace8afb73becb2e536afcf2689ff61b53f05655d06239186d9fa37a7da2308b8e12ab9ba94d77db95038889670c9fddd9b68cd490ea7f96f3bbb716fb650c078a6ff2e9e3660e94712edce5c4c70210536142462a9812ca22b78c4380c56b3aaefb73ab0999b2a18cfee2e26f67efe93ef9aab52822e3a3291d8263cd72dc1745fb1a9f0695241887dc1cd4477eec3a2eaa6eec0aad5ca91157a20d1e5c71d32bd11d05192bd5beeb175c0dbf2ae391950a3730a5f347004a04d90662e9e5f60b187809af9bf6bc9edb9fa0f6ccc6f1c7b275e377fc28283c940d7873a67dd1c0b5a33dd4a546028" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value < $1 LIMIT 100" + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value < $1 LIMIT 100", + "rows_returned": 100 }, { "explain": [ @@ -193,7 +197,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e3d7300dc58ea91cf8a4191c154e03703ce05ee3e6171c7d090590845a66319db717e79d096859d7eb0554abffed13033c449740d9cddb18a67b1a6ea2f46859c04deadf6d2b57b5b20239b27be563f0994611654f3fc8e850e52b0e8249efde498f12475f55cb3401f72468f7086b8e4f9ff1be938447ffd322cfbf0105f1adaeca9a843bd877c16de3239270d1bc8f6ce925d98d41227264b1170ae964929af7c99de50a3245c056655ab2a0a7150da5f5b7be71890aef53fc9b4ce802a90298cda3b926902955d63f35cf6aeb5cae873f29baaa351235171e0a323e09baec00c4ae491d91db9f42a8ba4eca64e3d3ba7287fb6ec56fe4d98e4549004447e3786aa6f201ed6b0e63123e5c54206cea\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb280fb6813c30e165c1b663cd926c07aac3ab1f56ef8768d7d7af43fd86b9d03c01f144844e102ef05c7caea1fc7dacca5069f230db61e989ec75af089851257f810a776030960c6cbe933cc2b06152132f5a01991ffdf372d25aefff82b7e43dc845f08971a5b48a2b5dd8808fab3e78fdaf19b36d4c276cfd1bbb95889d9b3e46aa1cc50ac1d6a86f626b298be0660058dc76cb8ff2d8449009c97e11108818d304effa5bab02ddd43b60afaff8e54322b5f9eca31412ad8fe0bab8a84887c26b2f48df0d85b99a978eb4c6b9db879933011f75b53124ace001788b21a6946ccc24040f68ba6292950806d7f340b1b1d5be6afd14e6f293c36448f48c4a64cd3b7dbf080b57a983e3bbc64b60ee291072\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -222,12 +226,13 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28e3d7300dc58ea91cf8a4191c154e03703ce05ee3e6171c7d090590845a66319db717e79d096859d7eb0554abffed13033c449740d9cddb18a67b1a6ea2f46859c04deadf6d2b57b5b20239b27be563f0994611654f3fc8e850e52b0e8249efde498f12475f55cb3401f72468f7086b8e4f9ff1be938447ffd322cfbf0105f1adaeca9a843bd877c16de3239270d1bc8f6ce925d98d41227264b1170ae964929af7c99de50a3245c056655ab2a0a7150da5f5b7be71890aef53fc9b4ce802a90298cda3b926902955d63f35cf6aeb5cae873f29baaa351235171e0a323e09baec00c4ae491d91db9f42a8ba4eca64e3d3ba7287fb6ec56fe4d98e4549004447e3786aa6f201ed6b0e63123e5c54206cea" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb280fb6813c30e165c1b663cd926c07aac3ab1f56ef8768d7d7af43fd86b9d03c01f144844e102ef05c7caea1fc7dacca5069f230db61e989ec75af089851257f810a776030960c6cbe933cc2b06152132f5a01991ffdf372d25aefff82b7e43dc845f08971a5b48a2b5dd8808fab3e78fdaf19b36d4c276cfd1bbb95889d9b3e46aa1cc50ac1d6a86f626b298be0660058dc76cb8ff2d8449009c97e11108818d304effa5bab02ddd43b60afaff8e54322b5f9eca31412ad8fe0bab8a84887c26b2f48df0d85b99a978eb4c6b9db879933011f75b53124ace001788b21a6946ccc24040f68ba6292950806d7f340b1b1d5be6afd14e6f293c36448f48c4a64cd3b7dbf080b57a983e3bbc64b60ee291072" ], "v": 2 } ], - "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10" + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10", + "rows_returned": 10 } ], "target_rows": "10000000" diff --git a/results/query/ore_rows_10000.json b/results/query/ore_rows_10000.json index 0c0b153..1e2f91d 100644 --- a/results/query/ore_rows_10000.json +++ b/results/query/ore_rows_10000.json @@ -1,11 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[92967542.0,232611959.0,279119417.0,380683667.0,458095333.0,568803250.0,676040417.0,762019250.0,833756334.0,934745292.0],"unit":"ns","throughput":[],"typical":{"estimate":1520790.8416003352,"lower_bound":1504184.4866910747,"upper_bound":1546067.8278264955,"unit":"ns"},"mean":{"estimate":1551367.0689170507,"lower_bound":1504286.7465174731,"upper_bound":1628827.3114976957,"unit":"ns"},"median":{"estimate":1518347.3456989247,"lower_bound":1499476.4838709678,"upper_bound":1543368.9039938557,"unit":"ns"},"median_abs_dev":{"estimate":27318.86836217054,"lower_bound":4785.127284401814,"upper_bound":59281.710072055364,"unit":"ns"},"slope":{"estimate":1520790.8416003352,"lower_bound":1504184.4866910747,"upper_bound":1546067.8278264955,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[100695625.0,220332125.0,346749625.0,468111583.0,543471250.0,700056833.0,774685125.0,884695000.0,1004439166.0,1136853458.0],"unit":"ns","throughput":[],"typical":{"estimate":28104282.6487013,"lower_bound":27731760.307591625,"upper_bound":28514810.51916455,"unit":"ns"},"mean":{"estimate":27884726.414146822,"lower_bound":27128587.886071425,"upper_bound":28528136.628988095,"unit":"ns"},"median":{"estimate":27784206.91865079,"lower_bound":27410140.625,"upper_bound":28895802.083333332,"unit":"ns"},"median_abs_dev":{"estimate":924974.8127134138,"lower_bound":108539.22463554199,"upper_bound":1945047.188191426,"unit":"ns"},"slope":{"estimate":28104282.6487013,"lower_bound":27731760.307591625,"upper_bound":28514810.51916455,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[100761000.0,186552208.0,311553250.0,467783333.0,529270291.0,576888250.0,634099084.0,756615125.0,847139833.0,924819917.0],"unit":"ns","throughput":[],"typical":{"estimate":6818443.730612244,"lower_bound":6655833.465176194,"upper_bound":7167391.125842196,"unit":"ns"},"mean":{"estimate":7061480.2451048745,"lower_bound":6755746.354807256,"upper_bound":7428369.864880952,"unit":"ns"},"median":{"estimate":6811604.724702381,"lower_bound":6662578.857142857,"upper_bound":7417934.523809524,"unit":"ns"},"median_abs_dev":{"estimate":405457.0545875908,"lower_bound":84096.4910769893,"upper_bound":953282.3175775224,"unit":"ns"},"slope":{"estimate":6818443.730612244,"lower_bound":6655833.465176194,"upper_bound":7167391.125842196,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[90592708.0,182162208.0,254569542.0,325809542.0,402180083.0,548305250.0,719429959.0,709621167.0,835311667.0,870295334.0],"unit":"ns","throughput":[],"typical":{"estimate":45138095.097402595,"lower_bound":43133627.11932911,"upper_bound":47418931.37423313,"unit":"ns"},"mean":{"estimate":44556161.579067454,"lower_bound":42779549.21149306,"upper_bound":46536172.62933085,"unit":"ns"},"median":{"estimate":44823838.46875,"lower_bound":42120479.725,"upper_bound":45973377.86111111,"unit":"ns"},"median_abs_dev":{"estimate":2143422.226519981,"lower_bound":362047.94837236404,"upper_bound":5672007.429301735,"unit":"ns"},"slope":{"estimate":45138095.097402595,"lower_bound":43133627.11932911,"upper_bound":47418931.37423313,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[64,128,192,256,320,384,448,512,576,640],"measured_values":[93778375.0,186143625.0,297128042.0,392062750.0,412378792.0,585392333.0,656628417.0,733184542.0,841602000.0,965056500.0],"unit":"ns","throughput":[],"typical":{"estimate":1468620.4125,"lower_bound":1424717.0398004896,"upper_bound":1501122.3875709374,"unit":"ns"},"mean":{"estimate":1467841.8961793156,"lower_bound":1419891.0269433595,"upper_bound":1505784.5701646204,"unit":"ns"},"median":{"estimate":1465487.7700892857,"lower_bound":1446557.8209635415,"upper_bound":1524459.2005208333,"unit":"ns"},"median_abs_dev":{"estimate":56264.46340618422,"lower_bound":3688.092639210726,"upper_bound":101128.24651945842,"unit":"ns"},"slope":{"estimate":1468620.4125,"lower_bound":1424717.0398004896,"upper_bound":1501122.3875709374,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[106076458.0,227742875.0,310567750.0,465177541.0,573429000.0,698845791.0,811247000.0,998615750.0,1048945750.0,1133949459.0],"unit":"ns","throughput":[],"typical":{"estimate":29131075.784415584,"lower_bound":28439303.05608947,"upper_bound":30025751.5843579,"unit":"ns"},"mean":{"estimate":28539720.83956349,"lower_bound":27658174.581229165,"upper_bound":29378452.83393849,"unit":"ns"},"median":{"estimate":28822278.57142857,"lower_bound":27493486.9375,"upper_bound":29118574.625,"unit":"ns"},"median_abs_dev":{"estimate":496317.07191777695,"lower_bound":61226.153777601205,"upper_bound":2800903.2961790273,"unit":"ns"},"slope":{"estimate":29131075.784415584,"lower_bound":28439303.05608947,"upper_bound":30025751.5843579,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[91104542.0,182803625.0,304837917.0,371573875.0,463479917.0,566677583.0,677218750.0,758668833.0,847064375.0,945724417.0],"unit":"ns","throughput":[],"typical":{"estimate":6765434.43135436,"lower_bound":6714041.862426982,"upper_bound":6832038.895215633,"unit":"ns"},"mean":{"estimate":6745889.677939342,"lower_bound":6632483.011406249,"upper_bound":6885528.288316326,"unit":"ns"},"median":{"estimate":6734447.418650794,"lower_bound":6581974.330357143,"upper_bound":6832784.907653062,"unit":"ns"},"median_abs_dev":{"estimate":157530.24875244606,"lower_bound":20509.668079630275,"upper_bound":298690.6118686104,"unit":"ns"},"slope":{"estimate":6765434.43135436,"lower_bound":6714041.862426982,"upper_bound":6832038.895215633,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[138704750.0,279861834.0,364703584.0,520762583.0,692023458.0,821342500.0,981542042.0,1084145333.0,1268710625.0,1343345167.0],"unit":"ns","throughput":[],"typical":{"estimate":45592697.87445887,"lower_bound":44731314.72131147,"upper_bound":46417040.26978945,"unit":"ns"},"mean":{"estimate":45224336.82038359,"lower_bound":43921201.51800694,"upper_bound":46225226.35634755,"unit":"ns"},"median":{"estimate":45882518.04444444,"lower_bound":44284802.0625,"upper_bound":46643639.0,"unit":"ns"},"median_abs_dev":{"estimate":1199942.399303435,"lower_bound":327729.9439927443,"upper_bound":2632860.769682385,"unit":"ns"},"slope":{"estimate":45592697.87445887,"lower_bound":44731314.72131147,"upper_bound":46417040.26978945,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[71,142,213,284,355,426,497,568,639,710],"measured_values":[89062959.0,179063500.0,304477542.0,345292917.0,459789417.0,526114083.0,649214417.0,711251042.0,824789083.0,908369041.0],"unit":"ns","throughput":[],"typical":{"estimate":1278168.1817450156,"lower_bound":1258557.314201878,"upper_bound":1297230.01486435,"unit":"ns"},"mean":{"estimate":1281951.3361390566,"lower_bound":1252462.6587245697,"upper_bound":1320899.9410580145,"unit":"ns"},"median":{"estimate":1270201.7894366197,"lower_bound":1244708.7288732394,"upper_bound":1298508.0856248601,"unit":"ns"},"median_abs_dev":{"estimate":33749.621229791606,"lower_bound":6570.46452147299,"upper_bound":68668.20598258587,"unit":"ns"},"slope":{"estimate":1278168.1817450156,"lower_bound":1258557.314201878,"upper_bound":1297230.01486435,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[111058375.0,208978125.0,307114125.0,452533709.0,552480292.0,716737416.0,756444917.0,956414125.0,1103875916.0,1156518250.0],"unit":"ns","throughput":[],"typical":{"estimate":29071305.814935066,"lower_bound":27891049.63821138,"upper_bound":29905083.79961267,"unit":"ns"},"mean":{"estimate":28173114.097549606,"lower_bound":27181856.738340773,"upper_bound":29144438.54827381,"unit":"ns"},"median":{"estimate":28023975.28125,"lower_bound":26873140.1125,"upper_bound":29864059.0,"unit":"ns"},"median_abs_dev":{"estimate":2111347.7216410856,"lower_bound":488770.37344884017,"upper_bound":2832319.395030028,"unit":"ns"},"slope":{"estimate":29071305.814935066,"lower_bound":27891049.63821138,"upper_bound":29905083.79961267,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[66,132,198,264,330,396,462,528,594,660],"measured_values":[89986167.0,184531500.0,278107541.0,406587500.0,433091459.0,503862500.0,655471916.0,703695375.0,808882916.0,904163000.0],"unit":"ns","throughput":[],"typical":{"estimate":1363549.6552931916,"lower_bound":1331328.6477072265,"upper_bound":1398940.371443246,"unit":"ns"},"mean":{"estimate":1377408.5263233525,"lower_bound":1337848.4323695288,"upper_bound":1421893.3213756613,"unit":"ns"},"median":{"estimate":1366685.356060606,"lower_bound":1332756.3920454546,"upper_bound":1408368.1450216451,"unit":"ns"},"median_abs_dev":{"estimate":53245.464132923684,"lower_bound":6069.904065975307,"upper_bound":108519.15003400615,"unit":"ns"},"slope":{"estimate":1363549.6552931916,"lower_bound":1331328.6477072265,"upper_bound":1398940.371443246,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[82116833.0,166431625.0,244969667.0,330177666.0,434403833.0,491737417.0,605206291.0,662134250.0,761381875.0,845289292.0],"unit":"ns","throughput":[],"typical":{"estimate":28079559.52121212,"lower_bound":27700394.24621212,"upper_bound":28409054.332621444,"unit":"ns"},"mean":{"estimate":27890745.2855291,"lower_bound":27544879.08593452,"upper_bound":28275743.025687825,"unit":"ns"},"median":{"estimate":27663765.625,"lower_bound":27372277.666666668,"upper_bound":28497828.461904764,"unit":"ns"},"median_abs_dev":{"estimate":585578.0432122461,"lower_bound":110955.61990514582,"upper_bound":1040758.7073072859,"unit":"ns"},"slope":{"estimate":28079559.52121212,"lower_bound":27700394.24621212,"upper_bound":28409054.332621444,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[87713250.0,179658458.0,255165291.0,363674542.0,448083583.0,583471625.0,655880666.0,719085500.0,811592500.0,902697083.0],"unit":"ns","throughput":[],"typical":{"estimate":6509021.125046382,"lower_bound":6416011.053000652,"upper_bound":6653139.966972312,"unit":"ns"},"mean":{"estimate":6460055.551269841,"lower_bound":6330176.3178571435,"upper_bound":6601877.024269842,"unit":"ns"},"median":{"estimate":6430808.283730159,"lower_bound":6340802.821428571,"upper_bound":6570248.082142858,"unit":"ns"},"median_abs_dev":{"estimate":68936.60453113045,"lower_bound":14242.00890215362,"upper_bound":383309.28978489974,"unit":"ns"},"slope":{"estimate":6509021.125046382,"lower_bound":6416011.053000652,"upper_bound":6653139.966972312,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[85069792.0,189511709.0,292855875.0,371683500.0,448769375.0,536252000.0,653552750.0,657844209.0,846958375.0,893712042.0],"unit":"ns","throughput":[],"typical":{"estimate":45049509.64545455,"lower_bound":43315705.56129545,"upper_bound":46621485.53347452,"unit":"ns"},"mean":{"estimate":45428362.49204365,"lower_bound":44008436.43878422,"upper_bound":46740647.966666676,"unit":"ns"},"median":{"estimate":45668687.5,"lower_bound":43611281.33333333,"upper_bound":47053243.05555555,"unit":"ns"},"median_abs_dev":{"estimate":1777791.0705212285,"lower_bound":143367.3927447104,"upper_bound":3707967.3375204206,"unit":"ns"},"slope":{"estimate":45049509.64545455,"lower_bound":43315705.56129545,"upper_bound":46621485.53347452,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[69,138,207,276,345,414,483,552,621,690],"measured_values":[111060667.0,219063125.0,253911834.0,376429125.0,419910667.0,554791625.0,603153916.0,710743416.0,807448792.0,904246625.0],"unit":"ns","throughput":[],"typical":{"estimate":1297288.617428948,"lower_bound":1272505.6931909956,"upper_bound":1320720.3629973563,"unit":"ns"},"mean":{"estimate":1349178.4928559929,"lower_bound":1274907.4537715665,"upper_bound":1437916.3804865424,"unit":"ns"},"median":{"estimate":1305370.977858293,"lower_bound":1248765.8716356107,"upper_bound":1463745.1690821256,"unit":"ns"},"median_abs_dev":{"estimate":85329.38814053542,"lower_bound":16993.340657003588,"upper_bound":198566.22868235348,"unit":"ns"},"slope":{"estimate":1297288.617428948,"lower_bound":1272505.6931909956,"upper_bound":1320720.3629973563,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118525833.0,237258208.0,365405167.0,458519583.0,550826541.0,675747167.0,819479625.0,906122292.0,1027776333.0,1075276500.0],"unit":"ns","throughput":[],"typical":{"estimate":28129895.777272727,"lower_bound":27454057.25,"upper_bound":28851483.846214976,"unit":"ns"},"mean":{"estimate":28710880.395178568,"lower_bound":28071885.58202381,"upper_bound":29330441.03869047,"unit":"ns"},"median":{"estimate":28603408.260416664,"lower_bound":27928824.3375,"upper_bound":29631458.25,"unit":"ns"},"median_abs_dev":{"estimate":1254109.96344135,"lower_bound":252896.20476644486,"upper_bound":1815360.4877334125,"unit":"ns"},"slope":{"estimate":28129895.777272727,"lower_bound":27454057.25,"upper_bound":28851483.846214976,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[96908500.0,183884750.0,273809125.0,364372917.0,454877541.0,555101208.0,641729542.0,757102625.0,881679375.0,891596917.0],"unit":"ns","throughput":[],"typical":{"estimate":6632393.939703154,"lower_bound":6445190.292926943,"upper_bound":6833055.548707483,"unit":"ns"},"mean":{"estimate":6629598.089039115,"lower_bound":6520188.978860545,"upper_bound":6753785.850499787,"unit":"ns"},"median":{"estimate":6557786.566326531,"lower_bound":6506659.232142857,"upper_bound":6765191.714285715,"unit":"ns"},"median_abs_dev":{"estimate":82034.71380180727,"lower_bound":18689.13459320081,"upper_bound":318864.8943390166,"unit":"ns"},"slope":{"estimate":6632393.939703154,"lower_bound":6445190.292926943,"upper_bound":6833055.548707483,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[83711708.0,186946750.0,238253250.0,333856875.0,499022292.0,579974666.0,671914292.0,755717166.0,786691000.0,904039875.0],"unit":"ns","throughput":[],"typical":{"estimate":45912346.8,"lower_bound":44480247.16841796,"upper_bound":47587818.02422145,"unit":"ns"},"mean":{"estimate":45240022.74222223,"lower_bound":43222386.5125,"upper_bound":47149731.78166666,"unit":"ns"},"median":{"estimate":45969340.625,"lower_bound":41855854.0,"upper_bound":47993878.0,"unit":"ns"},"median_abs_dev":{"estimate":3429377.2479330506,"lower_bound":814614.0304502081,"upper_bound":5577131.810723618,"unit":"ns"},"slope":{"estimate":45912346.8,"lower_bound":44480247.16841796,"upper_bound":47587818.02422145,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[81,162,243,324,405,486,567,648,729,810],"measured_values":[101927625.0,183648000.0,285075875.0,371978791.0,466711458.0,550812167.0,659200958.0,734835417.0,858927375.0,967386875.0],"unit":"ns","throughput":[],"typical":{"estimate":1165563.6322911656,"lower_bound":1142452.0461297275,"upper_bound":1182137.6070799173,"unit":"ns"},"mean":{"estimate":1166811.0974118165,"lower_bound":1147291.1165623162,"upper_bound":1191380.6883744856,"unit":"ns"},"median":{"estimate":1157492.9446208114,"lower_bound":1134005.273148148,"upper_bound":1183728.2664609053,"unit":"ns"},"median_abs_dev":{"estimate":32781.45571106847,"lower_bound":680.6365565892373,"upper_bound":53429.17962051653,"unit":"ns"},"slope":{"estimate":1165563.6322911656,"lower_bound":1142452.0461297275,"upper_bound":1182137.6070799173,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[130301375.0,224012959.0,354908583.0,431677833.0,555878041.0,659654084.0,768413875.0,911323709.0,1019158208.0,1093301042.0],"unit":"ns","throughput":[],"typical":{"estimate":27845454.65714286,"lower_bound":27450690.399918042,"upper_bound":28277742.617586352,"unit":"ns"},"mean":{"estimate":28397672.7177877,"lower_bound":27605788.168923117,"upper_bound":29479736.147133183,"unit":"ns"},"median":{"estimate":27897760.9625,"lower_bound":27409056.441666666,"upper_bound":28942832.736111112,"unit":"ns"},"median_abs_dev":{"estimate":755861.4880932729,"lower_bound":144772.13503977802,"upper_bound":1751406.0025198683,"unit":"ns"},"slope":{"estimate":27845454.65714286,"lower_bound":27450690.399918042,"upper_bound":28277742.617586352,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_100000.json b/results/query/ore_rows_100000.json index 044489f..5df0c54 100644 --- a/results/query/ore_rows_100000.json +++ b/results/query/ore_rows_100000.json @@ -1,11 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[92,184,276,368,460,552,644,736,828,920],"measured_values":[110725416.0,208797791.0,300968875.0,436493167.0,552921667.0,626243250.0,700540958.0,778885458.0,895999958.0,1004985458.0],"unit":"ns","throughput":[],"typical":{"estimate":1099604.536928289,"lower_bound":1080641.89773215,"upper_bound":1134470.6864064615,"unit":"ns"},"mean":{"estimate":1127196.5528657692,"lower_bound":1096580.0588508884,"upper_bound":1159469.6831172358,"unit":"ns"},"median":{"estimate":1113437.0695652175,"lower_bound":1086296.2457729469,"upper_bound":1186122.7364130435,"unit":"ns"},"median_abs_dev":{"estimate":42218.56678206487,"lower_bound":3394.3972151721746,"upper_bound":84661.72564064943,"unit":"ns"},"slope":{"estimate":1099604.536928289,"lower_bound":1080641.89773215,"upper_bound":1134470.6864064615,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[116919334.0,224678208.0,334559375.0,447424750.0,528192916.0,742971208.0,841713750.0,864081458.0,1044525875.0,1179149208.0],"unit":"ns","throughput":[],"typical":{"estimate":28867089.332467534,"lower_bound":27746298.7360595,"upper_bound":29692602.034483597,"unit":"ns"},"mean":{"estimate":28608247.251686506,"lower_bound":27793556.930562504,"upper_bound":29430737.51936508,"unit":"ns"},"median":{"estimate":28549691.819444444,"lower_bound":27483296.21875,"upper_bound":29645519.42857143,"unit":"ns"},"median_abs_dev":{"estimate":1192885.1581237218,"lower_bound":159546.9280091431,"upper_bound":2281117.7559770644,"unit":"ns"},"slope":{"estimate":28867089.332467534,"lower_bound":27746298.7360595,"upper_bound":29692602.034483597,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[94516958.0,186386791.0,271238833.0,364616250.0,438437000.0,517851625.0,592533458.0,687337166.0,800559834.0,870338209.0],"unit":"ns","throughput":[],"typical":{"estimate":6712011.772027972,"lower_bound":6626488.189384389,"upper_bound":6813680.940000888,"unit":"ns"},"mean":{"estimate":6844792.774413919,"lower_bound":6702865.691904763,"upper_bound":6996336.130096154,"unit":"ns"},"median":{"estimate":6793788.17948718,"lower_bound":6639123.397435897,"upper_bound":7061782.301282052,"unit":"ns"},"median_abs_dev":{"estimate":256364.26389670125,"lower_bound":72059.64285914839,"upper_bound":418732.93175061996,"unit":"ns"},"slope":{"estimate":6712011.772027972,"lower_bound":6626488.189384389,"upper_bound":6813680.940000888,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[90079416.0,175154875.0,276329334.0,367196291.0,507921792.0,566575000.0,656952417.0,748902542.0,808312042.0,925098666.0],"unit":"ns","throughput":[],"typical":{"estimate":46484290.37012987,"lower_bound":45665411.88317757,"upper_bound":47632838.46825397,"unit":"ns"},"mean":{"estimate":46368235.403174594,"lower_bound":45373998.08416666,"upper_bound":47567623.9379871,"unit":"ns"},"median":{"estimate":46154911.15,"lower_bound":45039708.0,"upper_bound":47010496.10416667,"unit":"ns"},"median_abs_dev":{"estimate":1356529.810076785,"lower_bound":263455.7358252235,"upper_bound":2539593.370538207,"unit":"ns"},"slope":{"estimate":46484290.37012987,"lower_bound":45665411.88317757,"upper_bound":47632838.46825397,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[95,190,285,380,475,570,665,760,855,950],"measured_values":[94990416.0,193272250.0,344493958.0,380493292.0,537067542.0,577579708.0,664796417.0,954145333.0,943233125.0,983683875.0],"unit":"ns","throughput":[],"typical":{"estimate":1088188.1168557757,"lower_bound":1028914.3598240474,"upper_bound":1164844.2372272369,"unit":"ns"},"mean":{"estimate":1076493.8187314118,"lower_bound":1025952.5878438283,"upper_bound":1135149.2019347951,"unit":"ns"},"median":{"estimate":1026339.5394736843,"lower_bound":1001298.1368421053,"upper_bound":1155973.6836257312,"unit":"ns"},"median_abs_dev":{"estimate":39352.727460823204,"lower_bound":2074.1885758074995,"upper_bound":153453.21486583634,"unit":"ns"},"slope":{"estimate":1088188.1168557757,"lower_bound":1028914.3598240474,"upper_bound":1164844.2372272369,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[105287708.0,256453208.0,315106167.0,428589250.0,532426000.0,679557125.0,745353333.0,866857250.0,1032979917.0,1170284750.0],"unit":"ns","throughput":[],"typical":{"estimate":28032039.259090908,"lower_bound":26984139.82822086,"upper_bound":28755454.081878386,"unit":"ns"},"mean":{"estimate":27802048.987202384,"lower_bound":26848589.761904765,"upper_bound":28985448.737336308,"unit":"ns"},"median":{"estimate":26938058.59375,"lower_bound":26471613.5,"upper_bound":28785999.479166664,"unit":"ns"},"median_abs_dev":{"estimate":960237.702521123,"lower_bound":123846.1956887913,"upper_bound":2862463.1049623676,"unit":"ns"},"slope":{"estimate":28032039.259090908,"lower_bound":26984139.82822086,"upper_bound":28755454.081878386,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[85712833.0,175188625.0,290112792.0,367767708.0,462691583.0,555505417.0,662329667.0,758028167.0,888538042.0,974295083.0],"unit":"ns","throughput":[],"typical":{"estimate":6839390.70890538,"lower_bound":6668035.116545614,"upper_bound":6942894.476253298,"unit":"ns"},"mean":{"estimate":6661456.3672137195,"lower_bound":6480551.50284864,"upper_bound":6828923.7718231995,"unit":"ns"},"median":{"estimate":6685812.857993197,"lower_bound":6433308.182142857,"upper_bound":6907447.428571428,"unit":"ns"},"median_abs_dev":{"estimate":252165.73967316293,"lower_bound":34010.26977119668,"upper_bound":520773.60836442024,"unit":"ns"},"slope":{"estimate":6839390.70890538,"lower_bound":6668035.116545614,"upper_bound":6942894.476253298,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[79145917.0,157557417.0,249752416.0,341857916.0,499840000.0,594125958.0,685257583.0,758939625.0,811996416.0,898475084.0],"unit":"ns","throughput":[],"typical":{"estimate":46410316.981818184,"lower_bound":45046044.92641,"upper_bound":48126757.056603774,"unit":"ns"},"mean":{"estimate":44922981.43934523,"lower_bound":42568888.144999996,"upper_bound":47235873.665178575,"unit":"ns"},"median":{"estimate":45017333.1,"lower_bound":41152599.0,"upper_bound":48946970.21428572,"unit":"ns"},"median_abs_dev":{"estimate":5427477.926693008,"lower_bound":820498.1299832537,"upper_bound":6661563.938573597,"unit":"ns"},"slope":{"estimate":46410316.981818184,"lower_bound":45046044.92641,"upper_bound":48126757.056603774,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[75,150,225,300,375,450,525,600,675,750],"measured_values":[82405750.0,149803292.0,219453042.0,337113625.0,461485959.0,531343250.0,561110292.0,817970583.0,867455375.0,944419875.0],"unit":"ns","throughput":[],"typical":{"estimate":1233148.0203636363,"lower_bound":1140957.249472888,"upper_bound":1289953.3835733333,"unit":"ns"},"mean":{"estimate":1158429.4272756614,"lower_bound":1084039.5632470897,"upper_bound":1233176.3287550265,"unit":"ns"},"median":{"estimate":1152237.4305555555,"lower_bound":1048715.9733333332,"upper_bound":1259226.5,"unit":"ns"},"median_abs_dev":{"estimate":141176.86963960962,"lower_bound":38388.329640693264,"upper_bound":212330.89677748425,"unit":"ns"},"slope":{"estimate":1233148.0203636363,"lower_bound":1140957.249472888,"upper_bound":1289953.3835733333,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120624833.0,270990459.0,381201667.0,454686750.0,623946334.0,647041416.0,834482458.0,903702625.0,1048197958.0,1203938708.0],"unit":"ns","throughput":[],"typical":{"estimate":29331886.25064935,"lower_bound":28488537.549130946,"upper_bound":30111122.077914797,"unit":"ns"},"mean":{"estimate":29963084.838759918,"lower_bound":28848289.543479413,"upper_bound":31162715.668280497,"unit":"ns"},"median":{"estimate":29950706.314285714,"lower_bound":28417921.875,"upper_bound":31197316.7,"unit":"ns"},"median_abs_dev":{"estimate":2060365.3471937026,"lower_bound":261874.09552580782,"upper_bound":3407216.0580573254,"unit":"ns"},"slope":{"estimate":29331886.25064935,"lower_bound":28488537.549130946,"upper_bound":30111122.077914797,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[101,202,303,404,505,606,707,808,909,1010],"measured_values":[91160500.0,182376500.0,304800042.0,434117583.0,510882709.0,564115459.0,660987167.0,785577750.0,839989166.0,948590750.0],"unit":"ns","throughput":[],"typical":{"estimate":951606.8514851485,"lower_bound":934897.9247301175,"upper_bound":981389.5163965804,"unit":"ns"},"mean":{"estimate":959890.2041238409,"lower_bound":929788.3502003772,"upper_bound":994624.9616320918,"unit":"ns"},"median":{"estimate":937058.4809052334,"lower_bound":916868.7780528052,"upper_bound":1005940.7326732674,"unit":"ns"},"median_abs_dev":{"estimate":50915.295212904544,"lower_bound":6164.032940566597,"upper_bound":97486.34801590486,"unit":"ns"},"slope":{"estimate":951606.8514851485,"lower_bound":934897.9247301175,"upper_bound":981389.5163965804,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103536166.0,215434333.0,336811708.0,450210125.0,585622500.0,627015416.0,756647958.0,859603500.0,966346250.0,1104282333.0],"unit":"ns","throughput":[],"typical":{"estimate":27239732.94675325,"lower_bound":26806639.577777777,"upper_bound":27783058.811085995,"unit":"ns"},"mean":{"estimate":27276163.605019845,"lower_bound":26707655.767579366,"upper_bound":27898816.52049653,"unit":"ns"},"median":{"estimate":26976216.49107143,"lower_bound":26494125.854166664,"upper_bound":28067642.333333332,"unit":"ns"},"median_abs_dev":{"estimate":1098173.6551260208,"lower_bound":64004.015892868854,"upper_bound":1737150.2812594157,"unit":"ns"},"slope":{"estimate":27239732.94675325,"lower_bound":26806639.577777777,"upper_bound":27783058.811085995,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[91371834.0,176908959.0,265611958.0,350059375.0,456478875.0,549333208.0,626102625.0,723061292.0,812400500.0,999509750.0],"unit":"ns","throughput":[],"typical":{"estimate":6622368.730983302,"lower_bound":6406512.31523248,"upper_bound":6890219.664744158,"unit":"ns"},"mean":{"estimate":6491238.407964853,"lower_bound":6373679.996031746,"upper_bound":6656494.639285715,"unit":"ns"},"median":{"estimate":6451763.704365079,"lower_bound":6324094.238095238,"upper_bound":6530403.916666666,"unit":"ns"},"median_abs_dev":{"estimate":120619.30066691306,"lower_bound":13754.274105812987,"upper_bound":252543.829141451,"unit":"ns"},"slope":{"estimate":6622368.730983302,"lower_bound":6406512.31523248,"upper_bound":6890219.664744158,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[92295500.0,197616583.0,282205542.0,369333500.0,462115625.0,555529333.0,664306833.0,721478584.0,821792250.0,943184667.0],"unit":"ns","throughput":[],"typical":{"estimate":46370372.51688312,"lower_bound":45666452.67027027,"upper_bound":47072275.185547434,"unit":"ns"},"mean":{"estimate":46661577.17547619,"lower_bound":46028626.37542857,"upper_bound":47423483.35696428,"unit":"ns"},"median":{"estimate":46252836.79166667,"lower_bound":45910906.25,"upper_bound":47242372.53571428,"unit":"ns"},"median_abs_dev":{"estimate":1022350.5334496498,"lower_bound":61193.26373860976,"upper_bound":1720446.5068809763,"unit":"ns"},"slope":{"estimate":46370372.51688312,"lower_bound":45666452.67027027,"upper_bound":47072275.185547434,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[99,198,297,396,495,594,693,792,891,990],"measured_values":[80855458.0,162968958.0,240884250.0,393945791.0,489810167.0,603356125.0,633861792.0,697820458.0,785424542.0,891613625.0],"unit":"ns","throughput":[],"typical":{"estimate":912474.6217762036,"lower_bound":888819.8434242519,"upper_bound":954053.9609627629,"unit":"ns"},"mean":{"estimate":902881.3335289402,"lower_bound":859394.9825468974,"upper_bound":948159.8694933461,"unit":"ns"},"median":{"estimate":891064.4245230078,"lower_bound":823075.5454545454,"upper_bound":989515.4888888889,"unit":"ns"},"median_abs_dev":{"estimate":105510.34323674964,"lower_bound":9420.06583882101,"upper_bound":128714.70086864497,"unit":"ns"},"slope":{"estimate":912474.6217762036,"lower_bound":888819.8434242519,"upper_bound":954053.9609627629,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[111654541.0,220645542.0,315424209.0,445650208.0,575269417.0,661670292.0,780081167.0,857272875.0,1007956416.0,1068481625.0],"unit":"ns","throughput":[],"typical":{"estimate":27404781.223376624,"lower_bound":26937612.766666666,"upper_bound":27980013.538908582,"unit":"ns"},"mean":{"estimate":27532653.208065473,"lower_bound":27091033.970709823,"upper_bound":27951014.27245163,"unit":"ns"},"median":{"estimate":27716915.375,"lower_bound":26789777.34375,"upper_bound":27929415.50595238,"unit":"ns"},"median_abs_dev":{"estimate":354781.60235136654,"lower_bound":44846.61062881627,"upper_bound":1349659.4594487569,"unit":"ns"},"slope":{"estimate":27404781.223376624,"lower_bound":26937612.766666666,"upper_bound":27980013.538908582,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[89117166.0,179974042.0,263923125.0,358611125.0,451168208.0,529062375.0,613420917.0,727438792.0,828649166.0,860688542.0],"unit":"ns","throughput":[],"typical":{"estimate":6360608.364378478,"lower_bound":6222021.272004626,"upper_bound":6502240.648138833,"unit":"ns"},"mean":{"estimate":6370317.426264172,"lower_bound":6295929.245262755,"upper_bound":6443177.852579366,"unit":"ns"},"median":{"estimate":6384640.973214285,"lower_bound":6278879.359693877,"upper_bound":6461316.785714285,"unit":"ns"},"median_abs_dev":{"estimate":138650.08880096866,"lower_bound":28884.37955505732,"upper_bound":213380.7787492347,"unit":"ns"},"slope":{"estimate":6360608.364378478,"lower_bound":6222021.272004626,"upper_bound":6502240.648138833,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[92143083.0,176934750.0,245623708.0,334462125.0,469774000.0,544341208.0,662894375.0,694167750.0,756050291.0,905846708.0],"unit":"ns","throughput":[],"typical":{"estimate":44405417.89480519,"lower_bound":42931145.66774556,"upper_bound":45874850.52492179,"unit":"ns"},"mean":{"estimate":44341965.85587301,"lower_bound":43011411.137222216,"upper_bound":45645777.3328244,"unit":"ns"},"median":{"estimate":44763011.45,"lower_bound":42002793.94444445,"upper_bound":46169583.66666667,"unit":"ns"},"median_abs_dev":{"estimate":2662687.005540356,"lower_bound":577625.471675099,"upper_bound":3804144.3082254454,"unit":"ns"},"slope":{"estimate":44405417.89480519,"lower_bound":42931145.66774556,"upper_bound":45874850.52492179,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[90,180,270,360,450,540,630,720,810,900],"measured_values":[92365458.0,196050334.0,290771584.0,383668166.0,462165209.0,596294375.0,709846750.0,773773834.0,901384291.0,1005382250.0],"unit":"ns","throughput":[],"typical":{"estimate":1099724.238903319,"lower_bound":1074497.2141791044,"upper_bound":1113908.5806524178,"unit":"ns"},"mean":{"estimate":1082074.8982213405,"lower_bound":1060600.6432328043,"upper_bound":1101943.000746693,"unit":"ns"},"median":{"estimate":1083050.1574074074,"lower_bound":1050859.8391666666,"upper_bound":1112820.112345679,"unit":"ns"},"median_abs_dev":{"estimate":37783.0522527352,"lower_bound":7153.162456339152,"upper_bound":64577.69724501646,"unit":"ns"},"slope":{"estimate":1099724.238903319,"lower_bound":1074497.2141791044,"upper_bound":1113908.5806524178,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[112049833.0,231815583.0,344052667.0,435894875.0,572115000.0,671246125.0,792501458.0,998151417.0,1001527750.0,1117365333.0],"unit":"ns","throughput":[],"typical":{"estimate":28545191.475324675,"lower_bound":27897265.2535545,"upper_bound":29734859.05091353,"unit":"ns"},"mean":{"estimate":28472843.382152773,"lower_bound":27938646.104861118,"upper_bound":29172980.98049479,"unit":"ns"},"median":{"estimate":28158040.875,"lower_bound":27894401.909722224,"upper_bound":28791348.9375,"unit":"ns"},"median_abs_dev":{"estimate":582316.8792451434,"lower_bound":58062.265871692034,"upper_bound":1214111.4966452122,"unit":"ns"},"slope":{"estimate":28545191.475324675,"lower_bound":27897265.2535545,"upper_bound":29734859.05091353,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/100000","ORE/ore_decrypt/range_gt_10/100000","ORE/ore/range_gt_100/100000","ORE/ore_decrypt/range_gt_100/100000","ORE/ore/range_lt_10/100000","ORE/ore_decrypt/range_lt_10/100000","ORE/ore/range_lt_100/100000","ORE/ore_decrypt/range_lt_100/100000","ORE/ore/range_lt_hybrid_ordered_10/100000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_1000000.json b/results/query/ore_rows_1000000.json index c3b5758..6b35360 100644 --- a/results/query/ore_rows_1000000.json +++ b/results/query/ore_rows_1000000.json @@ -1,7 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[88405500.0,179325083.0,256712625.0,338106750.0,442776875.0,515347708.0,563427709.0,712972625.0,835181083.0,842962750.0],"unit":"ns","throughput":[],"typical":{"estimate":1047398.634767642,"lower_bound":1008724.7276490577,"upper_bound":1087236.1434844562,"unit":"ns"},"mean":{"estimate":1047370.7079723654,"lower_bound":1022271.2198508319,"upper_bound":1071543.106007363,"unit":"ns"},"median":{"estimate":1049980.6305220884,"lower_bound":1018393.8253012048,"upper_bound":1073753.9533132531,"unit":"ns"},"median_abs_dev":{"estimate":40077.8475368193,"lower_bound":6395.5265619085885,"upper_bound":72111.78331373575,"unit":"ns"},"slope":{"estimate":1047398.634767642,"lower_bound":1008724.7276490577,"upper_bound":1087236.1434844562,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[129039458.0,228028125.0,310932833.0,461139625.0,545660500.0,740935125.0,795874250.0,891008500.0,1105055458.0,1083553166.0],"unit":"ns","throughput":[],"typical":{"estimate":28582197.72012987,"lower_bound":27460906.493158083,"upper_bound":29914701.73768079,"unit":"ns"},"mean":{"estimate":28770390.8055754,"lower_bound":27659964.02371875,"upper_bound":29957049.094166666,"unit":"ns"},"median":{"estimate":28463797.99107143,"lower_bound":27283025.0,"upper_bound":30695984.944444444,"unit":"ns"},"median_abs_dev":{"estimate":1894571.3865321362,"lower_bound":294404.47680452495,"upper_bound":3381254.9870998906,"unit":"ns"},"slope":{"estimate":28582197.72012987,"lower_bound":27460906.493158083,"upper_bound":29914701.73768079,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[87536875.0,188152917.0,262920708.0,362495792.0,455127792.0,541457000.0,617367833.0,721811333.0,783750625.0,878727917.0],"unit":"ns","throughput":[],"typical":{"estimate":6825987.862337662,"lower_bound":6758613.4551554825,"upper_bound":6935966.248651936,"unit":"ns"},"mean":{"estimate":6880953.269618437,"lower_bound":6788459.451608668,"upper_bound":6984792.581451464,"unit":"ns"},"median":{"estimate":6862377.743818682,"lower_bound":6741556.615384615,"upper_bound":6971861.22051282,"unit":"ns"},"median_abs_dev":{"estimate":170140.43587171135,"lower_bound":19155.003483777033,"upper_bound":311181.46199003933,"unit":"ns"},"slope":{"estimate":6825987.862337662,"lower_bound":6758613.4551554825,"upper_bound":6935966.248651936,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[147378542.0,292071083.0,405989292.0,608787666.0,689347917.0,748991750.0,941315167.0,1014456542.0,1227394542.0,1418400417.0],"unit":"ns","throughput":[],"typical":{"estimate":45247396.43809524,"lower_bound":43464682.756578945,"upper_bound":46802653.35324605,"unit":"ns"},"mean":{"estimate":46104672.72674603,"lower_bound":44383723.70749404,"upper_bound":47806621.01111111,"unit":"ns"},"median":{"estimate":45707792.45555556,"lower_bound":43689471.958333336,"upper_bound":48678513.833333336,"unit":"ns"},"median_abs_dev":{"estimate":3367683.454324997,"lower_bound":470373.63301587204,"upper_bound":5098320.122043392,"unit":"ns"},"slope":{"estimate":45247396.43809524,"lower_bound":43464682.756578945,"upper_bound":46802653.35324605,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[95,190,285,380,475,570,665,760,855,950],"measured_values":[97054208.0,174993625.0,272700250.0,369666542.0,448335917.0,664729000.0,663298208.0,720265542.0,868908916.0,995334084.0],"unit":"ns","throughput":[],"typical":{"estimate":1015792.0666302119,"lower_bound":969452.2574352548,"upper_bound":1059248.4752171692,"unit":"ns"},"mean":{"estimate":999149.4868613199,"lower_bound":962248.4826725146,"upper_bound":1044601.5263350041,"unit":"ns"},"median":{"estimate":985123.8018796992,"lower_bound":947717.8184210527,"upper_bound":1031993.9132163743,"unit":"ns"},"median_abs_dev":{"estimate":54786.08960445774,"lower_bound":9620.512677412244,"upper_bound":101693.6888140148,"unit":"ns"},"slope":{"estimate":1015792.0666302119,"lower_bound":969452.2574352548,"upper_bound":1059248.4752171692,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[113666417.0,246274500.0,377897917.0,484976042.0,586837167.0,654012708.0,774059708.0,976493250.0,995744500.0,1096236041.0],"unit":"ns","throughput":[],"typical":{"estimate":28371753.431818184,"lower_bound":27649331.66063698,"upper_bound":29648728.33969374,"unit":"ns"},"mean":{"estimate":29082167.441170633,"lower_bound":28163353.32562004,"upper_bound":30029345.59081944,"unit":"ns"},"median":{"estimate":28879231.3,"lower_bound":27532735.23472222,"upper_bound":30547657.5625,"unit":"ns"},"median_abs_dev":{"estimate":2153551.777846814,"lower_bound":198852.4556704974,"upper_bound":2504416.381955222,"unit":"ns"},"slope":{"estimate":28371753.431818184,"lower_bound":27649331.66063698,"upper_bound":29648728.33969374,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[95166334.0,187478334.0,279002250.0,362116834.0,462927417.0,555736250.0,635051584.0,739974417.0,846465875.0,911361542.0],"unit":"ns","throughput":[],"typical":{"estimate":6586570.759183673,"lower_bound":6521702.911125797,"upper_bound":6662611.40026455,"unit":"ns"},"mean":{"estimate":6614643.045031178,"lower_bound":6552508.722692531,"upper_bound":6677672.427632936,"unit":"ns"},"median":{"estimate":6614578.2761904765,"lower_bound":6509725.3,"upper_bound":6695654.785714285,"unit":"ns"},"median_abs_dev":{"estimate":136756.03585876132,"lower_bound":8637.793797898255,"upper_bound":190236.1620726326,"unit":"ns"},"slope":{"estimate":6586570.759183673,"lower_bound":6521702.911125797,"upper_bound":6662611.40026455,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[82,164,246,328,410,492,574,656,738,820],"measured_values":[97274334.0,184466917.0,246006375.0,315116000.0,564971875.0,723879500.0,634725208.0,703050834.0,810357625.0,833214000.0],"unit":"ns","throughput":[],"typical":{"estimate":1118963.237915743,"lower_bound":1046289.8294345898,"upper_bound":1248767.061756792,"unit":"ns"},"mean":{"estimate":1141277.3120838176,"lower_bound":1053948.48251476,"upper_bound":1244872.401222053,"unit":"ns"},"median":{"estimate":1101919.3038133953,"lower_bound":1016114.6341463415,"upper_bound":1251389.2286585364,"unit":"ns"},"median_abs_dev":{"estimate":126137.92427523842,"lower_bound":19831.785097712134,"upper_bound":264202.4161131281,"unit":"ns"},"slope":{"estimate":1118963.237915743,"lower_bound":1046289.8294345898,"upper_bound":1248767.061756792,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[108217958.0,223708833.0,347769292.0,484937083.0,614670666.0,720623292.0,765838666.0,974734334.0,1129768041.0,1155483542.0],"unit":"ns","throughput":[],"typical":{"estimate":29751479.244805194,"lower_bound":28690864.049668387,"upper_bound":30779811.294407893,"unit":"ns"},"mean":{"estimate":29314830.244523812,"lower_bound":28423218.79369048,"upper_bound":30173983.247462798,"unit":"ns"},"median":{"estimate":29503372.416666664,"lower_bound":27963604.125,"upper_bound":30521050.49375,"unit":"ns"},"median_abs_dev":{"estimate":1621398.3176231799,"lower_bound":315027.0029534032,"upper_bound":2507189.5084284884,"unit":"ns"},"slope":{"estimate":29751479.244805194,"lower_bound":28690864.049668387,"upper_bound":30779811.294407893,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[94402250.0,208453416.0,284746541.0,395297167.0,453979083.0,570378000.0,653109333.0,736098125.0,838793875.0,901366917.0],"unit":"ns","throughput":[],"typical":{"estimate":7125327.705094905,"lower_bound":7024785.886137594,"upper_bound":7273989.14393039,"unit":"ns"},"mean":{"estimate":7283670.692860196,"lower_bound":7117948.550128205,"upper_bound":7487944.4155494515,"unit":"ns"},"median":{"estimate":7219368.587912088,"lower_bound":7076736.001709402,"upper_bound":7451530.977564102,"unit":"ns"},"median_abs_dev":{"estimate":173962.25784905255,"lower_bound":37677.99740800555,"upper_bound":457808.34792573884,"unit":"ns"},"slope":{"estimate":7125327.705094905,"lower_bound":7024785.886137594,"upper_bound":7273989.14393039,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[107782125.0,205540416.0,333723208.0,352547458.0,398235625.0,529131041.0,687704750.0,767934416.0,826499708.0,852626959.0],"unit":"ns","throughput":[],"typical":{"estimate":45478392.62857143,"lower_bound":43474731.896731034,"upper_bound":47826281.22583448,"unit":"ns"},"mean":{"estimate":47454861.65849206,"lower_bound":44506945.71460317,"upper_bound":50475188.39444445,"unit":"ns"},"median":{"estimate":46956275.722222224,"lower_bound":43362800.68333334,"upper_bound":51506415.17857143,"unit":"ns"},"median_abs_dev":{"estimate":5346827.228581509,"lower_bound":1103593.0336973013,"upper_bound":8538244.58030586,"unit":"ns"},"slope":{"estimate":45478392.62857143,"lower_bound":43474731.896731034,"upper_bound":47826281.22583448,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[90,180,270,360,450,540,630,720,810,900],"measured_values":[92986292.0,172206042.0,252578291.0,376094375.0,463291583.0,568189708.0,661548583.0,754537083.0,847285541.0,889371292.0],"unit":"ns","throughput":[],"typical":{"estimate":1027749.6809812409,"lower_bound":1003706.2840392282,"upper_bound":1046607.8503521127,"unit":"ns"},"mean":{"estimate":1018407.0161953263,"lower_bound":991615.9377172949,"upper_bound":1041384.5790987652,"unit":"ns"},"median":{"estimate":1038943.8097222222,"lower_bound":988190.3244444445,"upper_bound":1048054.3239858907,"unit":"ns"},"median_abs_dev":{"estimate":15226.497997675679,"lower_bound":2701.4239967067683,"upper_bound":64255.2530287966,"unit":"ns"},"slope":{"estimate":1027749.6809812409,"lower_bound":1003706.2840392282,"upper_bound":1046607.8503521127,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[76362417.0,171641042.0,243914250.0,372690959.0,418689000.0,533272084.0,596231375.0,704000250.0,731663541.0,883712667.0],"unit":"ns","throughput":[],"typical":{"estimate":28712509.744588744,"lower_bound":27810064.367951065,"upper_bound":29441607.33054004,"unit":"ns"},"mean":{"estimate":28404002.20269841,"lower_bound":27451455.52510715,"upper_bound":29323615.882777773,"unit":"ns"},"median":{"estimate":28499405.285714284,"lower_bound":27101583.333333332,"upper_bound":29479785.319444444,"unit":"ns"},"median_abs_dev":{"estimate":1545243.6902697755,"lower_bound":217114.26700378396,"upper_bound":2786472.67349689,"unit":"ns"},"slope":{"estimate":28712509.744588744,"lower_bound":27810064.367951065,"upper_bound":29441607.33054004,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[92242333.0,177809167.0,273392625.0,359681458.0,463857167.0,519836458.0,625815791.0,794251375.0,841192542.0,895395042.0],"unit":"ns","throughput":[],"typical":{"estimate":7073820.937462538,"lower_bound":6856832.624609497,"upper_bound":7324753.784744141,"unit":"ns"},"mean":{"estimate":7025369.37691392,"lower_bound":6883607.349230769,"upper_bound":7193726.1203956045,"unit":"ns"},"median":{"estimate":6963509.211538462,"lower_bound":6863234.142307692,"upper_bound":7142621.961538462,"unit":"ns"},"median_abs_dev":{"estimate":190328.7431094512,"lower_bound":30170.932273589668,"upper_bound":383067.15785689175,"unit":"ns"},"slope":{"estimate":7073820.937462538,"lower_bound":6856832.624609497,"upper_bound":7324753.784744141,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[101038458.0,184379708.0,270968875.0,397779125.0,471026250.0,559401208.0,638480959.0,794081291.0,835057833.0,948124041.0],"unit":"ns","throughput":[],"typical":{"estimate":47278100.577922076,"lower_bound":46331501.741910964,"upper_bound":48385089.510040164,"unit":"ns"},"mean":{"estimate":47425158.54815476,"lower_bound":46372826.80654167,"upper_bound":48567513.23354316,"unit":"ns"},"median":{"estimate":46859696.16666667,"lower_bound":45998942.309523806,"upper_bound":49630080.6875,"unit":"ns"},"median_abs_dev":{"estimate":1496449.3459827222,"lower_bound":386840.2322322149,"upper_bound":2998663.820793074,"unit":"ns"},"slope":{"estimate":47278100.577922076,"lower_bound":46331501.741910964,"upper_bound":48385089.510040164,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[85,170,255,340,425,510,595,680,765,850],"measured_values":[108653958.0,219387750.0,326562041.0,390889250.0,451480208.0,612862458.0,761976375.0,824967709.0,846490750.0,1014787917.0],"unit":"ns","throughput":[],"typical":{"estimate":1183349.75052712,"lower_bound":1136328.3290239172,"upper_bound":1230366.5894607843,"unit":"ns"},"mean":{"estimate":1205731.7585018673,"lower_bound":1157039.842930439,"upper_bound":1250426.730595238,"unit":"ns"},"median":{"estimate":1207439.4507352943,"lower_bound":1149674.2647058824,"upper_bound":1280632.56302521,"unit":"ns"},"median_abs_dev":{"estimate":106773.52936071424,"lower_bound":1746.8644901632683,"upper_bound":130305.15595387593,"unit":"ns"},"slope":{"estimate":1183349.75052712,"lower_bound":1136328.3290239172,"upper_bound":1230366.5894607843,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[118006041.0,189919667.0,261554708.0,448485042.0,647526125.0,591655041.0,598980291.0,997648792.0,847496958.0,901803791.0],"unit":"ns","throughput":[],"typical":{"estimate":33492271.37922078,"lower_bound":30498506.60294951,"upper_bound":38140333.958710976,"unit":"ns"},"mean":{"estimate":34500261.86444445,"lower_bound":31455812.01777778,"upper_bound":37770069.12158333,"unit":"ns"},"median":{"estimate":32261501.166666664,"lower_bound":30060126.366666667,"upper_bound":39471226.58333333,"unit":"ns"},"median_abs_dev":{"estimate":5143507.817151144,"lower_bound":1097826.9388263412,"upper_bound":8643914.140029848,"unit":"ns"},"slope":{"estimate":33492271.37922078,"lower_bound":30498506.60294951,"upper_bound":38140333.958710976,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/1000000","ORE/ore_decrypt/range_gt_10/1000000","ORE/ore/range_gt_100/1000000","ORE/ore_decrypt/range_gt_100/1000000","ORE/ore/range_lt_10/1000000","ORE/ore_decrypt/range_lt_10/1000000","ORE/ore/range_lt_100/1000000","ORE/ore_decrypt/range_lt_100/1000000","ORE/ore/range_lt_hybrid_ordered_10/1000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_10000000.json b/results/query/ore_rows_10000000.json index 789b48c..c8003ad 100644 --- a/results/query/ore_rows_10000000.json +++ b/results/query/ore_rows_10000000.json @@ -1,11 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000000","iteration_count":[67,134,201,268,335,402,469,536,603,670],"measured_values":[83549083.0,167306625.0,250658417.0,355226542.0,455361500.0,591325583.0,609002417.0,742345500.0,753115417.0,866273833.0],"unit":"ns","throughput":[],"typical":{"estimate":1320347.4608257415,"lower_bound":1277916.7160635295,"upper_bound":1380355.7203533724,"unit":"ns"},"mean":{"estimate":1312371.3542738687,"lower_bound":1272089.6843402039,"upper_bound":1359389.9655792466,"unit":"ns"},"median":{"estimate":1295729.3178038378,"lower_bound":1248002.2122719735,"upper_bound":1359288.0597014925,"unit":"ns"},"median_abs_dev":{"estimate":71049.84655413534,"lower_bound":1194.4020855114322,"upper_bound":127483.1585098557,"unit":"ns"},"slope":{"estimate":1320347.4608257415,"lower_bound":1277916.7160635295,"upper_bound":1380355.7203533724,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114472750.0,216235959.0,352461000.0,441818792.0,574199541.0,725749542.0,799070125.0,904892417.0,985944292.0,1190080834.0],"unit":"ns","throughput":[],"typical":{"estimate":28703918.812987015,"lower_bound":27881138.559068218,"upper_bound":29482883.458086785,"unit":"ns"},"mean":{"estimate":28553811.725069445,"lower_bound":27954484.325944446,"upper_bound":29167437.847569443,"unit":"ns"},"median":{"estimate":28578203.125,"lower_bound":27613674.5,"upper_bound":29371750.0,"unit":"ns"},"median_abs_dev":{"estimate":1303261.345012486,"lower_bound":136087.18441397062,"upper_bound":1765571.4962465074,"unit":"ns"},"slope":{"estimate":28703918.812987015,"lower_bound":27881138.559068218,"upper_bound":29482883.458086785,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[96400292.0,183269708.0,277228208.0,378755208.0,470515375.0,568148875.0,677634167.0,769980625.0,843662375.0,935776459.0],"unit":"ns","throughput":[],"typical":{"estimate":6757908.241743971,"lower_bound":6694517.317493946,"upper_bound":6840243.694457707,"unit":"ns"},"mean":{"estimate":6744987.669623017,"lower_bound":6672520.937144841,"upper_bound":6815768.10763889,"unit":"ns"},"median":{"estimate":6742567.035714285,"lower_bound":6648202.376984127,"upper_bound":6874827.008928572,"unit":"ns"},"median_abs_dev":{"estimate":141372.90880387952,"lower_bound":27821.470351070442,"upper_bound":222962.90327495063,"unit":"ns"},"slope":{"estimate":6757908.241743971,"lower_bound":6694517.317493946,"upper_bound":6840243.694457707,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[139317875.0,281227084.0,410691292.0,540262875.0,625042458.0,783697250.0,918305000.0,1100129125.0,1216334083.0,1290376833.0],"unit":"ns","throughput":[],"typical":{"estimate":44157780.33419913,"lower_bound":43228603.80790961,"upper_bound":45147143.490123026,"unit":"ns"},"mean":{"estimate":44680247.23191799,"lower_bound":43680114.84886243,"upper_bound":45614260.71051092,"unit":"ns"},"median":{"estimate":45035658.365740746,"lower_bound":43370685.31190476,"upper_bound":46035828.722222224,"unit":"ns"},"median_abs_dev":{"estimate":2009280.3768281417,"lower_bound":432144.7534723431,"upper_bound":2755681.0297227167,"unit":"ns"},"slope":{"estimate":44157780.33419913,"lower_bound":43228603.80790961,"upper_bound":45147143.490123026,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000000","iteration_count":[70,140,210,280,350,420,490,560,630,700],"measured_values":[90492958.0,177589000.0,281246416.0,352882791.0,433932291.0,531887458.0,643567125.0,695424375.0,815627250.0,897800500.0],"unit":"ns","throughput":[],"typical":{"estimate":1278253.9034508348,"lower_bound":1257604.7966693419,"upper_bound":1295100.3021310181,"unit":"ns"},"mean":{"estimate":1279946.909341837,"lower_bound":1262248.7103234695,"upper_bound":1298975.9809960888,"unit":"ns"},"median":{"estimate":1275532.5,"lower_bound":1254113.9752976191,"upper_bound":1303079.419387755,"unit":"ns"},"median_abs_dev":{"estimate":26937.33774176671,"lower_bound":6076.565719619255,"upper_bound":53057.10461608376,"unit":"ns"},"slope":{"estimate":1278253.9034508348,"lower_bound":1257604.7966693419,"upper_bound":1295100.3021310181,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[106872750.0,224852375.0,339898458.0,459469750.0,571428750.0,679559750.0,817424459.0,936622500.0,1004385042.0,1145967875.0],"unit":"ns","throughput":[],"typical":{"estimate":28612174.977272727,"lower_bound":28201915.857954547,"upper_bound":29008510.081967212,"unit":"ns"},"mean":{"estimate":28376485.751190476,"lower_bound":27921773.97083334,"upper_bound":28762575.52556548,"unit":"ns"},"median":{"estimate":28448154.5,"lower_bound":28106546.875,"upper_bound":28921463.776785716,"unit":"ns"},"median_abs_dev":{"estimate":452424.6482178569,"lower_bound":107801.23402364552,"upper_bound":1096509.9458580574,"unit":"ns"},"slope":{"estimate":28612174.977272727,"lower_bound":28201915.857954547,"upper_bound":29008510.081967212,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[91588042.0,202494916.0,277005084.0,407513625.0,514790834.0,591285541.0,651437208.0,2265784875.0,1051094833.0,1501084417.0],"unit":"ns","throughput":[],"typical":{"estimate":10433460.512987014,"lower_bound":7116835.340952381,"upper_bound":14371274.881618124,"unit":"ns"},"mean":{"estimate":8798121.538251135,"lower_bound":6996644.08921216,"upper_bound":11561933.8624178,"unit":"ns"},"median":{"estimate":7254495.151785715,"lower_bound":6647318.448979592,"upper_bound":9038093.160714285,"unit":"ns"},"median_abs_dev":{"estimate":938717.5965433603,"lower_bound":79105.81599559083,"upper_bound":2668708.8397876136,"unit":"ns"},"slope":{"estimate":10433460.512987014,"lower_bound":7116835.340952381,"upper_bound":14371274.881618124,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[41140000.0,44619958.0,42297000.0,41791500.0,44743125.0,44534209.0,44809084.0,51309833.0,38208167.0,42626000.0],"unit":"ns","throughput":[],"typical":{"estimate":43607887.6,"lower_bound":41727675.195,"upper_bound":45738076.089999996,"unit":"ns"},"mean":{"estimate":43607887.6,"lower_bound":41727675.195,"upper_bound":45738076.089999996,"unit":"ns"},"median":{"estimate":43580104.5,"lower_bound":41718500.0,"upper_bound":44743125.0,"unit":"ns"},"median_abs_dev":{"estimate":1862207.8361392021,"lower_bound":154869.42805051804,"upper_bound":4893259.685227275,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000000","iteration_count":[76,152,228,304,380,456,532,608,684,760],"measured_values":[71962500.0,143937375.0,252887750.0,314928166.0,435353542.0,540671000.0,641525500.0,674981334.0,722787000.0,806410458.0],"unit":"ns","throughput":[],"typical":{"estimate":1102485.4280929596,"lower_bound":1066784.932838854,"upper_bound":1155473.3080062496,"unit":"ns"},"mean":{"estimate":1080409.9560745615,"lower_bound":1027802.9872532897,"upper_bound":1131426.2074029606,"unit":"ns"},"median":{"estimate":1085111.5951754386,"lower_bound":1001831.2774122807,"upper_bound":1147924.3426535088,"unit":"ns"},"median_abs_dev":{"estimate":81334.9166214113,"lower_bound":18620.32713771265,"upper_bound":166007.54781317178,"unit":"ns"},"slope":{"estimate":1102485.4280929596,"lower_bound":1066784.932838854,"upper_bound":1155473.3080062496,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103336375.0,227342958.0,374277958.0,429762625.0,573882667.0,679561666.0,741578333.0,843254875.0,1022588708.0,1150084250.0],"unit":"ns","throughput":[],"typical":{"estimate":27914232.596753247,"lower_bound":26994884.181641124,"upper_bound":28646887.361033376,"unit":"ns"},"mean":{"estimate":27930516.36094246,"lower_bound":27036792.443859622,"upper_bound":28895323.328650795,"unit":"ns"},"median":{"estimate":28360155.652777776,"lower_bound":26484940.464285713,"upper_bound":28694133.35,"unit":"ns"},"median_abs_dev":{"estimate":1402496.718694456,"lower_bound":76205.88574707693,"upper_bound":2997196.0657928865,"unit":"ns"},"slope":{"estimate":27914232.596753247,"lower_bound":26994884.181641124,"upper_bound":28646887.361033376,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000000","iteration_count":[68,136,204,272,340,408,476,544,612,680],"measured_values":[96754708.0,190514417.0,311903541.0,446284333.0,607293333.0,559102750.0,713874375.0,861184667.0,889539041.0,1288719209.0],"unit":"ns","throughput":[],"typical":{"estimate":1618386.4049656226,"lower_bound":1470706.9087009805,"upper_bound":1778497.553267974,"unit":"ns"},"mean":{"estimate":1558136.8148313493,"lower_bound":1464714.5171058006,"upper_bound":1665958.3643382352,"unit":"ns"},"median":{"estimate":1514337.5042016807,"lower_bound":1422863.3529411764,"upper_bound":1684608.4556985295,"unit":"ns"},"median_abs_dev":{"estimate":151944.52071641618,"lower_bound":39032.30836561642,"upper_bound":275244.1077897269,"unit":"ns"},"slope":{"estimate":1618386.4049656226,"lower_bound":1470706.9087009805,"upper_bound":1778497.553267974,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[122745292.0,243557500.0,417834417.0,491022500.0,674226291.0,719285834.0,835771667.0,933069875.0,1040736167.0,1134173583.0],"unit":"ns","throughput":[],"typical":{"estimate":29569884.418181818,"lower_bound":28899143.72067039,"upper_bound":31001614.452566206,"unit":"ns"},"mean":{"estimate":30659210.838144846,"lower_bound":29555885.665783726,"upper_bound":31970052.37367758,"unit":"ns"},"median":{"estimate":30207465.291666664,"lower_bound":29158433.59375,"upper_bound":32198818.775,"unit":"ns"},"median_abs_dev":{"estimate":1134539.359936025,"lower_bound":181039.35616090894,"upper_bound":3062034.8526880145,"unit":"ns"},"slope":{"estimate":29569884.418181818,"lower_bound":28899143.72067039,"upper_bound":31001614.452566206,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[96368292.0,184738500.0,287618375.0,399742458.0,470208416.0,567242334.0,664979000.0,777074125.0,846849500.0,933156750.0],"unit":"ns","throughput":[],"typical":{"estimate":6773065.924489796,"lower_bound":6704166.143455959,"upper_bound":6880506.17325228,"unit":"ns"},"mean":{"estimate":6804781.0705753965,"lower_bound":6720349.197946428,"upper_bound":6902142.153240574,"unit":"ns"},"median":{"estimate":6769192.464285715,"lower_bound":6693216.567460317,"upper_bound":6893109.188988095,"unit":"ns"},"median_abs_dev":{"estimate":135399.32509618133,"lower_bound":26406.471641191452,"upper_bound":250662.22444985615,"unit":"ns"},"slope":{"estimate":6773065.924489796,"lower_bound":6704166.143455959,"upper_bound":6880506.17325228,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[77092000.0,152283833.0,265005583.0,359431458.0,452347500.0,568671333.0,654152166.0,771718625.0,828844167.0,938884167.0],"unit":"ns","throughput":[],"typical":{"estimate":46609637.766233765,"lower_bound":45695341.115384616,"upper_bound":47262734.50257138,"unit":"ns"},"mean":{"estimate":44628619.07101191,"lower_bound":42372863.941250004,"upper_bound":46517494.026136905,"unit":"ns"},"median":{"estimate":45640824.08333333,"lower_bound":41737466.125,"upper_bound":47057216.23214286,"unit":"ns"},"median_abs_dev":{"estimate":2058301.8336628408,"lower_bound":502791.5698236687,"upper_bound":4871586.791712038,"unit":"ns"},"slope":{"estimate":46609637.766233765,"lower_bound":45695341.115384616,"upper_bound":47262734.50257138,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000000","iteration_count":[65,130,195,260,325,390,455,520,585,650],"measured_values":[105368833.0,197014416.0,319040083.0,426084875.0,447583500.0,605195375.0,605450167.0,885369334.0,839801709.0,937549708.0],"unit":"ns","throughput":[],"typical":{"estimate":1489900.717922078,"lower_bound":1413984.4858299596,"upper_bound":1599318.1106162842,"unit":"ns"},"mean":{"estimate":1525164.4145641027,"lower_bound":1451041.7548749999,"upper_bound":1597151.6140032052,"unit":"ns"},"median":{"estimate":1533639.26025641,"lower_bound":1409782.0830769232,"upper_bound":1636102.9897435897,"unit":"ns"},"median_abs_dev":{"estimate":148663.64471453882,"lower_bound":13142.516020135417,"upper_bound":210705.82181860867,"unit":"ns"},"slope":{"estimate":1489900.717922078,"lower_bound":1413984.4858299596,"upper_bound":1599318.1106162842,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[112621833.0,231900917.0,368463333.0,452877042.0,536919083.0,690795917.0,833750167.0,971240792.0,1058357333.0,1121062458.0],"unit":"ns","throughput":[],"typical":{"estimate":29003058.982467532,"lower_bound":28221331.77245509,"upper_bound":29772558.5203808,"unit":"ns"},"mean":{"estimate":28933572.579246033,"lower_bound":28241585.402222227,"upper_bound":29613948.714389876,"unit":"ns"},"median":{"estimate":28885388.916666664,"lower_bound":28155458.25,"upper_bound":29875044.777777776,"unit":"ns"},"median_abs_dev":{"estimate":1177746.383330819,"lower_bound":221436.4989437163,"upper_bound":1985732.357936204,"unit":"ns"},"slope":{"estimate":29003058.982467532,"lower_bound":28221331.77245509,"upper_bound":29772558.5203808,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[88503333.0,181855500.0,252623875.0,324933958.0,403502250.0,555884417.0,598329417.0,644473709.0,784877250.0,836203250.0],"unit":"ns","throughput":[],"typical":{"estimate":7063346.9443722945,"lower_bound":6863231.634782609,"upper_bound":7292290.563510044,"unit":"ns"},"mean":{"estimate":7125701.138541667,"lower_bound":6923604.928472224,"upper_bound":7339598.524236113,"unit":"ns"},"median":{"estimate":7070149.555555556,"lower_bound":6769457.458333333,"upper_bound":7422347.222222222,"unit":"ns"},"median_abs_dev":{"estimate":449094.57423947775,"lower_bound":65857.02905580355,"upper_bound":598862.9317555579,"unit":"ns"},"slope":{"estimate":7063346.9443722945,"lower_bound":6863231.634782609,"upper_bound":7292290.563510044,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[164941792.0,205672292.0,313177250.0,403220417.0,460695583.0,550247833.0,613414625.0,732984750.0,867830750.0,948105209.0],"unit":"ns","throughput":[],"typical":{"estimate":46990875.223376624,"lower_bound":45741044.192944914,"upper_bound":48243978.77784196,"unit":"ns"},"mean":{"estimate":51365623.09682539,"lower_bound":46669729.81587302,"upper_bound":58845368.90753968,"unit":"ns"},"median":{"estimate":47809039.947222225,"lower_bound":45853986.083333336,"upper_bound":51418073.0,"unit":"ns"},"median_abs_dev":{"estimate":3403312.1314041317,"lower_bound":222724.0505358518,"upper_bound":7099355.448601242,"unit":"ns"},"slope":{"estimate":46990875.223376624,"lower_bound":45741044.192944914,"upper_bound":48243978.77784196,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[95843041.0,201657708.0,304984458.0,427695166.0,505595834.0,585515291.0,678240208.0,726232125.0,835371334.0,924562625.0],"unit":"ns","throughput":[],"typical":{"estimate":1141839.152652167,"lower_bound":1119105.9184395585,"upper_bound":1188490.1303304504,"unit":"ns"},"mean":{"estimate":1176997.5839218781,"lower_bound":1142517.04235884,"upper_bound":1213139.1789386116,"unit":"ns"},"median":{"estimate":1171550.2416810098,"lower_bound":1118301.6519410978,"upper_bound":1219821.3253012048,"unit":"ns"},"median_abs_dev":{"estimate":74131.15697756346,"lower_bound":7436.507116168425,"upper_bound":103685.9810534226,"unit":"ns"},"slope":{"estimate":1141839.152652167,"lower_bound":1119105.9184395585,"upper_bound":1188490.1303304504,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[113373417.0,227715209.0,371558208.0,482900416.0,561571500.0,711829834.0,786435125.0,915503667.0,1039270250.0,1165295833.0],"unit":"ns","throughput":[],"typical":{"estimate":28915183.388311688,"lower_bound":28547424.592136152,"upper_bound":29310076.44964528,"unit":"ns"},"mean":{"estimate":29038783.90159722,"lower_bound":28516230.744374998,"upper_bound":29641463.39604167,"unit":"ns"},"median":{"estimate":28739053.824652776,"lower_bound":28275684.9375,"upper_bound":29659576.416666668,"unit":"ns"},"median_abs_dev":{"estimate":776722.7467406206,"lower_bound":196280.85454031825,"upper_bound":1552509.936862439,"unit":"ns"},"slope":{"estimate":28915183.388311688,"lower_bound":28547424.592136152,"upper_bound":29310076.44964528,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000000","ORE/ore_decrypt/range_gt_10/10000000","ORE/ore/range_gt_100/10000000","ORE/ore_decrypt/range_gt_100/10000000","ORE/ore/range_lt_10/10000000","ORE/ore_decrypt/range_lt_10/10000000","ORE/ore/range_lt_100/10000000","ORE/ore_decrypt/range_lt_100/10000000","ORE/ore/range_lt_hybrid_ordered_10/10000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} From 6092bfcbc51521109280206bcffd77f02551a6a8 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Fri, 15 May 2026 23:39:38 +1000 Subject: [PATCH 20/30] bench: redesign GROUP BY + add combo bench + selective ORE scenarios MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Scope: bench infrastructure overhaul for clearer "good performance" stories and composite-predicate coverage. ORE — added two selective-predicate scenarios alongside the existing non-selective baselines. The non-selective threshold (5000 on uniform i32 data, ~50% selectivity) correctly causes the planner to pick Seq Scan + LIMIT, hence the empty indexes_used in earlier results. The new range_selective_gt_100 (threshold 2_140_000_000, ~0.17% selectivity) and range_highly_selective_gt_10 (threshold 2_147_000_000, ~0.011% selectivity) fall in the regime where the planner switches to Index Scan on the functional btree, demonstrating the b-tree path documented in §4 of the EQL query-performance guide. GROUP BY — replaced high-cardinality count_groups_* (which measured result emission rather than aggregation, even with the count(*) wrapper) with realistic low-cardinality scenarios: * low_cardinality_groups_{encrypted,plaintext} — ~250-bucket categorical data (CAT_001..CAT_250 uniform random), GROUP BY hmac extractor wrapped in count(*). Hash table fits in default work_mem. * top_n_groups_{encrypted,plaintext} — top 10 categories by frequency, the classic dashboard analytic. Always emits 10 rows so the bench measures HashAggregate + sort, not emission. New `category_encrypted_*` (encrypt_category bin) and `category_plaintext_*` (SQL-populated) table families back the GROUP BY scenarios. COMBO — entirely new bench/table family. `combo_encrypted_` carries three encrypted columns: name (match + hmac), age (ORE), category (hmac). Three scenarios: * bloom_ore_order_limit — bloom (LIKE) + ORE ORDER BY + LIMIT. Two indexes engage: GIN bloom for filter, ORE btree for sort. * filtered_group_by — bloom filter + HashAggregate on category HMAC. * top_n_filtered_group_by — same with outer ORDER BY count(*) DESC LIMIT 10. Report changes: * Y-axes start at 0 on every chart (charts were visually misleading at high scales where small differences looked huge). * Split into per-query-type pages. BENCHMARK_REPORT.md becomes an index with a TL;DR summary table; each query family (exact, match, ore, group_by, combo, json) gets its own `report/.md` file. Cipher TTL — lib.rs::ingest and encrypt_combo re-init the scoped cipher every 200_000 rows so a single 10M ingest call survives past the ZeroKMS ~10-15min session TTL window without requiring callers to chunk invocations. --- Cargo.toml | 12 + benches/combo.rs | 195 +++++++++++ benches/group_by.rs | 90 +++-- benches/ore.rs | 65 ++-- mise.toml | 117 ++++++- report_benchmarks.py | 327 +++++++++++++----- .../category_encrypted_10000000_down.sql | 1 + .../category_encrypted_10000000_up.sql | 5 + .../category_encrypted_1000000_down.sql | 1 + sql/indexes/category_encrypted_1000000_up.sql | 5 + .../category_encrypted_100000_down.sql | 1 + sql/indexes/category_encrypted_100000_up.sql | 5 + sql/indexes/category_encrypted_10000_down.sql | 1 + sql/indexes/category_encrypted_10000_up.sql | 5 + sql/indexes/combo_encrypted_10000000_down.sql | 3 + sql/indexes/combo_encrypted_10000000_up.sql | 17 + sql/indexes/combo_encrypted_1000000_down.sql | 3 + sql/indexes/combo_encrypted_1000000_up.sql | 17 + sql/indexes/combo_encrypted_100000_down.sql | 3 + sql/indexes/combo_encrypted_100000_up.sql | 17 + sql/indexes/combo_encrypted_10000_down.sql | 3 + sql/indexes/combo_encrypted_10000_up.sql | 17 + sql/schema.sql | 78 +++++ src/bin/encrypt_category.rs | 43 +++ src/bin/encrypt_combo.rs | 141 ++++++++ src/lib.rs | 38 +- 26 files changed, 1061 insertions(+), 149 deletions(-) create mode 100644 benches/combo.rs create mode 100644 sql/indexes/category_encrypted_10000000_down.sql create mode 100644 sql/indexes/category_encrypted_10000000_up.sql create mode 100644 sql/indexes/category_encrypted_1000000_down.sql create mode 100644 sql/indexes/category_encrypted_1000000_up.sql create mode 100644 sql/indexes/category_encrypted_100000_down.sql create mode 100644 sql/indexes/category_encrypted_100000_up.sql create mode 100644 sql/indexes/category_encrypted_10000_down.sql create mode 100644 sql/indexes/category_encrypted_10000_up.sql create mode 100644 sql/indexes/combo_encrypted_10000000_down.sql create mode 100644 sql/indexes/combo_encrypted_10000000_up.sql create mode 100644 sql/indexes/combo_encrypted_1000000_down.sql create mode 100644 sql/indexes/combo_encrypted_1000000_up.sql create mode 100644 sql/indexes/combo_encrypted_100000_down.sql create mode 100644 sql/indexes/combo_encrypted_100000_up.sql create mode 100644 sql/indexes/combo_encrypted_10000_down.sql create mode 100644 sql/indexes/combo_encrypted_10000_up.sql create mode 100644 src/bin/encrypt_category.rs create mode 100644 src/bin/encrypt_combo.rs diff --git a/Cargo.toml b/Cargo.toml index 8d305a9..d9cd8e6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,6 +54,14 @@ path = "src/bin/encrypt_ste_vec_small.rs" name = "encrypt_ste_vec_large" path = "src/bin/encrypt_ste_vec_large.rs" +[[bin]] +name = "encrypt_category" +path = "src/bin/encrypt_category.rs" + +[[bin]] +name = "encrypt_combo" +path = "src/bin/encrypt_combo.rs" + [[bench]] name = "ore" harness = false @@ -72,4 +80,8 @@ harness = false [[bench]] name = "json" +harness = false + +[[bench]] +name = "combo" harness = false \ No newline at end of file diff --git a/benches/combo.rs b/benches/combo.rs new file mode 100644 index 0000000..7284d17 --- /dev/null +++ b/benches/combo.rs @@ -0,0 +1,195 @@ +use cipherstash_client::{ + encryption::ScopedCipher, + eql::Identifier, + schema::{column::Index, ColumnConfig, ColumnType}, + AutoStrategy, +}; +use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use dbbenches::{ + bench_assert, extract_indexes_used, init_scoped_cipher, write_metadata_file, EncryptedQuery, + EncryptedQueryBuilder, ScenarioMetadata, +}; +use sqlx::postgres::PgPoolOptions; +use sqlx::types::Json; +use std::sync::Arc; +use tokio::runtime::Runtime; + +// Composite-predicate scenarios over `combo_encrypted_` — a three-column +// table carrying `name` (match + hmac), `age` (ORE), `category` (hmac). Each +// scenario binds ONE encrypted parameter (the name pattern for LIKE) and +// references the other encrypted columns via extractor expressions in +// WHERE / ORDER BY / GROUP BY. That keeps the build_query path simple +// (single-column ColumnConfig) while still exercising composite-predicate +// shapes the EQL query-performance guide §6 describes. +// +// Scenarios: +// +// * bloom_ore_order_limit — bloom (LIKE) + ORE ORDER BY + LIMIT +// "Find the 10 youngest customers whose first name matches a pattern." +// The GIN bloom filter on `name` engages for the LIKE predicate; the +// btree on `eql_v2.ore_block_u64_8_256(age)` engages for the ORDER BY +// because the sort key matches the index expression syntactically +// (hybrid form — same rule as §4 of the perf guide). +// +// * filtered_group_by — bloom (LIKE) + HashAggregate on hmac category +// "Group customers by category, filtered by first-name pattern." Bloom +// filters the input set first; HashAggregate then groups the filtered +// rows by the 32-byte HMAC `category` extractor — small post-filter +// set, small group key, in-memory aggregate. +// +// * top_n_filtered_group_by — same as filtered_group_by with an outer +// `ORDER BY count(*) DESC LIMIT 10`. The dashboard analytic shape: +// "top 10 categories for customers matching X". Always emits 10 rows. + +static QUERY_TEMPLATES: &[(&str, &str)] = &[ + ( + "SELECT id FROM {TABLE} \ + WHERE name LIKE $1 \ + ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10", + "bloom_ore_order_limit", + ), + ( + "SELECT eql_v2.hmac_256(category), count(*) FROM {TABLE} \ + WHERE name LIKE $1 \ + GROUP BY 1", + "filtered_group_by", + ), + ( + "SELECT eql_v2.hmac_256(category), count(*) FROM {TABLE} \ + WHERE name LIKE $1 \ + GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "top_n_filtered_group_by", + ), +]; + +async fn build_query( + cipher: Arc>, + query: &str, + pattern: &str, + table_name: &str, +) -> EncryptedQuery { + // ColumnConfig describes `name`'s indexes — match for LIKE / bloom, + // unique for equality. We pick the match index type explicitly below so + // build_query produces a bloom-filter-shaped ciphertext for the + // parameter. + let column_config = ColumnConfig::build("name") + .casts_as(ColumnType::Text) + .add_index(Index::new_unique()) + .add_index(Index::new_match()); + + let identifier = Identifier::new(table_name, "name"); + + EncryptedQueryBuilder::new(column_config, identifier) + .index_type(Index::new_match().index_type) + .statement(query) + .build_query(pattern, cipher) + .await + .expect("Failed to build encrypted query") +} + +fn criterion_benchmark(c: &mut Criterion) { + let rt = Runtime::new().unwrap(); + + let target_rows = std::env::var("TARGET_ROWS") + .unwrap_or_else(|_| "unknown".to_string()); + + let table_suffix = match target_rows.as_str() { + "10000" | "100000" | "1000000" | "10000000" => format!("_{}", target_rows), + _ => String::new(), + }; + let table_name = format!("combo_encrypted{}", table_suffix); + + let (pool, cipher) = rt.block_on(async { + let database_url = + std::env::var("DATABASE_URL").expect("DATABASE_URL environment variable must be set"); + + let pool = PgPoolOptions::new() + .max_connections(5) + .connect(&database_url) + .await + .expect("Failed to connect to database"); + + let cipher = init_scoped_cipher() + .await + .expect("Failed to initialize ScopedCipher"); + + (pool, cipher) + }); + + // "Bob" is the standard first-name pattern used by match.rs; same here + // for consistency. The bloom index trigrams should match a non-trivial + // fraction of names produced by `Name(EN)`. + let pattern = "Bob"; + + let queries = rt.block_on(async { + let mut queries = Vec::with_capacity(QUERY_TEMPLATES.len()); + for (query_template, _) in QUERY_TEMPLATES { + let query_str = query_template.replace("{TABLE}", &table_name); + let query = build_query(Arc::clone(&cipher), &query_str, pattern, &table_name).await; + queries.push(query); + } + queries + }); + + // Capture per-scenario metadata before the criterion loop. Combo + // scenarios return shapes incompatible with EncryptedQuery::execute + // (which is typed for `Vec<(i32, Json)>`), so we use + // sqlx directly here and in the iter loop below. + let metadata = rt.block_on(async { + let mut out = Vec::with_capacity(queries.len()); + for (i, query) in queries.iter().enumerate() { + let (_, scenario) = QUERY_TEMPLATES[i]; + let bench_id = format!("COMBO/combo/{}/{}", scenario, target_rows); + let explain = query.explain(&pool).await.expect("EXPLAIN failed"); + let indexes_used = extract_indexes_used(&explain); + let parameters = vec![query.parameter_json().expect("serialise parameter")]; + let rows = sqlx::query(&query.statement) + .bind(Json(&query.eql)) + .fetch_all(&pool) + .await + .expect("execute for row-count failed"); + let rows_returned = rows.len() as u64; + out.push(ScenarioMetadata { + id: bench_id, + query: query.statement.clone(), + parameters, + explain, + indexes_used, + rows_returned, + }); + } + out + }); + write_metadata_file("combo", &target_rows, metadata) + .expect("failed to write bench metadata sidecar"); + + let mut group = c.benchmark_group("COMBO"); + group.sample_size(10); + + for (i, query) in queries.into_iter().enumerate() { + let (_, scenario) = QUERY_TEMPLATES[i]; + let exec_id = format!("COMBO/combo/{}/{}", scenario, target_rows); + + let exec_id_inner = exec_id.clone(); + group.bench_function(format!("combo/{}/{}", scenario, target_rows), |b| { + b.to_async(&rt).iter(|| async { + let rows = bench_assert( + sqlx::query(&query.statement) + .bind(Json(&query.eql)) + .fetch_all(&pool) + .await, + &exec_id_inner, + ); + // Drain the result set; we don't care about the exact + // payload shape, only that the query executed and returned + // rows. + black_box(rows.len()); + }) + }); + } + + group.finish(); +} + +criterion_group!(benches, criterion_benchmark); +criterion_main!(benches); diff --git a/benches/group_by.rs b/benches/group_by.rs index aba41f1..de1cc21 100644 --- a/benches/group_by.rs +++ b/benches/group_by.rs @@ -5,53 +5,64 @@ use sqlx::types::Json; use sqlx::Row; use tokio::runtime::Runtime; -// Two scenarios, same query shape, side-by-side encrypted vs plaintext. +// Realistic-cardinality GROUP BY scenarios. Each scenario runs against a +// low-cardinality categorical column (`CAT_001`..`CAT_250`, uniform random, +// ingested by `encrypt_category` / SQL `prepare:category_plaintext`). The +// 250-bucket cardinality is roughly an ISO 3166-1 country code distribution — +// large enough that the hash-aggregate table is interesting, small enough +// that the result-set emission cost stays negligible relative to the per-row +// HMAC work. // -// count_groups_encrypted — `GROUP BY eql_v2.hmac_256(value)` against -// `string_encrypted_` (encrypted column, -// inlinable HMAC extractor). +// Scenarios: // -// count_groups_plaintext — `GROUP BY value` against `string_plaintext_` -// (plain TEXT column, no encryption). The -// baseline: "what would this cost without -// encryption?" The plaintext data is -// high-cardinality `md5(random()::text)` so the -// cardinality matches the encrypted side (fake -// random names give similar ~99% uniqueness). +// * `low_cardinality_groups_encrypted` — `SELECT count(*) FROM (SELECT 1 +// FROM category_encrypted GROUP BY eql_v2.hmac_256(value)) g`. The +// extractor-form `GROUP BY` is the EQL recipe (cheap, in-memory +// HashAggregate); wrapping in `count(*)` emits exactly one row so the +// bench is unaffected by result-set marshalling. Companion plaintext +// scenario uses the same shape on an unindexed TEXT column to give the +// EQL overhead vs bare-PG aggregate baseline. // -// Both queries wrap the GROUP BY in `count(*)`: +// * `top_n_groups_encrypted` — `SELECT eql_v2.hmac_256(value), count(*) +// FROM category_encrypted GROUP BY 1 ORDER BY count(*) DESC LIMIT 10`. +// The dashboard-style "top N categories by frequency" pattern. Returns +// 10 rows always (one per top bucket), so the bench measures the +// HashAggregate + sort, not result emission. Plaintext companion runs +// the same shape on the TEXT column. // -// SELECT count(*) FROM (SELECT 1 FROM tbl GROUP BY ) g -// -// rather than the bare `SELECT count(*) FROM tbl GROUP BY ` form. With -// effectively-unique rows the bare form emits ~one row per input row, so -// wall-clock is bottlenecked by result emission (server-side row -// construction, network round-trip, sqlx deserialisation, the bench's own -// iter-and-sum), not by aggregation work. The subquery wrapper keeps the -// inner HashAggregate identical but emits one row regardless of -// cardinality — both scenarios measure aggregation cost cleanly. -// -// The natural form (`GROUP BY value` against `eql_v2_encrypted`) was dropped -// from this bench earlier. The planner picks `GroupAggregate` + sort against -// the full ~1-2 KB ciphertext payload at scale; the cost is the planner's -// work_mem fallback, not anything EQL controls. See §5 of EQL's -// `docs/reference/query-performance.md`. +// Earlier versions of this bench grouped by the full ~1-2 KB ciphertext +// payload of high-cardinality (`fake::Name`, ~99% unique) data; both the +// time and the result-set shape were dominated by emit cost, which made the +// bench look like "GROUP BY on encrypted data is slow" when really it was +// "emitting millions of rows per query is slow". The current shapes isolate +// what callers actually pay for the GROUP BY itself. // // QUERY_TEMPLATES entries: (sql_template, scenario_name, base_table_name). -// The bench substitutes `{TABLE}` with `_` so -// each scenario runs against its own table family. +// `{TABLE}` is replaced with `_`. static QUERY_TEMPLATES: &[(&str, &str, &str)] = &[ ( "SELECT count(*) FROM \ (SELECT 1 FROM {TABLE} GROUP BY eql_v2.hmac_256(value)) g", - "count_groups_encrypted", - "string_encrypted", + "low_cardinality_groups_encrypted", + "category_encrypted", ), ( "SELECT count(*) FROM \ (SELECT 1 FROM {TABLE} GROUP BY value) g", - "count_groups_plaintext", - "string_plaintext", + "low_cardinality_groups_plaintext", + "category_plaintext", + ), + ( + "SELECT eql_v2.hmac_256(value), count(*) FROM {TABLE} \ + GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "top_n_groups_encrypted", + "category_encrypted", + ), + ( + "SELECT value, count(*) FROM {TABLE} \ + GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "top_n_groups_plaintext", + "category_plaintext", ), ]; @@ -126,7 +137,7 @@ fn criterion_benchmark(c: &mut Criterion) { group.sample_size(10); for (bench_id, query_str) in scenarios { - // bench_id is e.g. "GROUP_BY/group_by/count_groups_encrypted/100000". + // bench_id is e.g. "GROUP_BY/group_by/low_cardinality_groups_encrypted/100000". // criterion's group.bench_function joins the group name ("GROUP_BY") // with the function name we pass; strip the leading "GROUP_BY/" so // it doesn't get doubled. @@ -141,8 +152,15 @@ fn criterion_benchmark(c: &mut Criterion) { sqlx::query(&query_str).fetch_all(&pool).await, &scenario_id, ); - // Drain the single-row result to force the aggregation to materialise. - black_box(rows.iter().map(|r| r.get::(0)).sum::()) + // Drain results to force aggregation to materialise. The + // count-wrapped scenarios return a single i64; the top-N + // scenarios return up to 10 (group-key bytes, count) rows + // and we just sum the counts. + if rows.len() == 1 { + black_box(rows[0].get::(0)); + } else { + black_box(rows.iter().map(|r| r.get::(1)).sum::()); + } }) }); } diff --git a/benches/ore.rs b/benches/ore.rs index 1af9d9c..7a1aa5b 100644 --- a/benches/ore.rs +++ b/benches/ore.rs @@ -20,33 +20,35 @@ use tokio::runtime::Runtime; // range predicates on `eql_v2_encrypted` reduce to // `eql_v2.ore_block_u64_8_256(a) eql_v2.ore_block_u64_8_256(b)` and // structurally match a functional btree index on -// `eql_v2.ore_block_u64_8_256(value)` — so the natural-form scenarios below -// engage the index without rewriting. +// `eql_v2.ore_block_u64_8_256(value)`. Whether the planner *uses* that index +// depends on predicate selectivity — see the two scenario families below. // -// Ordered range queries use the **hybrid form**: natural-form WHERE, extractor -// ORDER BY (`ORDER BY eql_v2.ore_block_u64_8_256(val)`). The sort key matches -// the functional index expression, so the planner streams rows out of the -// index in order — plain Index Scan, no Sort node. See §4 of the EQL -// query-performance guide for the underlying rule. +// **Non-selective baselines** (threshold 5000 against `Faker.fake::()` +// data — uniform across the full i32 range, so 5000 sits very close to the +// median, giving ~50% selectivity). With a LIMIT, the planner correctly picks +// `Seq Scan + LIMIT` over a bitmap index scan: at 50% selectivity it expects +// to find LIMIT matches within the first handful of pages, cheaper than the +// index-then-heap-fetch roundtrip. So these scenarios show empty +// `indexes_used: []` in the metadata sidecar — which is the planner choosing +// correctly, not the index failing to engage. The scenarios remain in the +// suite because they're the natural form a caller would write, and the +// timing tells us what that case actually costs. // -// Two ordered scenarios that previously sat alongside the hybrid one are no -// longer benched: +// **Selective scenarios** (thresholds 2_140_000_000 / 2_147_000_000 — out at +// the i32 tail). Selectivity drops to ~0.17% and ~0.011% respectively, so the +// planner switches to Index Scan: walking from the top of the b-tree and +// returning the first LIMIT rows is cheaper than scanning the whole table. +// These demonstrate the same functional-btree path the perf guide §4 describes, +// in a regime where the planner has reason to prefer it. // -// * The natural-form variant (`ORDER BY value`) is the §4 sort-key trap — -// the planner can't satisfy the ORDER BY from the index, so it inserts a -// Top-N Sort over the full post-WHERE bitmap. The cost scales linearly -// with the number of rows passing WHERE: at 100k it's ~880 ms, at 1M -// it's ~8.8 s. Documented in the guide, so the bench doesn't need to -// keep proving it. -// -// * The fully-extractor variant (`WHERE ore_block(val) < ore_block($1) -// ORDER BY ore_block(val)`) inlines to the same predicate shape as the -// hybrid, so its plan and timing are identical — pure redundancy. -// -// The equality scenario from the previous bench (`WHERE value = $1`) is gone: -// the integer column carries only `ob`, not `hm`, so post-2.3 equality returns -// NULL → zero rows. See exact.rs for the meaningful equality benches. +// **Hybrid ordered range** uses extractor ORDER BY (`ORDER BY +// eql_v2.ore_block_u64_8_256(val)`) matching the functional index expression — +// rows stream out of the index already sorted (Index Scan, no Sort node). The +// natural-form variant (`ORDER BY value`) is the §4 sort-key trap and was +// dropped from this bench in an earlier pass — its cost (Top-N Sort over the +// full post-WHERE bitmap) is documented in the guide already. static QUERY_TEMPLATES: &[(&str, i32, &str)] = &[ + // ── Non-selective baselines (≈50% selectivity → Seq Scan + LIMIT) ── ( "SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 10", 5000, @@ -67,6 +69,23 @@ static QUERY_TEMPLATES: &[(&str, i32, &str)] = &[ 5000, "range_lt_100", ), + // ── Selective predicates (~0.17% / ~0.011% selectivity → Index Scan) ── + // 2_140_000_000 sits 7.5M values short of i32::MAX — ~0.17% of the i32 + // range matches `value > 2_140_000_000` on uniform random data. + ( + "SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 100", + 2_140_000_000, + "range_selective_gt_100", + ), + // 2_147_000_000 sits 483k values short of i32::MAX — ~0.011% selectivity. + // Even at 10k rows this returns ~1 row, but the planner can decide that + // before scanning; index engages reliably across tiers. + ( + "SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 10", + 2_147_000_000, + "range_highly_selective_gt_10", + ), + // ── Hybrid ordered range (extractor in ORDER BY) ── ( "SELECT id,value::jsonb FROM {TABLE} \ WHERE value < $1 \ diff --git a/mise.toml b/mise.toml index f1a93f5..7445db1 100644 --- a/mise.toml +++ b/mise.toml @@ -283,6 +283,70 @@ run = "mise run prepare:_table integer_encrypted encrypt_int $1" description = "Prepare json_ste_vec_small_encrypted table with target row count" run = "mise run prepare:_table json_ste_vec_small_encrypted encrypt_ste_vec_small $1" +[tasks."prepare:category_encrypted"] +description = "Prepare category_encrypted_ table with ~250 low-cardinality categorical values" +run = "mise run prepare:_table category_encrypted encrypt_category $1" + +[tasks."prepare:combo_encrypted"] +description = "Prepare combo_encrypted_ table with three encrypted columns (name + age + category)" +run = "mise run prepare:_table combo_encrypted encrypt_combo $1" + +[tasks."prepare:category_plaintext"] +description = "Prepare category_plaintext_ table with ~250 low-cardinality categorical strings (CAT_001..CAT_250, uniform random)" +depends = ["postgres"] +run = """ +#!/usr/bin/env bash +set -e + +TARGET_ROWS="$1" + +if [ -z "$TARGET_ROWS" ]; then + echo "Error: target row count argument required" + echo "Usage: mise run prepare:category_plaintext " + exit 1 +fi + +case "$TARGET_ROWS" in + 10000|100000|1000000|10000000) + ;; + *) + echo "Error: TARGET_ROWS must be one of: 10000, 100000, 1000000, 10000000" + exit 1 + ;; +esac + +TABLE_NAME="category_plaintext_${TARGET_ROWS}" + +echo "Waiting for PostgreSQL to be ready..." +until docker exec ore-benches-postgres pg_isready -U postgres > /dev/null 2>&1; do + sleep 1 +done + +CURRENT_ROWS=$(docker exec ore-benches-postgres psql -U postgres -d postgres -t -c "SELECT COUNT(*) FROM $TABLE_NAME;" | tr -d ' ') + +echo "Current rows in $TABLE_NAME: $CURRENT_ROWS" +echo "Target rows: $TARGET_ROWS" + +if [ "$CURRENT_ROWS" -ge "$TARGET_ROWS" ]; then + echo "Table already has $CURRENT_ROWS rows (>= $TARGET_ROWS). No action needed." + exit 0 +fi + +ROWS_TO_INSERT=$((TARGET_ROWS - CURRENT_ROWS)) +echo "Inserting $ROWS_TO_INSERT random category values (CAT_001..CAT_250, uniform)..." + +# `format('CAT_%s', lpad(((random()*249)::int + 1)::text, 3, '0'))` matches the +# Rust FakeCategory output `format!("CAT_{:03}", n)`. 250 distinct buckets. +docker exec ore-benches-postgres psql -v ON_ERROR_STOP=1 -U postgres -d postgres -c " + INSERT INTO $TABLE_NAME (value) + SELECT 'CAT_' || lpad(((random() * 249)::int + 1)::text, 3, '0') + FROM generate_series(1, $ROWS_TO_INSERT) g; +" + +FINAL_ROWS=$(docker exec ore-benches-postgres psql -U postgres -d postgres -t -c "SELECT COUNT(*) FROM $TABLE_NAME;" | tr -d ' ') +echo "Preparation complete! Final row count: $FINAL_ROWS" +""" + [tasks."prepare:string_plaintext"] description = "Prepare string_plaintext_ table with random high-cardinality strings (md5)" depends = ["postgres"] @@ -440,7 +504,7 @@ echo "Benchmark complete! Results written to $OUTPUT_FILE" """ [tasks."bench:query:group_by"] -description = "Run GROUP BY query benchmark" +description = "Run GROUP BY query benchmark (low-cardinality categorical data + plaintext baseline)" run = """ #!/usr/bin/env bash set -e @@ -458,11 +522,11 @@ if ! [[ "$TARGET_ROWS" =~ ^[0-9]+$ ]]; then exit 1 fi -echo "Preparing string_encrypted table with $TARGET_ROWS rows..." -mise run prepare:string_encrypted "$TARGET_ROWS" +echo "Preparing category_encrypted table with $TARGET_ROWS rows (~250 distinct buckets)..." +mise run prepare:category_encrypted "$TARGET_ROWS" -echo "Preparing string_plaintext table with $TARGET_ROWS rows (plaintext baseline)..." -mise run prepare:string_plaintext "$TARGET_ROWS" +echo "Preparing category_plaintext table with $TARGET_ROWS rows (plaintext baseline)..." +mise run prepare:category_plaintext "$TARGET_ROWS" echo "Cleaning old benchmark data..." rm -rf target/criterion/data/main/GROUP_BY target/criterion/reports/GROUP_BY @@ -475,6 +539,39 @@ TARGET_ROWS="$TARGET_ROWS" cargo criterion --bench group_by --message-format jso echo "Benchmark complete! Results written to $OUTPUT_FILE" """ +[tasks."bench:query:combo"] +description = "Run COMBO query benchmark (composite predicates on combo_encrypted)" +run = """ +#!/usr/bin/env bash +set -e + +TARGET_ROWS="$1" + +if [ -z "$TARGET_ROWS" ]; then + echo "Error: target row count argument required" + echo "Usage: mise run bench:query:combo " + exit 1 +fi + +if ! [[ "$TARGET_ROWS" =~ ^[0-9]+$ ]]; then + echo "Error: target row count must be a positive integer" + exit 1 +fi + +echo "Preparing combo_encrypted table with $TARGET_ROWS rows..." +mise run prepare:combo_encrypted "$TARGET_ROWS" + +echo "Cleaning old benchmark data..." +rm -rf target/criterion/data/main/COMBO target/criterion/reports/COMBO + +echo "Running COMBO query benchmark..." +mkdir -p results/query +OUTPUT_FILE="results/query/combo_rows_${TARGET_ROWS}.json" +TARGET_ROWS="$TARGET_ROWS" cargo criterion --bench combo --message-format json > "$OUTPUT_FILE" + +echo "Benchmark complete! Results written to $OUTPUT_FILE" +""" + [tasks."bench:query:json"] description = "Run JSON / ste_vec query benchmark (field equality / extraction / GROUP BY)" run = """ @@ -519,7 +616,7 @@ ROW_COUNTS=(10000 100000 1000000 10000000) echo "========================================" echo "Starting comprehensive benchmark suite" echo "Row counts: ${ROW_COUNTS[*]}" -echo "Benchmarks: exact, match, ore, group_by" +echo "Benchmarks: exact, match, ore, group_by, combo" echo "(bench:query:json is parked until cipherstash-client emits the" echo " post-2.3 ste_vec shape — run it directly when ready.)" echo "========================================" @@ -541,14 +638,18 @@ for ROWS in "${ROW_COUNTS[@]}"; do mise run bench:query:match "$ROWS" echo "" - echo "[3/4] Running ORE benchmark with $ROWS rows..." + echo "[3/5] Running ORE benchmark with $ROWS rows..." mise run bench:query:ore "$ROWS" echo "" - echo "[4/4] Running GROUP BY benchmark with $ROWS rows..." + echo "[4/5] Running GROUP BY benchmark with $ROWS rows..." mise run bench:query:group_by "$ROWS" echo "" + echo "[5/5] Running COMBO benchmark with $ROWS rows..." + mise run bench:query:combo "$ROWS" + echo "" + echo "Completed benchmarks for $ROWS rows" echo "" done diff --git a/report_benchmarks.py b/report_benchmarks.py index 73b5600..f427522 100755 --- a/report_benchmarks.py +++ b/report_benchmarks.py @@ -270,6 +270,14 @@ def get_query_sql_and_param(self, query_type: str, query_name: str) -> Tuple[str "SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 LIMIT 100", "5000" ), + "range_selective_gt_100": ( + "SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 100", + "2140000000" + ), + "range_highly_selective_gt_10": ( + "SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 10", + "2147000000" + ), "range_lt_hybrid_ordered_10": ( "SELECT id,value::jsonb FROM {TABLE} " "WHERE value < $1 " @@ -278,15 +286,45 @@ def get_query_sql_and_param(self, query_type: str, query_name: str) -> Tuple[str ) }, "GROUP_BY": { - "count_groups_encrypted": ( + "low_cardinality_groups_encrypted": ( "SELECT count(*) FROM " "(SELECT 1 FROM {TABLE} GROUP BY eql_v2.hmac_256(value)) g", "" ), - "count_groups_plaintext": ( + "low_cardinality_groups_plaintext": ( "SELECT count(*) FROM " "(SELECT 1 FROM {TABLE} GROUP BY value) g", "" + ), + "top_n_groups_encrypted": ( + "SELECT eql_v2.hmac_256(value), count(*) FROM {TABLE} " + "GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "" + ), + "top_n_groups_plaintext": ( + "SELECT value, count(*) FROM {TABLE} " + "GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "" + ) + }, + "COMBO": { + "bloom_ore_order_limit": ( + "SELECT id FROM {TABLE} " + "WHERE name LIKE $1 " + "ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10", + "Bob" + ), + "filtered_group_by": ( + "SELECT eql_v2.hmac_256(category), count(*) FROM {TABLE} " + "WHERE name LIKE $1 " + "GROUP BY 1", + "Bob" + ), + "top_n_filtered_group_by": ( + "SELECT eql_v2.hmac_256(category), count(*) FROM {TABLE} " + "WHERE name LIKE $1 " + "GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "Bob" ) }, "JSON": { @@ -374,6 +412,32 @@ def get_query_description(self, query_type: str, query_name: str) -> Tuple[str, "Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. " "Query: WHERE value < 5000 LIMIT 100." ), + "range_selective_gt_100": ( + "Selective range query (~0.17% selectivity) returning up to 100 results", + "Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. " + "Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. " + "Query: WHERE value > 2_140_000_000 LIMIT 100. The threshold sits 7.5M " + "values below `i32::MAX`, so on `Faker.fake::()` uniform random data " + "only ~0.17% of rows match. At this selectivity the planner switches from " + "the Seq Scan + LIMIT shape it picked for the non-selective baselines " + "(`range_gt_*` with threshold 5000) to Index Scan — walking the b-tree " + "from the top and returning the first 100 matches is cheaper than " + "scanning the whole table. This is the same functional-btree path the " + "EQL query-performance guide §4 documents; the non-selective baselines " + "demonstrate that the planner correctly *avoids* the index when " + "selectivity is too low for the lookup to win." + ), + "range_highly_selective_gt_10": ( + "Highly selective range query (~0.011% selectivity) returning up to 10 results", + "Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. " + "Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. " + "Query: WHERE value > 2_147_000_000 LIMIT 10. The threshold sits 483k " + "values below `i32::MAX`. Even at 10k rows the planner picks Index Scan: " + "with 0.011% selectivity it expects ~1 matching row, which it finds at " + "the top of the b-tree in a single page read. Useful as the upper-bound " + "demonstration of how cheap a selective range lookup becomes when the " + "functional index engages." + ), "range_lt_hybrid_ordered_10": ( "Ordered range query (hybrid form: natural WHERE, extractor ORDER BY)", "Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. " @@ -386,40 +450,85 @@ def get_query_description(self, query_type: str, query_name: str) -> Tuple[str, ) }, "GROUP_BY": { - "count_groups_encrypted": ( - "GROUP BY in extractor form on `eql_v2.hmac_256(value)`, " + "low_cardinality_groups_encrypted": ( + "Low-cardinality GROUP BY (~250 buckets) on `eql_v2.hmac_256(value)`, " "wrapped in `count(*)` to isolate aggregation cost from emit cost", - "Table: `string_encrypted_{rows}` with encrypted string values " - "(carrying an `hm` HMAC term, configured via the `unique` search index). " - "Index: no index drives `GROUP BY` directly — hash aggregation is " - "in-memory. The extractor's 32-byte HMAC group key fits in default " - "`work_mem`, so the planner picks `HashAggregate` reliably across " - "deployments. **Why the subquery wrapper.** The bench data is " - "`fake::name::Name` — effectively unique per row, so a bare " - "`SELECT count(*) FROM tbl GROUP BY eql_v2.hmac_256(value)` emits ~one " - "row per input row. Wall-clock time on that shape is dominated by result " - "emission (server-side row construction, network round-trip, sqlx " - "deserialisation, bench iter-and-sum), not by the aggregation work the " - "recipe is actually about. Wrapping the GROUP BY in `count(*)` keeps the " - "inner HashAggregate identical but emits a single row, so the bench " - "measures aggregation cost. The companion `count_groups_plaintext` " - "scenario runs the same query shape against an unencrypted column for " - "comparison. Natural-form `GROUP BY value` against an encrypted column " - "was removed from this bench in an earlier pass because the planner picks " - "`GroupAggregate` + sort against the full ~1-2 KB ciphertext payload at " - "scale — see §5 of the EQL query-performance guide." + "Table: `category_encrypted_{rows}` with encrypted categorical values " + "(`CAT_001`..`CAT_250`, uniform random — ~250 distinct buckets). The " + "encrypted value carries an `hm` HMAC term via the `unique` search " + "index. **Index: hash index on `eql_v2.hmac_256(value)`, but `GROUP BY` " + "doesn't engage it directly** — the planner picks `HashAggregate`, " + "building an in-memory hash table keyed on the 32-byte HMAC. With " + "only 250 distinct keys the hash table fits comfortably in default " + "`work_mem`. The outer `count(*)` keeps the result-set emission at " + "exactly one row, so wall-clock time tracks aggregation cost. The " + "companion `low_cardinality_groups_plaintext` scenario runs the same " + "query shape against an unindexed TEXT column for a baseline." + ), + "low_cardinality_groups_plaintext": ( + "Plaintext baseline: low-cardinality GROUP BY on a plain TEXT column, " + "same query shape as the encrypted scenario", + "Table: `category_plaintext_{rows}` with the same `CAT_001`..`CAT_250` " + "distribution (uniform random, populated by SQL via " + "`mise run prepare:category_plaintext` — no encryption-client " + "dependency). Index: none. The wall-clock delta between this and " + "`low_cardinality_groups_encrypted` is the EQL recipe's overhead " + "relative to a bare-PG aggregate at the same row count and cardinality." + ), + "top_n_groups_encrypted": ( + "Dashboard analytic: top 10 categories by frequency, EQL recipe form", + "Table: `category_encrypted_{rows}` (same data as the " + "`low_cardinality_*` scenarios above). Query: " + "`SELECT eql_v2.hmac_256(value), count(*) FROM tbl GROUP BY 1 " + "ORDER BY count(*) DESC LIMIT 10`. The bench always emits 10 rows " + "regardless of input size, so the cost is dominated by the inner " + "HashAggregate (per-row HMAC + hash-table insert) plus a tiny " + "sort over the 250 group entries. Realistic shape for analytics " + "queries that surface the most common categories in an encrypted " + "dataset." + ), + "top_n_groups_plaintext": ( + "Plaintext baseline: top 10 categories by frequency on a plain TEXT " + "column", + "Table: `category_plaintext_{rows}`. Same query shape as the " + "encrypted top-N scenario; the delta is the EQL recipe's overhead " + "for the same shape on the same cardinality data." + ) + }, + "COMBO": { + "bloom_ore_order_limit": ( + "Composite predicate: filter by name pattern (bloom), order by age " + "(ORE), limit 10", + "Table: `combo_encrypted_{rows}` with three encrypted columns — " + "`name` (match + hmac), `age` (ORE), `category` (hmac). Indexes: " + "functional GIN on `eql_v2.bloom_filter(name)`, functional btree on " + "`eql_v2.ore_block_u64_8_256(age)`, functional hash on " + "`eql_v2.hmac_256(category)`. **Two indexes engage on this scenario**: " + "the GIN bloom filter for the `LIKE` predicate, and the ORE btree for " + "the `ORDER BY` (sort-key matches the index expression syntactically — " + "hybrid form per §4 of the perf guide). The planner streams rows out " + "of the bloom-filtered set already sorted by age, takes the first 10, " + "and stops." + ), + "filtered_group_by": ( + "Composite predicate: filter by name pattern, GROUP BY category", + "Table: `combo_encrypted_{rows}`. Query: `SELECT eql_v2.hmac_256(category), " + "count(*) FROM tbl WHERE name LIKE $1 GROUP BY 1`. Bloom filter on " + "`name` filters the input set; HashAggregate then groups the small " + "post-filter set by the 32-byte category HMAC. With ~0.01-0.1% of " + "names matching a typical bloom pattern and 250 category buckets, the " + "aggregate stage is essentially free — the cost is bloom filter scan " + "plus per-matching-row HMAC." ), - "count_groups_plaintext": ( - "Plaintext baseline: GROUP BY on a plain TEXT column, same query shape " - "as the encrypted scenario", - "Table: `string_plaintext_{rows}` with unencrypted high-cardinality " - "random strings (`md5(random()::text || ordinal)`). Populated via SQL " - "by `mise run prepare:string_plaintext` — no encryption-client " - "dependency. Index: none. Same `SELECT count(*) FROM (SELECT 1 ... " - "GROUP BY value) g` shape as the encrypted scenario, so the wall-clock " - "delta between this and `count_groups_encrypted` is the EQL recipe's " - "overhead relative to a bare-PG aggregate on a TEXT column at the same " - "row count and cardinality." + "top_n_filtered_group_by": ( + "Dashboard analytic: top 10 categories for customers matching a name " + "pattern", + "Table: `combo_encrypted_{rows}`. Query: `SELECT eql_v2.hmac_256(category), " + "count(*) FROM tbl WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) " + "DESC LIMIT 10`. Same shape as `filtered_group_by` with an outer " + "Top-N sort + LIMIT 10. Realistic analytics shape for surfacing the " + "categories that contain the most customers matching a filter, " + "without revealing the underlying names or category labels." ) }, "JSON": { @@ -524,33 +633,47 @@ def get_table_indexes(self, table_name: str) -> Optional[str]: return None def generate_report(self): - """Generate the full benchmark report""" + """Generate the report as an index page plus one per-query-type page. + + Each per-type page lives at `report/.md` (e.g. `exact.md`); the + top-level `BENCHMARK_REPORT.md` is the index and links into them. + """ + query_types = sorted(set(r.query_type for r in self.query_results)) + + # Per-query-type pages first so the index can link to them. + scenario_pages: Dict[str, str] = {} + for query_type in query_types: + page_name = f"{query_type.lower()}.md" + page_path = self.output_file.parent / page_name + with open(page_path, 'w') as pf: + self._write_query_type_page_content(pf, query_type) + scenario_pages[query_type] = page_name + with open(self.output_file, 'w') as f: - self._write_header(f) + self._write_header(f, scenario_pages) self._write_ingest_section(f) - self._write_query_sections(f) + self._write_query_overview(f, scenario_pages) self._write_footer(f) - def _write_header(self, f): + def _write_header(self, f, scenario_pages: Dict[str, str]): f.write("# Benchmark Report\n\n") - f.write("This report summarizes the performance benchmarks for encrypted database operations.\n\n") + f.write("This report summarises the performance benchmarks for encrypted database operations. " + "Per-query-type detail lives on its own page — click through from the " + "Query Performance section below.\n\n") f.write("## Table of Contents\n\n") f.write("1. [Ingest Throughput](#ingest-throughput)\n") - + # Add subsections for each ingest type ingest_types = sorted(set(r.bench_type for r in self.ingest_results)) for it in ingest_types: title = it.replace('_', ' ').title() anchor = it.replace('_', '-') f.write(f" - [{title}](#{anchor})\n") - + f.write("2. [Query Performance](#query-performance)\n") - - # Add subsections for each query type - query_types = set(r.query_type for r in self.query_results) - for qt in sorted(query_types): - f.write(f" - [{qt} Queries](#{qt.lower()}-queries)\n") - + for qt in sorted(scenario_pages.keys()): + f.write(f" - [{qt} Queries]({scenario_pages[qt]})\n") + f.write("\n---\n\n") def _write_ingest_section(self, f): @@ -623,16 +746,17 @@ def _create_ingest_throughput_chart(self, results: List[IngestResult], bench_typ ax.set_xticks(range(len(records))) ax.set_xticklabels([f"{r:,}" for r in records]) ax.grid(axis='y', alpha=0.3) - + ax.set_ylim(bottom=0) + # Add "larger is better" annotation ax.text(0.98, 0.98, 'larger is better ↑', transform=ax.transAxes, fontsize=11, verticalalignment='top', horizontalalignment='right', bbox=dict(boxstyle='round', facecolor='wheat', alpha=0.5)) - + plt.tight_layout() plt.savefig(output_path, dpi=100, bbox_inches='tight') plt.close() - + def _create_ingest_time_chart(self, results: List[IngestResult], bench_type: str, output_path: Path): """Create a bar chart for total ingest time""" fig, ax = plt.subplots(figsize=(10, 6)) @@ -647,7 +771,8 @@ def _create_ingest_time_chart(self, results: List[IngestResult], bench_type: str ax.set_xticks(range(len(records))) ax.set_xticklabels([f"{r:,}" for r in records]) ax.grid(axis='y', alpha=0.3) - + ax.set_ylim(bottom=0) + # Add "smaller is better" annotation ax.text(0.98, 0.98, 'smaller is better ↓', transform=ax.transAxes, fontsize=11, verticalalignment='top', horizontalalignment='right', @@ -712,7 +837,8 @@ def _create_comparison_throughput_chart(self, comparison_data: Dict[str, IngestR ax.set_xticks(range(len(bench_types))) ax.set_xticklabels(labels, rotation=45, ha='right') ax.grid(axis='y', alpha=0.3) - + ax.set_ylim(bottom=0) + # Add "larger is better" annotation ax.text(0.98, 0.98, 'larger is better ↑', transform=ax.transAxes, fontsize=11, verticalalignment='top', horizontalalignment='right', @@ -746,7 +872,8 @@ def _create_comparison_time_chart(self, comparison_data: Dict[str, IngestResult] ax.set_xticks(range(len(bench_types))) ax.set_xticklabels(labels, rotation=45, ha='right') ax.grid(axis='y', alpha=0.3) - + ax.set_ylim(bottom=0) + # Add "smaller is better" annotation ax.text(0.98, 0.98, 'smaller is better ↓', transform=ax.transAxes, fontsize=11, verticalalignment='top', horizontalalignment='right', @@ -756,43 +883,74 @@ def _create_comparison_time_chart(self, comparison_data: Dict[str, IngestResult] plt.savefig(output_path, dpi=100, bbox_inches='tight') plt.close() - def _write_query_sections(self, f): + def _write_query_overview(self, f, scenario_pages: Dict[str, str]): + """Brief overview of the per-query-type pages on the index file. + + Picks the bits most useful for orienting a reader before they click + through: which scenarios live under each type, which row-count tiers + ran, and what the median timing looks like at the largest tier so the + index gives an immediate sense of where the costs live. + """ f.write("## Query Performance\n\n") - f.write("This section measures query performance across different data set sizes. " - "Each query is tested with and without decryption of results.\n\n") - - # Group by query type (EXACT, MATCH, ORE) - query_types = sorted(set(r.query_type for r in self.query_results)) - - for query_type in query_types: - self._write_query_type_section(f, query_type) + f.write("Per-query-type detail is broken out into separate pages — click into a " + "scenario family for the SQL, per-tier timings, the indexes the planner " + "picked, and the EXPLAIN plan tree.\n\n") + f.write("| Query Type | Scenarios | Tiers | Largest-tier median (no decrypt) | Detail |\n") + f.write("|-|-|-|-|-|\n") + for qt in sorted(scenario_pages.keys()): + type_results = [r for r in self.query_results if r.query_type == qt] + if not type_results: + continue + scenarios = sorted(set(r.query_name for r in type_results)) + tiers = sorted(set(r.row_count for r in type_results)) + tiers_str = ", ".join(f"{t:,}" for t in tiers) + scenarios_str = ", ".join(f"`{s}`" for s in scenarios) + # Median timing at the largest tier, averaged across scenarios for + # a single-number summary. Not a substitute for the detail page; + # just enough to flag "this family runs in seconds" vs "this one + # is sub-millisecond". + biggest = max(tiers) + biggest_results = [r for r in type_results + if r.row_count == biggest and not r.decrypt] + if biggest_results: + med_ns = sum(r.median_ns for r in biggest_results) / len(biggest_results) + med_str = self.format_time(med_ns, include_indicator=False) + else: + med_str = "—" + page = scenario_pages[qt] + f.write(f"| {qt} | {scenarios_str} | {tiers_str} | {med_str} | [open]({page}) |\n") + f.write("\n") - def _write_query_type_section(self, f, query_type: str): - f.write(f"### {query_type} Queries\n\n") - - # Get all unique query names for this type + def _write_query_type_page_content(self, f, query_type: str): + """Write a self-contained per-query-type page.""" + f.write(f"# {query_type} Queries\n\n") + f.write(f"[← Back to overview](./{self.output_file.name})\n\n") + f.write("Per-tier query performance. Each scenario lists its SQL, the indexes " + "available on the target table, the indexes the planner actually picked " + "per tier, the timing table, and the full EXPLAIN plan in a collapsed " + "block.\n\n") type_results = [r for r in self.query_results if r.query_type == query_type] query_names = sorted(set(r.query_name for r in type_results)) - for query_name in query_names: - self._write_query_subsection(f, query_type, query_name) + self._write_query_subsection(f, query_type, query_name, heading="##") - def _write_query_subsection(self, f, query_type: str, query_name: str): + def _write_query_subsection(self, f, query_type: str, query_name: str, + heading: str = "##"): # Get results for this specific query - results = [r for r in self.query_results + results = [r for r in self.query_results if r.query_type == query_type and r.query_name == query_name] - + if not results: return - + # Sort by row count results.sort(key=lambda x: (x.row_count, x.decrypt)) - + # Get description description, table_info = self.get_query_description(query_type, query_name) sql_query, param = self.get_query_sql_and_param(query_type, query_name) - - f.write(f"#### {query_name}\n\n") + + f.write(f"{heading} {query_name}\n\n") f.write(f"**Description:** {description}\n\n") # Add SQL query and parameter @@ -807,18 +965,24 @@ def _write_query_subsection(self, f, query_type: str, query_name: str): if results: # Determine table name based on query type / scenario. sample_row_count = results[0].row_count - if query_type == "GROUP_BY" and query_name == "count_groups_plaintext": - # Plaintext baseline runs against a plain TEXT column — no + if query_type == "GROUP_BY" and query_name.endswith("_plaintext"): + # Plaintext baselines run against a plain TEXT column — no # functional EQL indexes; lookup will return None and the # Indexes block will be skipped. - table_name = f"string_plaintext_{sample_row_count}" - elif query_type in ["EXACT", "MATCH", "GROUP_BY"]: - # String-encrypted scenarios all run against the same table family. + table_name = f"category_plaintext_{sample_row_count}" + elif query_type == "GROUP_BY": + # Encrypted GROUP BY scenarios run against the categorical + # 250-bucket table family. + table_name = f"category_encrypted_{sample_row_count}" + elif query_type in ["EXACT", "MATCH"]: + # String-encrypted scenarios. table_name = f"string_encrypted_{sample_row_count}" elif query_type == "ORE": table_name = f"integer_encrypted_{sample_row_count}" elif query_type == "JSON": table_name = f"json_ste_vec_small_encrypted_{sample_row_count}" + elif query_type == "COMBO": + table_name = f"combo_encrypted_{sample_row_count}" else: table_name = "" @@ -958,9 +1122,10 @@ def _create_query_chart(self, results: List[QueryResult], query_type: str, ax.set_ylabel('Query Time (ms)', fontsize=12) ax.set_title(f'{query_type} - {query_name}', fontsize=14, fontweight='bold') ax.set_xscale('log') + ax.set_ylim(bottom=0) ax.grid(True, alpha=0.3) ax.legend(fontsize=10) - + # Format x-axis labels ax.set_xticks(row_counts) ax.set_xticklabels([f"{r:,}" for r in row_counts]) diff --git a/sql/indexes/category_encrypted_10000000_down.sql b/sql/indexes/category_encrypted_10000000_down.sql new file mode 100644 index 0000000..865c7e1 --- /dev/null +++ b/sql/indexes/category_encrypted_10000000_down.sql @@ -0,0 +1 @@ +DROP INDEX IF EXISTS category_encrypted_10000000_hash_index; diff --git a/sql/indexes/category_encrypted_10000000_up.sql b/sql/indexes/category_encrypted_10000000_up.sql new file mode 100644 index 0000000..6931b2a --- /dev/null +++ b/sql/indexes/category_encrypted_10000000_up.sql @@ -0,0 +1,5 @@ +CREATE INDEX +category_encrypted_10000000_hash_index +ON category_encrypted_10000000 using hash ( + eql_v2.hmac_256(value) +); diff --git a/sql/indexes/category_encrypted_1000000_down.sql b/sql/indexes/category_encrypted_1000000_down.sql new file mode 100644 index 0000000..fe3e097 --- /dev/null +++ b/sql/indexes/category_encrypted_1000000_down.sql @@ -0,0 +1 @@ +DROP INDEX IF EXISTS category_encrypted_1000000_hash_index; diff --git a/sql/indexes/category_encrypted_1000000_up.sql b/sql/indexes/category_encrypted_1000000_up.sql new file mode 100644 index 0000000..45da055 --- /dev/null +++ b/sql/indexes/category_encrypted_1000000_up.sql @@ -0,0 +1,5 @@ +CREATE INDEX +category_encrypted_1000000_hash_index +ON category_encrypted_1000000 using hash ( + eql_v2.hmac_256(value) +); diff --git a/sql/indexes/category_encrypted_100000_down.sql b/sql/indexes/category_encrypted_100000_down.sql new file mode 100644 index 0000000..7d8452b --- /dev/null +++ b/sql/indexes/category_encrypted_100000_down.sql @@ -0,0 +1 @@ +DROP INDEX IF EXISTS category_encrypted_100000_hash_index; diff --git a/sql/indexes/category_encrypted_100000_up.sql b/sql/indexes/category_encrypted_100000_up.sql new file mode 100644 index 0000000..9fa9081 --- /dev/null +++ b/sql/indexes/category_encrypted_100000_up.sql @@ -0,0 +1,5 @@ +CREATE INDEX +category_encrypted_100000_hash_index +ON category_encrypted_100000 using hash ( + eql_v2.hmac_256(value) +); diff --git a/sql/indexes/category_encrypted_10000_down.sql b/sql/indexes/category_encrypted_10000_down.sql new file mode 100644 index 0000000..5eadf4a --- /dev/null +++ b/sql/indexes/category_encrypted_10000_down.sql @@ -0,0 +1 @@ +DROP INDEX IF EXISTS category_encrypted_10000_hash_index; diff --git a/sql/indexes/category_encrypted_10000_up.sql b/sql/indexes/category_encrypted_10000_up.sql new file mode 100644 index 0000000..49e884c --- /dev/null +++ b/sql/indexes/category_encrypted_10000_up.sql @@ -0,0 +1,5 @@ +CREATE INDEX +category_encrypted_10000_hash_index +ON category_encrypted_10000 using hash ( + eql_v2.hmac_256(value) +); diff --git a/sql/indexes/combo_encrypted_10000000_down.sql b/sql/indexes/combo_encrypted_10000000_down.sql new file mode 100644 index 0000000..745895c --- /dev/null +++ b/sql/indexes/combo_encrypted_10000000_down.sql @@ -0,0 +1,3 @@ +DROP INDEX IF EXISTS combo_encrypted_10000000_name_gin_index; +DROP INDEX IF EXISTS combo_encrypted_10000000_age_ore_index; +DROP INDEX IF EXISTS combo_encrypted_10000000_category_hash_index; diff --git a/sql/indexes/combo_encrypted_10000000_up.sql b/sql/indexes/combo_encrypted_10000000_up.sql new file mode 100644 index 0000000..bea494b --- /dev/null +++ b/sql/indexes/combo_encrypted_10000000_up.sql @@ -0,0 +1,17 @@ +CREATE INDEX +combo_encrypted_10000000_name_gin_index +ON combo_encrypted_10000000 USING GIN ( + eql_v2.bloom_filter(name) +); + +CREATE INDEX +combo_encrypted_10000000_age_ore_index +ON combo_encrypted_10000000 ( + eql_v2.ore_block_u64_8_256(age) +); + +CREATE INDEX +combo_encrypted_10000000_category_hash_index +ON combo_encrypted_10000000 USING hash ( + eql_v2.hmac_256(category) +); diff --git a/sql/indexes/combo_encrypted_1000000_down.sql b/sql/indexes/combo_encrypted_1000000_down.sql new file mode 100644 index 0000000..db5cd85 --- /dev/null +++ b/sql/indexes/combo_encrypted_1000000_down.sql @@ -0,0 +1,3 @@ +DROP INDEX IF EXISTS combo_encrypted_1000000_name_gin_index; +DROP INDEX IF EXISTS combo_encrypted_1000000_age_ore_index; +DROP INDEX IF EXISTS combo_encrypted_1000000_category_hash_index; diff --git a/sql/indexes/combo_encrypted_1000000_up.sql b/sql/indexes/combo_encrypted_1000000_up.sql new file mode 100644 index 0000000..cd81ec3 --- /dev/null +++ b/sql/indexes/combo_encrypted_1000000_up.sql @@ -0,0 +1,17 @@ +CREATE INDEX +combo_encrypted_1000000_name_gin_index +ON combo_encrypted_1000000 USING GIN ( + eql_v2.bloom_filter(name) +); + +CREATE INDEX +combo_encrypted_1000000_age_ore_index +ON combo_encrypted_1000000 ( + eql_v2.ore_block_u64_8_256(age) +); + +CREATE INDEX +combo_encrypted_1000000_category_hash_index +ON combo_encrypted_1000000 USING hash ( + eql_v2.hmac_256(category) +); diff --git a/sql/indexes/combo_encrypted_100000_down.sql b/sql/indexes/combo_encrypted_100000_down.sql new file mode 100644 index 0000000..94ea6c0 --- /dev/null +++ b/sql/indexes/combo_encrypted_100000_down.sql @@ -0,0 +1,3 @@ +DROP INDEX IF EXISTS combo_encrypted_100000_name_gin_index; +DROP INDEX IF EXISTS combo_encrypted_100000_age_ore_index; +DROP INDEX IF EXISTS combo_encrypted_100000_category_hash_index; diff --git a/sql/indexes/combo_encrypted_100000_up.sql b/sql/indexes/combo_encrypted_100000_up.sql new file mode 100644 index 0000000..7c803fa --- /dev/null +++ b/sql/indexes/combo_encrypted_100000_up.sql @@ -0,0 +1,17 @@ +CREATE INDEX +combo_encrypted_100000_name_gin_index +ON combo_encrypted_100000 USING GIN ( + eql_v2.bloom_filter(name) +); + +CREATE INDEX +combo_encrypted_100000_age_ore_index +ON combo_encrypted_100000 ( + eql_v2.ore_block_u64_8_256(age) +); + +CREATE INDEX +combo_encrypted_100000_category_hash_index +ON combo_encrypted_100000 USING hash ( + eql_v2.hmac_256(category) +); diff --git a/sql/indexes/combo_encrypted_10000_down.sql b/sql/indexes/combo_encrypted_10000_down.sql new file mode 100644 index 0000000..e4f13c2 --- /dev/null +++ b/sql/indexes/combo_encrypted_10000_down.sql @@ -0,0 +1,3 @@ +DROP INDEX IF EXISTS combo_encrypted_10000_name_gin_index; +DROP INDEX IF EXISTS combo_encrypted_10000_age_ore_index; +DROP INDEX IF EXISTS combo_encrypted_10000_category_hash_index; diff --git a/sql/indexes/combo_encrypted_10000_up.sql b/sql/indexes/combo_encrypted_10000_up.sql new file mode 100644 index 0000000..d74eb69 --- /dev/null +++ b/sql/indexes/combo_encrypted_10000_up.sql @@ -0,0 +1,17 @@ +CREATE INDEX +combo_encrypted_10000_name_gin_index +ON combo_encrypted_10000 USING GIN ( + eql_v2.bloom_filter(name) +); + +CREATE INDEX +combo_encrypted_10000_age_ore_index +ON combo_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(age) +); + +CREATE INDEX +combo_encrypted_10000_category_hash_index +ON combo_encrypted_10000 USING hash ( + eql_v2.hmac_256(category) +); diff --git a/sql/schema.sql b/sql/schema.sql index c0ccc82..bd0fa43 100644 --- a/sql/schema.sql +++ b/sql/schema.sql @@ -56,6 +56,84 @@ CREATE TABLE IF NOT EXISTS string_plaintext_10000000 ( value TEXT NOT NULL ); +-- Low-cardinality categorical data (~250 distinct buckets, uniform random) +-- for "realistic GROUP BY" scenarios. The encrypted variant carries an `hm` +-- HMAC term so `GROUP BY eql_v2.hmac_256(value)` and `WHERE eql_v2.hmac_256(value) = ...` +-- both engage their respective indexes. The plaintext variant is a baseline +-- for the same query shape against an unindexed TEXT column. +CREATE TABLE IF NOT EXISTS category_encrypted_10000 ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS category_encrypted_100000 ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS category_encrypted_1000000 ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS category_encrypted_10000000 ( + id SERIAL PRIMARY KEY, + value eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS category_plaintext_10000 ( + id SERIAL PRIMARY KEY, + value TEXT NOT NULL +); + +CREATE TABLE IF NOT EXISTS category_plaintext_100000 ( + id SERIAL PRIMARY KEY, + value TEXT NOT NULL +); + +CREATE TABLE IF NOT EXISTS category_plaintext_1000000 ( + id SERIAL PRIMARY KEY, + value TEXT NOT NULL +); + +CREATE TABLE IF NOT EXISTS category_plaintext_10000000 ( + id SERIAL PRIMARY KEY, + value TEXT NOT NULL +); + +-- Combo: a single row carries three encrypted columns — `name` (match + hmac +-- via the unique search index), `age` (ORE), `category` (hmac for equality +-- and GROUP BY). Used by `benches/combo.rs` to exercise composite-predicate +-- shapes the EQL query-performance guide §6 describes (bloom + ORE order + +-- limit, filtered GROUP BY, top-N filtered GROUP BY). +CREATE TABLE IF NOT EXISTS combo_encrypted_10000 ( + id SERIAL PRIMARY KEY, + name eql_v2_encrypted NOT NULL, + age eql_v2_encrypted NOT NULL, + category eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS combo_encrypted_100000 ( + id SERIAL PRIMARY KEY, + name eql_v2_encrypted NOT NULL, + age eql_v2_encrypted NOT NULL, + category eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS combo_encrypted_1000000 ( + id SERIAL PRIMARY KEY, + name eql_v2_encrypted NOT NULL, + age eql_v2_encrypted NOT NULL, + category eql_v2_encrypted NOT NULL +); + +CREATE TABLE IF NOT EXISTS combo_encrypted_10000000 ( + id SERIAL PRIMARY KEY, + name eql_v2_encrypted NOT NULL, + age eql_v2_encrypted NOT NULL, + category eql_v2_encrypted NOT NULL +); + CREATE TABLE IF NOT EXISTS string_encrypted ( id SERIAL PRIMARY KEY, value eql_v2_encrypted NOT NULL diff --git a/src/bin/encrypt_category.rs b/src/bin/encrypt_category.rs new file mode 100644 index 0000000..524cdb6 --- /dev/null +++ b/src/bin/encrypt_category.rs @@ -0,0 +1,43 @@ +//! Encrypt low-cardinality categorical data (`CAT_001`..`CAT_250`) into the +//! `category_encrypted_*` tables. Used by the realistic-GROUP-BY scenarios in +//! `benches/group_by.rs` — see `dbbenches::FakeCategory` for the generator. +//! +//! Environment variables: +//! - DATABASE_URL: PostgreSQL connection string +//! - NUM_RECORDS: Number of records to generate (default: 10000) +//! - TABLE_SUFFIX: Optional suffix for table name (e.g., _10000) +//! - CS_CLIENT_ID / CS_CLIENT_KEY / CS_WORKSPACE_CRN: CipherStash credentials + +use anyhow::Result; +use cipherstash_client::{ + eql::Identifier, + schema::{column::Index, ColumnConfig, ColumnType}, +}; +use dbbenches::{FakeCategory, IngestOptionsBuilder}; +use std::env; + +#[tokio::main] +async fn main() -> Result<()> { + let num_records: i32 = env::var("NUM_RECORDS") + .unwrap_or_else(|_| "10000".to_string()) + .parse() + .expect("NUM_RECORDS must be a valid integer"); + + let table_suffix = env::var("TABLE_SUFFIX").unwrap_or_default(); + let table_name = format!("category_encrypted{}", table_suffix); + + IngestOptionsBuilder::new("encrypt_category") + .num_records(num_records) + .batch_size(1000) + .identifier(Identifier::new(&table_name, "value")) + .column_config( + ColumnConfig::build("value") + .casts_as(ColumnType::Text) + .add_index(Index::new_unique()), + ) + .build()? + .ingest::(FakeCategory) + .await?; + + Ok(()) +} diff --git a/src/bin/encrypt_combo.rs b/src/bin/encrypt_combo.rs new file mode 100644 index 0000000..97bb363 --- /dev/null +++ b/src/bin/encrypt_combo.rs @@ -0,0 +1,141 @@ +//! Encrypt three-column combo rows (`name`, `age`, `category`) into the +//! `combo_encrypted_*` tables. Used by `benches/combo.rs` for composite +//! predicate scenarios — bloom + ORE order + LIMIT, filtered GROUP BY, +//! top-N filtered GROUP BY. +//! +//! Per row we generate: +//! * `name` — `fake::Name` (random English name, ~unique) +//! * `age` — uniform 18..=90 (low-cardinality numeric, ORE-indexable) +//! * `category` — `dbbenches::FakeCategory` (CAT_001..CAT_250, 250 buckets) +//! +//! Each row produces three `PreparedPlaintext` entries which we encrypt in +//! one `encrypt_eql` call per batch, then split back into 3-tuples for the +//! `INSERT INTO ... (name, age, category)` statement. +//! +//! Environment variables: +//! - DATABASE_URL: PostgreSQL connection string +//! - NUM_RECORDS: Number of records to generate (default: 10000) +//! - TABLE_SUFFIX: Optional suffix for table name (e.g., _10000) +//! - CS_CLIENT_ID / CS_CLIENT_KEY / CS_WORKSPACE_CRN: CipherStash credentials + +use anyhow::{Context, Result}; +use cipherstash_client::{ + encryption::Plaintext, + eql::{encrypt_eql, EqlOperation, Identifier, PreparedPlaintext}, + schema::{column::Index, ColumnConfig, ColumnType}, +}; +use dbbenches::{init_scoped_cipher, FakeCategory}; +use fake::{faker::name::raw::Name, locales::EN, Fake}; +use sqlx::{postgres::PgPoolOptions, types::Json, QueryBuilder}; +use std::borrow::Cow; +use std::env; + +// Re-init scoped cipher every 200_000 rows (same threshold as lib.rs::ingest) +// to stay under the ZeroKMS TTL window for 10M-row preparations. +const REINIT_EVERY_ROWS: i32 = 200_000; + +#[tokio::main] +async fn main() -> Result<()> { + let database_url = + env::var("DATABASE_URL").context("DATABASE_URL environment variable must be set")?; + let num_records: i32 = env::var("NUM_RECORDS") + .unwrap_or_else(|_| "10000".to_string()) + .parse() + .expect("NUM_RECORDS must be a valid integer"); + let table_suffix = env::var("TABLE_SUFFIX").unwrap_or_default(); + let table_name = format!("combo_encrypted{}", table_suffix); + let batch_size: usize = 1000; + + let pool = PgPoolOptions::new() + .max_connections(5) + .connect(&database_url) + .await?; + + let mut scoped_cipher = init_scoped_cipher().await?; + let mut rows_since_reinit: i32 = 0; + + let name_config = ColumnConfig::build("name") + .casts_as(ColumnType::Text) + .add_index(Index::new_unique()) + .add_index(Index::new_match()); + let age_config = ColumnConfig::build("age") + .casts_as(ColumnType::Int) + .add_index(Index::new_ore()); + let category_config = ColumnConfig::build("category") + .casts_as(ColumnType::Text) + .add_index(Index::new_unique()); + + let name_ident = Identifier::new(&table_name, "name"); + let age_ident = Identifier::new(&table_name, "age"); + let category_ident = Identifier::new(&table_name, "category"); + + for batch_start in (0..num_records).step_by(batch_size) { + if rows_since_reinit >= REINIT_EVERY_ROWS { + eprintln!( + "encrypt_combo: refreshing scoped cipher after {} rows ({}/{} total)", + rows_since_reinit, batch_start, num_records + ); + scoped_cipher = init_scoped_cipher().await?; + rows_since_reinit = 0; + } + + let batch_end = (batch_start + batch_size as i32).min(num_records); + let batch_count = batch_end - batch_start; + + let mut prepared = Vec::with_capacity((batch_count * 3) as usize); + for _ in 0..batch_count { + let name: String = Name(EN).fake(); + // Realistic age range — uniform 18..=90 gives ~72 distinct + // buckets, low enough cardinality that a HashAggregate over the + // ORE-block extractor would group meaningfully but high enough + // that range predicates like `age > 30` are selective. + let age: i32 = (18..=90).fake(); + let category: String = FakeCategory.fake(); + + prepared.push(PreparedPlaintext::new( + Cow::Borrowed(&name_config), + name_ident.clone(), + Plaintext::new(name), + EqlOperation::Store, + )); + prepared.push(PreparedPlaintext::new( + Cow::Borrowed(&age_config), + age_ident.clone(), + Plaintext::new(age), + EqlOperation::Store, + )); + prepared.push(PreparedPlaintext::new( + Cow::Borrowed(&category_config), + category_ident.clone(), + Plaintext::new(category), + EqlOperation::Store, + )); + } + + let out = encrypt_eql(scoped_cipher.clone(), prepared, &Default::default()).await?; + + // encrypt_eql preserves input order; chunks of 3 reassemble per-row + // (name, age, category) tuples for the multi-column INSERT. + let rows: Vec<(_, _, _)> = out + .chunks_exact(3) + .map(|c| (c[0].clone(), c[1].clone(), c[2].clone())) + .collect(); + + QueryBuilder::new(format!( + "INSERT INTO {} (name, age, category) ", + table_name + )) + .push_values(rows, |mut b, (name, age, category)| { + b.push_bind(Json(name)); + b.push_bind(Json(age)); + b.push_bind(Json(category)); + }) + .build() + .execute(&pool) + .await?; + + rows_since_reinit += batch_count; + } + + Ok(()) +} diff --git a/src/lib.rs b/src/lib.rs index a3aa4fc..7d30920 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -15,6 +15,23 @@ use std::env; use std::fmt::Debug; use std::sync::Arc; +/// Generator for low-cardinality categorical strings of the form `CAT_001` +/// .. `CAT_250`, uniform random over 250 distinct values. Used by the +/// `category_encrypted_*` and `category_plaintext_*` tables that drive the +/// realistic-GROUP-BY scenarios in `benches/group_by.rs`. 250 groups was +/// chosen to roughly match the ISO 3166-1 country-code cardinality (~250) — +/// large enough that the hash-aggregate table is interesting, small enough +/// that the result-set emission cost is negligible compared with the +/// per-row HMAC. +pub struct FakeCategory; + +impl Dummy for String { + fn dummy_with_rng(_: &FakeCategory, rng: &mut R) -> String { + let n: u32 = (1u32..=250u32).fake_with_rng(rng); + format!("CAT_{:03}", n) + } +} + pub async fn init_scoped_cipher() -> Result>> { let zerokms = ZeroKMSBuilder::auto() .context("failed to build ZeroKMS client")? @@ -91,6 +108,13 @@ impl IngestOptionsBuilder { } } +/// Re-initialise the scoped cipher after this many rows. The ZeroKMS scoped +/// cipher has a ~10-15 minute TTL bound to one `init_default` call; a single +/// 10M-row ingest run reliably outlives that. Re-binding at a row-count +/// cadence (cheap call vs. the slow encrypt path) keeps the cipher fresh +/// without requiring callers to chunk their invocations. +const REINIT_EVERY_ROWS: i32 = 200_000; + impl IngestOptions { pub async fn ingest(self, f: F) -> Result<()> where @@ -114,11 +138,21 @@ impl IngestOptions { .connect(&database_url) .await?; - let scoped_cipher = init_scoped_cipher().await?; + let mut scoped_cipher = init_scoped_cipher().await?; + let mut rows_since_reinit: i32 = 0; let column_config = Cow::Borrowed(&self.column_config); for batch_start in (0..self.num_records).step_by(self.batch_size) { + if rows_since_reinit >= REINIT_EVERY_ROWS { + eprintln!( + "ingest: refreshing scoped cipher after {} rows ({}/{} total)", + rows_since_reinit, batch_start, self.num_records + ); + scoped_cipher = init_scoped_cipher().await?; + rows_since_reinit = 0; + } + let batch_end = (batch_start + self.batch_size as i32).min(self.num_records); let batch_count = batch_end - batch_start; @@ -146,6 +180,8 @@ impl IngestOptions { .build() .execute(&pool) .await?; + + rows_since_reinit += batch_count; } let result = json!({ From 4bc515fc81b9d2578c5169f4400734057b607715 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Sat, 16 May 2026 00:02:40 +1000 Subject: [PATCH 21/30] bench: auto-retry encrypt binary on ZeroKMS transient errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit prepare:_table wraps the encrypt-binary call in a retry loop (up to 30 attempts with 5s backoff). The binary writes rows transactionally per batch, so each retry picks up from the current row count — no double ingestion. Same recovery the user has been running manually after ZeroKMS 'Unexpected error' panics; this just lets long preps proceed without supervision. --- mise.toml | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/mise.toml b/mise.toml index 7445db1..2f36496 100644 --- a/mise.toml +++ b/mise.toml @@ -260,9 +260,33 @@ fi echo "Dropping indexes..." docker exec -i ore-benches-postgres psql -U postgres -d postgres < sql/indexes/${TABLE_NAME}_down.sql -ROWS_TO_INSERT=$((TARGET_ROWS - CURRENT_ROWS)) -echo "Inserting $ROWS_TO_INSERT additional rows..." -NUM_RECORDS=$ROWS_TO_INSERT TABLE_SUFFIX="_${TARGET_ROWS}" ./target/release/$BINARY_NAME +# ZeroKMS occasionally returns "Unexpected error" mid-stream on long encrypt +# runs (typically 150-400k rows in), killing the binary. The binary writes +# rows transactionally per batch, so a re-run from the current row count +# picks up where we left off. Retry the inner binary until the table +# reaches the target (or MAX_ATTEMPTS — typically <5 needed even at 10M). +MAX_ATTEMPTS=30 +attempt=1 +while true; do + CURRENT_ROWS=$(docker exec ore-benches-postgres psql -U postgres -d postgres -t -c "SELECT COUNT(*) FROM $TABLE_NAME;" | tr -d ' ') + if [ "$CURRENT_ROWS" -ge "$TARGET_ROWS" ]; then + echo "Table reached $CURRENT_ROWS rows (>= $TARGET_ROWS)." + break + fi + if [ "$attempt" -gt "$MAX_ATTEMPTS" ]; then + echo "Error: exceeded $MAX_ATTEMPTS attempts, table has $CURRENT_ROWS / $TARGET_ROWS rows." + exit 1 + fi + ROWS_TO_INSERT=$((TARGET_ROWS - CURRENT_ROWS)) + echo "Attempt $attempt: inserting $ROWS_TO_INSERT additional rows..." + if NUM_RECORDS=$ROWS_TO_INSERT TABLE_SUFFIX="_${TARGET_ROWS}" ./target/release/$BINARY_NAME; then + echo "Attempt $attempt: succeeded." + else + echo "Attempt $attempt: failed (likely ZeroKMS transient), retrying after backoff..." + sleep 5 + fi + attempt=$((attempt + 1)) +done echo "Creating indexes..." docker exec -i ore-benches-postgres psql -U postgres -d postgres < sql/indexes/${TABLE_NAME}_up.sql From 7ef258b63deb33988fa1790cc78889da61f28f57 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Sat, 16 May 2026 00:34:44 +1000 Subject: [PATCH 22/30] report: correct bloom_ore_order_limit description MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The plan tree showed only the bloom GIN index engaging — the planner satisfies the ORDER BY via a Sort node above the Bitmap Heap Scan, not by walking the ORE btree, because PG can't merge two unrelated indexes on different columns (bloom on `name`, btree on `age`). With the bloom narrowing so aggressively the Sort is cheap. Description updated to match observed plan. --- report_benchmarks.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/report_benchmarks.py b/report_benchmarks.py index f427522..f1941c2 100755 --- a/report_benchmarks.py +++ b/report_benchmarks.py @@ -503,12 +503,14 @@ def get_query_description(self, query_type: str, query_name: str) -> Tuple[str, "`name` (match + hmac), `age` (ORE), `category` (hmac). Indexes: " "functional GIN on `eql_v2.bloom_filter(name)`, functional btree on " "`eql_v2.ore_block_u64_8_256(age)`, functional hash on " - "`eql_v2.hmac_256(category)`. **Two indexes engage on this scenario**: " - "the GIN bloom filter for the `LIKE` predicate, and the ORE btree for " - "the `ORDER BY` (sort-key matches the index expression syntactically — " - "hybrid form per §4 of the perf guide). The planner streams rows out " - "of the bloom-filtered set already sorted by age, takes the first 10, " - "and stops." + "`eql_v2.hmac_256(category)`. **The bloom GIN index engages for the " + "LIKE predicate**, narrowing the input to ~0.01–0.1% of rows; the " + "planner then sorts the small filtered set by `eql_v2.ore_block_u64_8_256(age)` " + "and returns the top 10. The ORE btree doesn't engage here — PostgreSQL " + "can't merge two unrelated indexes on different columns (bloom on `name`, " + "btree on `age`), so the ORDER BY is satisfied by a Sort node above the " + "Bitmap Heap Scan. With the bloom narrowing so aggressively, that Sort " + "is cheap; the cost is dominated by the bloom + heap fetch." ), "filtered_group_by": ( "Composite predicate: filter by name pattern, GROUP BY category", From a49b7ae58a431e2e640cc8f85770b4891161cd6a Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Sat, 16 May 2026 03:23:43 +1000 Subject: [PATCH 23/30] results: full ladder for redesigned GROUP BY + new combo + selective ORE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ORE (10k..10M): 4 non-selective baselines + 2 selective (~0.17% / ~0.011% selectivity) + 1 hybrid-ordered. Selective scenarios reliably engage the functional btree index across all tiers; non-selective ones correctly fall back to Seq Scan + LIMIT. GROUP BY (10k..10M): low_cardinality + top_n on `category_encrypted_` (~250 distinct buckets, uniform random) and matching plaintext baselines on `category_plaintext_`. At 10M: * low_cardinality_encrypted: 1.59s, plaintext: 462ms (~3.4x overhead) * top_n_encrypted: 1.45s, plaintext: 464ms (~3.1x overhead) COMBO (10k..10M): new bench against the three-column combo_encrypted table. At 10M: * bloom_ore_order_limit: 217ms (GIN bloom engages; ORDER BY via Sort above Bitmap Heap Scan, ORE btree does not engage — PG can't merge two unrelated indexes on different columns). * filtered_group_by: 50ms * top_n_filtered_group_by: 50ms Report regenerated as index + per-query-type pages (exact.md, match.md, ore.md, group_by.md, combo.md). Y-axes start at 0 on every chart. Charts for the dropped count_groups_* scenarios removed. Stale count_groups_encrypted/plaintext charts deleted; the new low_cardinality_* + top_n_* + combo charts replace them. --- report/BENCHMARK_REPORT.md | 2961 +---------------- report/combo.md | 1187 +++++++ report/exact.md | 444 +++ report/group_by.md | 1643 +++++++++ report/match.md | 823 +++++ report/ore.md | 1470 ++++++++ ...uery_combo_bloom_ore_order_limit_chart.png | Bin 0 -> 38502 bytes .../query_combo_filtered_group_by_chart.png | Bin 0 -> 38083 bytes ...ry_combo_top_n_filtered_group_by_chart.png | Bin 0 -> 32486 bytes report/query_exact_eql_cast_chart.png | Bin 52489 -> 38703 bytes report/query_exact_eql_hash_chart.png | Bin 53861 -> 35604 bytes ..._group_by_count_groups_encrypted_chart.png | Bin 41888 -> 0 bytes ..._group_by_count_groups_plaintext_chart.png | Bin 40206 -> 0 bytes ...low_cardinality_groups_encrypted_chart.png | Bin 0 -> 44404 bytes ...low_cardinality_groups_plaintext_chart.png | Bin 0 -> 40865 bytes ..._group_by_top_n_groups_encrypted_chart.png | Bin 0 -> 37360 bytes ..._group_by_top_n_groups_plaintext_chart.png | Bin 0 -> 39566 bytes report/query_match_eql_bloom_chart.png | Bin 47183 -> 48520 bytes .../query_match_eql_cast_firstname_chart.png | Bin 45635 -> 45659 bytes .../query_match_eql_cast_lastname_chart.png | Bin 49609 -> 49286 bytes report/query_ore_range_gt_100_chart.png | Bin 30910 -> 29903 bytes report/query_ore_range_gt_10_chart.png | Bin 32167 -> 32626 bytes ...ore_range_highly_selective_gt_10_chart.png | Bin 0 -> 47651 bytes report/query_ore_range_lt_100_chart.png | Bin 32273 -> 33889 bytes report/query_ore_range_lt_10_chart.png | Bin 31811 -> 31779 bytes ...y_ore_range_lt_hybrid_ordered_10_chart.png | Bin 38422 -> 33448 bytes ...query_ore_range_selective_gt_100_chart.png | Bin 0 -> 51542 bytes results/query/combo_metadata_10000.json | 288 ++ results/query/combo_metadata_100000.json | 288 ++ results/query/combo_metadata_1000000.json | 288 ++ results/query/combo_metadata_10000000.json | 288 ++ results/query/combo_rows_10000.json | 4 + results/query/combo_rows_100000.json | 4 + results/query/combo_rows_1000000.json | 4 + results/query/combo_rows_10000000.json | 4 + results/query/group_by_metadata_10000.json | 182 +- results/query/group_by_metadata_100000.json | 184 +- results/query/group_by_metadata_1000000.json | 404 ++- results/query/group_by_metadata_10000000.json | 403 ++- results/query/group_by_rows_10000.json | 8 +- results/query/group_by_rows_100000.json | 8 +- results/query/group_by_rows_1000000.json | 8 +- results/query/group_by_rows_10000000.json | 8 +- results/query/ore_metadata_10000.json | 132 +- results/query/ore_metadata_100000.json | 112 +- results/query/ore_metadata_1000000.json | 112 +- results/query/ore_metadata_10000000.json | 112 +- results/query/ore_rows_10000.json | 26 +- results/query/ore_rows_100000.json | 26 +- results/query/ore_rows_1000000.json | 26 +- results/query/ore_rows_10000000.json | 26 +- 51 files changed, 8263 insertions(+), 3210 deletions(-) create mode 100644 report/combo.md create mode 100644 report/exact.md create mode 100644 report/group_by.md create mode 100644 report/match.md create mode 100644 report/ore.md create mode 100644 report/query_combo_bloom_ore_order_limit_chart.png create mode 100644 report/query_combo_filtered_group_by_chart.png create mode 100644 report/query_combo_top_n_filtered_group_by_chart.png delete mode 100644 report/query_group_by_count_groups_encrypted_chart.png delete mode 100644 report/query_group_by_count_groups_plaintext_chart.png create mode 100644 report/query_group_by_low_cardinality_groups_encrypted_chart.png create mode 100644 report/query_group_by_low_cardinality_groups_plaintext_chart.png create mode 100644 report/query_group_by_top_n_groups_encrypted_chart.png create mode 100644 report/query_group_by_top_n_groups_plaintext_chart.png create mode 100644 report/query_ore_range_highly_selective_gt_10_chart.png create mode 100644 report/query_ore_range_selective_gt_100_chart.png create mode 100644 results/query/combo_metadata_10000.json create mode 100644 results/query/combo_metadata_100000.json create mode 100644 results/query/combo_metadata_1000000.json create mode 100644 results/query/combo_metadata_10000000.json create mode 100644 results/query/combo_rows_10000.json create mode 100644 results/query/combo_rows_100000.json create mode 100644 results/query/combo_rows_1000000.json create mode 100644 results/query/combo_rows_10000000.json diff --git a/report/BENCHMARK_REPORT.md b/report/BENCHMARK_REPORT.md index cf4a965..d019238 100644 --- a/report/BENCHMARK_REPORT.md +++ b/report/BENCHMARK_REPORT.md @@ -1,6 +1,6 @@ # Benchmark Report -This report summarizes the performance benchmarks for encrypted database operations. +This report summarises the performance benchmarks for encrypted database operations. Per-query-type detail lives on its own page — click through from the Query Performance section below. ## Table of Contents @@ -10,10 +10,11 @@ This report summarizes the performance benchmarks for encrypted database operati - [Ste Vec Small](#ste-vec-small) - [String](#string) 2. [Query Performance](#query-performance) - - [EXACT Queries](#exact-queries) - - [GROUP_BY Queries](#group_by-queries) - - [MATCH Queries](#match-queries) - - [ORE Queries](#ore-queries) + - [COMBO Queries](combo.md) + - [EXACT Queries](exact.md) + - [GROUP_BY Queries](group_by.md) + - [MATCH Queries](match.md) + - [ORE Queries](ore.md) --- @@ -87,2949 +88,15 @@ Tests insertion of encrypted string values. ## Query Performance -This section measures query performance across different data set sizes. Each query is tested with and without decryption of results. +Per-query-type detail is broken out into separate pages — click into a scenario family for the SQL, per-tier timings, the indexes the planner picked, and the EXPLAIN plan tree. -### EXACT Queries - -#### eql_cast - -**Description:** Exact match using EQL cast operator - -**SQL Query:** -```sql -SELECT value FROM {TABLE} WHERE value = $1 LIMIT 1 -``` - -**Parameter:** `Bob Johnson` - -**Table: `string_encrypted_{rows}` with encrypted string values. Index: UNIQUE index on the encrypted value column.** - -**Indexes available on the table:** -```sql -CREATE INDEX -string_encrypted_10000_hash_index -ON string_encrypted_10000 using hash ( - eql_v2.hmac_256(value) -); - -CREATE INDEX -string_encrypted_10000_gin_index -ON string_encrypted_10000 USING GIN ( - eql_v2.bloom_filter(value) -); -``` - -**Indexes used by the planner (per data set size):** - -- 10,000: `string_encrypted_10000_hash_index` -- 100,000: `string_encrypted_100000_hash_index` -- 1,000,000: `string_encrypted_1000000_hash_index` -- 10,000,000: `string_encrypted_10000000_hash_index` - -| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 417.91μs | 411.64μs | -| 100,000 | 0 | 398.18μs | 415.60μs | -| 1,000,000 | 0 | 518.60μs | 413.16μs | -| 10,000,000 | 0 | 429.34μs | 423.97μs | - -_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ - -
    -EXPLAIN plans (per data set size) - -**10,000 rows** - -``` -Limit - Index Scan using string_encrypted_10000_hash_index on string_encrypted_10000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 1164, - "Plans": [ - { - "Alias": "string_encrypted_10000", - "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", - "Index Name": "string_encrypted_10000_hash_index", - "Node Type": "Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 1164, - "Relation Name": "string_encrypted_10000", - "Scan Direction": "Forward", - "Startup Cost": 0.0, - "Total Cost": 8.02 - } - ], - "Startup Cost": 0.0, - "Total Cost": 8.02 - } - } -] -``` - -**100,000 rows** - -``` -Limit - Index Scan using string_encrypted_100000_hash_index on string_encrypted_100000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 1163, - "Plans": [ - { - "Alias": "string_encrypted_100000", - "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", - "Index Name": "string_encrypted_100000_hash_index", - "Node Type": "Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 1163, - "Relation Name": "string_encrypted_100000", - "Scan Direction": "Forward", - "Startup Cost": 0.0, - "Total Cost": 8.02 - } - ], - "Startup Cost": 0.0, - "Total Cost": 8.02 - } - } -] -``` - -**1,000,000 rows** - -``` -Limit - Index Scan using string_encrypted_1000000_hash_index on string_encrypted_1000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 1161, - "Plans": [ - { - "Alias": "string_encrypted_1000000", - "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", - "Index Name": "string_encrypted_1000000_hash_index", - "Node Type": "Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 2, - "Plan Width": 1161, - "Relation Name": "string_encrypted_1000000", - "Scan Direction": "Forward", - "Startup Cost": 0.0, - "Total Cost": 12.04 - } - ], - "Startup Cost": 0.0, - "Total Cost": 6.02 - } - } -] -``` - -**10,000,000 rows** - -``` -Limit - Index Scan using string_encrypted_10000000_hash_index on string_encrypted_10000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 1163, - "Plans": [ - { - "Alias": "string_encrypted_10000000", - "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", - "Index Name": "string_encrypted_10000000_hash_index", - "Node Type": "Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 50000, - "Plan Width": 1163, - "Relation Name": "string_encrypted_10000000", - "Scan Direction": "Forward", - "Startup Cost": 0.0, - "Total Cost": 198371.0 - } - ], - "Startup Cost": 0.0, - "Total Cost": 3.97 - } - } -] -``` - -
    - -![Query Performance - EXACT/eql_cast](query_exact_eql_cast_chart.png) - -#### eql_hash - -**Description:** Exact match using EQL HMAC-256 hash function - -**SQL Query:** -```sql -SELECT value FROM {TABLE} WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1 -``` - -**Parameter:** `Bob Johnson` - -**Table: `string_encrypted_{rows}` with encrypted string values. Index: Hash-based unique index using `eql_v2.hmac_256`.** - -**Indexes available on the table:** -```sql -CREATE INDEX -string_encrypted_10000_hash_index -ON string_encrypted_10000 using hash ( - eql_v2.hmac_256(value) -); - -CREATE INDEX -string_encrypted_10000_gin_index -ON string_encrypted_10000 USING GIN ( - eql_v2.bloom_filter(value) -); -``` - -**Indexes used by the planner (per data set size):** - -- 10,000: `string_encrypted_10000_hash_index` -- 100,000: `string_encrypted_100000_hash_index` -- 1,000,000: `string_encrypted_1000000_hash_index` -- 10,000,000: `string_encrypted_10000000_hash_index` - -| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 412.70μs | 395.84μs | -| 100,000 | 0 | 406.77μs | 400.13μs | -| 1,000,000 | 0 | 401.58μs | 397.75μs | -| 10,000,000 | 0 | 387.61μs | 399.45μs | - -_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ - -
    -EXPLAIN plans (per data set size) - -**10,000 rows** - -``` -Limit - Index Scan using string_encrypted_10000_hash_index on string_encrypted_10000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 1164, - "Plans": [ - { - "Alias": "string_encrypted_10000", - "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", - "Index Name": "string_encrypted_10000_hash_index", - "Node Type": "Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 1164, - "Relation Name": "string_encrypted_10000", - "Scan Direction": "Forward", - "Startup Cost": 0.0, - "Total Cost": 8.02 - } - ], - "Startup Cost": 0.0, - "Total Cost": 8.02 - } - } -] -``` - -**100,000 rows** - -``` -Limit - Index Scan using string_encrypted_100000_hash_index on string_encrypted_100000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 1163, - "Plans": [ - { - "Alias": "string_encrypted_100000", - "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", - "Index Name": "string_encrypted_100000_hash_index", - "Node Type": "Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 1163, - "Relation Name": "string_encrypted_100000", - "Scan Direction": "Forward", - "Startup Cost": 0.0, - "Total Cost": 8.02 - } - ], - "Startup Cost": 0.0, - "Total Cost": 8.02 - } - } -] -``` - -**1,000,000 rows** - -``` -Limit - Index Scan using string_encrypted_1000000_hash_index on string_encrypted_1000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 1161, - "Plans": [ - { - "Alias": "string_encrypted_1000000", - "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", - "Index Name": "string_encrypted_1000000_hash_index", - "Node Type": "Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 2, - "Plan Width": 1161, - "Relation Name": "string_encrypted_1000000", - "Scan Direction": "Forward", - "Startup Cost": 0.0, - "Total Cost": 12.04 - } - ], - "Startup Cost": 0.0, - "Total Cost": 6.02 - } - } -] -``` - -**10,000,000 rows** - -``` -Limit - Index Scan using string_encrypted_10000000_hash_index on string_encrypted_10000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 1163, - "Plans": [ - { - "Alias": "string_encrypted_10000000", - "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", - "Index Name": "string_encrypted_10000000_hash_index", - "Node Type": "Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 50000, - "Plan Width": 1163, - "Relation Name": "string_encrypted_10000000", - "Scan Direction": "Forward", - "Startup Cost": 0.0, - "Total Cost": 198371.0 - } - ], - "Startup Cost": 0.0, - "Total Cost": 3.97 - } - } -] -``` - -
    - -![Query Performance - EXACT/eql_hash](query_exact_eql_hash_chart.png) - -### GROUP_BY Queries - -#### count_groups_encrypted - -**Description:** GROUP BY in extractor form on `eql_v2.hmac_256(value)`, wrapped in `count(*)` to isolate aggregation cost from emit cost - -**SQL Query:** -```sql -SELECT count(*) FROM (SELECT 1 FROM {TABLE} GROUP BY eql_v2.hmac_256(value)) g -``` - -**Table: `string_encrypted_{rows}` with encrypted string values (carrying an `hm` HMAC term, configured via the `unique` search index). Index: no index drives `GROUP BY` directly — hash aggregation is in-memory. The extractor's 32-byte HMAC group key fits in default `work_mem`, so the planner picks `HashAggregate` reliably across deployments. **Why the subquery wrapper.** The bench data is `fake::name::Name` — effectively unique per row, so a bare `SELECT count(*) FROM tbl GROUP BY eql_v2.hmac_256(value)` emits ~one row per input row. Wall-clock time on that shape is dominated by result emission (server-side row construction, network round-trip, sqlx deserialisation, bench iter-and-sum), not by the aggregation work the recipe is actually about. Wrapping the GROUP BY in `count(*)` keeps the inner HashAggregate identical but emits a single row, so the bench measures aggregation cost. The companion `count_groups_plaintext` scenario runs the same query shape against an unencrypted column for comparison. Natural-form `GROUP BY value` against an encrypted column was removed from this bench in an earlier pass because the planner picks `GroupAggregate` + sort against the full ~1-2 KB ciphertext payload at scale — see §5 of the EQL query-performance guide.** - -**Indexes available on the table:** -```sql -CREATE INDEX -string_encrypted_10000_hash_index -ON string_encrypted_10000 using hash ( - eql_v2.hmac_256(value) -); - -CREATE INDEX -string_encrypted_10000_gin_index -ON string_encrypted_10000 USING GIN ( - eql_v2.bloom_filter(value) -); -``` - -**Indexes used by the planner (per data set size):** - -- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ - -*⚠️ = Query time exceeds 100ms* - -| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|---------------|-------------------------|---------------------------| -| 10,000 | 1 | 5.26ms | N/A | -| 100,000 | 1 | 65.32ms | N/A | -| 1,000,000 | 1 | ⚠️ 805.12ms | N/A | -| 10,000,000 | 1 | ⚠️ 10.228s | N/A | - -_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ - -
    -EXPLAIN plans (per data set size) - -**10,000 rows** - -``` -Aggregate - Aggregate (Hashed) - Seq Scan on string_encrypted_10000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Aggregate", - "Parallel Aware": false, - "Partial Mode": "Simple", - "Plan Rows": 1, - "Plan Width": 8, - "Plans": [ - { - "Async Capable": false, - "Group Key": [ - "(((string_encrypted_10000.value).data ->> 'hm'::text))::eql_v2.hmac_256" - ], - "Node Type": "Aggregate", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Partial Mode": "Simple", - "Plan Rows": 9968, - "Plan Width": 36, - "Planned Partitions": 0, - "Plans": [ - { - "Alias": "string_encrypted_10000", - "Async Capable": false, - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 10000, - "Plan Width": 32, - "Relation Name": "string_encrypted_10000", - "Startup Cost": 0.0, - "Total Cost": 1678.0 - } - ], - "Startup Cost": 1703.0, - "Strategy": "Hashed", - "Total Cost": 1827.6 - } - ], - "Startup Cost": 1952.2, - "Strategy": "Plain", - "Total Cost": 1952.21 - } - } -] -``` - -**100,000 rows** - -``` -Aggregate - Aggregate (Hashed) - Seq Scan on string_encrypted_100000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Aggregate", - "Parallel Aware": false, - "Partial Mode": "Simple", - "Plan Rows": 1, - "Plan Width": 8, - "Plans": [ - { - "Async Capable": false, - "Group Key": [ - "(((string_encrypted_100000.value).data ->> 'hm'::text))::eql_v2.hmac_256" - ], - "Node Type": "Aggregate", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Partial Mode": "Simple", - "Plan Rows": 93989, - "Plan Width": 36, - "Planned Partitions": 0, - "Plans": [ - { - "Alias": "string_encrypted_100000", - "Async Capable": false, - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 100000, - "Plan Width": 32, - "Relation Name": "string_encrypted_100000", - "Startup Cost": 0.0, - "Total Cost": 16759.0 - } - ], - "Startup Cost": 17009.0, - "Strategy": "Hashed", - "Total Cost": 18183.86 - } - ], - "Startup Cost": 19358.72, - "Strategy": "Plain", - "Total Cost": 19358.73 - } - } -] -``` - -**1,000,000 rows** - -``` -Aggregate - Aggregate (Hashed) - Seq Scan on string_encrypted_1000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "JIT": { - "Functions": 6, - "Options": { - "Deforming": true, - "Expressions": true, - "Inlining": false, - "Optimization": false - } - }, - "Plan": { - "Async Capable": false, - "Node Type": "Aggregate", - "Parallel Aware": false, - "Partial Mode": "Simple", - "Plan Rows": 1, - "Plan Width": 8, - "Plans": [ - { - "Async Capable": false, - "Group Key": [ - "(((string_encrypted_1000000.value).data ->> 'hm'::text))::eql_v2.hmac_256" - ], - "Node Type": "Aggregate", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Partial Mode": "Simple", - "Plan Rows": 618824, - "Plan Width": 36, - "Planned Partitions": 16, - "Plans": [ - { - "Alias": "string_encrypted_1000000", - "Async Capable": false, - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 999482, - "Plan Width": 32, - "Relation Name": "string_encrypted_1000000", - "Startup Cost": 0.0, - "Total Cost": 167309.52 - } - ], - "Startup Cost": 244457.04, - "Strategy": "Hashed", - "Total Cost": 265857.13 - } - ], - "Startup Cost": 273592.43, - "Strategy": "Plain", - "Total Cost": 273592.44 - } - } -] -``` - -**10,000,000 rows** - -``` -Aggregate - Aggregate (Hashed) - Seq Scan on string_encrypted_10000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "JIT": { - "Functions": 6, - "Options": { - "Deforming": true, - "Expressions": true, - "Inlining": true, - "Optimization": true - } - }, - "Plan": { - "Async Capable": false, - "Node Type": "Aggregate", - "Parallel Aware": false, - "Partial Mode": "Simple", - "Plan Rows": 1, - "Plan Width": 8, - "Plans": [ - { - "Async Capable": false, - "Group Key": [ - "(((string_encrypted_10000000.value).data ->> 'hm'::text))::eql_v2.hmac_256" - ], - "Node Type": "Aggregate", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Partial Mode": "Simple", - "Plan Rows": 4273344, - "Plan Width": 36, - "Planned Partitions": 128, - "Plans": [ - { - "Alias": "string_encrypted_10000000", - "Async Capable": false, - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 10000000, - "Plan Width": 32, - "Relation Name": "string_encrypted_10000000", - "Startup Cost": 0.0, - "Total Cost": 1673105.0 - } - ], - "Startup Cost": 2444980.0, - "Strategy": "Hashed", - "Total Cost": 2635115.55 - } - ], - "Startup Cost": 2688532.35, - "Strategy": "Plain", - "Total Cost": 2688532.36 - } - } -] -``` - -
    - -![Query Performance - GROUP_BY/count_groups_encrypted](query_group_by_count_groups_encrypted_chart.png) - -#### count_groups_plaintext - -**Description:** Plaintext baseline: GROUP BY on a plain TEXT column, same query shape as the encrypted scenario - -**SQL Query:** -```sql -SELECT count(*) FROM (SELECT 1 FROM {TABLE} GROUP BY value) g -``` - -**Table: `string_plaintext_{rows}` with unencrypted high-cardinality random strings (`md5(random()::text || ordinal)`). Populated via SQL by `mise run prepare:string_plaintext` — no encryption-client dependency. Index: none. Same `SELECT count(*) FROM (SELECT 1 ... GROUP BY value) g` shape as the encrypted scenario, so the wall-clock delta between this and `count_groups_encrypted` is the EQL recipe's overhead relative to a bare-PG aggregate on a TEXT column at the same row count and cardinality.** - -**Indexes used by the planner (per data set size):** - -- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ - -*⚠️ = Query time exceeds 100ms* - -| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|---------------|-------------------------|---------------------------| -| 10,000 | 1 | 2.75ms | N/A | -| 100,000 | 1 | 29.76ms | N/A | -| 1,000,000 | 1 | ⚠️ 411.12ms | N/A | -| 10,000,000 | 1 | ⚠️ 21.479s | N/A | - -_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ - -
    -EXPLAIN plans (per data set size) - -**10,000 rows** - -``` -Aggregate - Aggregate (Hashed) - Seq Scan on string_plaintext_10000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Aggregate", - "Parallel Aware": false, - "Partial Mode": "Simple", - "Plan Rows": 1, - "Plan Width": 8, - "Plans": [ - { - "Async Capable": false, - "Group Key": [ - "string_plaintext_10000.value" - ], - "Node Type": "Aggregate", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Partial Mode": "Simple", - "Plan Rows": 10000, - "Plan Width": 37, - "Planned Partitions": 0, - "Plans": [ - { - "Alias": "string_plaintext_10000", - "Async Capable": false, - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 10000, - "Plan Width": 33, - "Relation Name": "string_plaintext_10000", - "Startup Cost": 0.0, - "Total Cost": 184.0 - } - ], - "Startup Cost": 209.0, - "Strategy": "Hashed", - "Total Cost": 309.0 - } - ], - "Startup Cost": 434.0, - "Strategy": "Plain", - "Total Cost": 434.01 - } - } -] -``` - -**100,000 rows** - -``` -Aggregate - Aggregate (Hashed) - Seq Scan on string_plaintext_100000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Aggregate", - "Parallel Aware": false, - "Partial Mode": "Simple", - "Plan Rows": 1, - "Plan Width": 8, - "Plans": [ - { - "Async Capable": false, - "Group Key": [ - "string_plaintext_100000.value" - ], - "Node Type": "Aggregate", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Partial Mode": "Simple", - "Plan Rows": 100000, - "Plan Width": 37, - "Planned Partitions": 4, - "Plans": [ - { - "Alias": "string_plaintext_100000", - "Async Capable": false, - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 100000, - "Plan Width": 33, - "Relation Name": "string_plaintext_100000", - "Startup Cost": 0.0, - "Total Cost": 1834.0 - } - ], - "Startup Cost": 10334.0, - "Strategy": "Hashed", - "Total Cost": 12896.5 - } - ], - "Startup Cost": 14146.5, - "Strategy": "Plain", - "Total Cost": 14146.51 - } - } -] -``` - -**1,000,000 rows** - -``` -Aggregate - Aggregate (Hashed) - Seq Scan on string_plaintext_1000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "JIT": { - "Functions": 5, - "Options": { - "Deforming": true, - "Expressions": true, - "Inlining": false, - "Optimization": false - } - }, - "Plan": { - "Async Capable": false, - "Node Type": "Aggregate", - "Parallel Aware": false, - "Partial Mode": "Simple", - "Plan Rows": 1, - "Plan Width": 8, - "Plans": [ - { - "Async Capable": false, - "Group Key": [ - "string_plaintext_1000000.value" - ], - "Node Type": "Aggregate", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Partial Mode": "Simple", - "Plan Rows": 1000000, - "Plan Width": 37, - "Planned Partitions": 16, - "Plans": [ - { - "Alias": "string_plaintext_1000000", - "Async Capable": false, - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1000000, - "Plan Width": 33, - "Relation Name": "string_plaintext_1000000", - "Startup Cost": 0.0, - "Total Cost": 18334.0 - } - ], - "Startup Cost": 103334.0, - "Strategy": "Hashed", - "Total Cost": 128959.0 - } - ], - "Startup Cost": 141459.0, - "Strategy": "Plain", - "Total Cost": 141459.01 - } - } -] -``` - -**10,000,000 rows** - -``` -Aggregate - Group - Gather Merge - Group - Sort - Seq Scan on string_plaintext_10000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "JIT": { - "Functions": 9, - "Options": { - "Deforming": true, - "Expressions": true, - "Inlining": true, - "Optimization": true - } - }, - "Plan": { - "Async Capable": false, - "Node Type": "Aggregate", - "Parallel Aware": false, - "Partial Mode": "Simple", - "Plan Rows": 1, - "Plan Width": 8, - "Plans": [ - { - "Async Capable": false, - "Group Key": [ - "string_plaintext_10000000.value" - ], - "Node Type": "Group", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 20000040, - "Plan Width": 37, - "Plans": [ - { - "Async Capable": false, - "Node Type": "Gather Merge", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 16666700, - "Plan Width": 33, - "Plans": [ - { - "Async Capable": false, - "Group Key": [ - "string_plaintext_10000000.value" - ], - "Node Type": "Group", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 8333350, - "Plan Width": 33, - "Plans": [ - { - "Async Capable": false, - "Node Type": "Sort", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 8333350, - "Plan Width": 33, - "Plans": [ - { - "Alias": "string_plaintext_10000000", - "Async Capable": false, - "Node Type": "Seq Scan", - "Parallel Aware": true, - "Parent Relationship": "Outer", - "Plan Rows": 8333350, - "Plan Width": 33, - "Relation Name": "string_plaintext_10000000", - "Startup Cost": 0.0, - "Total Cost": 250000.5 - } - ], - "Sort Key": [ - "string_plaintext_10000000.value" - ], - "Startup Cost": 1663673.46, - "Total Cost": 1684506.84 - } - ], - "Startup Cost": 1663673.46, - "Total Cost": 1705340.21 - } - ], - "Startup Cost": 1664673.49, - "Total Cost": 3630090.96, - "Workers Planned": 2 - } - ], - "Startup Cost": 1664673.49, - "Total Cost": 3671757.71 - } - ], - "Startup Cost": 3921758.21, - "Strategy": "Plain", - "Total Cost": 3921758.22 - } - } -] -``` - -
    - -![Query Performance - GROUP_BY/count_groups_plaintext](query_group_by_count_groups_plaintext_chart.png) - -### MATCH Queries - -#### eql_bloom - -**Description:** Pattern matching using EQL bloom filter containment - -**SQL Query:** -```sql -SELECT id,value::jsonb FROM {TABLE} WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10 -``` - -**Parameter:** `Johnson` - -**Table: `string_encrypted_{rows}` with encrypted string values. Index: Bloom filter index using `eql_v2.bloom_filter`. Query returns LIMIT 10 results.** - -**Indexes available on the table:** -```sql -CREATE INDEX -string_encrypted_10000_hash_index -ON string_encrypted_10000 using hash ( - eql_v2.hmac_256(value) -); - -CREATE INDEX -string_encrypted_10000_gin_index -ON string_encrypted_10000 USING GIN ( - eql_v2.bloom_filter(value) -); -``` - -**Indexes used by the planner (per data set size):** - -- 10,000: `string_encrypted_10000_gin_index` -- 100,000: `string_encrypted_100000_gin_index` -- 1,000,000: `string_encrypted_1000000_gin_index` -- 10,000,000: `string_encrypted_10000000_gin_index` - -*⚠️ = Query time exceeds 100ms* - -| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 930.87μs | 28.78ms | -| 100,000 | 10 | 2.66ms | 29.79ms | -| 1,000,000 | 10 | 17.40ms | 43.78ms | -| 10,000,000 | 10 | ⚠️ 164.61ms | ⚠️ 189.74ms | - -_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ - -
    -EXPLAIN plans (per data set size) - -**10,000 rows** - -``` -Limit - Bitmap Heap Scan on string_encrypted_10000 - Bitmap Index Scan using string_encrypted_10000_gin_index -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Alias": "string_encrypted_10000", - "Async Capable": false, - "Node Type": "Bitmap Heap Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,682,1057,1760,1496,1183,1453,998,1143,1200,792,1109,1596,865,1845,710,1735,61,582,1574,587,1751,1637,830,2028,1068,895,421,1018,1500}'::smallint[])", - "Index Name": "string_encrypted_10000_gin_index", - "Node Type": "Bitmap Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 0, - "Startup Cost": 0.0, - "Total Cost": 264.6 - } - ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,682,1057,1760,1496,1183,1453,998,1143,1200,792,1109,1596,865,1845,710,1735,61,582,1574,587,1751,1637,830,2028,1068,895,421,1018,1500}'::smallint[])", - "Relation Name": "string_encrypted_10000", - "Startup Cost": 264.6, - "Total Cost": 269.11 - } - ], - "Startup Cost": 264.6, - "Total Cost": 269.11 - } - } -] -``` - -**100,000 rows** - -``` -Limit - Bitmap Heap Scan on string_encrypted_100000 - Bitmap Index Scan using string_encrypted_100000_gin_index -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Alias": "string_encrypted_100000", - "Async Capable": false, - "Node Type": "Bitmap Heap Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1183,792,865,1500,1057,1751,830,1596,710,587,61,1574,582,1143,1018,895,1200,421,1453,2028,682,1068,1735,1760,998,1845,1496,1637,1109}'::smallint[])", - "Index Name": "string_encrypted_100000_gin_index", - "Node Type": "Bitmap Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 0, - "Startup Cost": 0.0, - "Total Cost": 454.35 - } - ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1183,792,865,1500,1057,1751,830,1596,710,587,61,1574,582,1143,1018,895,1200,421,1453,2028,682,1068,1735,1760,998,1845,1496,1637,1109}'::smallint[])", - "Relation Name": "string_encrypted_100000", - "Startup Cost": 454.35, - "Total Cost": 458.86 - } - ], - "Startup Cost": 454.35, - "Total Cost": 458.86 - } - } -] -``` - -**1,000,000 rows** - -``` -Limit - Bitmap Heap Scan on string_encrypted_1000000 - Bitmap Index Scan using string_encrypted_1000000_gin_index -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Alias": "string_encrypted_1000000", - "Async Capable": false, - "Node Type": "Bitmap Heap Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1637,61,830,682,1109,1068,1031,1735,1596,1751,1845,1496,998,792,582,1183,1143,2028,865,1574,1018,587,1500,1760,895,421,1057,1200,1453,710}'::smallint[])", - "Index Name": "string_encrypted_1000000_gin_index", - "Node Type": "Bitmap Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 0, - "Startup Cost": 0.0, - "Total Cost": 1530.98 - } - ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1637,61,830,682,1109,1068,1031,1735,1596,1751,1845,1496,998,792,582,1183,1143,2028,865,1574,1018,587,1500,1760,895,421,1057,1200,1453,710}'::smallint[])", - "Relation Name": "string_encrypted_1000000", - "Startup Cost": 1530.98, - "Total Cost": 1535.49 - } - ], - "Startup Cost": 1530.98, - "Total Cost": 1535.49 - } - } -] -``` - -**10,000,000 rows** - -``` -Limit - Bitmap Heap Scan on string_encrypted_10000000 - Bitmap Index Scan using string_encrypted_10000000_gin_index -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Alias": "string_encrypted_10000000", - "Async Capable": false, - "Node Type": "Bitmap Heap Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1735,2028,1845,830,710,1183,61,587,792,1596,895,1018,1751,421,865,1637,1031,998,1574,1143,1453,1496,1068,682,582,1760,1500,1109,1057,1200}'::smallint[])", - "Index Name": "string_encrypted_10000000_gin_index", - "Node Type": "Bitmap Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 0, - "Startup Cost": 0.0, - "Total Cost": 11294.85 - } - ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1735,2028,1845,830,710,1183,61,587,792,1596,895,1018,1751,421,865,1637,1031,998,1574,1143,1453,1496,1068,682,582,1760,1500,1109,1057,1200}'::smallint[])", - "Relation Name": "string_encrypted_10000000", - "Startup Cost": 11294.85, - "Total Cost": 11299.36 - } - ], - "Startup Cost": 11294.85, - "Total Cost": 11299.36 - } - } -] -``` - -
    - -![Query Performance - MATCH/eql_bloom](query_match_eql_bloom_chart.png) - -#### eql_cast_firstname - -**Description:** Pattern matching on first name using EQL cast and LIKE - -**SQL Query:** -```sql -SELECT id,value::jsonb FROM {TABLE} WHERE value LIKE $1 LIMIT 10 -``` - -**Parameter:** `Bob` - -**Table: `string_encrypted_{rows}` with encrypted string values. Index: MATCH index for substring searches. Query returns LIMIT 10 results.** - -**Indexes available on the table:** -```sql -CREATE INDEX -string_encrypted_10000_hash_index -ON string_encrypted_10000 using hash ( - eql_v2.hmac_256(value) -); - -CREATE INDEX -string_encrypted_10000_gin_index -ON string_encrypted_10000 USING GIN ( - eql_v2.bloom_filter(value) -); -``` - -**Indexes used by the planner (per data set size):** - -- 10,000: `string_encrypted_10000_gin_index` -- 100,000: `string_encrypted_100000_gin_index` -- 1,000,000: `string_encrypted_1000000_gin_index` -- 10,000,000: `string_encrypted_10000000_gin_index` - -| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|---------------|-------------------------|---------------------------| -| 10,000 | 4 | 620.15μs | 26.75ms | -| 100,000 | 10 | 1.24ms | 28.74ms | -| 1,000,000 | 10 | 4.97ms | 32.56ms | -| 10,000,000 | 10 | 40.05ms | 65.93ms | - -_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ - -
    -EXPLAIN plans (per data set size) - -**10,000 rows** - -``` -Limit - Bitmap Heap Scan on string_encrypted_10000 - Bitmap Index Scan using string_encrypted_10000_gin_index -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Alias": "string_encrypted_10000", - "Async Capable": false, - "Node Type": "Bitmap Heap Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,461,453,1393,1554}'::smallint[])", - "Index Name": "string_encrypted_10000_gin_index", - "Node Type": "Bitmap Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 0, - "Startup Cost": 0.0, - "Total Cost": 56.22 - } - ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,461,453,1393,1554}'::smallint[])", - "Relation Name": "string_encrypted_10000", - "Startup Cost": 56.22, - "Total Cost": 60.73 - } - ], - "Startup Cost": 56.22, - "Total Cost": 60.73 - } - } -] -``` - -**100,000 rows** - -``` -Limit - Bitmap Heap Scan on string_encrypted_100000 - Bitmap Index Scan using string_encrypted_100000_gin_index -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Alias": "string_encrypted_100000", - "Async Capable": false, - "Node Type": "Bitmap Heap Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,453,91,1033,1393,461}'::smallint[])", - "Index Name": "string_encrypted_100000_gin_index", - "Node Type": "Bitmap Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 0, - "Startup Cost": 0.0, - "Total Cost": 93.35 - } - ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,453,91,1033,1393,461}'::smallint[])", - "Relation Name": "string_encrypted_100000", - "Startup Cost": 93.35, - "Total Cost": 97.86 - } - ], - "Startup Cost": 93.35, - "Total Cost": 97.86 - } - } -] -``` - -**1,000,000 rows** - -``` -Limit - Bitmap Heap Scan on string_encrypted_1000000 - Bitmap Index Scan using string_encrypted_1000000_gin_index -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Alias": "string_encrypted_1000000", - "Async Capable": false, - "Node Type": "Bitmap Heap Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,461,91,453,1393}'::smallint[])", - "Index Name": "string_encrypted_1000000_gin_index", - "Node Type": "Bitmap Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 0, - "Startup Cost": 0.0, - "Total Cost": 307.85 - } - ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,461,91,453,1393}'::smallint[])", - "Relation Name": "string_encrypted_1000000", - "Startup Cost": 307.85, - "Total Cost": 312.36 - } - ], - "Startup Cost": 307.85, - "Total Cost": 312.36 - } - } -] -``` - -**10,000,000 rows** - -``` -Limit - Bitmap Heap Scan on string_encrypted_10000000 - Bitmap Index Scan using string_encrypted_10000000_gin_index -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Alias": "string_encrypted_10000000", - "Async Capable": false, - "Node Type": "Bitmap Heap Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,1393,453,1554,1033,461}'::smallint[])", - "Index Name": "string_encrypted_10000000_gin_index", - "Node Type": "Bitmap Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 0, - "Startup Cost": 0.0, - "Total Cost": 2258.97 - } - ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,1393,453,1554,1033,461}'::smallint[])", - "Relation Name": "string_encrypted_10000000", - "Startup Cost": 2258.97, - "Total Cost": 2263.48 - } - ], - "Startup Cost": 2258.97, - "Total Cost": 2263.48 - } - } -] -``` - -
    - -![Query Performance - MATCH/eql_cast_firstname](query_match_eql_cast_firstname_chart.png) - -#### eql_cast_lastname - -**Description:** Pattern matching on last name using EQL cast and LIKE - -**SQL Query:** -```sql -SELECT id,value::jsonb FROM {TABLE} WHERE value LIKE $1 LIMIT 10 -``` - -**Parameter:** `Johnson` - -**Table: `string_encrypted_{rows}` with encrypted string values. Index: MATCH index for substring searches. Query returns LIMIT 10 results.** - -**Indexes available on the table:** -```sql -CREATE INDEX -string_encrypted_10000_hash_index -ON string_encrypted_10000 using hash ( - eql_v2.hmac_256(value) -); - -CREATE INDEX -string_encrypted_10000_gin_index -ON string_encrypted_10000 USING GIN ( - eql_v2.bloom_filter(value) -); -``` - -**Indexes used by the planner (per data set size):** - -- 10,000: `string_encrypted_10000_gin_index` -- 100,000: `string_encrypted_100000_gin_index` -- 1,000,000: `string_encrypted_1000000_gin_index` -- 10,000,000: `string_encrypted_10000000_gin_index` - -*⚠️ = Query time exceeds 100ms* - -| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 959.00μs | 28.34ms | -| 100,000 | 10 | 2.71ms | 30.04ms | -| 1,000,000 | 10 | 17.18ms | 43.77ms | -| 10,000,000 | 10 | ⚠️ 164.52ms | ⚠️ 188.25ms | - -_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ - -
    -EXPLAIN plans (per data set size) - -**10,000 rows** - -``` -Limit - Bitmap Heap Scan on string_encrypted_10000 - Bitmap Index Scan using string_encrypted_10000_gin_index -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Alias": "string_encrypted_10000", - "Async Capable": false, - "Node Type": "Bitmap Heap Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1109,1596,895,61,1143,1845,1057,865,710,830,1496,582,1068,792,1751,1574,1500,682,2028,1031,1200,587,421,1637,1735,1760,1183,1453,998,1018}'::smallint[])", - "Index Name": "string_encrypted_10000_gin_index", - "Node Type": "Bitmap Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 0, - "Startup Cost": 0.0, - "Total Cost": 264.6 - } - ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1109,1596,895,61,1143,1845,1057,865,710,830,1496,582,1068,792,1751,1574,1500,682,2028,1031,1200,587,421,1637,1735,1760,1183,1453,998,1018}'::smallint[])", - "Relation Name": "string_encrypted_10000", - "Startup Cost": 264.6, - "Total Cost": 269.11 - } - ], - "Startup Cost": 264.6, - "Total Cost": 269.11 - } - } -] -``` - -**100,000 rows** - -``` -Limit - Bitmap Heap Scan on string_encrypted_100000 - Bitmap Index Scan using string_encrypted_100000_gin_index -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Alias": "string_encrypted_100000", - "Async Capable": false, - "Node Type": "Bitmap Heap Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1496,1500,1735,1183,895,1143,1845,1109,421,830,1751,682,1574,792,1637,1760,1068,61,865,2028,582,1018,587,1453,998,1200,1031,710,1596,1057}'::smallint[])", - "Index Name": "string_encrypted_100000_gin_index", - "Node Type": "Bitmap Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 0, - "Startup Cost": 0.0, - "Total Cost": 454.35 - } - ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1496,1500,1735,1183,895,1143,1845,1109,421,830,1751,682,1574,792,1637,1760,1068,61,865,2028,582,1018,587,1453,998,1200,1031,710,1596,1057}'::smallint[])", - "Relation Name": "string_encrypted_100000", - "Startup Cost": 454.35, - "Total Cost": 458.86 - } - ], - "Startup Cost": 454.35, - "Total Cost": 458.86 - } - } -] -``` - -**1,000,000 rows** - -``` -Limit - Bitmap Heap Scan on string_encrypted_1000000 - Bitmap Index Scan using string_encrypted_1000000_gin_index -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Alias": "string_encrypted_1000000", - "Async Capable": false, - "Node Type": "Bitmap Heap Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{830,421,1735,1574,1751,1200,1143,710,895,1031,792,1068,2028,1018,61,1845,1596,682,1109,1637,1496,865,1500,582,587,1183,1760,1453,1057,998}'::smallint[])", - "Index Name": "string_encrypted_1000000_gin_index", - "Node Type": "Bitmap Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 0, - "Startup Cost": 0.0, - "Total Cost": 1530.98 - } - ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{830,421,1735,1574,1751,1200,1143,710,895,1031,792,1068,2028,1018,61,1845,1596,682,1109,1637,1496,865,1500,582,587,1183,1760,1453,1057,998}'::smallint[])", - "Relation Name": "string_encrypted_1000000", - "Startup Cost": 1530.98, - "Total Cost": 1535.49 - } - ], - "Startup Cost": 1530.98, - "Total Cost": 1535.49 - } - } -] -``` - -**10,000,000 rows** - -``` -Limit - Bitmap Heap Scan on string_encrypted_10000000 - Bitmap Index Scan using string_encrypted_10000000_gin_index -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Alias": "string_encrypted_10000000", - "Async Capable": false, - "Node Type": "Bitmap Heap Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 36, - "Plans": [ - { - "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,710,1109,1200,421,1637,587,61,1143,2028,865,1574,998,682,582,1751,1845,1453,1183,1057,1031,1500,1596,1068,1496,1018,830,895,1735}'::smallint[])", - "Index Name": "string_encrypted_10000000_gin_index", - "Node Type": "Bitmap Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 1, - "Plan Width": 0, - "Startup Cost": 0.0, - "Total Cost": 11294.85 - } - ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,710,1109,1200,421,1637,587,61,1143,2028,865,1574,998,682,582,1751,1845,1453,1183,1057,1031,1500,1596,1068,1496,1018,830,895,1735}'::smallint[])", - "Relation Name": "string_encrypted_10000000", - "Startup Cost": 11294.85, - "Total Cost": 11299.36 - } - ], - "Startup Cost": 11294.85, - "Total Cost": 11299.36 - } - } -] -``` - -
    - -![Query Performance - MATCH/eql_cast_lastname](query_match_eql_cast_lastname_chart.png) - -### ORE Queries - -#### range_gt_10 - -**Description:** Range query (greater than) returning 10 results - -**SQL Query:** -```sql -SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 10 -``` - -**Parameter:** `5000` - -**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. The bare-form `<` / `>` operators inline to `eql_v2.ore_block_u64_8_256(a) op eql_v2.ore_block_u64_8_256(b)` post-2.3, so the index engages without query rewriting. Query: WHERE value > 5000 LIMIT 10.** - -**Indexes available on the table:** -```sql -CREATE INDEX -integer_encrypted_10000_ore_index -ON integer_encrypted_10000 ( - eql_v2.ore_block_u64_8_256(value) -); -``` - -**Indexes used by the planner (per data set size):** - -- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ - -| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.38ms | 27.89ms | -| 100,000 | 10 | 959.89μs | 27.28ms | -| 1,000,000 | 10 | 1.14ms | 29.31ms | -| 10,000,000 | 10 | 1.56ms | 30.66ms | - -_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ - -
    -EXPLAIN plans (per data set size) - -**10,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_10000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 10, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_10000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2866753ccc8560ed378bd1ea2688055b68219930c9c62efe6a5585561cbd40c8184791898ed8a61b0200c21fdc26fc3eec04c9e43e1f177a29a11417528933534e6181b33321564659f34a5ab47323a8e267a75afe52b8383c705950e4e7cf0ccbe92bf4b85412ce624167d57355339e891bc20473831361267090f2b30d968747a0894c186cb570e9dd6ca1ddfbffa8ab1c80867b250e6e95ab40f226cedc47c708692bea93cbf90e5483e1da65e36c9a6d65b19f54aca925996022d325664ed50f793db1b8f02a2749b9691cac6785708ce6d639493d402f258ffd876403512333bcfd7d3dc7e23b2fe7e8732d90732b3eeeb2b23e94f772777168610d0a87e57587851d361eedee8b0864ceb83d6afb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 5050, - "Plan Width": 36, - "Relation Name": "integer_encrypted_10000", - "Startup Cost": 0.0, - "Total Cost": 7791.5 - } - ], - "Startup Cost": 0.0, - "Total Cost": 15.43 - } - } -] -``` - -**100,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_100000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 10, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_100000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d00b4211483444a28607a5bb934773618d331665f575ce0476d41ea94f67d2fefc6bc53bcf427e70f19f00f4365a3736993d4ce1aba8c558c26113c7efff5e914754a40615e408043bc791899668848321621f722a1bf621c092351f7f29afdd9940fe1795fc81645d684c86e3c0197cc11130a43d335962754e594ab96647c2354281c0185044dc3ed9db19bd8d352965809ceb90fd23caea82b377b0a1b58351fd3830c67a4597c6ac542b15479972422922e08db7c8f7a0e9b80c83f7c4dbb51e4deabb318b6164ed0e37b360294bffce8b4c39dccec64293ddc5eae77cb130c1a78d2d944f92149d615c9cf0d0b251cfcdf45eded3faab0f118afb3d1e9c7e37cdc4ae44b69ae18fc945ceb4c058\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 33333, - "Plan Width": 36, - "Relation Name": "integer_encrypted_100000", - "Startup Cost": 0.0, - "Total Cost": 73619.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 22.09 - } - } -] -``` - -**1,000,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_1000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 10, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_1000000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28cf5cc89b82640ab18c8d144a0505f4aac3a1b44eb0d446b6583aa58e3396788c4356256e7664ceb5d3a6ceea00d70031d209d1bcb718535b1d7b4e4fabc474cafffa8127017c7f8ceff14073f726621131c03fa28458716cf97a8f153236ff3cc98f8af000ee28bd357d3c1e4d1bb4b5e364330ab582e26ad1ed38e6ef4859026497b4a468a01743c448e50f555ac3b6296c5edcded0a88559b5b2a46068f6de824051670a6a4b51272eaecd42744d221efecb0c336f5bfdc9262bd589daa99197c2f363bfdc7ca1a95fea481a01efc47df38764be95198024f64e3423bc025801f7d5c14b80ab9ec17f2f61ce51d12e3b008650fabe4f2f1ce417edcde29971cdc959849f8d6fd2cce59bf3f9153669\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 333333, - "Plan Width": 36, - "Relation Name": "integer_encrypted_1000000", - "Startup Cost": 0.0, - "Total Cost": 736191.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 22.09 - } - } -] -``` - -**10,000,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_10000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 10, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_10000000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283605730cb2c4133689844265909d50beb6dad11754437265b47924ab44e0642a2e9869a812cf24d33ef2d20ad82e89239bdb64512670f4b016397c3333ac1c7368ff15b878966f9b6b429fbeba128da9aeff54f249f3dab72b129fae5ed7b2bd4a71048349b84920269854c2716da3cae689ffade3f88eb7ebd0abaf86c8bffea342ea06ed4d10a4247e24ca878d1c83da0823a30b644447926256ec415a043f6e1bff8c35f7f1f645a48dcc42934787ff9bf432402e411b5f327f506e39c384b3363bbe596a08e4444985270fba26552f3b54c48fa25c8351946b003534712a9ca12f64891e2d0efaa608a734f372c16481d6d36bd6e75e2ef374d80751c1d8ea715346d1e2beff102c0907bdb03543\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 3333333, - "Plan Width": 36, - "Relation Name": "integer_encrypted_10000000", - "Startup Cost": 0.0, - "Total Cost": 7361905.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 22.09 - } - } -] -``` - -
    - -![Query Performance - ORE/range_gt_10](query_ore_range_gt_10_chart.png) - -#### range_gt_100 - -**Description:** Range query (greater than) returning 100 results - -**SQL Query:** -```sql -SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 100 -``` - -**Parameter:** `5000` - -**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value > 5000 LIMIT 100.** - -**Indexes available on the table:** -```sql -CREATE INDEX -integer_encrypted_10000_ore_index -ON integer_encrypted_10000 ( - eql_v2.ore_block_u64_8_256(value) -); -``` - -**Indexes used by the planner (per data set size):** - -- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ - -| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|---------------|-------------------------|---------------------------| -| 10,000 | 100 | 6.46ms | 45.43ms | -| 100,000 | 100 | 6.49ms | 46.66ms | -| 1,000,000 | 100 | 7.28ms | 47.45ms | -| 10,000,000 | 100 | 6.80ms | 44.63ms | - -_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ - -
    -EXPLAIN plans (per data set size) - -**10,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_10000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 100, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_10000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2821366b822d32f8a20f54272076a7dd206f920630769511696e06743f63acecb52068e2172f22db6d0906d81ff152fdbae91ce150d03bd942e8e27e3ea56ac0da6069168fd6e9c2793d20dd8946332e5cc487cec97cc7a1fb74c3596661e673f062b01618bb50be72c855eb3e41a8f4585085639a42942b677d35ebf4b71bcdef75730335885664b617a5347a9a47eb3e0628e7a4bdabc9d64d36e37f6f68a923a6c8904e1ce7fbad38cf1f82796658de1a18f0bcbc31e20d1aaee6d7f93c72e430734d43e46c1c7417de915324bd259cc8f874fe348c87d170317e0adbee823d1ad35278bd8629dfbc81e29ccf4db1d9b2b8936dddb00dbf449c5d011e4e5a52fc18ff4a2c1b5792b1047b06397d0eba\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 5050, - "Plan Width": 36, - "Relation Name": "integer_encrypted_10000", - "Startup Cost": 0.0, - "Total Cost": 7791.5 - } - ], - "Startup Cost": 0.0, - "Total Cost": 154.29 - } - } -] -``` - -**100,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_100000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 100, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_100000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288e58e5089db6ea54ef0825214cd5699afefd9b328e8994790781267949aa9f8d6bb80e181f5357989def2f5a04e2acc6f5f6bd66f305fd869e70be94fb8e9c78b5e5d6dc4dfe882b621518a017866be7130be8ce17434e02d6e374f5b07a17ab4b40bf13c67cd8f041033d2588d5bafe682c1856081656c82b324a7fee52e6c212be290dfb80d97e321e6c25b91a2b9c640d1a26b43990a507016868414281792eeb6e8342170dc74e84015c8e67b69965b694937f58cd2975032b3b76fd21cb3761f94a932388b668e5b1869af04d64e19f83d07c2b01ae32136b28fb7d400ec58c6c39709df47d63509ec3099e58c8e1c1305754d94bf493825a9c15f3c80c0d21e6ccbf1f74ec43cd6a606fd0da97\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 33333, - "Plan Width": 36, - "Relation Name": "integer_encrypted_100000", - "Startup Cost": 0.0, - "Total Cost": 73619.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 220.86 - } - } -] -``` - -**1,000,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_1000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 100, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_1000000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2829721df213f24f5a49d72133263260e440f42d347acb5234497377af104689569a2abededff4a40e2b84bcae090690f80534ee697d22aeec41c1fe5a80f439e405a7b816553c26bedeb08ca907535d9e2f14a0f48fa9c853a8a532ca1cdbb2a7ad41b10326b596e7a5e4d7f6089a62f4bed7b34f5285e28411fa2897a82d9f70a845a41d9d666f7dc2c3e229caa9737623bf96c498572ebd601a21f97375fe35fc66e25668905f5efcbfee0223ba5d75ae2ec020e5986dfa8cd986651093ed8340d3136d02635e25af2c6d82c3def0e777f74a4a2c4cae73a16d05913de579cde92ed2bc2b2b3c326690a94b467cd311ebd6ca77bc5f0a0e0cb31548c57ba62a4933cbd9cfc4cb815da83dfbd4fe3d26\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 333333, - "Plan Width": 36, - "Relation Name": "integer_encrypted_1000000", - "Startup Cost": 0.0, - "Total Cost": 736191.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 220.86 - } - } -] -``` - -**10,000,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_10000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 100, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_10000000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb286048e82b076e777e50b8ff912b52bb690956d258fcd42d7fd52322f44102e5ef9d08e1810c14e6a731f3108c4f6748d7fc9b7dc6a9367dcde70d4265ca498018e1332e4e54c8e499335dddb31b62c6c94e734e1815b897eeb53fd030a0c5300877e2cc07e74a01d132a9259f864ef9d24bb6949306819ff6ba9c97c47d486870a98574b5fe987183a71b12ebd600fad72b061342adea94905f3b3ab6c38e8e68130d00c6e9ea2498afb7bed57486a322a53544aa8bbde8a2d4f9dcbaee22804181b24ac93fe2d549ef7ca366370be32cb97b958b0e86e4d203b1d9619c6e5d6e3168f849283f9a00d022486ac3813834f9cf510bfe2f973573abf6c58522b47a3eb9750b6ad7e852a013da39ff9d31f0\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 3333333, - "Plan Width": 36, - "Relation Name": "integer_encrypted_10000000", - "Startup Cost": 0.0, - "Total Cost": 7361905.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 220.86 - } - } -] -``` - -
    - -![Query Performance - ORE/range_gt_100](query_ore_range_gt_100_chart.png) - -#### range_lt_10 - -**Description:** Range query (less than) returning 10 results - -**SQL Query:** -```sql -SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 LIMIT 10 -``` - -**Parameter:** `5000` - -**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value < 5000 LIMIT 10.** - -**Indexes available on the table:** -```sql -CREATE INDEX -integer_encrypted_10000_ore_index -ON integer_encrypted_10000 ( - eql_v2.ore_block_u64_8_256(value) -); -``` - -**Indexes used by the planner (per data set size):** - -- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ - -| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.35ms | 28.71ms | -| 100,000 | 10 | 902.88μs | 27.53ms | -| 1,000,000 | 10 | 1.02ms | 28.40ms | -| 10,000,000 | 10 | 1.53ms | 28.93ms | - -_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ - -
    -EXPLAIN plans (per data set size) - -**10,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_10000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 10, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_10000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28477c857070b9399a0a5377458eabdd5584b5a120936f7eefdd135c4fd3358580807f9f5cd8b1eb4ea8f1a5d97f94cd874f293c663490fefdda6b83cb4cdab2087820aafbf2774f66662f9f3f9bf1c2d3feefd292f893a689806161035383698949aa9862812ea7695a017989bd192bc0e5f1ac4358eb330546fa628eb8a4e3530b9e0297d912dcc80b12b78dbe027474a7733adc1e63c1e6864293e8fc6910d1604d3d8d5971be79ba17eca9a8829c357dca82081d4e9a1e325a191426b1aae558837da29ae1243503027408c32ebe32a5ef5d796f0d4c54bbbbba3c65e8c01262f28aa78b7cda939737094d84d71a207cdef6ec421d9fe5aed7b761feb965eb47f27574ebfc47c7754045816505cd6f\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 4949, - "Plan Width": 36, - "Relation Name": "integer_encrypted_10000", - "Startup Cost": 0.0, - "Total Cost": 7766.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 15.69 - } - } -] -``` - -**100,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_100000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 10, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_100000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2874d04c959852b019a0e4dd672cdb85ad0e0e01320c7b9f4fd5bbecd68a3bc0712d6644994b6459441cc699c1e4988622419949a1a92a82ed4b0b1391597552d082a123efc22e625b9ac5f380127dbc793c296bde791ccd927ecd79242081e0b5a17d23b6082ab04071d90338a1239a679fbafec5cbf246fce547a201c81cc52c12ea7da34daa7ac8ee7bba3c95e90d907be26557c2fb341f7e4c7f07e8911aa4a412dcffda035d0ea20108f94eeb6fc5c641e5fbeaed7c51091ea67837e6de9215defd292c4e401e5c69c600196c19ba8bdc9f397ab1b6ced97baa0e116720fda5706eaf4a1e6903bbc85354cf8bb6f70dd8c190ef210cbf2513aa29463f1c23194c209133a778d6b3757b70f375087d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 33333, - "Plan Width": 36, - "Relation Name": "integer_encrypted_100000", - "Startup Cost": 0.0, - "Total Cost": 73619.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 22.09 - } - } -] -``` - -**1,000,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_1000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 10, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_1000000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288a3d7d6cedb08cef232d94fdd36b136c500834ed262d47d8fd23d66ebd95a2ce1b1e55617da1bf5fcccc4bde63cdb98bd4d8185f26eb435715877626f04204132748b79865f9f4cfac7c6985af2df82c64fcb462a96a93cc4afba7c7b98e84d7a106efd4ca5cabfc6242c71da6c3ca3b2493e6a9f14f9066a4fb23c7c42b76296e4170af6ca8a380147dcbb4bc4f7877f1a4e525e45296cf98bdf539cfd8d2a547aa80c0c412282a2b710db584e2f6902c46baa25887f7f21feeea68591f42c121190c867341028027e40bb155709874082c2abcb9bb5a65914293f3e9fa1102b5dd6168f48098b68e244b3343f21a754478d694f5cc5a47688e803a8bb32d8fed23d80f5bdf0bf66686b83fa7bd09e0\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 333333, - "Plan Width": 36, - "Relation Name": "integer_encrypted_1000000", - "Startup Cost": 0.0, - "Total Cost": 736191.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 22.09 - } - } -] -``` - -**10,000,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_10000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 10, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_10000000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284d810cde25a7670e7b685dfdcdb9af84f015e9883a86e5b642398c22f72ba8908a2dcd921f29c2c9ee3d84e6d984b9c6395af88f7141a21a4633abeedd0eac9b09f72a339f32954bf8e968e0e9b3bb41392bc5733876fd8e6d8547eccace2176dd61f86b442c26fca3da52c1032f70874ee3d2118a950f256aeaf423ec7fd0c6df45f51cad5537aa4c3ea67840644a4b743d3e0a038087377c5da739145d1867361e71f4688ce7126c8358c914d1ea0156262887c55d6173bec6d6f4c0f1e1a3392712284df4757492ed1b7e53a025ebe271c1e5be28aeb053d8ac86378e1813adc29fdba6531c7323703d3af8e649cdd8facb00bd36a66778200e680bc7b4e07e9902a7d9c97c0cb1b06a9c87302cf7\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 3333333, - "Plan Width": 36, - "Relation Name": "integer_encrypted_10000000", - "Startup Cost": 0.0, - "Total Cost": 7361905.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 22.09 - } - } -] -``` - -
    - -![Query Performance - ORE/range_lt_10](query_ore_range_lt_10_chart.png) - -#### range_lt_100 - -**Description:** Range query (less than) returning 100 results - -**SQL Query:** -```sql -SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 LIMIT 100 -``` - -**Parameter:** `5000` - -**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value < 5000 LIMIT 100.** - -**Indexes available on the table:** -```sql -CREATE INDEX -integer_encrypted_10000_ore_index -ON integer_encrypted_10000 ( - eql_v2.ore_block_u64_8_256(value) -); -``` - -**Indexes used by the planner (per data set size):** - -- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ - -| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|---------------|-------------------------|---------------------------| -| 10,000 | 100 | 6.63ms | 45.24ms | -| 100,000 | 100 | 6.37ms | 44.34ms | -| 1,000,000 | 100 | 7.03ms | 47.43ms | -| 10,000,000 | 100 | 7.13ms | 51.37ms | - -_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ - -
    -EXPLAIN plans (per data set size) - -**10,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_10000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 100, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_10000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28171e61eec64bdb92961722f3582b257924b876c33a1473c2f2956c5ae39a589f5ccda06e767c62b711690c3321f66b658f75817ebb94c8e8bba344e071fc6c89aa49b5b2d769c578ae913f547863787f37a20d0f1adcc939e903f0538b5c49089af5b4920e7cfa16cbc9cc70bd16418f7e3f4b6ea530f82b35e645cfa0694296aa97bf61e187e631dd85b17ecd98b9ec350904a994341cb251184047a6634573bbb89dba7db085b95d16dedbea7872786d751cc7908ba2be24c00a5198f77ddeb5d27da50565dce2f232a58aec2489e568b87d6760b8024c3bd81916cc907991ad760d219b9989e24402b8ccbf63f2bf462c64ec5135a4fb4d6d15d6968642f7116a426a0ebc6f2ade4e126b07b84556\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 4949, - "Plan Width": 36, - "Relation Name": "integer_encrypted_10000", - "Startup Cost": 0.0, - "Total Cost": 7766.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 156.93 - } - } -] -``` - -**100,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_100000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 100, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_100000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb281aef769518e698df7c8adcb76b629160bf2f1a9305598b13ef214f364f64d77e1e8713c9b32f165428ffd0e19ba8448578fcbf4362d9381e37c8cad8779ca075701899a783c179aafa474886a729ca2563d6912f4533cc7e2a385037fdfd20124915428710afd87d4c3035ca6b65dd0c3c272f3b9f6993ae0726da4e2ae8756f1032e18b16f5c8108a1d15ffa96b26053303ad99973ce4e07f37551e70fea502ff41296391338bf0ab5a5e085d1a18c16ddaecd8f05eda92b9083b13f4dbf298add3264d717b9f01a7ed6d05dcc3d0f35446128cec3901b34a2e8dd6525a0282b0b95cbd3e222ef75e511e7a7bfa6cb76e6f5cd8a0b5e40679968ef04a83cfdf63bcd077a090b336c8a0416a10ab3ea2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 33333, - "Plan Width": 36, - "Relation Name": "integer_encrypted_100000", - "Startup Cost": 0.0, - "Total Cost": 73619.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 220.86 - } - } -] -``` - -**1,000,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_1000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 100, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_1000000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28b4dbe701b41c719741e2eff5a0e2f548fb9de16f5a002836bbfca43c6dbc0f7123afd76d309428860f33374a22d69a08d23f2acd180e0956448b69c5bcfc7d99de9c47441574f9aaeb0c32c64114418fef7466e1b8f195b64ba3ce0e346d999c41d2e60f97a9f9a852c3c37bae9722e0e8b94d1195b9c9e8e9eb64b0bd1ca3a488fbc74e60162dcf39bf0ce5126171af14b7b5c306eb8836527957a0b47809828d43c79d3f1b80328c96bbc4123b5c6368bf7c5437cc1cc867e818d362f0dc4a9d6b9498e3a9a02ce3131b95aab7876356451be74c3a2ffe6f1e73b3367de432ba5357ffe0a935c12fb9cb169a0e7754a02e49f3e7ab6bac88e1442934328a618114e7eeec8717b49c25fff29fcf9e39\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 333333, - "Plan Width": 36, - "Relation Name": "integer_encrypted_1000000", - "Startup Cost": 0.0, - "Total Cost": 736191.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 220.86 - } - } -] -``` - -**10,000,000 rows** - -``` -Limit - Seq Scan on integer_encrypted_10000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 100, - "Plan Width": 36, - "Plans": [ - { - "Alias": "integer_encrypted_10000000", - "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f82ab8190bc3260864a052a8d00cd0ae8c3296e163f811a932c7482430a36e9035b0663d7fe5d440ace8afb73becb2e536afcf2689ff61b53f05655d06239186d9fa37a7da2308b8e12ab9ba94d77db95038889670c9fddd9b68cd490ea7f96f3bbb716fb650c078a6ff2e9e3660e94712edce5c4c70210536142462a9812ca22b78c4380c56b3aaefb73ab0999b2a18cfee2e26f67efe93ef9aab52822e3a3291d8263cd72dc1745fb1a9f0695241887dc1cd4477eec3a2eaa6eec0aad5ca91157a20d1e5c71d32bd11d05192bd5beeb175c0dbf2ae391950a3730a5f347004a04d90662e9e5f60b187809af9bf6bc9edb9fa0f6ccc6f1c7b275e377fc28283c940d7873a67dd1c0b5a33dd4a546028\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 3333333, - "Plan Width": 36, - "Relation Name": "integer_encrypted_10000000", - "Startup Cost": 0.0, - "Total Cost": 7361905.25 - } - ], - "Startup Cost": 0.0, - "Total Cost": 220.86 - } - } -] -``` - -
    - -![Query Performance - ORE/range_lt_100](query_ore_range_lt_100_chart.png) - -#### range_lt_hybrid_ordered_10 - -**Description:** Ordered range query (hybrid form: natural WHERE, extractor ORDER BY) - -**SQL Query:** -```sql -SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10 -``` - -**Parameter:** `5000` - -**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value < 5000 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10. The sort key matches the index expression syntactically, so rows stream out of the index already ordered — no Sort node. See §4 of the EQL query-performance guide for the natural-form sort-key trap that this shape avoids.** - -**Indexes available on the table:** -```sql -CREATE INDEX -integer_encrypted_10000_ore_index -ON integer_encrypted_10000 ( - eql_v2.ore_block_u64_8_256(value) -); -``` - -**Indexes used by the planner (per data set size):** - -- 10,000: `integer_encrypted_10000_ore_index` -- 100,000: `integer_encrypted_100000_ore_index` -- 1,000,000: `integer_encrypted_1000000_ore_index` -- 10,000,000: `integer_encrypted_10000000_ore_index` - -| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | -|---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.17ms | 28.40ms | -| 100,000 | 10 | 1.08ms | 28.47ms | -| 1,000,000 | 10 | 1.21ms | 34.50ms | -| 10,000,000 | 10 | 1.18ms | 29.04ms | - -_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ - -
    -EXPLAIN plans (per data set size) - -**10,000 rows** - -``` -Limit - Index Scan using integer_encrypted_10000_ore_index on integer_encrypted_10000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 10, - "Plan Width": 68, - "Plans": [ - { - "Alias": "integer_encrypted_10000", - "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288c7fc4fbe45d08147e2a77a725807a26658454abbe8ef3b42e2c541fef1e5031f7f9acf75f12909d7c4d748eca10cbabac5226f324b1754cd88040d6ffd6b7fafd1db7d8858c64b12aaf659551bec51d7de9d04261fd71846b8b8c1e1df968ac45a432f558676b13bf1928474a82da050f3c7eb204c9eada77399754faf09f6c519787389dcaa5e5b581e683165ac606c80031564ba6d5822bfcb7b3a0023b5d12bf268b532ca01218da92e9f319ce4f6f20b1669c8c9f6eea6d490707aacc38eabc4b9461c094345e6a2bfe27448f6c543b23d5b18409a560d7c0b850bd972d90dbb9e8f98139a502fcb57360df32991df27a483a3387c50d9f7de7a5a993fcd8b83c545a797e335310b415bac5b99a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Index Name": "integer_encrypted_10000_ore_index", - "Node Type": "Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 4949, - "Plan Width": 68, - "Relation Name": "integer_encrypted_10000", - "Scan Direction": "Forward", - "Startup Cost": 0.54, - "Total Cost": 9829.55 - } - ], - "Startup Cost": 0.54, - "Total Cost": 20.4 - } - } -] -``` - -**100,000 rows** - -``` -Limit - Index Scan using integer_encrypted_100000_ore_index on integer_encrypted_100000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 10, - "Plan Width": 68, - "Plans": [ - { - "Alias": "integer_encrypted_100000", - "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28438afc98bf36fef6e83c178b3ab0c64d59caa952da0255aff98a301c6f4ca13dd511de88efd661b0cb48d77b4747886b6e86352a46be56496e130dabf9dec5e7396ff2a0947bb93250b7335dc553e8e8d22d9f7c38ade7f0c319bd0d8f6c1dba8178f0702bf8909f73126afb3ff5de63e219246e172754781fa2957aaff37a1a85a8c890e610943387252cca785941efedd90270dbc44234010b9fd46b80bfe79be2c40441d25756965646f0ca9de7245acdac17fcbf4cec3069516e8251208e0ea4dbffd37eb25b3dbd49bb219f416158db8ae4fdd28ccb34ecf03de2955283cb00095c9699004807b9b4c90fd4f679313aa6fec7afb545b8f32682105be0482079485e7ee47f5308c017c2922346f7\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Index Name": "integer_encrypted_100000_ore_index", - "Node Type": "Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 33333, - "Plan Width": 68, - "Relation Name": "integer_encrypted_100000", - "Scan Direction": "Forward", - "Startup Cost": 0.67, - "Total Cost": 84790.49 - } - ], - "Startup Cost": 0.67, - "Total Cost": 26.1 - } - } -] -``` - -**1,000,000 rows** - -``` -Limit - Index Scan using integer_encrypted_1000000_ore_index on integer_encrypted_1000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 10, - "Plan Width": 68, - "Plans": [ - { - "Alias": "integer_encrypted_1000000", - "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c0f6362f3cad82bc6b39f6288ea86857f68a29b00b9033f3e630aa22afe465dbe174f8994479de4533cc97b3408bc77c3f9cd6bf5eb6fb299405269d6bd30295a0c8b2c7f9a5f548c639d3ca11f04adedcfffd6cf449a76996d818d8e526e6699ec77409c59da6ba6e7befd591c7bdb35971e386cd0eea33b938a77428515e93919de5e3d7bd74ae6f72b238a2687d4a89aee2b572deaf79d66b4a445f438f41190670efed806f2d4785e46707b31f5b026dbb6fac40e3e8f99136780cfb9adc69715ea7979e553fd6b5437391819fbba3c2738297368a031fd8583bbe8eaa9e1796f35d6b45581b935d0ed3e8f156abbfe59c71be9ad181b68014f2fde16723c481ab5827a2184e6cca7387c4fe44cc\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Index Name": "integer_encrypted_1000000_ore_index", - "Node Type": "Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 333333, - "Plan Width": 68, - "Relation Name": "integer_encrypted_1000000", - "Scan Direction": "Forward", - "Startup Cost": 0.8, - "Total Cost": 847836.63 - } - ], - "Startup Cost": 0.8, - "Total Cost": 26.24 - } - } -] -``` - -**10,000,000 rows** - -``` -Limit - Index Scan using integer_encrypted_10000000_ore_index on integer_encrypted_10000000 -``` - -Full `EXPLAIN (FORMAT JSON)`: - -```json -[ - { - "Plan": { - "Async Capable": false, - "Node Type": "Limit", - "Parallel Aware": false, - "Plan Rows": 10, - "Plan Width": 68, - "Plans": [ - { - "Alias": "integer_encrypted_10000000", - "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb280fb6813c30e165c1b663cd926c07aac3ab1f56ef8768d7d7af43fd86b9d03c01f144844e102ef05c7caea1fc7dacca5069f230db61e989ec75af089851257f810a776030960c6cbe933cc2b06152132f5a01991ffdf372d25aefff82b7e43dc845f08971a5b48a2b5dd8808fab3e78fdaf19b36d4c276cfd1bbb95889d9b3e46aa1cc50ac1d6a86f626b298be0660058dc76cb8ff2d8449009c97e11108818d304effa5bab02ddd43b60afaff8e54322b5f9eca31412ad8fe0bab8a84887c26b2f48df0d85b99a978eb4c6b9db879933011f75b53124ace001788b21a6946ccc24040f68ba6292950806d7f340b1b1d5be6afd14e6f293c36448f48c4a64cd3b7dbf080b57a983e3bbc64b60ee291072\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Index Name": "integer_encrypted_10000000_ore_index", - "Node Type": "Index Scan", - "Parallel Aware": false, - "Parent Relationship": "Outer", - "Plan Rows": 3333333, - "Plan Width": 68, - "Relation Name": "integer_encrypted_10000000", - "Scan Direction": "Forward", - "Startup Cost": 0.94, - "Total Cost": 13113848.76 - } - ], - "Startup Cost": 0.94, - "Total Cost": 40.28 - } - } -] -``` - -
    - -![Query Performance - ORE/range_lt_hybrid_ordered_10](query_ore_range_lt_hybrid_ordered_10_chart.png) +| Query Type | Scenarios | Tiers | Largest-tier median (no decrypt) | Detail | +|-|-|-|-|-| +| COMBO | `bloom_ore_order_limit`, `filtered_group_by`, `top_n_filtered_group_by` | 10,000, 100,000, 1,000,000, 10,000,000 | 105.58ms | [open](combo.md) | +| EXACT | `eql_cast`, `eql_hash` | 10,000, 100,000, 1,000,000, 10,000,000 | 412.26μs | [open](exact.md) | +| GROUP_BY | `low_cardinality_groups_encrypted`, `low_cardinality_groups_plaintext`, `top_n_groups_encrypted`, `top_n_groups_plaintext` | 10,000, 100,000, 1,000,000, 10,000,000 | 981.51ms | [open](group_by.md) | +| MATCH | `eql_bloom`, `eql_cast_firstname`, `eql_cast_lastname` | 10,000, 100,000, 1,000,000, 10,000,000 | 122.53ms | [open](match.md) | +| ORE | `range_gt_10`, `range_gt_100`, `range_highly_selective_gt_10`, `range_lt_10`, `range_lt_100`, `range_lt_hybrid_ordered_10`, `range_selective_gt_100` | 10,000, 100,000, 1,000,000, 10,000,000 | 483.80ms | [open](ore.md) | --- diff --git a/report/combo.md b/report/combo.md new file mode 100644 index 0000000..5548439 --- /dev/null +++ b/report/combo.md @@ -0,0 +1,1187 @@ +# COMBO Queries + +[← Back to overview](./BENCHMARK_REPORT.md) + +Per-tier query performance. Each scenario lists its SQL, the indexes available on the target table, the indexes the planner actually picked per tier, the timing table, and the full EXPLAIN plan in a collapsed block. + +## bloom_ore_order_limit + +**Description:** Composite predicate: filter by name pattern (bloom), order by age (ORE), limit 10 + +**SQL Query:** +```sql +SELECT id FROM {TABLE} WHERE name LIKE $1 ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10 +``` + +**Parameter:** `Bob` + +**Table: `combo_encrypted_{rows}` with three encrypted columns — `name` (match + hmac), `age` (ORE), `category` (hmac). Indexes: functional GIN on `eql_v2.bloom_filter(name)`, functional btree on `eql_v2.ore_block_u64_8_256(age)`, functional hash on `eql_v2.hmac_256(category)`. **The bloom GIN index engages for the LIKE predicate**, narrowing the input to ~0.01–0.1% of rows; the planner then sorts the small filtered set by `eql_v2.ore_block_u64_8_256(age)` and returns the top 10. The ORE btree doesn't engage here — PostgreSQL can't merge two unrelated indexes on different columns (bloom on `name`, btree on `age`), so the ORDER BY is satisfied by a Sort node above the Bitmap Heap Scan. With the bloom narrowing so aggressively, that Sort is cheap; the cost is dominated by the bloom + heap fetch.** + +**Indexes available on the table:** +```sql +CREATE INDEX +combo_encrypted_10000_name_gin_index +ON combo_encrypted_10000 USING GIN ( + eql_v2.bloom_filter(name) +); + +CREATE INDEX +combo_encrypted_10000_age_ore_index +ON combo_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(age) +); + +CREATE INDEX +combo_encrypted_10000_category_hash_index +ON combo_encrypted_10000 USING hash ( + eql_v2.hmac_256(category) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `combo_encrypted_10000_name_gin_index` +- 100,000: `combo_encrypted_100000_name_gin_index` +- 1,000,000: `combo_encrypted_1000000_name_gin_index` +- 10,000,000: `combo_encrypted_10000000_name_gin_index` + +*⚠️ = Query time exceeds 100ms* + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 9 | 1.03ms | N/A | +| 100,000 | 10 | 3.43ms | N/A | +| 1,000,000 | 10 | 23.35ms | N/A | +| 10,000,000 | 10 | ⚠️ 217.26ms | N/A | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Sort + Bitmap Heap Scan on combo_encrypted_10000 + Bitmap Index Scan using combo_encrypted_10000_name_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "combo_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1033,461,1554,1393,91}'::smallint[])", + "Index Name": "combo_encrypted_10000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 56.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1033,461,1554,1393,91}'::smallint[])", + "Relation Name": "combo_encrypted_10000", + "Startup Cost": 56.22, + "Total Cost": 60.73 + } + ], + "Sort Key": [ + "(eql_v2.ore_block_u64_8_256(age))" + ], + "Startup Cost": 60.74, + "Total Cost": 60.75 + } + ], + "Startup Cost": 60.74, + "Total Cost": 60.75 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Sort + Bitmap Heap Scan on combo_encrypted_100000 + Bitmap Index Scan using combo_encrypted_100000_name_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "combo_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,1033,1554,461,453,91}'::smallint[])", + "Index Name": "combo_encrypted_100000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 93.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,1033,1554,461,453,91}'::smallint[])", + "Relation Name": "combo_encrypted_100000", + "Startup Cost": 93.35, + "Total Cost": 97.86 + } + ], + "Sort Key": [ + "(eql_v2.ore_block_u64_8_256(age))" + ], + "Startup Cost": 97.87, + "Total Cost": 97.87 + } + ], + "Startup Cost": 97.87, + "Total Cost": 97.87 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Sort + Bitmap Heap Scan on combo_encrypted_1000000 + Bitmap Index Scan using combo_encrypted_1000000_name_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "combo_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,453,1033,1393,1554,461}'::smallint[])", + "Index Name": "combo_encrypted_1000000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 311.97 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,453,1033,1393,1554,461}'::smallint[])", + "Relation Name": "combo_encrypted_1000000", + "Startup Cost": 311.97, + "Total Cost": 316.48 + } + ], + "Sort Key": [ + "(eql_v2.ore_block_u64_8_256(age))" + ], + "Startup Cost": 316.49, + "Total Cost": 316.5 + } + ], + "Startup Cost": 316.49, + "Total Cost": 316.5 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Sort + Bitmap Heap Scan on combo_encrypted_10000000 + Bitmap Index Scan using combo_encrypted_10000000_name_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "combo_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1033,91,1554,453,461,1393}'::smallint[])", + "Index Name": "combo_encrypted_10000000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 2300.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1033,91,1554,453,461,1393}'::smallint[])", + "Relation Name": "combo_encrypted_10000000", + "Startup Cost": 2300.22, + "Total Cost": 2304.73 + } + ], + "Sort Key": [ + "(eql_v2.ore_block_u64_8_256(age))" + ], + "Startup Cost": 2304.74, + "Total Cost": 2304.75 + } + ], + "Startup Cost": 2304.74, + "Total Cost": 2304.75 + } + } +] +``` + +
    + +![Query Performance - COMBO/bloom_ore_order_limit](query_combo_bloom_ore_order_limit_chart.png) + +## filtered_group_by + +**Description:** Composite predicate: filter by name pattern, GROUP BY category + +**SQL Query:** +```sql +SELECT eql_v2.hmac_256(category), count(*) FROM {TABLE} WHERE name LIKE $1 GROUP BY 1 +``` + +**Parameter:** `Bob` + +**Table: `combo_encrypted_{rows}`. Query: `SELECT eql_v2.hmac_256(category), count(*) FROM tbl WHERE name LIKE $1 GROUP BY 1`. Bloom filter on `name` filters the input set; HashAggregate then groups the small post-filter set by the 32-byte category HMAC. With ~0.01-0.1% of names matching a typical bloom pattern and 250 category buckets, the aggregate stage is essentially free — the cost is bloom filter scan plus per-matching-row HMAC.** + +**Indexes available on the table:** +```sql +CREATE INDEX +combo_encrypted_10000_name_gin_index +ON combo_encrypted_10000 USING GIN ( + eql_v2.bloom_filter(name) +); + +CREATE INDEX +combo_encrypted_10000_age_ore_index +ON combo_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(age) +); + +CREATE INDEX +combo_encrypted_10000_category_hash_index +ON combo_encrypted_10000 USING hash ( + eql_v2.hmac_256(category) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `combo_encrypted_10000_name_gin_index` +- 100,000: `combo_encrypted_100000_name_gin_index` +- 1,000,000: `combo_encrypted_1000000_name_gin_index` +- 10,000,000: `combo_encrypted_10000000_name_gin_index` + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 9 | 618.30μs | N/A | +| 100,000 | 47 | 1.01ms | N/A | +| 1,000,000 | 227 | 5.67ms | N/A | +| 10,000,000 | 250 | 50.80ms | N/A | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Aggregate (Sorted) + Sort + Bitmap Heap Scan on combo_encrypted_10000 + Bitmap Index Scan using combo_encrypted_10000_name_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,453,91,1033,1554,461}'::smallint[])", + "Index Name": "combo_encrypted_10000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 56.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,453,91,1033,1554,461}'::smallint[])", + "Relation Name": "combo_encrypted_10000", + "Startup Cost": 56.22, + "Total Cost": 60.49 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 60.5, + "Total Cost": 60.5 + } + ], + "Startup Cost": 60.5, + "Strategy": "Sorted", + "Total Cost": 60.52 + } + } +] +``` + +**100,000 rows** + +``` +Aggregate (Sorted) + Sort + Bitmap Heap Scan on combo_encrypted_100000 + Bitmap Index Scan using combo_encrypted_100000_name_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Index Name": "combo_encrypted_100000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 93.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Relation Name": "combo_encrypted_100000", + "Startup Cost": 93.35, + "Total Cost": 97.61 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 97.62, + "Total Cost": 97.63 + } + ], + "Startup Cost": 97.62, + "Strategy": "Sorted", + "Total Cost": 97.64 + } + } +] +``` + +**1,000,000 rows** + +``` +Aggregate (Sorted) + Sort + Bitmap Heap Scan on combo_encrypted_1000000 + Bitmap Index Scan using combo_encrypted_1000000_name_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1554,1033,91,461,1393}'::smallint[])", + "Index Name": "combo_encrypted_1000000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 311.97 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1554,1033,91,461,1393}'::smallint[])", + "Relation Name": "combo_encrypted_1000000", + "Startup Cost": 311.97, + "Total Cost": 316.24 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 316.25, + "Total Cost": 316.25 + } + ], + "Startup Cost": 316.25, + "Strategy": "Sorted", + "Total Cost": 316.27 + } + } +] +``` + +**10,000,000 rows** + +``` +Aggregate (Sorted) + Sort + Bitmap Heap Scan on combo_encrypted_10000000 + Bitmap Index Scan using combo_encrypted_10000000_name_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Index Name": "combo_encrypted_10000000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 2300.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Relation Name": "combo_encrypted_10000000", + "Startup Cost": 2300.22, + "Total Cost": 2304.49 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 2304.5, + "Total Cost": 2304.5 + } + ], + "Startup Cost": 2304.5, + "Strategy": "Sorted", + "Total Cost": 2304.52 + } + } +] +``` + +
    + +![Query Performance - COMBO/filtered_group_by](query_combo_filtered_group_by_chart.png) + +## top_n_filtered_group_by + +**Description:** Dashboard analytic: top 10 categories for customers matching a name pattern + +**SQL Query:** +```sql +SELECT eql_v2.hmac_256(category), count(*) FROM {TABLE} WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10 +``` + +**Parameter:** `Bob` + +**Table: `combo_encrypted_{rows}`. Query: `SELECT eql_v2.hmac_256(category), count(*) FROM tbl WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10`. Same shape as `filtered_group_by` with an outer Top-N sort + LIMIT 10. Realistic analytics shape for surfacing the categories that contain the most customers matching a filter, without revealing the underlying names or category labels.** + +**Indexes available on the table:** +```sql +CREATE INDEX +combo_encrypted_10000_name_gin_index +ON combo_encrypted_10000 USING GIN ( + eql_v2.bloom_filter(name) +); + +CREATE INDEX +combo_encrypted_10000_age_ore_index +ON combo_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(age) +); + +CREATE INDEX +combo_encrypted_10000_category_hash_index +ON combo_encrypted_10000 USING hash ( + eql_v2.hmac_256(category) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `combo_encrypted_10000_name_gin_index` +- 100,000: `combo_encrypted_100000_name_gin_index` +- 1,000,000: `combo_encrypted_1000000_name_gin_index` +- 10,000,000: `combo_encrypted_10000000_name_gin_index` + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 9 | 600.17μs | N/A | +| 100,000 | 10 | 988.76μs | N/A | +| 1,000,000 | 10 | 5.47ms | N/A | +| 10,000,000 | 10 | 50.03ms | N/A | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Sort + Aggregate (Sorted) + Sort + Bitmap Heap Scan on combo_encrypted_10000 + Bitmap Index Scan using combo_encrypted_10000_name_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1033,1393,453,1554,91}'::smallint[])", + "Index Name": "combo_encrypted_10000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 56.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1033,1393,453,1554,91}'::smallint[])", + "Relation Name": "combo_encrypted_10000", + "Startup Cost": 56.22, + "Total Cost": 60.49 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 60.5, + "Total Cost": 60.5 + } + ], + "Startup Cost": 60.5, + "Strategy": "Sorted", + "Total Cost": 60.52 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 60.53, + "Total Cost": 60.53 + } + ], + "Startup Cost": 60.53, + "Total Cost": 60.53 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Sort + Aggregate (Sorted) + Sort + Bitmap Heap Scan on combo_encrypted_100000 + Bitmap Index Scan using combo_encrypted_100000_name_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,461,1033,1393,1554,453}'::smallint[])", + "Index Name": "combo_encrypted_100000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 93.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,461,1033,1393,1554,453}'::smallint[])", + "Relation Name": "combo_encrypted_100000", + "Startup Cost": 93.35, + "Total Cost": 97.61 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 97.62, + "Total Cost": 97.63 + } + ], + "Startup Cost": 97.62, + "Strategy": "Sorted", + "Total Cost": 97.64 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 97.65, + "Total Cost": 97.66 + } + ], + "Startup Cost": 97.65, + "Total Cost": 97.66 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Sort + Aggregate (Sorted) + Sort + Bitmap Heap Scan on combo_encrypted_1000000 + Bitmap Index Scan using combo_encrypted_1000000_name_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1554,461,1033,91,1393,453}'::smallint[])", + "Index Name": "combo_encrypted_1000000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 311.97 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1554,461,1033,91,1393,453}'::smallint[])", + "Relation Name": "combo_encrypted_1000000", + "Startup Cost": 311.97, + "Total Cost": 316.24 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 316.25, + "Total Cost": 316.25 + } + ], + "Startup Cost": 316.25, + "Strategy": "Sorted", + "Total Cost": 316.27 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 316.28, + "Total Cost": 316.28 + } + ], + "Startup Cost": 316.28, + "Total Cost": 316.28 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Sort + Aggregate (Sorted) + Sort + Bitmap Heap Scan on combo_encrypted_10000000 + Bitmap Index Scan using combo_encrypted_10000000_name_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1393,1033,461,91,1554}'::smallint[])", + "Index Name": "combo_encrypted_10000000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 2300.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1393,1033,461,91,1554}'::smallint[])", + "Relation Name": "combo_encrypted_10000000", + "Startup Cost": 2300.22, + "Total Cost": 2304.49 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 2304.5, + "Total Cost": 2304.5 + } + ], + "Startup Cost": 2304.5, + "Strategy": "Sorted", + "Total Cost": 2304.52 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 2304.53, + "Total Cost": 2304.53 + } + ], + "Startup Cost": 2304.53, + "Total Cost": 2304.53 + } + } +] +``` + +
    + +![Query Performance - COMBO/top_n_filtered_group_by](query_combo_top_n_filtered_group_by_chart.png) + diff --git a/report/exact.md b/report/exact.md new file mode 100644 index 0000000..ba1ba24 --- /dev/null +++ b/report/exact.md @@ -0,0 +1,444 @@ +# EXACT Queries + +[← Back to overview](./BENCHMARK_REPORT.md) + +Per-tier query performance. Each scenario lists its SQL, the indexes available on the target table, the indexes the planner actually picked per tier, the timing table, and the full EXPLAIN plan in a collapsed block. + +## eql_cast + +**Description:** Exact match using EQL cast operator + +**SQL Query:** +```sql +SELECT value FROM {TABLE} WHERE value = $1 LIMIT 1 +``` + +**Parameter:** `Bob Johnson` + +**Table: `string_encrypted_{rows}` with encrypted string values. Index: UNIQUE index on the encrypted value column.** + +**Indexes available on the table:** +```sql +CREATE INDEX +string_encrypted_10000_hash_index +ON string_encrypted_10000 using hash ( + eql_v2.hmac_256(value) +); + +CREATE INDEX +string_encrypted_10000_gin_index +ON string_encrypted_10000 USING GIN ( + eql_v2.bloom_filter(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `string_encrypted_10000_hash_index` +- 100,000: `string_encrypted_100000_hash_index` +- 1,000,000: `string_encrypted_1000000_hash_index` +- 10,000,000: `string_encrypted_10000000_hash_index` + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 0 | 417.91μs | 411.64μs | +| 100,000 | 0 | 398.18μs | 415.60μs | +| 1,000,000 | 0 | 518.60μs | 413.16μs | +| 10,000,000 | 0 | 429.34μs | 423.97μs | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Index Scan using string_encrypted_10000_hash_index on string_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1164, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_10000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 1164, + "Relation Name": "string_encrypted_10000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + ], + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Index Scan using string_encrypted_100000_hash_index on string_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1163, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_100000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 1163, + "Relation Name": "string_encrypted_100000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + ], + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Index Scan using string_encrypted_1000000_hash_index on string_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1161, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_1000000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 1161, + "Relation Name": "string_encrypted_1000000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 12.04 + } + ], + "Startup Cost": 0.0, + "Total Cost": 6.02 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Index Scan using string_encrypted_10000000_hash_index on string_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1163, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_10000000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50000, + "Plan Width": 1163, + "Relation Name": "string_encrypted_10000000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 198371.0 + } + ], + "Startup Cost": 0.0, + "Total Cost": 3.97 + } + } +] +``` + +
    + +![Query Performance - EXACT/eql_cast](query_exact_eql_cast_chart.png) + +## eql_hash + +**Description:** Exact match using EQL HMAC-256 hash function + +**SQL Query:** +```sql +SELECT value FROM {TABLE} WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1 +``` + +**Parameter:** `Bob Johnson` + +**Table: `string_encrypted_{rows}` with encrypted string values. Index: Hash-based unique index using `eql_v2.hmac_256`.** + +**Indexes available on the table:** +```sql +CREATE INDEX +string_encrypted_10000_hash_index +ON string_encrypted_10000 using hash ( + eql_v2.hmac_256(value) +); + +CREATE INDEX +string_encrypted_10000_gin_index +ON string_encrypted_10000 USING GIN ( + eql_v2.bloom_filter(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `string_encrypted_10000_hash_index` +- 100,000: `string_encrypted_100000_hash_index` +- 1,000,000: `string_encrypted_1000000_hash_index` +- 10,000,000: `string_encrypted_10000000_hash_index` + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 0 | 412.70μs | 395.84μs | +| 100,000 | 0 | 406.77μs | 400.13μs | +| 1,000,000 | 0 | 401.58μs | 397.75μs | +| 10,000,000 | 0 | 387.61μs | 399.45μs | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Index Scan using string_encrypted_10000_hash_index on string_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1164, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_10000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 1164, + "Relation Name": "string_encrypted_10000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + ], + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Index Scan using string_encrypted_100000_hash_index on string_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1163, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_100000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 1163, + "Relation Name": "string_encrypted_100000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + ], + "Startup Cost": 0.0, + "Total Cost": 8.02 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Index Scan using string_encrypted_1000000_hash_index on string_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1161, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_1000000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 1161, + "Relation Name": "string_encrypted_1000000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 12.04 + } + ], + "Startup Cost": 0.0, + "Total Cost": 6.02 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Index Scan using string_encrypted_10000000_hash_index on string_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 1163, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Name": "string_encrypted_10000000_hash_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50000, + "Plan Width": 1163, + "Relation Name": "string_encrypted_10000000", + "Scan Direction": "Forward", + "Startup Cost": 0.0, + "Total Cost": 198371.0 + } + ], + "Startup Cost": 0.0, + "Total Cost": 3.97 + } + } +] +``` + +
    + +![Query Performance - EXACT/eql_hash](query_exact_eql_hash_chart.png) + diff --git a/report/group_by.md b/report/group_by.md new file mode 100644 index 0000000..733b5df --- /dev/null +++ b/report/group_by.md @@ -0,0 +1,1643 @@ +# GROUP_BY Queries + +[← Back to overview](./BENCHMARK_REPORT.md) + +Per-tier query performance. Each scenario lists its SQL, the indexes available on the target table, the indexes the planner actually picked per tier, the timing table, and the full EXPLAIN plan in a collapsed block. + +## low_cardinality_groups_encrypted + +**Description:** Low-cardinality GROUP BY (~250 buckets) on `eql_v2.hmac_256(value)`, wrapped in `count(*)` to isolate aggregation cost from emit cost + +**SQL Query:** +```sql +SELECT count(*) FROM (SELECT 1 FROM {TABLE} GROUP BY eql_v2.hmac_256(value)) g +``` + +**Table: `category_encrypted_{rows}` with encrypted categorical values (`CAT_001`..`CAT_250`, uniform random — ~250 distinct buckets). The encrypted value carries an `hm` HMAC term via the `unique` search index. **Index: hash index on `eql_v2.hmac_256(value)`, but `GROUP BY` doesn't engage it directly** — the planner picks `HashAggregate`, building an in-memory hash table keyed on the 32-byte HMAC. With only 250 distinct keys the hash table fits comfortably in default `work_mem`. The outer `count(*)` keeps the result-set emission at exactly one row, so wall-clock time tracks aggregation cost. The companion `low_cardinality_groups_plaintext` scenario runs the same query shape against an unindexed TEXT column for a baseline.** + +**Indexes available on the table:** +```sql +CREATE INDEX +category_encrypted_10000_hash_index +ON category_encrypted_10000 using hash ( + eql_v2.hmac_256(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +*⚠️ = Query time exceeds 100ms* + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 1 | 2.65ms | N/A | +| 100,000 | 1 | 28.78ms | N/A | +| 1,000,000 | 1 | 93.23ms | N/A | +| 10,000,000 | 1 | ⚠️ 1.587s | N/A | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Aggregate + Aggregate (Hashed) + Seq Scan on category_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((category_encrypted_10000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 250, + "Plan Width": 36, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_10000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 10000, + "Plan Width": 32, + "Relation Name": "category_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 580.0 + } + ], + "Startup Cost": 605.0, + "Strategy": "Hashed", + "Total Cost": 608.12 + } + ], + "Startup Cost": 611.25, + "Strategy": "Plain", + "Total Cost": 611.26 + } + } +] +``` + +**100,000 rows** + +``` +Aggregate + Aggregate (Hashed) + Seq Scan on category_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((category_encrypted_100000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 250, + "Plan Width": 36, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_100000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 100000, + "Plan Width": 32, + "Relation Name": "category_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 5796.0 + } + ], + "Startup Cost": 6046.0, + "Strategy": "Hashed", + "Total Cost": 6049.12 + } + ], + "Startup Cost": 6052.25, + "Strategy": "Plain", + "Total Cost": 6052.26 + } + } +] +``` + +**1,000,000 rows** + +``` +Aggregate + Group + Gather Merge + Sort + Aggregate (Hashed) + Seq Scan on category_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((category_encrypted_1000000.value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Group", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((category_encrypted_1000000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 250, + "Plan Width": 32, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_1000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 416665, + "Plan Width": 32, + "Relation Name": "category_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 50663.31 + } + ], + "Startup Cost": 51704.97, + "Strategy": "Hashed", + "Total Cost": 51708.1 + } + ], + "Sort Key": [ + "((((category_encrypted_1000000.value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 51718.05, + "Total Cost": 51718.68 + } + ], + "Startup Cost": 52718.08, + "Total Cost": 52776.41, + "Workers Planned": 2 + } + ], + "Startup Cost": 52718.08, + "Total Cost": 52778.29 + } + ], + "Startup Cost": 52781.41, + "Strategy": "Plain", + "Total Cost": 52781.42 + } + } +] +``` + +**10,000,000 rows** + +``` +Aggregate + Group + Gather Merge + Sort + Aggregate (Hashed) + Seq Scan on category_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "JIT": { + "Functions": 8, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": true, + "Optimization": true + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((category_encrypted_10000000.value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Group", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((category_encrypted_10000000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 250, + "Plan Width": 32, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_10000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 4166672, + "Plan Width": 32, + "Relation Name": "category_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 506629.4 + } + ], + "Startup Cost": 517046.08, + "Strategy": "Hashed", + "Total Cost": 517049.2 + } + ], + "Sort Key": [ + "((((category_encrypted_10000000.value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 517059.16, + "Total Cost": 517059.78 + } + ], + "Startup Cost": 518059.18, + "Total Cost": 518117.52, + "Workers Planned": 2 + } + ], + "Startup Cost": 518059.18, + "Total Cost": 518119.4 + } + ], + "Startup Cost": 518122.52, + "Strategy": "Plain", + "Total Cost": 518122.53 + } + } +] +``` + +
    + +![Query Performance - GROUP_BY/low_cardinality_groups_encrypted](query_group_by_low_cardinality_groups_encrypted_chart.png) + +## low_cardinality_groups_plaintext + +**Description:** Plaintext baseline: low-cardinality GROUP BY on a plain TEXT column, same query shape as the encrypted scenario + +**SQL Query:** +```sql +SELECT count(*) FROM (SELECT 1 FROM {TABLE} GROUP BY value) g +``` + +**Table: `category_plaintext_{rows}` with the same `CAT_001`..`CAT_250` distribution (uniform random, populated by SQL via `mise run prepare:category_plaintext` — no encryption-client dependency). Index: none. The wall-clock delta between this and `low_cardinality_groups_encrypted` is the EQL recipe's overhead relative to a bare-PG aggregate at the same row count and cardinality.** + +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +*⚠️ = Query time exceeds 100ms* + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 1 | 1.48ms | N/A | +| 100,000 | 1 | 9.84ms | N/A | +| 1,000,000 | 1 | 35.75ms | N/A | +| 10,000,000 | 1 | ⚠️ 461.94ms | N/A | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Aggregate + Aggregate (Hashed) + Seq Scan on category_plaintext_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "category_plaintext_10000.value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 250, + "Plan Width": 12, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_10000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 10000, + "Plan Width": 8, + "Relation Name": "category_plaintext_10000", + "Startup Cost": 0.0, + "Total Cost": 155.0 + } + ], + "Startup Cost": 180.0, + "Strategy": "Hashed", + "Total Cost": 182.5 + } + ], + "Startup Cost": 185.62, + "Strategy": "Plain", + "Total Cost": 185.63 + } + } +] +``` + +**100,000 rows** + +``` +Aggregate + Aggregate (Hashed) + Seq Scan on category_plaintext_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "category_plaintext_100000.value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 250, + "Plan Width": 12, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_100000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 100000, + "Plan Width": 8, + "Relation Name": "category_plaintext_100000", + "Startup Cost": 0.0, + "Total Cost": 1541.0 + } + ], + "Startup Cost": 1791.0, + "Strategy": "Hashed", + "Total Cost": 1793.5 + } + ], + "Startup Cost": 1796.62, + "Strategy": "Plain", + "Total Cost": 1796.63 + } + } +] +``` + +**1,000,000 rows** + +``` +Aggregate + Group + Gather Merge + Sort + Aggregate (Hashed) + Seq Scan on category_plaintext_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "category_plaintext_1000000.value" + ], + "Node Type": "Group", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 12, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "category_plaintext_1000000.value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 250, + "Plan Width": 8, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_1000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 416667, + "Plan Width": 8, + "Relation Name": "category_plaintext_1000000", + "Startup Cost": 0.0, + "Total Cost": 9572.67 + } + ], + "Startup Cost": 10614.33, + "Strategy": "Hashed", + "Total Cost": 10616.83 + } + ], + "Sort Key": [ + "category_plaintext_1000000.value" + ], + "Startup Cost": 10626.79, + "Total Cost": 10627.42 + } + ], + "Startup Cost": 11626.82, + "Total Cost": 11685.15, + "Workers Planned": 2 + } + ], + "Startup Cost": 11626.82, + "Total Cost": 11686.4 + } + ], + "Startup Cost": 11689.53, + "Strategy": "Plain", + "Total Cost": 11689.54 + } + } +] +``` + +**10,000,000 rows** + +``` +Aggregate + Group + Gather Merge + Sort + Aggregate (Hashed) + Seq Scan on category_plaintext_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "category_plaintext_10000000.value" + ], + "Node Type": "Group", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 200, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 400, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 200, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "category_plaintext_10000000.value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 200, + "Plan Width": 32, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_10000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 2860410, + "Plan Width": 32, + "Relation Name": "category_plaintext_10000000", + "Startup Cost": 0.0, + "Total Cost": 82659.1 + } + ], + "Startup Cost": 89810.13, + "Strategy": "Hashed", + "Total Cost": 89812.13 + } + ], + "Sort Key": [ + "category_plaintext_10000000.value" + ], + "Startup Cost": 89819.77, + "Total Cost": 89820.27 + } + ], + "Startup Cost": 90819.8, + "Total Cost": 90866.47, + "Workers Planned": 2 + } + ], + "Startup Cost": 90819.8, + "Total Cost": 90867.47 + } + ], + "Startup Cost": 90869.97, + "Strategy": "Plain", + "Total Cost": 90869.98 + } + } +] +``` + +
    + +![Query Performance - GROUP_BY/low_cardinality_groups_plaintext](query_group_by_low_cardinality_groups_plaintext_chart.png) + +## top_n_groups_encrypted + +**Description:** Dashboard analytic: top 10 categories by frequency, EQL recipe form + +**SQL Query:** +```sql +SELECT eql_v2.hmac_256(value), count(*) FROM {TABLE} GROUP BY 1 ORDER BY count(*) DESC LIMIT 10 +``` + +**Table: `category_encrypted_{rows}` (same data as the `low_cardinality_*` scenarios above). Query: `SELECT eql_v2.hmac_256(value), count(*) FROM tbl GROUP BY 1 ORDER BY count(*) DESC LIMIT 10`. The bench always emits 10 rows regardless of input size, so the cost is dominated by the inner HashAggregate (per-row HMAC + hash-table insert) plus a tiny sort over the 250 group entries. Realistic shape for analytics queries that surface the most common categories in an encrypted dataset.** + +**Indexes available on the table:** +```sql +CREATE INDEX +category_encrypted_10000_hash_index +ON category_encrypted_10000 using hash ( + eql_v2.hmac_256(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +*⚠️ = Query time exceeds 100ms* + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 10 | 2.67ms | N/A | +| 100,000 | 10 | 30.84ms | N/A | +| 1,000,000 | 10 | 92.73ms | N/A | +| 10,000,000 | 10 | ⚠️ 1.449s | N/A | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Sort + Aggregate (Hashed) + Seq Scan on category_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 250, + "Plan Width": 40, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_10000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 10000, + "Plan Width": 32, + "Relation Name": "category_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 580.0 + } + ], + "Startup Cost": 630.0, + "Strategy": "Hashed", + "Total Cost": 633.12 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 638.53, + "Total Cost": 639.15 + } + ], + "Startup Cost": 638.53, + "Total Cost": 638.55 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Sort + Aggregate (Hashed) + Seq Scan on category_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 250, + "Plan Width": 40, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_100000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 100000, + "Plan Width": 32, + "Relation Name": "category_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 5796.0 + } + ], + "Startup Cost": 6296.0, + "Strategy": "Hashed", + "Total Cost": 6299.12 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 6304.53, + "Total Cost": 6305.15 + } + ], + "Startup Cost": 6304.53, + "Total Cost": 6304.55 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Sort + Aggregate (Sorted) + Gather Merge + Sort + Aggregate (Hashed) + Seq Scan on category_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Finalize", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 250, + "Plan Width": 40, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_1000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 416665, + "Plan Width": 32, + "Relation Name": "category_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 50663.31 + } + ], + "Startup Cost": 52746.63, + "Strategy": "Hashed", + "Total Cost": 52749.76 + } + ], + "Sort Key": [ + "((((value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 52759.72, + "Total Cost": 52760.34 + } + ], + "Startup Cost": 53759.74, + "Total Cost": 53818.08, + "Workers Planned": 2 + } + ], + "Startup Cost": 53759.74, + "Strategy": "Sorted", + "Total Cost": 53823.7 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 53829.1, + "Total Cost": 53829.73 + } + ], + "Startup Cost": 53829.1, + "Total Cost": 53829.13 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Sort + Aggregate (Sorted) + Gather Merge + Sort + Aggregate (Hashed) + Seq Scan on category_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "JIT": { + "Functions": 8, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": true, + "Optimization": true + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Finalize", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 250, + "Plan Width": 40, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_10000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 4166672, + "Plan Width": 32, + "Relation Name": "category_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 506629.4 + } + ], + "Startup Cost": 527462.76, + "Strategy": "Hashed", + "Total Cost": 527465.88 + } + ], + "Sort Key": [ + "((((value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 527475.84, + "Total Cost": 527476.46 + } + ], + "Startup Cost": 528475.86, + "Total Cost": 528534.2, + "Workers Planned": 2 + } + ], + "Startup Cost": 528475.86, + "Strategy": "Sorted", + "Total Cost": 528539.83 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 528545.23, + "Total Cost": 528545.85 + } + ], + "Startup Cost": 528545.23, + "Total Cost": 528545.25 + } + } +] +``` + +
    + +![Query Performance - GROUP_BY/top_n_groups_encrypted](query_group_by_top_n_groups_encrypted_chart.png) + +## top_n_groups_plaintext + +**Description:** Plaintext baseline: top 10 categories by frequency on a plain TEXT column + +**SQL Query:** +```sql +SELECT value, count(*) FROM {TABLE} GROUP BY 1 ORDER BY count(*) DESC LIMIT 10 +``` + +**Table: `category_plaintext_{rows}`. Same query shape as the encrypted top-N scenario; the delta is the EQL recipe's overhead for the same shape on the same cardinality data.** + +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +*⚠️ = Query time exceeds 100ms* + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 10 | 1.59ms | N/A | +| 100,000 | 10 | 10.42ms | N/A | +| 1,000,000 | 10 | 37.39ms | N/A | +| 10,000,000 | 10 | ⚠️ 464.48ms | N/A | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Sort + Aggregate (Hashed) + Seq Scan on category_plaintext_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 250, + "Plan Width": 16, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_10000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 10000, + "Plan Width": 8, + "Relation Name": "category_plaintext_10000", + "Startup Cost": 0.0, + "Total Cost": 155.0 + } + ], + "Startup Cost": 205.0, + "Strategy": "Hashed", + "Total Cost": 207.5 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 212.9, + "Total Cost": 213.53 + } + ], + "Startup Cost": 212.9, + "Total Cost": 212.93 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Sort + Aggregate (Hashed) + Seq Scan on category_plaintext_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 250, + "Plan Width": 16, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_100000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 100000, + "Plan Width": 8, + "Relation Name": "category_plaintext_100000", + "Startup Cost": 0.0, + "Total Cost": 1541.0 + } + ], + "Startup Cost": 2041.0, + "Strategy": "Hashed", + "Total Cost": 2043.5 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 2048.9, + "Total Cost": 2049.53 + } + ], + "Startup Cost": 2048.9, + "Total Cost": 2048.93 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Sort + Aggregate (Sorted) + Gather Merge + Sort + Aggregate (Hashed) + Seq Scan on category_plaintext_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Finalize", + "Plan Rows": 250, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 250, + "Plan Width": 16, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_1000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 416667, + "Plan Width": 8, + "Relation Name": "category_plaintext_1000000", + "Startup Cost": 0.0, + "Total Cost": 9572.67 + } + ], + "Startup Cost": 11656.0, + "Strategy": "Hashed", + "Total Cost": 11658.5 + } + ], + "Sort Key": [ + "value" + ], + "Startup Cost": 11668.46, + "Total Cost": 11669.08 + } + ], + "Startup Cost": 12668.48, + "Total Cost": 12726.82, + "Workers Planned": 2 + } + ], + "Startup Cost": 12668.48, + "Strategy": "Sorted", + "Total Cost": 12731.82 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 12737.22, + "Total Cost": 12737.85 + } + ], + "Startup Cost": 12737.22, + "Total Cost": 12737.25 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Sort + Aggregate (Sorted) + Gather Merge + Sort + Aggregate (Hashed) + Seq Scan on category_plaintext_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "JIT": { + "Functions": 7, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": false, + "Optimization": false + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 200, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Finalize", + "Plan Rows": 200, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 400, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 200, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 200, + "Plan Width": 40, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_10000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 4166667, + "Plan Width": 32, + "Relation Name": "category_plaintext_10000000", + "Startup Cost": 0.0, + "Total Cost": 95721.67 + } + ], + "Startup Cost": 116555.0, + "Strategy": "Hashed", + "Total Cost": 116557.0 + } + ], + "Sort Key": [ + "value" + ], + "Startup Cost": 116564.65, + "Total Cost": 116565.15 + } + ], + "Startup Cost": 117564.67, + "Total Cost": 117611.34, + "Workers Planned": 2 + } + ], + "Startup Cost": 117564.67, + "Strategy": "Sorted", + "Total Cost": 117615.34 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 117619.66, + "Total Cost": 117620.16 + } + ], + "Startup Cost": 117619.66, + "Total Cost": 117619.69 + } + } +] +``` + +
    + +![Query Performance - GROUP_BY/top_n_groups_plaintext](query_group_by_top_n_groups_plaintext_chart.png) + diff --git a/report/match.md b/report/match.md new file mode 100644 index 0000000..d282fe7 --- /dev/null +++ b/report/match.md @@ -0,0 +1,823 @@ +# MATCH Queries + +[← Back to overview](./BENCHMARK_REPORT.md) + +Per-tier query performance. Each scenario lists its SQL, the indexes available on the target table, the indexes the planner actually picked per tier, the timing table, and the full EXPLAIN plan in a collapsed block. + +## eql_bloom + +**Description:** Pattern matching using EQL bloom filter containment + +**SQL Query:** +```sql +SELECT id,value::jsonb FROM {TABLE} WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10 +``` + +**Parameter:** `Johnson` + +**Table: `string_encrypted_{rows}` with encrypted string values. Index: Bloom filter index using `eql_v2.bloom_filter`. Query returns LIMIT 10 results.** + +**Indexes available on the table:** +```sql +CREATE INDEX +string_encrypted_10000_hash_index +ON string_encrypted_10000 using hash ( + eql_v2.hmac_256(value) +); + +CREATE INDEX +string_encrypted_10000_gin_index +ON string_encrypted_10000 USING GIN ( + eql_v2.bloom_filter(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `string_encrypted_10000_gin_index` +- 100,000: `string_encrypted_100000_gin_index` +- 1,000,000: `string_encrypted_1000000_gin_index` +- 10,000,000: `string_encrypted_10000000_gin_index` + +*⚠️ = Query time exceeds 100ms* + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 10 | 930.87μs | 28.78ms | +| 100,000 | 10 | 2.66ms | 29.79ms | +| 1,000,000 | 10 | 17.40ms | 43.78ms | +| 10,000,000 | 10 | ⚠️ 164.61ms | ⚠️ 189.74ms | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_10000 + Bitmap Index Scan using string_encrypted_10000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,682,1057,1760,1496,1183,1453,998,1143,1200,792,1109,1596,865,1845,710,1735,61,582,1574,587,1751,1637,830,2028,1068,895,421,1018,1500}'::smallint[])", + "Index Name": "string_encrypted_10000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 264.6 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,682,1057,1760,1496,1183,1453,998,1143,1200,792,1109,1596,865,1845,710,1735,61,582,1574,587,1751,1637,830,2028,1068,895,421,1018,1500}'::smallint[])", + "Relation Name": "string_encrypted_10000", + "Startup Cost": 264.6, + "Total Cost": 269.11 + } + ], + "Startup Cost": 264.6, + "Total Cost": 269.11 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_100000 + Bitmap Index Scan using string_encrypted_100000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1183,792,865,1500,1057,1751,830,1596,710,587,61,1574,582,1143,1018,895,1200,421,1453,2028,682,1068,1735,1760,998,1845,1496,1637,1109}'::smallint[])", + "Index Name": "string_encrypted_100000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 454.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1183,792,865,1500,1057,1751,830,1596,710,587,61,1574,582,1143,1018,895,1200,421,1453,2028,682,1068,1735,1760,998,1845,1496,1637,1109}'::smallint[])", + "Relation Name": "string_encrypted_100000", + "Startup Cost": 454.35, + "Total Cost": 458.86 + } + ], + "Startup Cost": 454.35, + "Total Cost": 458.86 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_1000000 + Bitmap Index Scan using string_encrypted_1000000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1637,61,830,682,1109,1068,1031,1735,1596,1751,1845,1496,998,792,582,1183,1143,2028,865,1574,1018,587,1500,1760,895,421,1057,1200,1453,710}'::smallint[])", + "Index Name": "string_encrypted_1000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 1530.98 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1637,61,830,682,1109,1068,1031,1735,1596,1751,1845,1496,998,792,582,1183,1143,2028,865,1574,1018,587,1500,1760,895,421,1057,1200,1453,710}'::smallint[])", + "Relation Name": "string_encrypted_1000000", + "Startup Cost": 1530.98, + "Total Cost": 1535.49 + } + ], + "Startup Cost": 1530.98, + "Total Cost": 1535.49 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_10000000 + Bitmap Index Scan using string_encrypted_10000000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1735,2028,1845,830,710,1183,61,587,792,1596,895,1018,1751,421,865,1637,1031,998,1574,1143,1453,1496,1068,682,582,1760,1500,1109,1057,1200}'::smallint[])", + "Index Name": "string_encrypted_10000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 11294.85 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1735,2028,1845,830,710,1183,61,587,792,1596,895,1018,1751,421,865,1637,1031,998,1574,1143,1453,1496,1068,682,582,1760,1500,1109,1057,1200}'::smallint[])", + "Relation Name": "string_encrypted_10000000", + "Startup Cost": 11294.85, + "Total Cost": 11299.36 + } + ], + "Startup Cost": 11294.85, + "Total Cost": 11299.36 + } + } +] +``` + +
    + +![Query Performance - MATCH/eql_bloom](query_match_eql_bloom_chart.png) + +## eql_cast_firstname + +**Description:** Pattern matching on first name using EQL cast and LIKE + +**SQL Query:** +```sql +SELECT id,value::jsonb FROM {TABLE} WHERE value LIKE $1 LIMIT 10 +``` + +**Parameter:** `Bob` + +**Table: `string_encrypted_{rows}` with encrypted string values. Index: MATCH index for substring searches. Query returns LIMIT 10 results.** + +**Indexes available on the table:** +```sql +CREATE INDEX +string_encrypted_10000_hash_index +ON string_encrypted_10000 using hash ( + eql_v2.hmac_256(value) +); + +CREATE INDEX +string_encrypted_10000_gin_index +ON string_encrypted_10000 USING GIN ( + eql_v2.bloom_filter(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `string_encrypted_10000_gin_index` +- 100,000: `string_encrypted_100000_gin_index` +- 1,000,000: `string_encrypted_1000000_gin_index` +- 10,000,000: `string_encrypted_10000000_gin_index` + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 4 | 620.15μs | 26.75ms | +| 100,000 | 10 | 1.24ms | 28.74ms | +| 1,000,000 | 10 | 4.97ms | 32.56ms | +| 10,000,000 | 10 | 40.05ms | 65.93ms | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_10000 + Bitmap Index Scan using string_encrypted_10000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,461,453,1393,1554}'::smallint[])", + "Index Name": "string_encrypted_10000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 56.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,461,453,1393,1554}'::smallint[])", + "Relation Name": "string_encrypted_10000", + "Startup Cost": 56.22, + "Total Cost": 60.73 + } + ], + "Startup Cost": 56.22, + "Total Cost": 60.73 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_100000 + Bitmap Index Scan using string_encrypted_100000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,453,91,1033,1393,461}'::smallint[])", + "Index Name": "string_encrypted_100000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 93.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,453,91,1033,1393,461}'::smallint[])", + "Relation Name": "string_encrypted_100000", + "Startup Cost": 93.35, + "Total Cost": 97.86 + } + ], + "Startup Cost": 93.35, + "Total Cost": 97.86 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_1000000 + Bitmap Index Scan using string_encrypted_1000000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,461,91,453,1393}'::smallint[])", + "Index Name": "string_encrypted_1000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 307.85 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,461,91,453,1393}'::smallint[])", + "Relation Name": "string_encrypted_1000000", + "Startup Cost": 307.85, + "Total Cost": 312.36 + } + ], + "Startup Cost": 307.85, + "Total Cost": 312.36 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_10000000 + Bitmap Index Scan using string_encrypted_10000000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,1393,453,1554,1033,461}'::smallint[])", + "Index Name": "string_encrypted_10000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 2258.97 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,1393,453,1554,1033,461}'::smallint[])", + "Relation Name": "string_encrypted_10000000", + "Startup Cost": 2258.97, + "Total Cost": 2263.48 + } + ], + "Startup Cost": 2258.97, + "Total Cost": 2263.48 + } + } +] +``` + +
    + +![Query Performance - MATCH/eql_cast_firstname](query_match_eql_cast_firstname_chart.png) + +## eql_cast_lastname + +**Description:** Pattern matching on last name using EQL cast and LIKE + +**SQL Query:** +```sql +SELECT id,value::jsonb FROM {TABLE} WHERE value LIKE $1 LIMIT 10 +``` + +**Parameter:** `Johnson` + +**Table: `string_encrypted_{rows}` with encrypted string values. Index: MATCH index for substring searches. Query returns LIMIT 10 results.** + +**Indexes available on the table:** +```sql +CREATE INDEX +string_encrypted_10000_hash_index +ON string_encrypted_10000 using hash ( + eql_v2.hmac_256(value) +); + +CREATE INDEX +string_encrypted_10000_gin_index +ON string_encrypted_10000 USING GIN ( + eql_v2.bloom_filter(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `string_encrypted_10000_gin_index` +- 100,000: `string_encrypted_100000_gin_index` +- 1,000,000: `string_encrypted_1000000_gin_index` +- 10,000,000: `string_encrypted_10000000_gin_index` + +*⚠️ = Query time exceeds 100ms* + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 10 | 959.00μs | 28.34ms | +| 100,000 | 10 | 2.71ms | 30.04ms | +| 1,000,000 | 10 | 17.18ms | 43.77ms | +| 10,000,000 | 10 | ⚠️ 164.52ms | ⚠️ 188.25ms | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_10000 + Bitmap Index Scan using string_encrypted_10000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1109,1596,895,61,1143,1845,1057,865,710,830,1496,582,1068,792,1751,1574,1500,682,2028,1031,1200,587,421,1637,1735,1760,1183,1453,998,1018}'::smallint[])", + "Index Name": "string_encrypted_10000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 264.6 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1109,1596,895,61,1143,1845,1057,865,710,830,1496,582,1068,792,1751,1574,1500,682,2028,1031,1200,587,421,1637,1735,1760,1183,1453,998,1018}'::smallint[])", + "Relation Name": "string_encrypted_10000", + "Startup Cost": 264.6, + "Total Cost": 269.11 + } + ], + "Startup Cost": 264.6, + "Total Cost": 269.11 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_100000 + Bitmap Index Scan using string_encrypted_100000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1496,1500,1735,1183,895,1143,1845,1109,421,830,1751,682,1574,792,1637,1760,1068,61,865,2028,582,1018,587,1453,998,1200,1031,710,1596,1057}'::smallint[])", + "Index Name": "string_encrypted_100000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 454.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1496,1500,1735,1183,895,1143,1845,1109,421,830,1751,682,1574,792,1637,1760,1068,61,865,2028,582,1018,587,1453,998,1200,1031,710,1596,1057}'::smallint[])", + "Relation Name": "string_encrypted_100000", + "Startup Cost": 454.35, + "Total Cost": 458.86 + } + ], + "Startup Cost": 454.35, + "Total Cost": 458.86 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_1000000 + Bitmap Index Scan using string_encrypted_1000000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{830,421,1735,1574,1751,1200,1143,710,895,1031,792,1068,2028,1018,61,1845,1596,682,1109,1637,1496,865,1500,582,587,1183,1760,1453,1057,998}'::smallint[])", + "Index Name": "string_encrypted_1000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 1530.98 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{830,421,1735,1574,1751,1200,1143,710,895,1031,792,1068,2028,1018,61,1845,1596,682,1109,1637,1496,865,1500,582,587,1183,1760,1453,1057,998}'::smallint[])", + "Relation Name": "string_encrypted_1000000", + "Startup Cost": 1530.98, + "Total Cost": 1535.49 + } + ], + "Startup Cost": 1530.98, + "Total Cost": 1535.49 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Bitmap Heap Scan on string_encrypted_10000000 + Bitmap Index Scan using string_encrypted_10000000_gin_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "string_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,710,1109,1200,421,1637,587,61,1143,2028,865,1574,998,682,582,1751,1845,1453,1183,1057,1031,1500,1596,1068,1496,1018,830,895,1735}'::smallint[])", + "Index Name": "string_encrypted_10000000_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 11294.85 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,710,1109,1200,421,1637,587,61,1143,2028,865,1574,998,682,582,1751,1845,1453,1183,1057,1031,1500,1596,1068,1496,1018,830,895,1735}'::smallint[])", + "Relation Name": "string_encrypted_10000000", + "Startup Cost": 11294.85, + "Total Cost": 11299.36 + } + ], + "Startup Cost": 11294.85, + "Total Cost": 11299.36 + } + } +] +``` + +
    + +![Query Performance - MATCH/eql_cast_lastname](query_match_eql_cast_lastname_chart.png) + diff --git a/report/ore.md b/report/ore.md new file mode 100644 index 0000000..097ba93 --- /dev/null +++ b/report/ore.md @@ -0,0 +1,1470 @@ +# ORE Queries + +[← Back to overview](./BENCHMARK_REPORT.md) + +Per-tier query performance. Each scenario lists its SQL, the indexes available on the target table, the indexes the planner actually picked per tier, the timing table, and the full EXPLAIN plan in a collapsed block. + +## range_gt_10 + +**Description:** Range query (greater than) returning 10 results + +**SQL Query:** +```sql +SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 10 +``` + +**Parameter:** `5000` + +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. The bare-form `<` / `>` operators inline to `eql_v2.ore_block_u64_8_256(a) op eql_v2.ore_block_u64_8_256(b)` post-2.3, so the index engages without query rewriting. Query: WHERE value > 5000 LIMIT 10.** + +**Indexes available on the table:** +```sql +CREATE INDEX +integer_encrypted_10000_ore_index +ON integer_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 10 | 1.14ms | 29.47ms | +| 100,000 | 10 | 874.90μs | 27.50ms | +| 1,000,000 | 10 | 1.02ms | 27.99ms | +| 10,000,000 | 10 | 1.05ms | 30.84ms | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d496a9cf2c12027027412bf84aa0661d4ff672bdd9481d3e1bc741dd39dbcdcdf706eb49e05c4c2a1ed0db3e091609b0ceaff07d1e6d3b67aee279ea47a7ea305a245a95c10cf561ea235c94bea029b1c3b7d19123d492e5a44e7659579bfd61012a8dea1d103bd60d4fe7d7b5b85fd1bc7b07b5cb8d44b0d67b56888b01a63439be4cb376c98c458a79693fe8687e5f6c20cc8f825cae1f2abe210a1f8fa7a970a79620b0f48e407d3f8d2ffc6fdcf1f223085e3a20e5a9208abfd5f0203b2693ce032139861f65a6fbcbe0be1acd7b7022e2bfcc302815c513588c5c60fad1efa9d0edf1d14d7730e22fb846d431690c2db0be33ad1893b50473b68f14d3c6a2aba04a1be63944366e489be1953701\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 5050, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 7791.5 + } + ], + "Startup Cost": 0.0, + "Total Cost": 15.43 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2887fa79ab6922a3fbece8a25bdef4c17916b4ddfc1858724d76eead689d241f6e289df0b37556748c0d9d2aca977f4513470000b8168f3308fd72025f31fd023d43b06dc4fc81a5e223cc54557451bc5ba4c7f7cf19e3c28ec4065c02461424ac2b0fe449e08bda47ab9ebc150527d82dbce68fa6e13a9b5bfc245afb84f357ca18d7a1a7fb8fa5501638611357c7b5828612addf3441169a9d5e29c78d6019bf186518cc170fc9b1253993f028cb937403b4ba1f0083b37ae2193bb308de175d80442984b6c4c1745d127047b76b381b6f190cb0e7e726deb6d772c9d46104cdf8014c4bc8f69b4f329ec172d2f626259c9854b69f670c2af6b923de020c1e43ba946dcc5e76b5c04b649179b5e078b5\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283ae2aff336287192432a7a2a377d1f6a4d3c1217b0cb2638ad900f3f27e5bd813df25230001866af892842d19eb70bc54e9a722854dac3537bbf78d6d9577f56077c86790b50d198ba195c234772d6581e4dbdf105d9af044a02ffffe87bb4bb904ddada19566bbac3132fc899ee9ab1f352323041bd8ca62814d8208b458e5c860e1bee8c63ab16351b7b8f4442d125a94d38158bf3baae8a17d53ca6b9180a2c4a0609e86999c1a930e2a77de2a04ff19096d427e1bd7ca94e9b1f04aeb145a9c8d064406f2146548e3df866a132fc1dca2b2fd1adc28d67ee24aec7415f5df7174fcc67f5e4bf2923e6f3dd029529fb855159aa232016865cfcf102e1639d5efc4a4d279cf0354c38071b894b999a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2890435d5297329edc86d5e7c41670b53c4278d42a4da24b36bc86c2fb88b9a5e51b82dfe94100c4073f909fa4b7755c9ad7420468585422afd102a59717c6dc849cc3ba8edc447958ef581c58b04035ae667cbae950f7e0878af278e28195a2d99db1a2905138ad4fe4abb06598472ceac188b6201a4f1709319be5be7f1e8aeaede760dc7df172ee60c51f32d4cafab3e51ef680e42bfa539e102accab7a612b1c3892f9f4f154e42a7404ecb964484e10caa6d8eec74eba1c698a1a8e78a5c6c9313f56367882d814868aca14ec4cff7f183b394a6ef5f40ba235247a81c9302c948a0e21ed3be1df7c42f17410d0f39e8194dfd022565a6005364dfff93f3315149e0adf66683b3432cd1ee883078d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +
    + +![Query Performance - ORE/range_gt_10](query_ore_range_gt_10_chart.png) + +## range_gt_100 + +**Description:** Range query (greater than) returning 100 results + +**SQL Query:** +```sql +SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 100 +``` + +**Parameter:** `5000` + +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value > 5000 LIMIT 100.** + +**Indexes available on the table:** +```sql +CREATE INDEX +integer_encrypted_10000_ore_index +ON integer_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 100 | 6.41ms | 42.80ms | +| 100,000 | 100 | 6.61ms | 43.87ms | +| 1,000,000 | 100 | 6.81ms | 42.07ms | +| 10,000,000 | 100 | 6.79ms | 42.09ms | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288385f5e7dfa655b2dd4f453733a186c66eb453e1f46b5225f3d440c512c9badd37536b892db1eae6fa6ec72f6548ec3f29436aa5d59de334e6ba86d8ed69e8b91af923d95f965bed5bd84a5f714deb58fe502e63bb8c2a58c4c7e8bd61e53cdc81c6881d91bdb9e98782e0430e6c727844f22bfd798ab931e62980cba256e80538b3813db73be32603a8aa3142664dba1dbc09c7029f81b21f64624ae9e646e22166b68e6d4c5d52a6da0688640cb2ac07c1404de8e86e8e1aa664369a305493e00a01567f48a6e2c34aa90a08c681771601bf864e94bdd23689234fb86c6d6d603bea30e999a6622403405f4de053474de09080f2df7366b0d007e84910347a907bb352f323018c5600dd4d500b59fe\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 5050, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 7791.5 + } + ], + "Startup Cost": 0.0, + "Total Cost": 154.29 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28de69a9ae665f6b140b5ae556a1bbfc214537ac7b4624f8f12be09e19c2f06490769a9e19355bb8d959d556d0fe5becf2aa7664874299016671fcf332a5dac73c584a66dec6ae50bbe29d9dbda833ee0487a3c7dd125ec2a35de08e5e134a1469cdf9a8259c72d5efb04b11d73eaa4f4052636c3532a562b47e6741dfb89f15440de4fb7f5628d89455e3621d46914ed72158a86590ea0f048991bbfa9b229ee7fd07f985078ebbbdcba8ae35f3748c2743d6aa369c04126f691babd6b457a5fec7ef29cfcb9e0c04b6a2a7ea16965b95c7247f5391463d4c748aa98039b82a27b364291101ee56eb753d20e4a78bd89a36c90155e29b3212a9148c82e31720d49da083aed5ddc5479caa9c6b1f8aea01\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb287f55c1e235f0f2c4954872c6effcdb6edd6a2940b22e632067473197cf10c783e2c93c17d9a82492f0260804fc091c241b25cbc45693d49bb8364dd1e135ac5ff25400f46370d4fdbe89b63f53c2fc0ca05e29208f2fb04f52a33ba87df85488ef74ae5af4add7dd00e389c4d0066a565fa2fda6978c3330b22fa5dc8915eb8ed9fad6c1db12384a5aab884f4f6eff88ffb6a4d64c184311dbf1a44e37273df568f410499f666747a94dd20781a1b5e212ffee6e2fca807cbd3530d8c5a71e30eb9ce9331b3d758d7d224e0e628b5fed0b9a24d3303e2b024c7e92430d23bca54ffabb77607f2beb7c2bf63b80bbf3c58116d7ae7ceb24a747621f603465de861b8fa5ee75e972d9d1398704cc76e397\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb286fc7afee084401523cecb4d81e10569a8f9fee17361a1accb02196423076ff98b90453c77c7cdc92c397985defaa9e17f2b614b6253eec43052d40d6f0dc58aa2a15cad39fbe16decbe07921bc15da6cfa68d23f783aec815c9132e545f09e7d975cb8d8a4bc3e63cec57f7b9c8fdbb90188736a8e1bae34e8af038f77c6c6f4c302d6c0aa2ea37f3a54ee49034c4ba7792f39b92219c791f0bcea669a7e8570709add80217cc0ae3d3ad58b6d348d96e9dc1ccac1ee177438942d12c563d269ce7880789a03e6f82247cc72d8993ca1b03f3bb006feb36265c2d6add3c48ae270f7f361c17820ded8c40188ede8bb1c3bf216c9db901c52ffb46600826796c9037a7224a75ba002f049befea4207916\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +
    + +![Query Performance - ORE/range_gt_100](query_ore_range_gt_100_chart.png) + +## range_highly_selective_gt_10 + +**Description:** Highly selective range query (~0.011% selectivity) returning up to 10 results + +**SQL Query:** +```sql +SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 10 +``` + +**Parameter:** `2147000000` + +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value > 2_147_000_000 LIMIT 10. The threshold sits 483k values below `i32::MAX`. Even at 10k rows the planner picks Index Scan: with 0.011% selectivity it expects ~1 matching row, which it finds at the top of the b-tree in a single page read. Useful as the upper-bound demonstration of how cheap a selective range lookup becomes when the functional index engages.** + +**Indexes available on the table:** +```sql +CREATE INDEX +integer_encrypted_10000_ore_index +ON integer_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `integer_encrypted_10000_ore_index` +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +*⚠️ = Query time exceeds 100ms* + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 1 | 707.62μs | 25.40ms | +| 100,000 | 10 | 785.99μs | 27.90ms | +| 1,000,000 | 10 | 924.11μs | 27.72ms | +| 10,000,000 | 10 | ⚠️ 2.035s | ⚠️ 2.344s | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Index Scan using integer_encrypted_10000_ore_index on integer_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6aa980fdc390f88b2c4f8ba1ce48984b408d7786b85d6952020359294210bb89a853960740e38339a5d089ee4643523719c74de8b1da34690e5b508103853d5ce147f0016c2a396da1b28b45fd0075aa52f85e4d7e4a96bc4f0b0066e40092445c39e0c2fa7fca297e0abfb2ec341c09b3320bd6f394cbbe694143a5072fac5bd988993e7080c71951767ab3743b896dcbdc1649c5965f7ebc3f9a920352a81a53640edd035c20ef76feeef51c8279004359d05e7daf293813099ea14506303240b16ed5707ef6f8b32c987ec547a47a44c143fcb8f8a1e4eabe8eefe3d489870390a5c95bc0b106ef490f6b2cbc7c8fe35cc151a9269608fac38392eb51478459851be6fdcac086fbc4ca4d687c5de2ae\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Scan Direction": "Forward", + "Startup Cost": 0.54, + "Total Cost": 229.91 + } + ], + "Startup Cost": 0.54, + "Total Cost": 46.41 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6a00f6966051d014749ba52eaa1bb230ce41a9faada4aee59be57cf4ec741a7fb258b9f7815ccdea099dbc335b6390db8717b18e2b055cd6e57d723d01082a67c113226b78e83bd5456ddbb1ac3e8dff0f0c2c1b4c53720f9e9f81dd34dcfec28164deca3ce89a9917dd7a0714fe52c2b56ace4760b061260b94a47e640cb4ba566adf27a929056cf9dbc86adfd3e0d902d0b077f97282f92e9329bba2982e9f8a833dcccf6ae7a41bd55921185805ff395812de5f12cbb828df155f3511c7cd7afd89ba51ea0713bd13fe3d8fdb8a72dd2f4415685ce582109778d90a5eb7ec29091c11eba3fce250007838c5f55a4f385f154163ab80723451c8e9e51c710a294af896e1bea184210ac5667e575a7982\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6aefac50f0f74635b3881a4cdfdf8bb62df6f62e8c586a8c1173af02b38f225da4d7c2030abba38883489be56b9fdf0805e14951eb9c6e25c1f9a453195eaf90e3bf2e4fa805365cd3c818b9b0b6395027877f48f5a25b15887fc87f2f7b257a2fb06dd9cb56d97e294e5cb337697938de8d572fa825483e33060f78e474229c2a7f224463984dc23337a7dd22b354f29519595665b72c009aaab90f1425dfe2068722c1726dd38a2132c5637b970dd1388f4e1234586addb836434e22a209df6affacc64fa4082f00dd51427a2a6894ff2e4e15eefb24c0498a5603e7afe1007aa1dd032e284ffc9f070c7d93d54a55e0d0ff48146e119bad6ebcd1527b3bd6f38865fe4474dd6451c836d671e9c5ac09\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6a4ef19f8523420e65a1a7df8c684dbe8a33d50f7dade962583576499a00d171564d7b5b7704d2855c0e1b5ef7bfab4a460881932be411843599c2f9b1afee75c9b2584c9da8d21493d18972699f847f11a0653e2e20769c12b8af9e554b4dd04d40f4e2fbbc0dec2ecdb4aaa6f6ed54d3fcd4fac2e0471dbe0a00bb21911917c02d50394068a7597c922cc91d7dadb9b72ff2848652c8340707589cb2949a4b592fff3fa91279accf1f32f3d57994065050162c5e29ccc1513714628e08622ef73901e55aeb29f389c517ef8bb63f2f5983b9bfb125a3449208641cbff5b019fd5e743c3fff5c357a620a0ffbc64a2aecde5faeb4ce11578dffd4db267c7d77351593ab9a598c28e41ea538e16f3d5364\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +
    + +![Query Performance - ORE/range_highly_selective_gt_10](query_ore_range_highly_selective_gt_10_chart.png) + +## range_lt_10 + +**Description:** Range query (less than) returning 10 results + +**SQL Query:** +```sql +SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 LIMIT 10 +``` + +**Parameter:** `5000` + +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value < 5000 LIMIT 10.** + +**Indexes available on the table:** +```sql +CREATE INDEX +integer_encrypted_10000_ore_index +ON integer_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 10 | 1.31ms | 28.44ms | +| 100,000 | 10 | 806.68μs | 28.29ms | +| 1,000,000 | 10 | 883.58μs | 27.74ms | +| 10,000,000 | 10 | 1.25ms | 30.03ms | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28af0b28a7adb73b651daebf5951ac82dbe77560df3f76a23f1924bccf00064b7e9bec34a2dca21271dddd4659c9cb13047e9794461f65c7dd4fd8159329c09980bd29a99adcf6c919998d7a748922682bdaa1ad4f6e6a33a2670f0a9cfa53615bad5b286fdf19b57c6460973f3eade7ec118f5a8a9c89df97563f1550ed0088090079264d6ed8d809426c4987bc2c803ff0947663a02f7270d9b1090a46c333ab65d4b72ed6897e63035357c169081f98cea9584f89b83bd356cc969f94ea9ec2310ba21e9bfb111b50f9c62643e2d9a5d9af90cc2fdf437955cf703faa9f4b8033d153f446e2b17d4004a69b2f5eb6f04e5d101063649636e0f70a1e748a39064934ea89984dc00903461dec76cf095c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 4949, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 7766.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 15.69 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28b2c5ac0a2da469ce95406da3e10b08a23f33dc21e4b4939b1b0138b627bc085fa2d8895e011f487226b5957f55c2e0a0039d8417243c881975f41308ffbb19a656cb32c787e3ba41587fa9e43f32d8b30cb06eb5f410a25bb22c796d354461d479a5231ee4ab0421dfb711e595731bfdc6ba468abbadcb2a7b5b5d930eba74359974a3c92ca8f26ffaad6cc48e643853f3a5dfd8d7ba9c04e5b3a7d5838f2e39d45e2ec9c20df33424f4cc99449d67a4792b403b67167f998327b0d5e9f38392232307449b2c240347932c141da4f50672c6b791ae8c511190ff51ec18efee11b76d26a7a0b1ec0eafaaa4da17c7b22e394e4b2fe4a6bd7fd0d810d483e16a5d6ec157ff8f57711777b135f1a41fa3bc\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288713e20e778acc2e1c6e33c100e3ec2a420e1952508a3c48723395329058e990c9913ad85b9b7b250b5cee55946a3e4a56ebae9b3c01e8d7f969b8b823b22bfc9fb64f4abb9b041294aee6abb0739b7b4fb64bbbdeceacf6fbbd0b21078a2d72e5230f3e7f4c4b693ef50ebc41946630b79e338845dc760513eeba3de49404d8b41bcec3801093ebee9a8ea495dd40204e38d6af32b68d64fe34b5fd94f48ec43722f4613c9b2f9c2950514ab42c80b4acb0e95be1951aeaf547499131698e83edb71239ba11bd4231171348e5375f35f9d5c8e69182b38e09aef99f76ebf3efc872a36c5ff269615a449d665a99c5b24e554df192c56a9c70cb362fef91daeaf2df04c02f32c5856bafd2aefbbf4032\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2845d75a224f5206768695f8e66fce45e9a9a8c7458bfa511468ecbdbe92bfc8ac59c0a8f658ca9497da56c37234dc809295b7c3ca69a29761c072d10570571746a24abeda8d6f8b4b835c2c6d5ae63d6372a7005b6ca4e8ffca128ef1ee97b22582ef4260c29418a2295f82629c10386d031c48f71416044308f414e1740c4e3859dd97b6e8ad126d25047af0254f9253d1c7ee6a6123c2bef8fcdc24a396896b6ef0ad75832ace6c2517f6f99718db08e8d79a6826d72cfdf07800865d40640abeca43f0463688d60a5fa0e4f9f7b09831d61322131173c6da5030e8d0a7f0074e2e51b6c7361747b55b6ebf98d53e59be0e8c2c20f34c98a2e71da01de019eed0146350a7fbc77aba6dc5138a99414d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } +] +``` + +
    + +![Query Performance - ORE/range_lt_10](query_ore_range_lt_10_chart.png) + +## range_lt_100 + +**Description:** Range query (less than) returning 100 results + +**SQL Query:** +```sql +SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 LIMIT 100 +``` + +**Parameter:** `5000` + +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value < 5000 LIMIT 100.** + +**Indexes available on the table:** +```sql +CREATE INDEX +integer_encrypted_10000_ore_index +ON integer_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 100 | 6.53ms | 51.09ms | +| 100,000 | 100 | 6.62ms | 40.21ms | +| 1,000,000 | 100 | 6.60ms | 43.58ms | +| 10,000,000 | 100 | 6.62ms | 42.32ms | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb285c978dec1b963bc7f60328f5e80987d0fd5c266ddfe367bc45ae9d35c78b62216a88578fd6b7f3353b0fa522a49300f909b7e4eb8a4cb21b595928c4cec39ada57da373fe98b35da780b9543a776ed4ded7c12bd4a235469aa7cb73060b1daca38770c691ab287a26ff3442951680b464c65d98e856871c6f8ea6ad100dd170f6a0a40e79ea5e8e88453b49b22c9c4b3984e3f2f9cbc7de39942eecebe0a2ddf50064dc5444858a4d3d68ab497f985e186087a7e693f55ee9cd0b152defb4771292c472ce71e3e041fc2ed819ef9c64a216f2efd24ae8f5ad84bca30d962e3db6e9a4ec9e6769502cbe0ca2ab0c4bb8d4594051a872ae5146ac98dd993b43be39dfcdf2acf50f8d4cf930295704f8606\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 4949, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 7766.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 156.93 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fd6c2742e900b23d5877101beff1a03dd83ded73210dfcb0cc15acc98c37cfbd7d27c306f2c86e7c37d59dfdc35a00f966cfed157e45508526ea26b733710176aa28b533cee713aca07d458ccf470f946a823f0d57ecfff013ab9a059f0e0dd954a4fc89398c2673bd656bbc49a27a156b257130230c80e61029665b6e7d6ae3d29a20b928abb6c7b0d4a9d67165308591e5288e303f8fd36f5470f822a77449182dee99899d16e9a65b62ab17714cb794da8af30e2411ca7b59e1776a37d6ca89bd5eb0d18fdaabc6b0ae968c437d2a501c4fe385896194bd680a255cdd6df77f8d454e955b474773dac0f4448d51724113022490b497034284b75b1fe0d24092fee0207405b57af5158aa9e7a08cd9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d67163957f50c5d31ccbced07f36cd7e222bc9f071eccedaf37ba38c38b0b793f97cb988458441e003cbb82497bd85fe8cd223c31cb2e856ee7dd39fd1a8e0221eb112adffb09704e33243abaebd016238a7a72b0499b9b4d4137f2a5e220910a4c46b35318ef4d1c521ca6d3461921b51012547f79d165a5e3adf0fca0c1ce04683702c75f5019d866e2bd2832a16f3e795cc15536227ae743fc3170851a729301a9e94efcb2542428943889e4a21c4f3c04113109ab8bd5520da702db1422e217efb5eae238ab89e5902ffecd312b934a1b03dd5e3ae61fe9c33c051c7bc0cc23603aef10e6f5082132a0d346f0b97ae7f6fd089b840b0afb6fb01919fc5e12da6e245a9114f0d622ae017fd540630\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288bc855279c7f8173154bffd191b24d8ad6b8ed1b0107dbe327ca21d59767580d87bb3dfd4c5c08ee085a44201d3f73f9ff12ccdb2b795d42fa590bad9f9c8bb5390e2bdb936bb213f915428fcc22863abdd304f25005fa25d22fb67e03b1dfada9e4c14c445468acc43155da1b0cdea8892d7046952c5a4c9b8c6a62de9848de2cb4a38e4c2d21539337cb0beab59d03ba4a7de9f88633af14539ec908857bda4f2b239efdc96aee483f65b313b624e62b1112425958726ec94f8fac74e8fa4daaacc4eaff24565c37fdb6a353365042dfad11d5bc812d0f16ba53ef2b37dbc8b75fe170b95caf47ff58cf61ad1147f8a7a87393fe2f950d60997d7ab07fb5bbb2f0fcdded8f1998b46d498293409e88\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +
    + +![Query Performance - ORE/range_lt_100](query_ore_range_lt_100_chart.png) + +## range_lt_hybrid_ordered_10 + +**Description:** Ordered range query (hybrid form: natural WHERE, extractor ORDER BY) + +**SQL Query:** +```sql +SELECT id,value::jsonb FROM {TABLE} WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10 +``` + +**Parameter:** `5000` + +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value < 5000 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10. The sort key matches the index expression syntactically, so rows stream out of the index already ordered — no Sort node. See §4 of the EQL query-performance guide for the natural-form sort-key trap that this shape avoids.** + +**Indexes available on the table:** +```sql +CREATE INDEX +integer_encrypted_10000_ore_index +ON integer_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `integer_encrypted_10000_ore_index` +- 100,000: `integer_encrypted_100000_ore_index` +- 1,000,000: `integer_encrypted_1000000_ore_index` +- 10,000,000: `integer_encrypted_10000000_ore_index` + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 10 | 1.11ms | 29.05ms | +| 100,000 | 10 | 1.05ms | 28.23ms | +| 1,000,000 | 10 | 1.02ms | 27.74ms | +| 10,000,000 | 10 | 924.76μs | 30.19ms | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Index Scan using integer_encrypted_10000_ore_index on integer_encrypted_10000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 68, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fa597283f14cd500b5ab76d12edda4cfb5911b350739fe2b2c4d928845173ae80d26eeb1ea64d99536a10252d25c51df841f74f2fc79cf2593a72d5c75a95b69fd9edbec2f2acacc2e9d83f03596f9baa07863b79d4c889d29c4045e2da13f8deef2feecd03d2f703b7387dc39b18d25faf252483c93855ff52f66be2628b280fbdc0fc46169a63baabe59d0cfbe0efef4498a79eb5b971b5e4094fb83ebe2e3f0e7ab4d5ab80cab21547e41c23597d709a3b8c1d4d80ec742793a09b32ed2bc310afa37260a09ca4e9def5f1c032463bc9287295ad8f8328e8d523ef28bee2a55350ee1b499b0d080a17d999648e50e9426706dcde1fabb05e335cd73a95799e005ca08ed6f0a3f12ad7dec97354bf9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 4949, + "Plan Width": 68, + "Relation Name": "integer_encrypted_10000", + "Scan Direction": "Forward", + "Startup Cost": 0.54, + "Total Cost": 9829.55 + } + ], + "Startup Cost": 0.54, + "Total Cost": 20.4 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Index Scan using integer_encrypted_100000_ore_index on integer_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 68, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2830e3a6812683faa41ab7d28d6fb1186f9ad804728320ad991542e5a17bbcdead50e95733f8c9c9b32a5ce4f729ae4f44ae3300cfce0d573dcdf1642fb8ac849d6b9c49baf5f27908edc7f95674333be35f085c5f037bb42c990fe4f5ccba9235f42a34426ad223b73cdf0eb1e0e23fe755a1e74604981f9ee7d97f475d9854d9e823e05f5222bbf6491c9d6065a90fb8aac1bf5c6e019136aa14f19ef67feac356150483810f55f5d672d78128df5be7768157811644bd9bc3a9bec0351f3ede9258d24c0727a48687712722d0b30ef007dfc98244b2009bd159628040d89e912e63915fc261c20d99022ad227b073adc891acde0072ab8958d17bac41e0a5f0c05ec87080960d07eb896418141083c2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_100000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 68, + "Relation Name": "integer_encrypted_100000", + "Scan Direction": "Forward", + "Startup Cost": 0.67, + "Total Cost": 84790.49 + } + ], + "Startup Cost": 0.67, + "Total Cost": 26.1 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Index Scan using integer_encrypted_1000000_ore_index on integer_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 68, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c3ff1d9bc42d48ea059867df14ce571a087c08dff7a5a4254c4cae26485e56566aab51653fb7638745706735e8ad9c2717ebaf590e12ce0086569000c709b77ddb914b56100a549f758c76f804638f17eb646e31fa597d422a9c3ea7caa87e2b83a729026f7b4a2e5042569818380945ce023ec705d9e9ab4ae5251fa22f90812d8f200c02790c55365eca4ff72850cc572445911aa8907b9a7a7341b4d5f1b2b61f25c5fc526851f24381195169656d5ffc0d5f7c34ff5f80b97adadba7d49b4ef92f363bc0b2fee139218129068a32d29f6c3d507842ffbfd3c06a52071bbffab7ce1abd8a3181b9d06459d15bfc978e2096516087f348f35c8813a4fb1dc579b622ff040262e46bfa2b18fa8e231b\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_1000000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 68, + "Relation Name": "integer_encrypted_1000000", + "Scan Direction": "Forward", + "Startup Cost": 0.8, + "Total Cost": 847836.63 + } + ], + "Startup Cost": 0.8, + "Total Cost": 26.24 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Index Scan using integer_encrypted_10000000_ore_index on integer_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 68, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283f81157123a8bcc98fadb7f09f77317799059f03f13dfea2bf0628e2b7a8bfdb0bcb6e0640bd29a9078309d8b087dffb0551480bc90ce1c75013b19d14c5f4cf0532741eee644facf53eade4d6867fda0cab4cda3da19f173838cf53eb88f897d5bf8c97449dac3326e0e85b91875c2548e134111454290899a54f8657ff198b0f8d083352004d329c18e6730ffb7156d9b79c9b19fc43d9dbacbe51f6d8657e35e848a53552ee182f700db8fcd2ca08f5f8f889293d745dcc49427244c7c5425df832c3e85d5cb5f091e0c1f415cf5c89c2a55a42f418c956a85b0eb3617aaa7ec69ae94574e817b7c2efec608410a8643aef102c5b1576133b4c3c20252a0e51416eed619477be302a2c96fc350b2a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 68, + "Relation Name": "integer_encrypted_10000000", + "Scan Direction": "Forward", + "Startup Cost": 0.94, + "Total Cost": 13113848.76 + } + ], + "Startup Cost": 0.94, + "Total Cost": 40.28 + } + } +] +``` + +
    + +![Query Performance - ORE/range_lt_hybrid_ordered_10](query_ore_range_lt_hybrid_ordered_10_chart.png) + +## range_selective_gt_100 + +**Description:** Selective range query (~0.17% selectivity) returning up to 100 results + +**SQL Query:** +```sql +SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 100 +``` + +**Parameter:** `2140000000` + +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value > 2_140_000_000 LIMIT 100. The threshold sits 7.5M values below `i32::MAX`, so on `Faker.fake::()` uniform random data only ~0.17% of rows match. At this selectivity the planner switches from the Seq Scan + LIMIT shape it picked for the non-selective baselines (`range_gt_*` with threshold 5000) to Index Scan — walking the b-tree from the top and returning the first 100 matches is cheaper than scanning the whole table. This is the same functional-btree path the EQL query-performance guide §4 documents; the non-selective baselines demonstrate that the planner correctly *avoids* the index when selectivity is too low for the lookup to win.** + +**Indexes available on the table:** +```sql +CREATE INDEX +integer_encrypted_10000_ore_index +ON integer_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `integer_encrypted_10000_ore_index` +- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ + +*⚠️ = Query time exceeds 100ms* + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 16 | 1.02ms | 28.74ms | +| 100,000 | 100 | ⚠️ 1.449s | ⚠️ 1.456s | +| 1,000,000 | 100 | ⚠️ 1.324s | ⚠️ 1.401s | +| 10,000,000 | 100 | ⚠️ 1.436s | ⚠️ 1.508s | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
    +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Limit + Bitmap Heap Scan on integer_encrypted_10000 + Bitmap Index Scan using integer_encrypted_10000_ore_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 50, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bd14cf178b5b2bc249907e3fd3c316685c21da18b9799bb2019a55b33a03ec10016e5df6f52463e42a5f7c65bc262835c7f386cbcbe1cce4365354aeb256ed6ba39c5fd8fdfdce54ff35ffa6c805b8f29bb0d735259363a817e90f37bdf77bf3b497030fbd74c204989269243cebd42fa6c3df44bbbbed0343baad9c36c62c757cec82ad28ce60ebe091a0d770f6af73a76548b89eaeaaa72f67207dbb325dc491512e93e9088472e63df942e3d9e7f620b53c4d28c1c3e814d03d73c1a2a38096f6548a6c9c8cab0bcb4976ac8371db29f1db84adb4ed0b046e345c67a22d5a8ea0b95c4b7b7940d63d4764f178f0779012f34475326cad8355ddfa988277344bfe76f3e73b78e0581a852eb5a69c899\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 16.91 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bd14cf178b5b2bc249907e3fd3c316685c21da18b9799bb2019a55b33a03ec10016e5df6f52463e42a5f7c65bc262835c7f386cbcbe1cce4365354aeb256ed6ba39c5fd8fdfdce54ff35ffa6c805b8f29bb0d735259363a817e90f37bdf77bf3b497030fbd74c204989269243cebd42fa6c3df44bbbbed0343baad9c36c62c757cec82ad28ce60ebe091a0d770f6af73a76548b89eaeaaa72f67207dbb325dc491512e93e9088472e63df942e3d9e7f620b53c4d28c1c3e814d03d73c1a2a38096f6548a6c9c8cab0bcb4976ac8371db29f1db84adb4ed0b046e345c67a22d5a8ea0b95c4b7b7940d63d4764f178f0779012f34475326cad8355ddfa988277344bfe76f3e73b78e0581a852eb5a69c899\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 16.92, + "Total Cost": 226.86 + } + ], + "Startup Cost": 16.92, + "Total Cost": 226.86 + } + } +] +``` + +**100,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_100000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bbb7b8e94bc9493304a6a2ffc7d98bf729ed1f9df61ecaa947365a8db06c5606e67c0690c9b2ece73c34a469b21e9fdae0da5ee9cf7ca0450f8ae0891c55b9eb19cfcdaa5c4dab13167f727789b59bfb5714b926ee4715ca0b728030903b03c62115448572bd33dbc08be3cc5520c3ccc56468970c77985aafe1bdce865f6667b0bdc83cb2ae1214a1bd62b173349080fb6dbe9ac51ca1278e75f58eafec4632b832e75266f26c0358edcf68e4a6e17a0f24eb36d88634f0c996b16e0b39f71178f8f18a66a3e98efb16b9bcdd586870297fdbf30d654966cc2f2c30b35b7ecacd1ac767381b330a3332394a52f14b5e6a526e967a3fad744764f660c744e46c00dcfffc91b843bef8aa0de06ba91beb1\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +**1,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_1000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bb3912de219c31a9599c80779fba57c1cfe168b393d1ff9334196da7f199fb25173eccfbb9a27f0a7e8706ac80c12f11187e9935c4c04ce1ad5096ca88f082bbb4aa082a56ed7abe712ba1559c603be9c9572932184c0c614e78cdbd7230db76ff9f7102838284c7d2fb4cc48bf15a4e02f6bf374dff6833e300b7509ae00855cc22eb7587e09aae068b2f82a8e1ee51b630b495b90b825b9fb6fab5ed7acb991c43dcf7a962d718663b42f6bb0e221172772adfa9304b40533c9fab3011175acc78c177835fd00a174c86551b2c2c9f280f3238beb03a8882083024212bcef9d6556ee7daae0877924005ae62de0a1ff7e909f8eddf537234089f49747427273701c7be291d64db45132955f80358b5d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +**10,000,000 rows** + +``` +Limit + Seq Scan on integer_encrypted_10000000 +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1b06bee8d036bcc3d921ba65ad066669be107aaeda5b7930d617d169a5d50ccd575c046d4ab111a575be6c2f7972dc38ef4949889519da256e1174cbc3cd362d9a093333d16245b611f6ccea14f8de6268f7772fd4dae66c7b8980d481b1dc492ec09e84cf602770cf2fc011fbf3371a74ac3b7a99597ec167f5f9eb6f02456e71f1841147d862cddbbfd1ccc7242e35a87fbb5a2fa37b1c0a5230ef4f326d825c7db7e97204948e6ab11220e15fcae1e1680d06d6ae93047551aa3549a13f9961b114e33920b25eab36f02d7304487f7fac9284cf46ac56e8fdc895d127e379a22b49dab3bbbd195f564a1380f725ecb9f8ac67ff676a7ec6970a5b06c9a5897e12674cdc4ba22adab3656e02f582ba76\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } +] +``` + +
    + +![Query Performance - ORE/range_selective_gt_100](query_ore_range_selective_gt_100_chart.png) + diff --git a/report/query_combo_bloom_ore_order_limit_chart.png b/report/query_combo_bloom_ore_order_limit_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..17ec42ccb5fde96e6e7131feacf5c9fd424441b7 GIT binary patch literal 38502 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 XQkbBvJuZ`s{*Kf&`KuXM^zZ+F538)X literal 0 HcmV?d00001 diff --git a/report/query_combo_filtered_group_by_chart.png b/report/query_combo_filtered_group_by_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..92782955463ac82c9b024524dd8a040387cb2d40 GIT binary patch literal 38083 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

    #ldfd^)2?Ocyp7&3$sOv7? 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

    2V$@u$l9U+1rrg~Z=W7ef@D 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 literal 52489 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 z

    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

    O=>cTEiKV2)a7 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 EUzhc#mH+?% diff --git a/report/query_exact_eql_hash_chart.png b/report/query_exact_eql_hash_chart.png index d51202ecee74e29fdb0b179948a6e4c3ed24701f..b86f6fbbd146a9cecd8e5b3e45bcbdbba8d618fc 100644 GIT binary patch literal 35604 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 UH)^|<;G!}o&itArdEV`R0DZJMSpWb4 literal 53861 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 NZewoc+%$RgzW`CO%n$$o diff --git a/report/query_group_by_count_groups_encrypted_chart.png b/report/query_group_by_count_groups_encrypted_chart.png deleted file mode 100644 index 92de3d2e8e95b53ade6b3bfe5a7e1bf35adb1ce0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41888 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�C$ehxd8(Gk1+1j2M7$3zi3wBjJE!usGrocjE# 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 diff --git a/report/query_group_by_count_groups_plaintext_chart.png b/report/query_group_by_count_groups_plaintext_chart.png deleted file mode 100644 index 0313a6d6e4d07b4a3ddf120b2cbd77f04c616f1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40206 zcmb^ZXH-*L*FFx%E-K)$ivl9OD^(DJf=CCYN|)Y2dI?Pd5m0)sQUcPYg&Lxww9q?* zDxDBI2`%tn@yPvq#`E0ow|9?mh8~lwz4lsj&UMXeUULV%P?RFSKy?8Efso5cKU0Q4 zPQxLPlZxlhf`2hxDSrU|5O$J$<)mU~>f~zRU;mKp@E;GS8l> zx+O1SJikjMOgMV3`kkXp9JCv&sqhaBlzaX9 zb2O*6dJz(@?9{F)^Xv8pmyi|89K_D`Ru`!~IqC-ZmDlmaiUXvyVC=Dy4ewS;)xA z)p9Uk$}OU*ky|}-8*@o^t>7~|)=ML?y*WzgrT+YOT$B^t5D0czirdASJCp zr3pGV;fdm@?`JOFkj5Zv6rRK+CbAJGd{75ly-L65=gnX%^kE|ROG-*8CQ{z3LXzc9 zIfxQo_2;St>Ry7pVHIbE_%?Ni6xmNV4i9Xj;wRjuKlRjm!B}5r`2YO*vl(H7F>ZKI z&LrO=Q)xRUzj~j%lCN!dy@|G+c#}&f{OFK?Dm8Ao5{T3HT$fCEVDQcc>9p9>gYxmo z)vCx_)ZGSOMZ@LdW`6$);c;7g-Rp=gs$Fr|gMO_i{0zFjt-=3!ItFj^sxkQ5i*gBiU$ zdkYJ+kG4j$8j+r-Y*YXW9p3;$YImfG+10LgrAr{@muxm>S`bZgTP~#<*)wl-;W?zHHwlg0%Pjai2GJBp8S`Y?{VuL zDUTlmn;d9zdJIDm@kzg$nws!#If^L`NPWl6abPTO%=fbulC1X&B|~l?_Wk_)I8jH3 zwX@5^Ww95ovkk2jE5n0lN2?uUe}qRy8oGlO;TWrNE{o>YANRBaMo>|1HQ2!e{1A

    46%fkPqsiuEVT_3gHo`pZOiCjDZOFoGTeNhCZlZoVAYG!9!84J1bQZf-rsPM}ai zp&{4VO@lss_{yPM(}y6sPI%3)X=#pa5jSMRdNH=O?RWD%u-%z~jBISJQ#);*p2M_v zYQ`wV4qjI;W+!nl%Ej^#hJ7kghkN<6sj!ujz5>l&&!X_~%W_dn3LHj_A4~3vdTf>A zjlFGP?iRgDVnpM5M;n!(D~ue16P{%ja_VV5U7w%M?Y@2cHum%9dvX<){TzbhZke+! z%xQJYt|@mCP}-ulAd(od>eiGCr2;z=COL*9ad`Wd_ugU-XXU6v2;2oX68rV*gAf!7 z#V8^&+EZdAg$B#mZr7@I_?i8AEKZY85@?@tmw10E z;vF6Y@q`+6b&b4CXGSd*xxnY9gxk1_w%7;tIjJ74>TWx=tM!gUhrrHbfWONcRL!Tt zX5#d{O9}-o`Ha0j#$gxo*n_%&B z-(!18s4xXM_=Bc3qcBm^_n!4cJSJNp-t>g)lP!kaN*WJwdVB}PqcZw9uuoXYIBcQBQ9X%?B@ z#Um8(2HS03e}Dh@`Q?!cblB(Bkx_ z&)(d^9GZlZ752ih>@f*HcgIk+#V|PwiABnKT>6%nQ%{BEUia?u+ZJ$>4IG~?@Se)BW}G? z*V0(Y41@AS2`<R4{}d$nfkuuY1o9}# zi!u

  • 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 PMx}B>{dlV4x$FN2-6H3? literal 0 HcmV?d00001 diff --git a/report/query_match_eql_bloom_chart.png b/report/query_match_eql_bloom_chart.png index 05f7d0cf6aa8be1636c644f521b5a05b6f9adfc6..d448dc400668bdae42a1fece2a1f1c1781ae4f16 100644 GIT binary patch literal 48520 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≪Ul(esYL=I$I&u*;Tuy#C5+6vr7HYtf=h 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 E0I{1buK)l5 literal 47183 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Ν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 S8y5ZnrE*o{O7W%J5B~>SAu!$m diff --git a/report/query_match_eql_cast_firstname_chart.png b/report/query_match_eql_cast_firstname_chart.png index 76b6af400aa6b4457f4554f936ff9b7873187e8d..baf2f15a51d3e027f0ec467129936b59f31748d6 100644 GIT binary patch literal 45659 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

      >PNsw^?Oomk;M%2cGRQt7XsypLh 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 At^fc4 literal 45635 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

      lN4qtBlsj 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 H5E5ZjNA9&LHaVg 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 diff --git a/report/query_ore_range_gt_100_chart.png b/report/query_ore_range_gt_100_chart.png index a6954b5ce65c397c5d9654da828e287e1f79274c..af78bf94bbd59e31b68dd7b9ee1f116f757d7827 100644 GIT binary patch literal 29903 zcmeFZcTkhj)-E1J1(aez5TuIqrbv;F6oF6$r56jmOBF&@nxNFsn0GkaLLxY{^5 z-r~P`ga0-!v$dO>v#Yp(fWtqJ;CFJd68K`|-U+Tk>a1+w3WHHTg8rR&FOzEngSknl zDBQXKENy=HT$bF6?Z)Di=4B3iBO>)P8v_-)y=l zvyCk~LRA~7oVB?Y<@U70qL5IE*pKQ;Ot$o}^02b9>gsH7$cSndlE80ES>-&z*N-mZ z74#DI--)O{C zIvA-aE8ifPJ{t=beE1o*wT3gRFIs6l*z4kbhn^Kj!Q*2+<_D4;PQYLXP#0`f^TS{y zm#n%n;)xlb$(s5seOF7w3jA5DTZt@p8kLs+xccL&lX-P!s#8P%hsCZM9=#%DZ=sP@ zHT`o@WWF{E{&}P;g#2pC`Cpfu8b@YV2OVoW2zWjb5nbuszw*^nDRx6S0wy*0y;rAM zay8PIKbbcA?Ws-AsxpHf-@iP$dDJIYqAoh@7Dt*T;xxj`2nkYdFAt3Xd6�=X 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 literal 32167 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 LT52Sfi#Pud6uy|y diff --git a/report/query_ore_range_highly_selective_gt_10_chart.png b/report/query_ore_range_highly_selective_gt_10_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..50ddfa304660f453b7782ee5cb48f79a2489f937 GIT binary patch literal 47651 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%0AJN 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 literal 31811 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 z zRO%+j;;~RK-l5Gv9d=DI0(@iG6tp~>5-w~{g-d_H8TLgqzy`@qHs%%sQd@E8kpkQr zO{8%FHs=MXZI!_|nq%9hjpl~76?wefor@?jIq)EohcXMf*j&bF#&GCyzBmamG7$=9 zLBMV<)3$>*ad+rOVXBeylTJ93wPDSo1R7g#DFD-b0)`<kB#&Gq zLl!UMy|f{hdjb(pHQc90j`z74b_Kh+RkJ&`PFdHiE! zf0+Z1o*4`cvpB@2O@O@}Y23rdT?d;#pYnuB5zdtFH7ckig~57S$V~Qduc$@MGnlkl z=CuS+uR(JeT+fqS?OpI8?%mZt9OGDVAd`Xe0}%fU(rWH~#xBp%W3jrY=!oz_L^yRsF@-Hic7uyyw^*dS}rIRzOw&s_)khZ7963ST;Vi((toN{3Yy zVdcZ7Z1r*y*omkt!{Wpv=a4lJM()KG!SzLxSHn{s(_kwEkF6G)ujQUl{hb3jk}O!U zvrR%=f`GJ#qTpP>^m})t&Bm_@mOVEPE;|VdvPxR;#^j6zY0xPRSU#7W#u*Sm)Z*Dp zdUJiId8BLoyJ;V_5UU1jpA&Id@iCG05=m28G9FCGcSoBBk6SE^t|WS7z`x7X zkLNmc(V(&k>7pCP<@4)Uk*%Gy~vIPFKfK)z-nODD`vf~_!;FfRqF>6ey5h&S1NAcNDXlsV4R zfoFu616{oppAli+<_;l_Ai?bIUN-8Md4#-dN-- z<2@2Ja{>#o#sbC#;UgWA85NDx-D*lMp2Nt|VS|s?zmA4_!jo&ko4GdPdU6hS09^9I zPug?i)sidPx?2ZRK-S-8+9~zzVy~oq%=y%gsSA9xVL~br6Hk4BiI%~scqg1ja{GXb z0;xX6we@lmvB-ENkx>9f0ddzCP)mka=2~M9R)z`UXr0uodBfc6yz(>erl;3pe5({t zN?X8VjdG__wsz!8$l;6mnY8AK#s*5sMcz_{&q+G@E@|NsZLJN8`9#Y4b>Gk$s0r!K zDSht8CDp6xi5tifDQufVH!qJw`RT$Kl_aR&w+hI-Mum1xE$~!v@$An>P2gM>71vVA zRs?Z z#%ElRvsqy(iIAQn*n}zuC?!NXz|qPOpSw=a=RGy@E%C2M`m$F32@FrLnoJm7i1M;= z4VHLDHT|VgnepWP^w-(=N%H!M>V=!LA);>GS|mz`WpTfv3efTO&? zO&a?Ey``Fe%GeWHPU9jBV(x{6m5HwdB; zpn0JI-F?zvBwoGNHJ}3>q0s0%$+8c-NOhngyCwE*+2vjtxYCk{$Rq;@Lh;{x&itu{ zEQOGXE0wG76)PflKb5X=A*W{+@KPrWo`7zzZoS)w$Esx|l3iY+-+M>=ezkWRDTzmE z3{Wb5k3MPZfGJ&T&k|VhZFvS+g zvm`3+*$>O?qv<@5ls7w3J+CVkGiv_eAhi#5D(YOS_fi5nC=9%I?}E zJ^MQ;M1PdhkQ2`bjcLD20c-~zk5wxNWi@=ngeF=hm6OTHE=>kaC*{3bC27xvK$!{u zdh@9{lnZ`OhUNm3e#&Khz#)6%qtZzIo=q$CRr-Upj;;9`*4~NPV6jJO--y4 z6}@xpni*I&;KNhBDLmox1v%D(5jSFmD<`2=oVjGOE(PW^R86%sS@~fD!~7fzXfWDd zHnbER`Dz>@vaz7%E-M5(Si9PlX1`I1k&xV5BZd?Xu!Nj_cC=s+4kUj^F#k6-?WbnI zVWJPmQ3h<5mo(+(5<`IXvxz}glLE*Nc?CkPD-eOw3SGIq9oS)B$zS`pKF}N{aeJpj z?XM4`o;@s{4KQYX z0C_^<9tjjwNkN-ND4{}?GeNF{L+lmW^C7c88_LV;EF5y3?H~cq?A!z#2heKmDGd#SPGiUedhCWC}&C z|F-rqP+@8$6{G=}vXccJ{h}6jx8Te>%7ijNG0ch3{8RYFOgAD&l^!Yz7;^EX_`0U93ebFvV^cuW9jLJEUvzdxl@BB9b<3Yaw literal 38422 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%0AHxf!h6Z7H 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 literal 0 HcmV?d00001 diff --git a/results/query/combo_metadata_10000.json b/results/query/combo_metadata_10000.json new file mode 100644 index 0000000..6cd9eda --- /dev/null +++ b/results/query/combo_metadata_10000.json @@ -0,0 +1,288 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "combo_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1033,461,1554,1393,91}'::smallint[])", + "Index Name": "combo_encrypted_10000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 56.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1033,461,1554,1393,91}'::smallint[])", + "Relation Name": "combo_encrypted_10000", + "Startup Cost": 56.22, + "Total Cost": 60.73 + } + ], + "Sort Key": [ + "(eql_v2.ore_block_u64_8_256(age))" + ], + "Startup Cost": 60.74, + "Total Cost": 60.75 + } + ], + "Startup Cost": 60.74, + "Total Cost": 60.75 + } + } + ], + "id": "COMBO/combo/bloom_ore_order_limit/10000", + "indexes_used": [ + "combo_encrypted_10000_name_gin_index" + ], + "parameters": [ + { + "bf": [ + 453, + 1033, + 461, + 1554, + 1393, + 91 + ], + "i": { + "c": "name", + "t": "combo_encrypted_10000" + }, + "v": 2 + } + ], + "query": "SELECT id FROM combo_encrypted_10000 WHERE name LIKE $1 ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10", + "rows_returned": 9 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,453,91,1033,1554,461}'::smallint[])", + "Index Name": "combo_encrypted_10000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 56.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,453,91,1033,1554,461}'::smallint[])", + "Relation Name": "combo_encrypted_10000", + "Startup Cost": 56.22, + "Total Cost": 60.49 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 60.5, + "Total Cost": 60.5 + } + ], + "Startup Cost": 60.5, + "Strategy": "Sorted", + "Total Cost": 60.52 + } + } + ], + "id": "COMBO/combo/filtered_group_by/10000", + "indexes_used": [ + "combo_encrypted_10000_name_gin_index" + ], + "parameters": [ + { + "bf": [ + 1393, + 453, + 91, + 1033, + 1554, + 461 + ], + "i": { + "c": "name", + "t": "combo_encrypted_10000" + }, + "v": 2 + } + ], + "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_10000 WHERE name LIKE $1 GROUP BY 1", + "rows_returned": 9 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1033,1393,453,1554,91}'::smallint[])", + "Index Name": "combo_encrypted_10000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 56.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1033,1393,453,1554,91}'::smallint[])", + "Relation Name": "combo_encrypted_10000", + "Startup Cost": 56.22, + "Total Cost": 60.49 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 60.5, + "Total Cost": 60.5 + } + ], + "Startup Cost": 60.5, + "Strategy": "Sorted", + "Total Cost": 60.52 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 60.53, + "Total Cost": 60.53 + } + ], + "Startup Cost": 60.53, + "Total Cost": 60.53 + } + } + ], + "id": "COMBO/combo/top_n_filtered_group_by/10000", + "indexes_used": [ + "combo_encrypted_10000_name_gin_index" + ], + "parameters": [ + { + "bf": [ + 461, + 1033, + 1393, + 453, + 1554, + 91 + ], + "i": { + "c": "name", + "t": "combo_encrypted_10000" + }, + "v": 2 + } + ], + "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_10000 WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "rows_returned": 9 + } + ], + "target_rows": "10000" +} \ No newline at end of file diff --git a/results/query/combo_metadata_100000.json b/results/query/combo_metadata_100000.json new file mode 100644 index 0000000..18d4377 --- /dev/null +++ b/results/query/combo_metadata_100000.json @@ -0,0 +1,288 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "combo_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,1033,1554,461,453,91}'::smallint[])", + "Index Name": "combo_encrypted_100000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 93.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,1033,1554,461,453,91}'::smallint[])", + "Relation Name": "combo_encrypted_100000", + "Startup Cost": 93.35, + "Total Cost": 97.86 + } + ], + "Sort Key": [ + "(eql_v2.ore_block_u64_8_256(age))" + ], + "Startup Cost": 97.87, + "Total Cost": 97.87 + } + ], + "Startup Cost": 97.87, + "Total Cost": 97.87 + } + } + ], + "id": "COMBO/combo/bloom_ore_order_limit/100000", + "indexes_used": [ + "combo_encrypted_100000_name_gin_index" + ], + "parameters": [ + { + "bf": [ + 1393, + 1033, + 1554, + 461, + 453, + 91 + ], + "i": { + "c": "name", + "t": "combo_encrypted_100000" + }, + "v": 2 + } + ], + "query": "SELECT id FROM combo_encrypted_100000 WHERE name LIKE $1 ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10", + "rows_returned": 10 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Index Name": "combo_encrypted_100000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 93.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Relation Name": "combo_encrypted_100000", + "Startup Cost": 93.35, + "Total Cost": 97.61 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 97.62, + "Total Cost": 97.63 + } + ], + "Startup Cost": 97.62, + "Strategy": "Sorted", + "Total Cost": 97.64 + } + } + ], + "id": "COMBO/combo/filtered_group_by/100000", + "indexes_used": [ + "combo_encrypted_100000_name_gin_index" + ], + "parameters": [ + { + "bf": [ + 461, + 1554, + 1033, + 1393, + 453, + 91 + ], + "i": { + "c": "name", + "t": "combo_encrypted_100000" + }, + "v": 2 + } + ], + "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_100000 WHERE name LIKE $1 GROUP BY 1", + "rows_returned": 47 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,461,1033,1393,1554,453}'::smallint[])", + "Index Name": "combo_encrypted_100000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 93.35 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,461,1033,1393,1554,453}'::smallint[])", + "Relation Name": "combo_encrypted_100000", + "Startup Cost": 93.35, + "Total Cost": 97.61 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 97.62, + "Total Cost": 97.63 + } + ], + "Startup Cost": 97.62, + "Strategy": "Sorted", + "Total Cost": 97.64 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 97.65, + "Total Cost": 97.66 + } + ], + "Startup Cost": 97.65, + "Total Cost": 97.66 + } + } + ], + "id": "COMBO/combo/top_n_filtered_group_by/100000", + "indexes_used": [ + "combo_encrypted_100000_name_gin_index" + ], + "parameters": [ + { + "bf": [ + 91, + 461, + 1033, + 1393, + 1554, + 453 + ], + "i": { + "c": "name", + "t": "combo_encrypted_100000" + }, + "v": 2 + } + ], + "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_100000 WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "rows_returned": 10 + } + ], + "target_rows": "100000" +} \ No newline at end of file diff --git a/results/query/combo_metadata_1000000.json b/results/query/combo_metadata_1000000.json new file mode 100644 index 0000000..62fee2f --- /dev/null +++ b/results/query/combo_metadata_1000000.json @@ -0,0 +1,288 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "combo_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,453,1033,1393,1554,461}'::smallint[])", + "Index Name": "combo_encrypted_1000000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 311.97 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,453,1033,1393,1554,461}'::smallint[])", + "Relation Name": "combo_encrypted_1000000", + "Startup Cost": 311.97, + "Total Cost": 316.48 + } + ], + "Sort Key": [ + "(eql_v2.ore_block_u64_8_256(age))" + ], + "Startup Cost": 316.49, + "Total Cost": 316.5 + } + ], + "Startup Cost": 316.49, + "Total Cost": 316.5 + } + } + ], + "id": "COMBO/combo/bloom_ore_order_limit/1000000", + "indexes_used": [ + "combo_encrypted_1000000_name_gin_index" + ], + "parameters": [ + { + "bf": [ + 91, + 453, + 1033, + 1393, + 1554, + 461 + ], + "i": { + "c": "name", + "t": "combo_encrypted_1000000" + }, + "v": 2 + } + ], + "query": "SELECT id FROM combo_encrypted_1000000 WHERE name LIKE $1 ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10", + "rows_returned": 10 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1554,1033,91,461,1393}'::smallint[])", + "Index Name": "combo_encrypted_1000000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 311.97 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1554,1033,91,461,1393}'::smallint[])", + "Relation Name": "combo_encrypted_1000000", + "Startup Cost": 311.97, + "Total Cost": 316.24 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 316.25, + "Total Cost": 316.25 + } + ], + "Startup Cost": 316.25, + "Strategy": "Sorted", + "Total Cost": 316.27 + } + } + ], + "id": "COMBO/combo/filtered_group_by/1000000", + "indexes_used": [ + "combo_encrypted_1000000_name_gin_index" + ], + "parameters": [ + { + "bf": [ + 453, + 1554, + 1033, + 91, + 461, + 1393 + ], + "i": { + "c": "name", + "t": "combo_encrypted_1000000" + }, + "v": 2 + } + ], + "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_1000000 WHERE name LIKE $1 GROUP BY 1", + "rows_returned": 227 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1554,461,1033,91,1393,453}'::smallint[])", + "Index Name": "combo_encrypted_1000000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 311.97 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1554,461,1033,91,1393,453}'::smallint[])", + "Relation Name": "combo_encrypted_1000000", + "Startup Cost": 311.97, + "Total Cost": 316.24 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 316.25, + "Total Cost": 316.25 + } + ], + "Startup Cost": 316.25, + "Strategy": "Sorted", + "Total Cost": 316.27 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 316.28, + "Total Cost": 316.28 + } + ], + "Startup Cost": 316.28, + "Total Cost": 316.28 + } + } + ], + "id": "COMBO/combo/top_n_filtered_group_by/1000000", + "indexes_used": [ + "combo_encrypted_1000000_name_gin_index" + ], + "parameters": [ + { + "bf": [ + 1554, + 461, + 1033, + 91, + 1393, + 453 + ], + "i": { + "c": "name", + "t": "combo_encrypted_1000000" + }, + "v": 2 + } + ], + "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_1000000 WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "rows_returned": 10 + } + ], + "target_rows": "1000000" +} \ No newline at end of file diff --git a/results/query/combo_metadata_10000000.json b/results/query/combo_metadata_10000000.json new file mode 100644 index 0000000..f1297d3 --- /dev/null +++ b/results/query/combo_metadata_10000000.json @@ -0,0 +1,288 @@ +{ + "scenarios": [ + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Alias": "combo_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1033,91,1554,453,461,1393}'::smallint[])", + "Index Name": "combo_encrypted_10000000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 2300.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1033,91,1554,453,461,1393}'::smallint[])", + "Relation Name": "combo_encrypted_10000000", + "Startup Cost": 2300.22, + "Total Cost": 2304.73 + } + ], + "Sort Key": [ + "(eql_v2.ore_block_u64_8_256(age))" + ], + "Startup Cost": 2304.74, + "Total Cost": 2304.75 + } + ], + "Startup Cost": 2304.74, + "Total Cost": 2304.75 + } + } + ], + "id": "COMBO/combo/bloom_ore_order_limit/10000000", + "indexes_used": [ + "combo_encrypted_10000000_name_gin_index" + ], + "parameters": [ + { + "bf": [ + 1033, + 91, + 1554, + 453, + 461, + 1393 + ], + "i": { + "c": "name", + "t": "combo_encrypted_10000000" + }, + "v": 2 + } + ], + "query": "SELECT id FROM combo_encrypted_10000000 WHERE name LIKE $1 ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10", + "rows_returned": 10 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Index Name": "combo_encrypted_10000000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 2300.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Relation Name": "combo_encrypted_10000000", + "Startup Cost": 2300.22, + "Total Cost": 2304.49 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 2304.5, + "Total Cost": 2304.5 + } + ], + "Startup Cost": 2304.5, + "Strategy": "Sorted", + "Total Cost": 2304.52 + } + } + ], + "id": "COMBO/combo/filtered_group_by/10000000", + "indexes_used": [ + "combo_encrypted_10000000_name_gin_index" + ], + "parameters": [ + { + "bf": [ + 461, + 1554, + 1033, + 1393, + 453, + 91 + ], + "i": { + "c": "name", + "t": "combo_encrypted_10000000" + }, + "v": 2 + } + ], + "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_10000000 WHERE name LIKE $1 GROUP BY 1", + "rows_returned": 250 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Alias": "combo_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1393,1033,461,91,1554}'::smallint[])", + "Index Name": "combo_encrypted_10000000_name_gin_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 1, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 2300.22 + } + ], + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1393,1033,461,91,1554}'::smallint[])", + "Relation Name": "combo_encrypted_10000000", + "Startup Cost": 2300.22, + "Total Cost": 2304.49 + } + ], + "Sort Key": [ + "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 2304.5, + "Total Cost": 2304.5 + } + ], + "Startup Cost": 2304.5, + "Strategy": "Sorted", + "Total Cost": 2304.52 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 2304.53, + "Total Cost": 2304.53 + } + ], + "Startup Cost": 2304.53, + "Total Cost": 2304.53 + } + } + ], + "id": "COMBO/combo/top_n_filtered_group_by/10000000", + "indexes_used": [ + "combo_encrypted_10000000_name_gin_index" + ], + "parameters": [ + { + "bf": [ + 453, + 1393, + 1033, + 461, + 91, + 1554 + ], + "i": { + "c": "name", + "t": "combo_encrypted_10000000" + }, + "v": 2 + } + ], + "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_10000000 WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "rows_returned": 10 + } + ], + "target_rows": "10000000" +} \ No newline at end of file diff --git a/results/query/combo_rows_10000.json b/results/query/combo_rows_10000.json new file mode 100644 index 0000000..65f67a5 --- /dev/null +++ b/results/query/combo_rows_10000.json @@ -0,0 +1,4 @@ +{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_10000","iteration_count":[88,176,264,352,440,528,616,704,792,880],"measured_values":[92550792.0,179572000.0,269682792.0,357177333.0,446365750.0,542954583.0,629453459.0,734103292.0,837608417.0,930884666.0],"unit":"ns","throughput":[],"typical":{"estimate":1042070.0032467532,"lower_bound":1023562.0478603604,"upper_bound":1051854.247583045,"unit":"ns"},"mean":{"estimate":1033104.4005149711,"lower_bound":1023130.7170815294,"upper_bound":1043796.0121732954,"unit":"ns"},"median":{"estimate":1025081.5523538961,"lower_bound":1018117.0298295454,"upper_bound":1051713.5454545454,"unit":"ns"},"median_abs_dev":{"estimate":15557.780457032775,"lower_bound":1144.9943898995061,"upper_bound":27431.963960428428,"unit":"ns"},"slope":{"estimate":1042070.0032467532,"lower_bound":1023562.0478603604,"upper_bound":1051854.247583045,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_10000","iteration_count":[149,298,447,596,745,894,1043,1192,1341,1490],"measured_values":[88101292.0,181406125.0,334345542.0,385312000.0,439771500.0,517845959.0,614660959.0,730173708.0,825736708.0,895946167.0],"unit":"ns","throughput":[],"typical":{"estimate":607273.4217902903,"lower_bound":595979.8902011118,"upper_bound":622665.2385114036,"unit":"ns"},"mean":{"estimate":618299.5906530308,"lower_bound":595538.7259231383,"upper_bound":650800.7258282732,"unit":"ns"},"median":{"estimate":605025.7691275168,"lower_bound":590297.3154362416,"upper_bound":629529.2399328859,"unit":"ns"},"median_abs_dev":{"estimate":21105.09520490704,"lower_bound":2179.9948163306954,"upper_bound":46443.955631428216,"unit":"ns"},"slope":{"estimate":607273.4217902903,"lower_bound":595979.8902011118,"upper_bound":622665.2385114036,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_10000","iteration_count":[149,298,447,596,745,894,1043,1192,1341,1490],"measured_values":[90665584.0,178459375.0,262269333.0,359088500.0,401004500.0,499208833.0,675186750.0,747368208.0,826868833.0,920068000.0],"unit":"ns","throughput":[],"typical":{"estimate":610455.4038525233,"lower_bound":584710.5116398149,"upper_bound":625653.6790577241,"unit":"ns"},"mean":{"estimate":600167.966741238,"lower_bound":580287.6336316183,"upper_bound":618203.528265287,"unit":"ns"},"median":{"estimate":605495.667785235,"lower_bound":578628.052572707,"upper_bound":621796.4455630127,"unit":"ns"},"median_abs_dev":{"estimate":22804.621445472654,"lower_bound":6672.774517776181,"upper_bound":52063.557795150184,"unit":"ns"},"slope":{"estimate":610455.4038525233,"lower_bound":584710.5116398149,"upper_bound":625653.6790577241,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"COMBO","benchmarks":["COMBO/combo/bloom_ore_order_limit/10000","COMBO/combo/filtered_group_by/10000","COMBO/combo/top_n_filtered_group_by/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO"} diff --git a/results/query/combo_rows_100000.json b/results/query/combo_rows_100000.json new file mode 100644 index 0000000..1e852c0 --- /dev/null +++ b/results/query/combo_rows_100000.json @@ -0,0 +1,4 @@ +{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_100000","iteration_count":[27,54,81,108,135,162,189,216,243,270],"measured_values":[92001500.0,182097625.0,268584041.0,372380250.0,461805792.0,584717416.0,634530042.0,748404125.0,839657334.0,925775500.0],"unit":"ns","throughput":[],"typical":{"estimate":3445158.021067821,"lower_bound":3403723.141675728,"upper_bound":3493242.73464318,"unit":"ns"},"mean":{"estimate":3427992.3094400354,"lower_bound":3385784.423086419,"upper_bound":3478635.099074074,"unit":"ns"},"median":{"estimate":3424790.8962962963,"lower_bound":3372178.2407407407,"upper_bound":3456399.5949074076,"unit":"ns"},"median_abs_dev":{"estimate":52359.57091089452,"lower_bound":12504.718354385466,"upper_bound":119646.92067399062,"unit":"ns"},"slope":{"estimate":3445158.021067821,"lower_bound":3403723.141675728,"upper_bound":3493242.73464318,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_100000","iteration_count":[89,178,267,356,445,534,623,712,801,890],"measured_values":[95008584.0,189390334.0,265563500.0,341859041.0,433600917.0,525078625.0,687456625.0,688278459.0,772895792.0,952252000.0],"unit":"ns","throughput":[],"typical":{"estimate":1014253.5656208959,"lower_bound":969992.7502142004,"upper_bound":1057869.6197531582,"unit":"ns"},"mean":{"estimate":1014908.2835576066,"lower_bound":983800.4630848048,"upper_bound":1048003.5839343679,"unit":"ns"},"median":{"estimate":988956.5777153558,"lower_bound":966683.2289325843,"upper_bound":1067512.1797752809,"unit":"ns"},"median_abs_dev":{"estimate":39082.33781953929,"lower_bound":4414.757931734702,"upper_bound":83140.86755049937,"unit":"ns"},"slope":{"estimate":1014253.5656208959,"lower_bound":969992.7502142004,"upper_bound":1057869.6197531582,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_100000","iteration_count":[93,186,279,372,465,558,651,744,837,930],"measured_values":[87004250.0,196497042.0,273342291.0,373657417.0,492288708.0,557070042.0,610474959.0,731211250.0,827860958.0,878674959.0],"unit":"ns","throughput":[],"typical":{"estimate":976372.897416562,"lower_bound":956350.5225861841,"upper_bound":1004584.6220911571,"unit":"ns"},"mean":{"estimate":988761.4325994195,"lower_bound":964114.1654361237,"upper_bound":1015264.9522226915,"unit":"ns"},"median":{"estimate":985946.0061230585,"lower_bound":944811.7838709677,"upper_bound":1027384.5591397849,"unit":"ns"},"median_abs_dev":{"estimate":44213.82819198313,"lower_bound":4648.227022943454,"upper_bound":83271.91218566037,"unit":"ns"},"slope":{"estimate":976372.897416562,"lower_bound":956350.5225861841,"upper_bound":1004584.6220911571,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"COMBO","benchmarks":["COMBO/combo/bloom_ore_order_limit/100000","COMBO/combo/filtered_group_by/100000","COMBO/combo/top_n_filtered_group_by/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO"} diff --git a/results/query/combo_rows_1000000.json b/results/query/combo_rows_1000000.json new file mode 100644 index 0000000..e960287 --- /dev/null +++ b/results/query/combo_rows_1000000.json @@ -0,0 +1,4 @@ +{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[90401833.0,181637458.0,279291750.0,371332834.0,465936750.0,564202375.0,673588125.0,745065541.0,836147250.0,973201042.0],"unit":"ns","throughput":[],"typical":{"estimate":23652440.394805193,"lower_bound":23251680.639280543,"upper_bound":24037225.300781425,"unit":"ns"},"mean":{"estimate":23348938.03729167,"lower_bound":23051272.95638542,"upper_bound":23671420.955625005,"unit":"ns"},"median":{"estimate":23278805.328125,"lower_bound":22965497.375,"upper_bound":23676778.125,"unit":"ns"},"median_abs_dev":{"estimate":222486.48860007618,"lower_bound":16697.782203555107,"upper_bound":979781.4203147739,"unit":"ns"},"slope":{"estimate":23652440.394805193,"lower_bound":23251680.639280543,"upper_bound":24037225.300781425,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_1000000","iteration_count":[16,32,48,64,80,96,112,128,144,160],"measured_values":[89658334.0,181272500.0,275752292.0,360466417.0,452679125.0,556956083.0,639289167.0,724964958.0,807077208.0,900252625.0],"unit":"ns","throughput":[],"typical":{"estimate":5660295.934415584,"lower_bound":5627872.654214643,"upper_bound":5714829.7340651555,"unit":"ns"},"mean":{"estimate":5670866.3074404765,"lower_bound":5636418.413790923,"upper_bound":5710692.062648809,"unit":"ns"},"median":{"estimate":5661138.8984375,"lower_bound":5618495.299479166,"upper_bound":5707938.991071428,"unit":"ns"},"median_abs_dev":{"estimate":60312.22980736858,"lower_bound":4652.815698646009,"upper_bound":102178.66280940338,"unit":"ns"},"slope":{"estimate":5660295.934415584,"lower_bound":5627872.654214643,"upper_bound":5714829.7340651555,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_1000000","iteration_count":[17,34,51,68,85,102,119,136,153,170],"measured_values":[97190250.0,189747750.0,290589584.0,358950167.0,456754917.0,542800625.0,633108042.0,751645500.0,828744250.0,922502958.0],"unit":"ns","throughput":[],"typical":{"estimate":5416880.310007639,"lower_bound":5360342.869813756,"upper_bound":5472231.729356531,"unit":"ns"},"mean":{"estimate":5465972.349379085,"lower_bound":5377074.29493464,"upper_bound":5562066.597254901,"unit":"ns"},"median":{"estimate":5421558.536601307,"lower_bound":5321574.7549019605,"upper_bound":5612320.06372549,"unit":"ns"},"median_abs_dev":{"estimate":153129.96763139963,"lower_bound":31798.67705163778,"upper_bound":264624.7972764806,"unit":"ns"},"slope":{"estimate":5416880.310007639,"lower_bound":5360342.869813756,"upper_bound":5472231.729356531,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"COMBO","benchmarks":["COMBO/combo/bloom_ore_order_limit/1000000","COMBO/combo/filtered_group_by/1000000","COMBO/combo/top_n_filtered_group_by/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO"} diff --git a/results/query/combo_rows_10000000.json b/results/query/combo_rows_10000000.json new file mode 100644 index 0000000..da8a30d --- /dev/null +++ b/results/query/combo_rows_10000000.json @@ -0,0 +1,4 @@ +{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[649984750.0,648895042.0,649629125.0,653918875.0,649060084.0,664816667.0,652125084.0,655012500.0,646932583.0,647489500.0],"unit":"ns","throughput":[],"typical":{"estimate":217262140.33333334,"lower_bound":216385838.9333333,"upper_bound":218428729.3,"unit":"ns"},"mean":{"estimate":217262140.33333334,"lower_bound":216385838.9333333,"upper_bound":218428729.3,"unit":"ns"},"median":{"estimate":216602312.5,"lower_bound":216091597.33333334,"upper_bound":217972958.33333334,"unit":"ns"},"median_abs_dev":{"estimate":1145452.7860641405,"lower_bound":181391.9060796352,"upper_bound":2247024.5665073544,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[99108708.0,213147875.0,308711042.0,404438042.0,516952250.0,600426541.0,724009000.0,803765125.0,897597750.0,991460750.0],"unit":"ns","throughput":[],"typical":{"estimate":50321794.15324675,"lower_bound":49875276.862068966,"upper_bound":51140612.10671521,"unit":"ns"},"mean":{"estimate":50796851.6467262,"lower_bound":50136839.30372024,"upper_bound":51540105.50595238,"unit":"ns"},"median":{"estimate":50395037.78125,"lower_bound":49804291.29166667,"upper_bound":51695225.0,"unit":"ns"},"median_abs_dev":{"estimate":1232547.6736491546,"lower_bound":195027.30743757368,"upper_bound":2262186.9465569034,"unit":"ns"},"slope":{"estimate":50321794.15324675,"lower_bound":49875276.862068966,"upper_bound":51140612.10671521,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[98263708.0,199682416.0,296962125.0,398100000.0,508582792.0,596864416.0,728030166.0,815482708.0,882407625.0,988066584.0],"unit":"ns","throughput":[],"typical":{"estimate":50061587.872727275,"lower_bound":49379373.86739038,"upper_bound":51026998.055954784,"unit":"ns"},"mean":{"estimate":50030142.50309523,"lower_bound":49516839.25666667,"upper_bound":50624540.21784524,"unit":"ns"},"median":{"estimate":49750600.66666667,"lower_bound":49312770.75,"upper_bound":50858279.2,"unit":"ns"},"median_abs_dev":{"estimate":716109.2295265249,"lower_bound":134844.44440603073,"upper_bound":1596272.173870506,"unit":"ns"},"slope":{"estimate":50061587.872727275,"lower_bound":49379373.86739038,"upper_bound":51026998.055954784,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"COMBO","benchmarks":["COMBO/combo/bloom_ore_order_limit/10000000","COMBO/combo/filtered_group_by/10000000","COMBO/combo/top_n_filtered_group_by/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO"} diff --git a/results/query/group_by_metadata_10000.json b/results/query/group_by_metadata_10000.json index 0c449dc..0ab3c7f 100644 --- a/results/query/group_by_metadata_10000.json +++ b/results/query/group_by_metadata_10000.json @@ -14,44 +14,44 @@ { "Async Capable": false, "Group Key": [ - "(((string_encrypted_10000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + "(((category_encrypted_10000.value).data ->> 'hm'::text))::eql_v2.hmac_256" ], "Node Type": "Aggregate", "Parallel Aware": false, "Parent Relationship": "Outer", "Partial Mode": "Simple", - "Plan Rows": 9968, + "Plan Rows": 250, "Plan Width": 36, "Planned Partitions": 0, "Plans": [ { - "Alias": "string_encrypted_10000", + "Alias": "category_encrypted_10000", "Async Capable": false, "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 10000, "Plan Width": 32, - "Relation Name": "string_encrypted_10000", + "Relation Name": "category_encrypted_10000", "Startup Cost": 0.0, - "Total Cost": 1678.0 + "Total Cost": 580.0 } ], - "Startup Cost": 1703.0, + "Startup Cost": 605.0, "Strategy": "Hashed", - "Total Cost": 1827.6 + "Total Cost": 608.12 } ], - "Startup Cost": 1952.2, + "Startup Cost": 611.25, "Strategy": "Plain", - "Total Cost": 1952.21 + "Total Cost": 611.26 } } ], - "id": "GROUP_BY/group_by/count_groups_encrypted/10000", + "id": "GROUP_BY/group_by/low_cardinality_groups_encrypted/10000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_10000 GROUP BY eql_v2.hmac_256(value)) g", + "query": "SELECT count(*) FROM (SELECT 1 FROM category_encrypted_10000 GROUP BY eql_v2.hmac_256(value)) g", "rows_returned": 1 }, { @@ -68,45 +68,179 @@ { "Async Capable": false, "Group Key": [ - "string_plaintext_10000.value" + "category_plaintext_10000.value" ], "Node Type": "Aggregate", "Parallel Aware": false, "Parent Relationship": "Outer", "Partial Mode": "Simple", - "Plan Rows": 10000, - "Plan Width": 37, + "Plan Rows": 250, + "Plan Width": 12, "Planned Partitions": 0, "Plans": [ { - "Alias": "string_plaintext_10000", + "Alias": "category_plaintext_10000", "Async Capable": false, "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 10000, - "Plan Width": 33, - "Relation Name": "string_plaintext_10000", + "Plan Width": 8, + "Relation Name": "category_plaintext_10000", "Startup Cost": 0.0, - "Total Cost": 184.0 + "Total Cost": 155.0 } ], - "Startup Cost": 209.0, + "Startup Cost": 180.0, "Strategy": "Hashed", - "Total Cost": 309.0 + "Total Cost": 182.5 } ], - "Startup Cost": 434.0, + "Startup Cost": 185.62, "Strategy": "Plain", - "Total Cost": 434.01 + "Total Cost": 185.63 } } ], - "id": "GROUP_BY/group_by/count_groups_plaintext/10000", + "id": "GROUP_BY/group_by/low_cardinality_groups_plaintext/10000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_10000 GROUP BY value) g", + "query": "SELECT count(*) FROM (SELECT 1 FROM category_plaintext_10000 GROUP BY value) g", "rows_returned": 1 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 250, + "Plan Width": 40, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_10000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 10000, + "Plan Width": 32, + "Relation Name": "category_encrypted_10000", + "Startup Cost": 0.0, + "Total Cost": 580.0 + } + ], + "Startup Cost": 630.0, + "Strategy": "Hashed", + "Total Cost": 633.12 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 638.53, + "Total Cost": 639.15 + } + ], + "Startup Cost": 638.53, + "Total Cost": 638.55 + } + } + ], + "id": "GROUP_BY/group_by/top_n_groups_encrypted/10000", + "indexes_used": [], + "parameters": [], + "query": "SELECT eql_v2.hmac_256(value), count(*) FROM category_encrypted_10000 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "rows_returned": 10 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 250, + "Plan Width": 16, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_10000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 10000, + "Plan Width": 8, + "Relation Name": "category_plaintext_10000", + "Startup Cost": 0.0, + "Total Cost": 155.0 + } + ], + "Startup Cost": 205.0, + "Strategy": "Hashed", + "Total Cost": 207.5 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 212.9, + "Total Cost": 213.53 + } + ], + "Startup Cost": 212.9, + "Total Cost": 212.93 + } + } + ], + "id": "GROUP_BY/group_by/top_n_groups_plaintext/10000", + "indexes_used": [], + "parameters": [], + "query": "SELECT value, count(*) FROM category_plaintext_10000 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "rows_returned": 10 } ], "target_rows": "10000" diff --git a/results/query/group_by_metadata_100000.json b/results/query/group_by_metadata_100000.json index 3be3aa6..1d322e2 100644 --- a/results/query/group_by_metadata_100000.json +++ b/results/query/group_by_metadata_100000.json @@ -14,44 +14,44 @@ { "Async Capable": false, "Group Key": [ - "(((string_encrypted_100000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + "(((category_encrypted_100000.value).data ->> 'hm'::text))::eql_v2.hmac_256" ], "Node Type": "Aggregate", "Parallel Aware": false, "Parent Relationship": "Outer", "Partial Mode": "Simple", - "Plan Rows": 93989, + "Plan Rows": 250, "Plan Width": 36, "Planned Partitions": 0, "Plans": [ { - "Alias": "string_encrypted_100000", + "Alias": "category_encrypted_100000", "Async Capable": false, "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 100000, "Plan Width": 32, - "Relation Name": "string_encrypted_100000", + "Relation Name": "category_encrypted_100000", "Startup Cost": 0.0, - "Total Cost": 16759.0 + "Total Cost": 5796.0 } ], - "Startup Cost": 17009.0, + "Startup Cost": 6046.0, "Strategy": "Hashed", - "Total Cost": 18183.86 + "Total Cost": 6049.12 } ], - "Startup Cost": 19358.72, + "Startup Cost": 6052.25, "Strategy": "Plain", - "Total Cost": 19358.73 + "Total Cost": 6052.26 } } ], - "id": "GROUP_BY/group_by/count_groups_encrypted/100000", + "id": "GROUP_BY/group_by/low_cardinality_groups_encrypted/100000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_100000 GROUP BY eql_v2.hmac_256(value)) g", + "query": "SELECT count(*) FROM (SELECT 1 FROM category_encrypted_100000 GROUP BY eql_v2.hmac_256(value)) g", "rows_returned": 1 }, { @@ -68,45 +68,179 @@ { "Async Capable": false, "Group Key": [ - "string_plaintext_100000.value" + "category_plaintext_100000.value" ], "Node Type": "Aggregate", "Parallel Aware": false, "Parent Relationship": "Outer", "Partial Mode": "Simple", - "Plan Rows": 100000, - "Plan Width": 37, - "Planned Partitions": 4, + "Plan Rows": 250, + "Plan Width": 12, + "Planned Partitions": 0, "Plans": [ { - "Alias": "string_plaintext_100000", + "Alias": "category_plaintext_100000", "Async Capable": false, "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 100000, - "Plan Width": 33, - "Relation Name": "string_plaintext_100000", + "Plan Width": 8, + "Relation Name": "category_plaintext_100000", "Startup Cost": 0.0, - "Total Cost": 1834.0 + "Total Cost": 1541.0 } ], - "Startup Cost": 10334.0, + "Startup Cost": 1791.0, "Strategy": "Hashed", - "Total Cost": 12896.5 + "Total Cost": 1793.5 } ], - "Startup Cost": 14146.5, + "Startup Cost": 1796.62, "Strategy": "Plain", - "Total Cost": 14146.51 + "Total Cost": 1796.63 } } ], - "id": "GROUP_BY/group_by/count_groups_plaintext/100000", + "id": "GROUP_BY/group_by/low_cardinality_groups_plaintext/100000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_100000 GROUP BY value) g", + "query": "SELECT count(*) FROM (SELECT 1 FROM category_plaintext_100000 GROUP BY value) g", "rows_returned": 1 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 250, + "Plan Width": 40, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_100000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 100000, + "Plan Width": 32, + "Relation Name": "category_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 5796.0 + } + ], + "Startup Cost": 6296.0, + "Strategy": "Hashed", + "Total Cost": 6299.12 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 6304.53, + "Total Cost": 6305.15 + } + ], + "Startup Cost": 6304.53, + "Total Cost": 6304.55 + } + } + ], + "id": "GROUP_BY/group_by/top_n_groups_encrypted/100000", + "indexes_used": [], + "parameters": [], + "query": "SELECT eql_v2.hmac_256(value), count(*) FROM category_encrypted_100000 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "rows_returned": 10 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Simple", + "Plan Rows": 250, + "Plan Width": 16, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_100000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 100000, + "Plan Width": 8, + "Relation Name": "category_plaintext_100000", + "Startup Cost": 0.0, + "Total Cost": 1541.0 + } + ], + "Startup Cost": 2041.0, + "Strategy": "Hashed", + "Total Cost": 2043.5 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 2048.9, + "Total Cost": 2049.53 + } + ], + "Startup Cost": 2048.9, + "Total Cost": 2048.93 + } + } + ], + "id": "GROUP_BY/group_by/top_n_groups_plaintext/100000", + "indexes_used": [], + "parameters": [], + "query": "SELECT value, count(*) FROM category_plaintext_100000 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "rows_returned": 10 } ], "target_rows": "100000" diff --git a/results/query/group_by_metadata_1000000.json b/results/query/group_by_metadata_1000000.json index a50ff60..3f11bb0 100644 --- a/results/query/group_by_metadata_1000000.json +++ b/results/query/group_by_metadata_1000000.json @@ -3,15 +3,6 @@ { "explain": [ { - "JIT": { - "Functions": 6, - "Options": { - "Deforming": true, - "Expressions": true, - "Inlining": false, - "Optimization": false - } - }, "Plan": { "Async Capable": false, "Node Type": "Aggregate", @@ -23,58 +14,92 @@ { "Async Capable": false, "Group Key": [ - "(((string_encrypted_1000000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + "((((category_encrypted_1000000.value).data ->> 'hm'::text))::eql_v2.hmac_256)" ], - "Node Type": "Aggregate", + "Node Type": "Group", "Parallel Aware": false, "Parent Relationship": "Outer", - "Partial Mode": "Simple", - "Plan Rows": 618824, + "Plan Rows": 250, "Plan Width": 36, - "Planned Partitions": 16, "Plans": [ { - "Alias": "string_encrypted_1000000", "Async Capable": false, - "Node Type": "Seq Scan", + "Node Type": "Gather Merge", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 999482, + "Plan Rows": 500, "Plan Width": 32, - "Relation Name": "string_encrypted_1000000", - "Startup Cost": 0.0, - "Total Cost": 167309.52 + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((category_encrypted_1000000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 250, + "Plan Width": 32, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_1000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 416665, + "Plan Width": 32, + "Relation Name": "category_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 50663.31 + } + ], + "Startup Cost": 51704.97, + "Strategy": "Hashed", + "Total Cost": 51708.1 + } + ], + "Sort Key": [ + "((((category_encrypted_1000000.value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 51718.05, + "Total Cost": 51718.68 + } + ], + "Startup Cost": 52718.08, + "Total Cost": 52776.41, + "Workers Planned": 2 } ], - "Startup Cost": 244457.04, - "Strategy": "Hashed", - "Total Cost": 265857.13 + "Startup Cost": 52718.08, + "Total Cost": 52778.29 } ], - "Startup Cost": 273592.43, + "Startup Cost": 52781.41, "Strategy": "Plain", - "Total Cost": 273592.44 + "Total Cost": 52781.42 } } ], - "id": "GROUP_BY/group_by/count_groups_encrypted/1000000", + "id": "GROUP_BY/group_by/low_cardinality_groups_encrypted/1000000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_1000000 GROUP BY eql_v2.hmac_256(value)) g", + "query": "SELECT count(*) FROM (SELECT 1 FROM category_encrypted_1000000 GROUP BY eql_v2.hmac_256(value)) g", "rows_returned": 1 }, { "explain": [ { - "JIT": { - "Functions": 5, - "Options": { - "Deforming": true, - "Expressions": true, - "Inlining": false, - "Optimization": false - } - }, "Plan": { "Async Capable": false, "Node Type": "Aggregate", @@ -86,45 +111,312 @@ { "Async Capable": false, "Group Key": [ - "string_plaintext_1000000.value" + "category_plaintext_1000000.value" ], - "Node Type": "Aggregate", + "Node Type": "Group", "Parallel Aware": false, "Parent Relationship": "Outer", - "Partial Mode": "Simple", - "Plan Rows": 1000000, - "Plan Width": 37, - "Planned Partitions": 16, + "Plan Rows": 250, + "Plan Width": 12, "Plans": [ { - "Alias": "string_plaintext_1000000", "Async Capable": false, - "Node Type": "Seq Scan", + "Node Type": "Gather Merge", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 1000000, - "Plan Width": 33, - "Relation Name": "string_plaintext_1000000", - "Startup Cost": 0.0, - "Total Cost": 18334.0 + "Plan Rows": 500, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "category_plaintext_1000000.value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 250, + "Plan Width": 8, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_1000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 416667, + "Plan Width": 8, + "Relation Name": "category_plaintext_1000000", + "Startup Cost": 0.0, + "Total Cost": 9572.67 + } + ], + "Startup Cost": 10614.33, + "Strategy": "Hashed", + "Total Cost": 10616.83 + } + ], + "Sort Key": [ + "category_plaintext_1000000.value" + ], + "Startup Cost": 10626.79, + "Total Cost": 10627.42 + } + ], + "Startup Cost": 11626.82, + "Total Cost": 11685.15, + "Workers Planned": 2 } ], - "Startup Cost": 103334.0, - "Strategy": "Hashed", - "Total Cost": 128959.0 + "Startup Cost": 11626.82, + "Total Cost": 11686.4 } ], - "Startup Cost": 141459.0, + "Startup Cost": 11689.53, "Strategy": "Plain", - "Total Cost": 141459.01 + "Total Cost": 11689.54 } } ], - "id": "GROUP_BY/group_by/count_groups_plaintext/1000000", + "id": "GROUP_BY/group_by/low_cardinality_groups_plaintext/1000000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_1000000 GROUP BY value) g", + "query": "SELECT count(*) FROM (SELECT 1 FROM category_plaintext_1000000 GROUP BY value) g", "rows_returned": 1 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Finalize", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 250, + "Plan Width": 40, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_1000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 416665, + "Plan Width": 32, + "Relation Name": "category_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 50663.31 + } + ], + "Startup Cost": 52746.63, + "Strategy": "Hashed", + "Total Cost": 52749.76 + } + ], + "Sort Key": [ + "((((value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 52759.72, + "Total Cost": 52760.34 + } + ], + "Startup Cost": 53759.74, + "Total Cost": 53818.08, + "Workers Planned": 2 + } + ], + "Startup Cost": 53759.74, + "Strategy": "Sorted", + "Total Cost": 53823.7 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 53829.1, + "Total Cost": 53829.73 + } + ], + "Startup Cost": 53829.1, + "Total Cost": 53829.13 + } + } + ], + "id": "GROUP_BY/group_by/top_n_groups_encrypted/1000000", + "indexes_used": [], + "parameters": [], + "query": "SELECT eql_v2.hmac_256(value), count(*) FROM category_encrypted_1000000 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "rows_returned": 10 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Finalize", + "Plan Rows": 250, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 16, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 250, + "Plan Width": 16, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_1000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 416667, + "Plan Width": 8, + "Relation Name": "category_plaintext_1000000", + "Startup Cost": 0.0, + "Total Cost": 9572.67 + } + ], + "Startup Cost": 11656.0, + "Strategy": "Hashed", + "Total Cost": 11658.5 + } + ], + "Sort Key": [ + "value" + ], + "Startup Cost": 11668.46, + "Total Cost": 11669.08 + } + ], + "Startup Cost": 12668.48, + "Total Cost": 12726.82, + "Workers Planned": 2 + } + ], + "Startup Cost": 12668.48, + "Strategy": "Sorted", + "Total Cost": 12731.82 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 12737.22, + "Total Cost": 12737.85 + } + ], + "Startup Cost": 12737.22, + "Total Cost": 12737.25 + } + } + ], + "id": "GROUP_BY/group_by/top_n_groups_plaintext/1000000", + "indexes_used": [], + "parameters": [], + "query": "SELECT value, count(*) FROM category_plaintext_1000000 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "rows_returned": 10 } ], "target_rows": "1000000" diff --git a/results/query/group_by_metadata_10000000.json b/results/query/group_by_metadata_10000000.json index 71b819e..4d6a644 100644 --- a/results/query/group_by_metadata_10000000.json +++ b/results/query/group_by_metadata_10000000.json @@ -4,7 +4,7 @@ "explain": [ { "JIT": { - "Functions": 6, + "Functions": 8, "Options": { "Deforming": true, "Expressions": true, @@ -23,58 +23,92 @@ { "Async Capable": false, "Group Key": [ - "(((string_encrypted_10000000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + "((((category_encrypted_10000000.value).data ->> 'hm'::text))::eql_v2.hmac_256)" ], - "Node Type": "Aggregate", + "Node Type": "Group", "Parallel Aware": false, "Parent Relationship": "Outer", - "Partial Mode": "Simple", - "Plan Rows": 4273344, + "Plan Rows": 250, "Plan Width": 36, - "Planned Partitions": 128, "Plans": [ { - "Alias": "string_encrypted_10000000", "Async Capable": false, - "Node Type": "Seq Scan", + "Node Type": "Gather Merge", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 10000000, + "Plan Rows": 500, "Plan Width": 32, - "Relation Name": "string_encrypted_10000000", - "Startup Cost": 0.0, - "Total Cost": 1673105.0 + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 32, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((category_encrypted_10000000.value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 250, + "Plan Width": 32, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_10000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 4166672, + "Plan Width": 32, + "Relation Name": "category_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 506629.4 + } + ], + "Startup Cost": 517046.08, + "Strategy": "Hashed", + "Total Cost": 517049.2 + } + ], + "Sort Key": [ + "((((category_encrypted_10000000.value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 517059.16, + "Total Cost": 517059.78 + } + ], + "Startup Cost": 518059.18, + "Total Cost": 518117.52, + "Workers Planned": 2 } ], - "Startup Cost": 2444980.0, - "Strategy": "Hashed", - "Total Cost": 2635115.55 + "Startup Cost": 518059.18, + "Total Cost": 518119.4 } ], - "Startup Cost": 2688532.35, + "Startup Cost": 518122.52, "Strategy": "Plain", - "Total Cost": 2688532.36 + "Total Cost": 518122.53 } } ], - "id": "GROUP_BY/group_by/count_groups_encrypted/10000000", + "id": "GROUP_BY/group_by/low_cardinality_groups_encrypted/10000000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_encrypted_10000000 GROUP BY eql_v2.hmac_256(value)) g", + "query": "SELECT count(*) FROM (SELECT 1 FROM category_encrypted_10000000 GROUP BY eql_v2.hmac_256(value)) g", "rows_returned": 1 }, { "explain": [ { - "JIT": { - "Functions": 9, - "Options": { - "Deforming": true, - "Expressions": true, - "Inlining": true, - "Optimization": true - } - }, "Plan": { "Async Capable": false, "Node Type": "Aggregate", @@ -86,85 +120,330 @@ { "Async Capable": false, "Group Key": [ - "string_plaintext_10000000.value" + "category_plaintext_10000000.value" ], "Node Type": "Group", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 20000040, - "Plan Width": 37, + "Plan Rows": 200, + "Plan Width": 36, "Plans": [ { "Async Capable": false, "Node Type": "Gather Merge", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 16666700, - "Plan Width": 33, + "Plan Rows": 400, + "Plan Width": 32, "Plans": [ { "Async Capable": false, - "Group Key": [ - "string_plaintext_10000000.value" - ], - "Node Type": "Group", + "Node Type": "Sort", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 8333350, - "Plan Width": 33, + "Plan Rows": 200, + "Plan Width": 32, "Plans": [ { "Async Capable": false, - "Node Type": "Sort", + "Group Key": [ + "category_plaintext_10000000.value" + ], + "Node Type": "Aggregate", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 8333350, - "Plan Width": 33, + "Partial Mode": "Partial", + "Plan Rows": 200, + "Plan Width": 32, + "Planned Partitions": 0, "Plans": [ { - "Alias": "string_plaintext_10000000", + "Alias": "category_plaintext_10000000", "Async Capable": false, "Node Type": "Seq Scan", "Parallel Aware": true, "Parent Relationship": "Outer", - "Plan Rows": 8333350, - "Plan Width": 33, - "Relation Name": "string_plaintext_10000000", + "Plan Rows": 2860410, + "Plan Width": 32, + "Relation Name": "category_plaintext_10000000", "Startup Cost": 0.0, - "Total Cost": 250000.5 + "Total Cost": 82659.1 } ], - "Sort Key": [ - "string_plaintext_10000000.value" - ], - "Startup Cost": 1663673.46, - "Total Cost": 1684506.84 + "Startup Cost": 89810.13, + "Strategy": "Hashed", + "Total Cost": 89812.13 } ], - "Startup Cost": 1663673.46, - "Total Cost": 1705340.21 + "Sort Key": [ + "category_plaintext_10000000.value" + ], + "Startup Cost": 89819.77, + "Total Cost": 89820.27 } ], - "Startup Cost": 1664673.49, - "Total Cost": 3630090.96, + "Startup Cost": 90819.8, + "Total Cost": 90866.47, "Workers Planned": 2 } ], - "Startup Cost": 1664673.49, - "Total Cost": 3671757.71 + "Startup Cost": 90819.8, + "Total Cost": 90867.47 } ], - "Startup Cost": 3921758.21, + "Startup Cost": 90869.97, "Strategy": "Plain", - "Total Cost": 3921758.22 + "Total Cost": 90869.98 } } ], - "id": "GROUP_BY/group_by/count_groups_plaintext/10000000", + "id": "GROUP_BY/group_by/low_cardinality_groups_plaintext/10000000", "indexes_used": [], "parameters": [], - "query": "SELECT count(*) FROM (SELECT 1 FROM string_plaintext_10000000 GROUP BY value) g", + "query": "SELECT count(*) FROM (SELECT 1 FROM category_plaintext_10000000 GROUP BY value) g", "rows_returned": 1 + }, + { + "explain": [ + { + "JIT": { + "Functions": 8, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": true, + "Optimization": true + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "((((value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Finalize", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 250, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "(((value).data ->> 'hm'::text))::eql_v2.hmac_256" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 250, + "Plan Width": 40, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_encrypted_10000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 4166672, + "Plan Width": 32, + "Relation Name": "category_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 506629.4 + } + ], + "Startup Cost": 527462.76, + "Strategy": "Hashed", + "Total Cost": 527465.88 + } + ], + "Sort Key": [ + "((((value).data ->> 'hm'::text))::eql_v2.hmac_256)" + ], + "Startup Cost": 527475.84, + "Total Cost": 527476.46 + } + ], + "Startup Cost": 528475.86, + "Total Cost": 528534.2, + "Workers Planned": 2 + } + ], + "Startup Cost": 528475.86, + "Strategy": "Sorted", + "Total Cost": 528539.83 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 528545.23, + "Total Cost": 528545.85 + } + ], + "Startup Cost": 528545.23, + "Total Cost": 528545.25 + } + } + ], + "id": "GROUP_BY/group_by/top_n_groups_encrypted/10000000", + "indexes_used": [], + "parameters": [], + "query": "SELECT eql_v2.hmac_256(value), count(*) FROM category_encrypted_10000000 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "rows_returned": 10 + }, + { + "explain": [ + { + "JIT": { + "Functions": 7, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": false, + "Optimization": false + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 200, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Finalize", + "Plan Rows": 200, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather Merge", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 400, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Sort", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 200, + "Plan Width": 40, + "Plans": [ + { + "Async Capable": false, + "Group Key": [ + "value" + ], + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 200, + "Plan Width": 40, + "Planned Partitions": 0, + "Plans": [ + { + "Alias": "category_plaintext_10000000", + "Async Capable": false, + "Node Type": "Seq Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 4166667, + "Plan Width": 32, + "Relation Name": "category_plaintext_10000000", + "Startup Cost": 0.0, + "Total Cost": 95721.67 + } + ], + "Startup Cost": 116555.0, + "Strategy": "Hashed", + "Total Cost": 116557.0 + } + ], + "Sort Key": [ + "value" + ], + "Startup Cost": 116564.65, + "Total Cost": 116565.15 + } + ], + "Startup Cost": 117564.67, + "Total Cost": 117611.34, + "Workers Planned": 2 + } + ], + "Startup Cost": 117564.67, + "Strategy": "Sorted", + "Total Cost": 117615.34 + } + ], + "Sort Key": [ + "(count(*)) DESC" + ], + "Startup Cost": 117619.66, + "Total Cost": 117620.16 + } + ], + "Startup Cost": 117619.66, + "Total Cost": 117619.69 + } + } + ], + "id": "GROUP_BY/group_by/top_n_groups_plaintext/10000000", + "indexes_used": [], + "parameters": [], + "query": "SELECT value, count(*) FROM category_plaintext_10000000 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", + "rows_returned": 10 } ], "target_rows": "10000000" diff --git a/results/query/group_by_rows_10000.json b/results/query/group_by_rows_10000.json index 7aebff0..52913e2 100644 --- a/results/query/group_by_rows_10000.json +++ b/results/query/group_by_rows_10000.json @@ -1,3 +1,5 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_10000","iteration_count":[19,38,57,76,95,114,133,152,171,190],"measured_values":[111176208.0,216011542.0,306884417.0,421586625.0,540477250.0,552086500.0,604733625.0,794660292.0,838639209.0,942436750.0],"unit":"ns","throughput":[],"typical":{"estimate":5020867.038277512,"lower_bound":4849262.9815901015,"upper_bound":5263593.692211948,"unit":"ns"},"mean":{"estimate":5263853.533020051,"lower_bound":5005757.65858396,"upper_bound":5514241.572932331,"unit":"ns"},"median":{"estimate":5305982.688596491,"lower_bound":4901528.728070175,"upper_bound":5684514.263157895,"unit":"ns"},"median_abs_dev":{"estimate":564709.7994033449,"lower_bound":91118.8516770533,"upper_bound":714390.4721854553,"unit":"ns"},"slope":{"estimate":5020867.038277512,"lower_bound":4849262.9815901015,"upper_bound":5263593.692211948,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_10000","iteration_count":[34,68,102,136,170,204,238,272,306,340],"measured_values":[97046333.0,178885584.0,303354958.0,340077125.0,461396292.0,551261917.0,686159125.0,757905834.0,820158750.0,934563542.0],"unit":"ns","throughput":[],"typical":{"estimate":2745085.4510313217,"lower_bound":2689841.7595588234,"upper_bound":2803530.180376161,"unit":"ns"},"mean":{"estimate":2747438.3404201684,"lower_bound":2666978.2944045872,"upper_bound":2825796.55223757,"unit":"ns"},"median":{"estimate":2731406.0676470585,"lower_bound":2666467.3259803923,"upper_bound":2854303.911764706,"unit":"ns"},"median_abs_dev":{"estimate":115456.10481568566,"lower_bound":25664.150030841025,"upper_bound":237931.58086792927,"unit":"ns"},"slope":{"estimate":2745085.4510313217,"lower_bound":2689841.7595588234,"upper_bound":2803530.180376161,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/10000","GROUP_BY/group_by/count_groups_plaintext/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_10000","iteration_count":[34,68,102,136,170,204,238,272,306,340],"measured_values":[88408375.0,181767458.0,276129042.0,345991125.0,454142000.0,508215209.0,624330166.0,689692834.0,926153250.0,899301792.0],"unit":"ns","throughput":[],"typical":{"estimate":2689117.4312452255,"lower_bound":2558893.3012778144,"upper_bound":2853913.494603601,"unit":"ns"},"mean":{"estimate":2651769.287983193,"lower_bound":2578097.5547899157,"upper_bound":2750167.129460083,"unit":"ns"},"median":{"estimate":2634120.631092437,"lower_bound":2544052.3897058824,"upper_bound":2689285.5,"unit":"ns"},"median_abs_dev":{"estimate":82993.76810127166,"lower_bound":20790.189829135456,"upper_bound":176702.42855437528,"unit":"ns"},"slope":{"estimate":2689117.4312452255,"lower_bound":2558893.3012778144,"upper_bound":2853913.494603601,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_10000","iteration_count":[63,126,189,252,315,378,441,504,567,630],"measured_values":[88162083.0,204850917.0,283378459.0,362539333.0,453259542.0,550115709.0,672172791.0,761671875.0,842234000.0,898080583.0],"unit":"ns","throughput":[],"typical":{"estimate":1472877.5492475778,"lower_bound":1442969.8955223882,"upper_bound":1503998.6103050595,"unit":"ns"},"mean":{"estimate":1480385.7200673975,"lower_bound":1445512.8607188053,"upper_bound":1521613.092187815,"unit":"ns"},"median":{"estimate":1470377.0401234566,"lower_bound":1432221.9579365079,"upper_bound":1511779.1330309901,"unit":"ns"},"median_abs_dev":{"estimate":53822.510615292624,"lower_bound":10130.220261819148,"upper_bound":102068.87254998831,"unit":"ns"},"slope":{"estimate":1472877.5492475778,"lower_bound":1442969.8955223882,"upper_bound":1503998.6103050595,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_10000","iteration_count":[34,68,102,136,170,204,238,272,306,340],"measured_values":[89196708.0,183386000.0,263707625.0,361328958.0,469388542.0,560112542.0,676563000.0,723711375.0,787913667.0,875313708.0],"unit":"ns","throughput":[],"typical":{"estimate":2656227.4606569903,"lower_bound":2598211.6482147444,"upper_bound":2753930.412117647,"unit":"ns"},"mean":{"estimate":2672198.2374054617,"lower_bound":2622086.7471580883,"upper_bound":2727194.865515406,"unit":"ns"},"median":{"estimate":2658767.0790441176,"lower_bound":2585368.8725490198,"upper_bound":2745649.7156862747,"unit":"ns"},"median_abs_dev":{"estimate":116594.64257378108,"lower_bound":8410.769301267062,"upper_bound":145162.26170403077,"unit":"ns"},"slope":{"estimate":2656227.4606569903,"lower_bound":2598211.6482147444,"upper_bound":2753930.412117647,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_10000","iteration_count":[59,118,177,236,295,354,413,472,531,590],"measured_values":[97256500.0,185950500.0,265707292.0,418304625.0,438530250.0,542017458.0,632430416.0,821509334.0,809711375.0,963904625.0],"unit":"ns","throughput":[],"typical":{"estimate":1598493.950385208,"lower_bound":1528091.2040759074,"upper_bound":1666500.9541260502,"unit":"ns"},"mean":{"estimate":1594599.2519908526,"lower_bound":1539133.6372117973,"upper_bound":1656658.2447951979,"unit":"ns"},"median":{"estimate":1553580.1041162228,"lower_bound":1516146.951977401,"upper_bound":1687111.2648305085,"unit":"ns"},"median_abs_dev":{"estimate":88545.20455004238,"lower_bound":4903.021134422854,"upper_bound":169473.6879992916,"unit":"ns"},"slope":{"estimate":1598493.950385208,"lower_bound":1528091.2040759074,"upper_bound":1666500.9541260502,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/low_cardinality_groups_encrypted/10000","GROUP_BY/group_by/low_cardinality_groups_plaintext/10000","GROUP_BY/group_by/top_n_groups_encrypted/10000","GROUP_BY/group_by/top_n_groups_plaintext/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_100000.json b/results/query/group_by_rows_100000.json index 9118423..632c71e 100644 --- a/results/query/group_by_rows_100000.json +++ b/results/query/group_by_rows_100000.json @@ -1,3 +1,5 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[138087541.0,254386750.0,397063042.0,513890208.0,676299750.0,773268334.0,929358459.0,998423292.0,1157019042.0,1300982166.0],"unit":"ns","throughput":[],"typical":{"estimate":64715075.766233765,"lower_bound":63691994.99764151,"upper_bound":65817881.26220063,"unit":"ns"},"mean":{"estimate":65323505.72880951,"lower_bound":64201654.09547619,"upper_bound":66536701.47047619,"unit":"ns"},"median":{"estimate":64744068.06666666,"lower_bound":63937761.58333333,"upper_bound":66903574.33333333,"unit":"ns"},"median_abs_dev":{"estimate":1912914.3613889795,"lower_bound":181849.41172152758,"upper_bound":3290019.13969048,"unit":"ns"},"slope":{"estimate":64715075.766233765,"lower_bound":63691994.99764151,"upper_bound":65817881.26220063,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118744041.0,232768417.0,343836292.0,466087958.0,614034250.0,785923125.0,841000791.0,972244916.0,1032011875.0,1140586083.0],"unit":"ns","throughput":[],"typical":{"estimate":29626483.216233768,"lower_bound":28850916.002828054,"upper_bound":30852728.04368564,"unit":"ns"},"mean":{"estimate":29761413.822182536,"lower_bound":29085104.597777776,"upper_bound":30584400.939102188,"unit":"ns"},"median":{"estimate":29408253.8125,"lower_bound":28666996.527777776,"upper_bound":30382653.625,"unit":"ns"},"median_abs_dev":{"estimate":1109345.6183760138,"lower_bound":123290.52839698792,"upper_bound":1975218.623772861,"unit":"ns"},"slope":{"estimate":29626483.216233768,"lower_bound":28850916.002828054,"upper_bound":30852728.04368564,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/100000","GROUP_BY/group_by/count_groups_plaintext/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114647209.0,231219209.0,340932542.0,461350125.0,573027500.0,692180750.0,804687875.0,911892000.0,1075452916.0,1136314292.0],"unit":"ns","throughput":[],"typical":{"estimate":28853036.39090909,"lower_bound":28495999.96430528,"upper_bound":29383002.012575783,"unit":"ns"},"mean":{"estimate":28781889.80271826,"lower_bound":28576699.019583337,"upper_bound":29065213.031190477,"unit":"ns"},"median":{"estimate":28700327.464285716,"lower_bound":28496625.0,"upper_bound":28868391.96875,"unit":"ns"},"median_abs_dev":{"estimate":253977.36652849632,"lower_bound":50421.974161081016,"upper_bound":488370.57403968845,"unit":"ns"},"slope":{"estimate":28853036.39090909,"lower_bound":28495999.96430528,"upper_bound":29383002.012575783,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_100000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[96402750.0,194903208.0,290676333.0,404464333.0,503683042.0,597970958.0,693547209.0,783382375.0,879896000.0,971030416.0],"unit":"ns","throughput":[],"typical":{"estimate":9826907.552727273,"lower_bound":9760865.891369352,"upper_bound":9942034.786484558,"unit":"ns"},"mean":{"estimate":9841312.163948413,"lower_bound":9748730.2350249,"upper_bound":9941198.604642857,"unit":"ns"},"median":{"estimate":9784450.954861112,"lower_bound":9710304.16,"upper_bound":9990739.055714287,"unit":"ns"},"median_abs_dev":{"estimate":162052.75200298926,"lower_bound":34929.527203626654,"upper_bound":269356.3021019709,"unit":"ns"},"slope":{"estimate":9826907.552727273,"lower_bound":9760865.891369352,"upper_bound":9942034.786484558,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[122797042.0,242222792.0,380083166.0,484474583.0,606909291.0,719773916.0,838029666.0,1072286084.0,1125072917.0,1216005875.0],"unit":"ns","throughput":[],"typical":{"estimate":31018695.937662337,"lower_bound":30196944.529805962,"upper_bound":32090529.42907563,"unit":"ns"},"mean":{"estimate":30835715.58882937,"lower_bound":30296694.039229162,"upper_bound":31547384.42243452,"unit":"ns"},"median":{"estimate":30372805.7125,"lower_bound":30135120.635416664,"upper_bound":31252025.472222224,"unit":"ns"},"median_abs_dev":{"estimate":525344.9688732633,"lower_bound":50123.40632513221,"upper_bound":1352311.039052099,"unit":"ns"},"slope":{"estimate":31018695.937662337,"lower_bound":30196944.529805962,"upper_bound":32090529.42907563,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_100000","iteration_count":[9,18,27,36,45,54,63,72,81,90],"measured_values":[94096250.0,186803625.0,281869959.0,374115292.0,476145334.0,555391375.0,651754709.0,743473125.0,845353667.0,948257875.0],"unit":"ns","throughput":[],"typical":{"estimate":10425304.236940837,"lower_bound":10343771.402424464,"upper_bound":10495569.930320151,"unit":"ns"},"mean":{"estimate":10417486.259836862,"lower_bound":10364803.78025463,"upper_bound":10472899.944126984,"unit":"ns"},"median":{"estimate":10414278.234567901,"lower_bound":10345312.841269841,"upper_bound":10487913.361111112,"unit":"ns"},"median_abs_dev":{"estimate":81414.047654611,"lower_bound":16187.731205202643,"upper_bound":155808.6448380109,"unit":"ns"},"slope":{"estimate":10425304.236940837,"lower_bound":10343771.402424464,"upper_bound":10495569.930320151,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/low_cardinality_groups_encrypted/100000","GROUP_BY/group_by/low_cardinality_groups_plaintext/100000","GROUP_BY/group_by/top_n_groups_encrypted/100000","GROUP_BY/group_by/top_n_groups_plaintext/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_1000000.json b/results/query/group_by_rows_1000000.json index 75ed9ad..9ca4b56 100644 --- a/results/query/group_by_rows_1000000.json +++ b/results/query/group_by_rows_1000000.json @@ -1,3 +1,5 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[775630584.0,798301375.0,776154667.0,815999833.0,788118500.0,825502125.0,817639625.0,830400958.0,804626792.0,818787959.0],"unit":"ns","throughput":[],"typical":{"estimate":805116241.8,"lower_bound":792913560.5425,"upper_bound":816392653.8875,"unit":"ns"},"mean":{"estimate":805116241.8,"lower_bound":792913560.5425,"upper_bound":816392653.8875,"unit":"ns"},"median":{"estimate":810313312.5,"lower_bound":787228021.0,"upper_bound":821570875.0,"unit":"ns"},"median_abs_dev":{"estimate":20163915.617018938,"lower_bound":2066837.7671062946,"upper_bound":32404136.46131158,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_1000000","iteration_count":[2,2,2,2,2,2,2,2,2,2],"measured_values":[827777584.0,922071750.0,837663542.0,800913584.0,823090875.0,807715583.0,814468709.0,799068958.0,784422500.0,805279208.0],"unit":"ns","throughput":[],"typical":{"estimate":411123614.65,"lower_bound":402011058.35,"upper_bound":423786225.1,"unit":"ns"},"mean":{"estimate":411123614.65,"lower_bound":402011058.35,"upper_bound":423786225.1,"unit":"ns"},"median":{"estimate":405546073.0,"lower_bound":400456792.0,"upper_bound":415188604.25,"unit":"ns"},"median_abs_dev":{"estimate":8903723.377977312,"lower_bound":2301829.121634364,"upper_bound":19329289.297686517,"unit":"ns"},"slope":null,"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/1000000","GROUP_BY/group_by/count_groups_plaintext/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_1000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[97285375.0,187136459.0,281655709.0,369882167.0,461039666.0,558541250.0,657346125.0,730197917.0,838316875.0,914212417.0],"unit":"ns","throughput":[],"typical":{"estimate":92422031.62077922,"lower_bound":91713217.43025261,"upper_bound":93346258.56955342,"unit":"ns"},"mean":{"estimate":93225641.41718253,"lower_bound":92336442.83440875,"upper_bound":94307605.28544246,"unit":"ns"},"median":{"estimate":93118263.8888889,"lower_bound":92207933.2,"upper_bound":93885236.33333333,"unit":"ns"},"median_abs_dev":{"estimate":1152942.2692645013,"lower_bound":250826.1046969449,"upper_bound":2504693.805532809,"unit":"ns"},"slope":{"estimate":92422031.62077922,"lower_bound":91713217.43025261,"upper_bound":93346258.56955342,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[104043042.0,211974833.0,330034875.0,420787208.0,545895167.0,629364542.0,733435666.0,943604834.0,948801792.0,1050020625.0],"unit":"ns","throughput":[],"typical":{"estimate":35869454.51428571,"lower_bound":35037711.10671171,"upper_bound":37418877.89849184,"unit":"ns"},"mean":{"estimate":35748787.36769841,"lower_bound":35063424.774940476,"upper_bound":36680156.46428572,"unit":"ns"},"median":{"estimate":35103203.88888889,"lower_bound":34963097.702380955,"upper_bound":36393011.13333333,"unit":"ns"},"median_abs_dev":{"estimate":299211.60203793534,"lower_bound":58101.42210182707,"upper_bound":1820778.013054726,"unit":"ns"},"slope":{"estimate":35869454.51428571,"lower_bound":35037711.10671171,"upper_bound":37418877.89849184,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_1000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[95740625.0,182119708.0,281056375.0,369563709.0,460258542.0,557301208.0,645675625.0,734645084.0,837533541.0,923105708.0],"unit":"ns","throughput":[],"typical":{"estimate":92447410.27532467,"lower_bound":92109668.6150119,"upper_bound":92828983.12590799,"unit":"ns"},"mean":{"estimate":92725197.12833333,"lower_bound":92057495.740375,"upper_bound":93550932.95024998,"unit":"ns"},"median":{"estimate":92350749.025,"lower_bound":92035005.25,"upper_bound":93284496.5,"unit":"ns"},"median_abs_dev":{"estimate":780514.1383931078,"lower_bound":119136.47065490927,"upper_bound":1801535.2491563647,"unit":"ns"},"slope":{"estimate":92447410.27532467,"lower_bound":92109668.6150119,"upper_bound":92828983.12590799,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[111631208.0,223926042.0,338640708.0,452082875.0,567223958.0,677574166.0,790135709.0,887600917.0,1001754041.0,1108130625.0],"unit":"ns","throughput":[],"typical":{"estimate":37241689.71428572,"lower_bound":37056701.651741296,"upper_bound":37621754.369327076,"unit":"ns"},"mean":{"estimate":37393823.81847884,"lower_bound":37203069.88458995,"upper_bound":37577096.7843244,"unit":"ns"},"median":{"estimate":37473258.47619048,"lower_bound":37096887.104166664,"upper_bound":37650159.125,"unit":"ns"},"median_abs_dev":{"estimate":343348.1002293527,"lower_bound":13887.99638677097,"upper_bound":505647.1950429575,"unit":"ns"},"slope":{"estimate":37241689.71428572,"lower_bound":37056701.651741296,"upper_bound":37621754.369327076,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/low_cardinality_groups_encrypted/1000000","GROUP_BY/group_by/low_cardinality_groups_plaintext/1000000","GROUP_BY/group_by/top_n_groups_encrypted/1000000","GROUP_BY/group_by/top_n_groups_plaintext/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_10000000.json b/results/query/group_by_rows_10000000.json index 41fd6d5..22daadf 100644 --- a/results/query/group_by_rows_10000000.json +++ b/results/query/group_by_rows_10000000.json @@ -1,3 +1,5 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_encrypted/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_encrypted_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[10588103625.0,10055577833.0,9770299292.0,10151757708.0,9856747125.0,10026768959.0,10168207417.0,10806431042.0,9883605208.0,10977488416.0],"unit":"ns","throughput":[],"typical":{"estimate":10228498662.5,"lower_bound":9999535820.7,"upper_bound":10486086877.7225,"unit":"ns"},"mean":{"estimate":10228498662.5,"lower_bound":9999535820.7,"upper_bound":10486086877.7225,"unit":"ns"},"median":{"estimate":10103667770.5,"lower_bound":9883605208.0,"upper_bound":10588103625.0,"unit":"ns"},"median_abs_dev":{"estimate":346174645.9445715,"lower_bound":83492309.1369152,"upper_bound":684090778.5991609,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups_plaintext/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_plaintext_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[21655437000.0,21449978625.0,21520117041.0,21539879708.0,21595754208.0,20957252750.0,21519651791.0,21433338458.0,21956011834.0,21165517083.0],"unit":"ns","throughput":[],"typical":{"estimate":21479293849.8,"lower_bound":21315186966.4,"upper_bound":21633159845.7,"unit":"ns"},"mean":{"estimate":21479293849.8,"lower_bound":21315186966.4,"upper_bound":21633159845.7,"unit":"ns"},"median":{"estimate":21519884416.0,"lower_bound":21307747854.0,"upper_bound":21597658354.0,"unit":"ns"},"median_abs_dev":{"estimate":120398793.33749413,"lower_bound":15339844.424763322,"upper_bound":473391391.7206228,"unit":"ns"},"slope":null,"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups_encrypted/10000000","GROUP_BY/group_by/count_groups_plaintext/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1729221292.0,1573000375.0,1641893291.0,1512912167.0,1566985250.0,1558926417.0,1469335041.0,1552615000.0,1490557917.0,1769750167.0],"unit":"ns","throughput":[],"typical":{"estimate":1586519691.7,"lower_bound":1532414954.1,"upper_bound":1646350333.4,"unit":"ns"},"mean":{"estimate":1586519691.7,"lower_bound":1532414954.1,"upper_bound":1646350333.4,"unit":"ns"},"median":{"estimate":1562955833.5,"lower_bound":1512912167.0,"upper_bound":1651110833.5,"unit":"ns"},"median_abs_dev":{"estimate":90765943.86648238,"lower_bound":10433024.880176783,"upper_bound":160962296.439448,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_10000000","iteration_count":[2,2,2,2,2,2,2,2,2,2],"measured_values":[915113875.0,995869750.0,965954250.0,902538959.0,886525292.0,899172083.0,885181208.0,947293500.0,928734584.0,912454417.0],"unit":"ns","throughput":[],"typical":{"estimate":461941895.9,"lower_bound":452059277.15,"upper_bound":473189725.05,"unit":"ns"},"mean":{"estimate":461941895.9,"lower_bound":452059277.15,"upper_bound":473189725.05,"unit":"ns"},"median":{"estimate":456892073.0,"lower_bound":447266062.75,"upper_bound":473672208.5,"unit":"ns"},"median_abs_dev":{"estimate":15644873.802047968,"lower_bound":4660892.5326526165,"upper_bound":29440342.760029435,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1541035166.0,1537349250.0,1392980000.0,1412398042.0,1446087041.0,1471600500.0,1406124083.0,1399530958.0,1439569417.0,1447675750.0],"unit":"ns","throughput":[],"typical":{"estimate":1449435020.7,"lower_bound":1420230583.1,"upper_bound":1482748623.0175,"unit":"ns"},"mean":{"estimate":1449435020.7,"lower_bound":1420230583.1,"upper_bound":1482748623.0175,"unit":"ns"},"median":{"estimate":1442828229.0,"lower_bound":1405964500.0,"upper_bound":1492512500.0,"unit":"ns"},"median_abs_dev":{"estimate":49766680.16936481,"lower_bound":6009224.546214938,"upper_bound":92424448.39663804,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_10000000","iteration_count":[2,2,2,2,2,2,2,2,2,2],"measured_values":[930299750.0,931321500.0,918958125.0,922620084.0,918138000.0,925419583.0,923402292.0,928099375.0,948204833.0,943182125.0],"unit":"ns","throughput":[],"typical":{"estimate":464482283.35,"lower_bound":461797727.1,"upper_bound":467570801.2525,"unit":"ns"},"mean":{"estimate":464482283.35,"lower_bound":461797727.1,"upper_bound":467570801.2525,"unit":"ns"},"median":{"estimate":463379739.5,"lower_bound":460590104.25,"upper_bound":468370468.75,"unit":"ns"},"median_abs_dev":{"estimate":3225179.783141613,"lower_bound":993264.8871660233,"upper_bound":8445352.762565017,"unit":"ns"},"slope":null,"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/low_cardinality_groups_encrypted/10000000","GROUP_BY/group_by/low_cardinality_groups_plaintext/10000000","GROUP_BY/group_by/top_n_groups_encrypted/10000000","GROUP_BY/group_by/top_n_groups_plaintext/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/ore_metadata_10000.json b/results/query/ore_metadata_10000.json index 9dce476..ba029d1 100644 --- a/results/query/ore_metadata_10000.json +++ b/results/query/ore_metadata_10000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2866753ccc8560ed378bd1ea2688055b68219930c9c62efe6a5585561cbd40c8184791898ed8a61b0200c21fdc26fc3eec04c9e43e1f177a29a11417528933534e6181b33321564659f34a5ab47323a8e267a75afe52b8383c705950e4e7cf0ccbe92bf4b85412ce624167d57355339e891bc20473831361267090f2b30d968747a0894c186cb570e9dd6ca1ddfbffa8ab1c80867b250e6e95ab40f226cedc47c708692bea93cbf90e5483e1da65e36c9a6d65b19f54aca925996022d325664ed50f793db1b8f02a2749b9691cac6785708ce6d639493d402f258ffd876403512333bcfd7d3dc7e23b2fe7e8732d90732b3eeeb2b23e94f772777168610d0a87e57587851d361eedee8b0864ceb83d6afb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d496a9cf2c12027027412bf84aa0661d4ff672bdd9481d3e1bc741dd39dbcdcdf706eb49e05c4c2a1ed0db3e091609b0ceaff07d1e6d3b67aee279ea47a7ea305a245a95c10cf561ea235c94bea029b1c3b7d19123d492e5a44e7659579bfd61012a8dea1d103bd60d4fe7d7b5b85fd1bc7b07b5cb8d44b0d67b56888b01a63439be4cb376c98c458a79693fe8687e5f6c20cc8f825cae1f2abe210a1f8fa7a970a79620b0f48e407d3f8d2ffc6fdcf1f223085e3a20e5a9208abfd5f0203b2693ce032139861f65a6fbcbe0be1acd7b7022e2bfcc302815c513588c5c60fad1efa9d0edf1d14d7730e22fb846d431690c2db0be33ad1893b50473b68f14d3c6a2aba04a1be63944366e489be1953701\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2866753ccc8560ed378bd1ea2688055b68219930c9c62efe6a5585561cbd40c8184791898ed8a61b0200c21fdc26fc3eec04c9e43e1f177a29a11417528933534e6181b33321564659f34a5ab47323a8e267a75afe52b8383c705950e4e7cf0ccbe92bf4b85412ce624167d57355339e891bc20473831361267090f2b30d968747a0894c186cb570e9dd6ca1ddfbffa8ab1c80867b250e6e95ab40f226cedc47c708692bea93cbf90e5483e1da65e36c9a6d65b19f54aca925996022d325664ed50f793db1b8f02a2749b9691cac6785708ce6d639493d402f258ffd876403512333bcfd7d3dc7e23b2fe7e8732d90732b3eeeb2b23e94f772777168610d0a87e57587851d361eedee8b0864ceb83d6afb" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d496a9cf2c12027027412bf84aa0661d4ff672bdd9481d3e1bc741dd39dbcdcdf706eb49e05c4c2a1ed0db3e091609b0ceaff07d1e6d3b67aee279ea47a7ea305a245a95c10cf561ea235c94bea029b1c3b7d19123d492e5a44e7659579bfd61012a8dea1d103bd60d4fe7d7b5b85fd1bc7b07b5cb8d44b0d67b56888b01a63439be4cb376c98c458a79693fe8687e5f6c20cc8f825cae1f2abe210a1f8fa7a970a79620b0f48e407d3f8d2ffc6fdcf1f223085e3a20e5a9208abfd5f0203b2693ce032139861f65a6fbcbe0be1acd7b7022e2bfcc302815c513588c5c60fad1efa9d0edf1d14d7730e22fb846d431690c2db0be33ad1893b50473b68f14d3c6a2aba04a1be63944366e489be1953701" ], "v": 2 } @@ -59,7 +59,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2821366b822d32f8a20f54272076a7dd206f920630769511696e06743f63acecb52068e2172f22db6d0906d81ff152fdbae91ce150d03bd942e8e27e3ea56ac0da6069168fd6e9c2793d20dd8946332e5cc487cec97cc7a1fb74c3596661e673f062b01618bb50be72c855eb3e41a8f4585085639a42942b677d35ebf4b71bcdef75730335885664b617a5347a9a47eb3e0628e7a4bdabc9d64d36e37f6f68a923a6c8904e1ce7fbad38cf1f82796658de1a18f0bcbc31e20d1aaee6d7f93c72e430734d43e46c1c7417de915324bd259cc8f874fe348c87d170317e0adbee823d1ad35278bd8629dfbc81e29ccf4db1d9b2b8936dddb00dbf449c5d011e4e5a52fc18ff4a2c1b5792b1047b06397d0eba\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288385f5e7dfa655b2dd4f453733a186c66eb453e1f46b5225f3d440c512c9badd37536b892db1eae6fa6ec72f6548ec3f29436aa5d59de334e6ba86d8ed69e8b91af923d95f965bed5bd84a5f714deb58fe502e63bb8c2a58c4c7e8bd61e53cdc81c6881d91bdb9e98782e0430e6c727844f22bfd798ab931e62980cba256e80538b3813db73be32603a8aa3142664dba1dbc09c7029f81b21f64624ae9e646e22166b68e6d4c5d52a6da0688640cb2ac07c1404de8e86e8e1aa664369a305493e00a01567f48a6e2c34aa90a08c681771601bf864e94bdd23689234fb86c6d6d603bea30e999a6622403405f4de053474de09080f2df7366b0d007e84910347a907bb352f323018c5600dd4d500b59fe\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -84,7 +84,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2821366b822d32f8a20f54272076a7dd206f920630769511696e06743f63acecb52068e2172f22db6d0906d81ff152fdbae91ce150d03bd942e8e27e3ea56ac0da6069168fd6e9c2793d20dd8946332e5cc487cec97cc7a1fb74c3596661e673f062b01618bb50be72c855eb3e41a8f4585085639a42942b677d35ebf4b71bcdef75730335885664b617a5347a9a47eb3e0628e7a4bdabc9d64d36e37f6f68a923a6c8904e1ce7fbad38cf1f82796658de1a18f0bcbc31e20d1aaee6d7f93c72e430734d43e46c1c7417de915324bd259cc8f874fe348c87d170317e0adbee823d1ad35278bd8629dfbc81e29ccf4db1d9b2b8936dddb00dbf449c5d011e4e5a52fc18ff4a2c1b5792b1047b06397d0eba" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288385f5e7dfa655b2dd4f453733a186c66eb453e1f46b5225f3d440c512c9badd37536b892db1eae6fa6ec72f6548ec3f29436aa5d59de334e6ba86d8ed69e8b91af923d95f965bed5bd84a5f714deb58fe502e63bb8c2a58c4c7e8bd61e53cdc81c6881d91bdb9e98782e0430e6c727844f22bfd798ab931e62980cba256e80538b3813db73be32603a8aa3142664dba1dbc09c7029f81b21f64624ae9e646e22166b68e6d4c5d52a6da0688640cb2ac07c1404de8e86e8e1aa664369a305493e00a01567f48a6e2c34aa90a08c681771601bf864e94bdd23689234fb86c6d6d603bea30e999a6622403405f4de053474de09080f2df7366b0d007e84910347a907bb352f323018c5600dd4d500b59fe" ], "v": 2 } @@ -105,7 +105,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28477c857070b9399a0a5377458eabdd5584b5a120936f7eefdd135c4fd3358580807f9f5cd8b1eb4ea8f1a5d97f94cd874f293c663490fefdda6b83cb4cdab2087820aafbf2774f66662f9f3f9bf1c2d3feefd292f893a689806161035383698949aa9862812ea7695a017989bd192bc0e5f1ac4358eb330546fa628eb8a4e3530b9e0297d912dcc80b12b78dbe027474a7733adc1e63c1e6864293e8fc6910d1604d3d8d5971be79ba17eca9a8829c357dca82081d4e9a1e325a191426b1aae558837da29ae1243503027408c32ebe32a5ef5d796f0d4c54bbbbba3c65e8c01262f28aa78b7cda939737094d84d71a207cdef6ec421d9fe5aed7b761feb965eb47f27574ebfc47c7754045816505cd6f\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28af0b28a7adb73b651daebf5951ac82dbe77560df3f76a23f1924bccf00064b7e9bec34a2dca21271dddd4659c9cb13047e9794461f65c7dd4fd8159329c09980bd29a99adcf6c919998d7a748922682bdaa1ad4f6e6a33a2670f0a9cfa53615bad5b286fdf19b57c6460973f3eade7ec118f5a8a9c89df97563f1550ed0088090079264d6ed8d809426c4987bc2c803ff0947663a02f7270d9b1090a46c333ab65d4b72ed6897e63035357c169081f98cea9584f89b83bd356cc969f94ea9ec2310ba21e9bfb111b50f9c62643e2d9a5d9af90cc2fdf437955cf703faa9f4b8033d153f446e2b17d4004a69b2f5eb6f04e5d101063649636e0f70a1e748a39064934ea89984dc00903461dec76cf095c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -130,7 +130,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28477c857070b9399a0a5377458eabdd5584b5a120936f7eefdd135c4fd3358580807f9f5cd8b1eb4ea8f1a5d97f94cd874f293c663490fefdda6b83cb4cdab2087820aafbf2774f66662f9f3f9bf1c2d3feefd292f893a689806161035383698949aa9862812ea7695a017989bd192bc0e5f1ac4358eb330546fa628eb8a4e3530b9e0297d912dcc80b12b78dbe027474a7733adc1e63c1e6864293e8fc6910d1604d3d8d5971be79ba17eca9a8829c357dca82081d4e9a1e325a191426b1aae558837da29ae1243503027408c32ebe32a5ef5d796f0d4c54bbbbba3c65e8c01262f28aa78b7cda939737094d84d71a207cdef6ec421d9fe5aed7b761feb965eb47f27574ebfc47c7754045816505cd6f" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28af0b28a7adb73b651daebf5951ac82dbe77560df3f76a23f1924bccf00064b7e9bec34a2dca21271dddd4659c9cb13047e9794461f65c7dd4fd8159329c09980bd29a99adcf6c919998d7a748922682bdaa1ad4f6e6a33a2670f0a9cfa53615bad5b286fdf19b57c6460973f3eade7ec118f5a8a9c89df97563f1550ed0088090079264d6ed8d809426c4987bc2c803ff0947663a02f7270d9b1090a46c333ab65d4b72ed6897e63035357c169081f98cea9584f89b83bd356cc969f94ea9ec2310ba21e9bfb111b50f9c62643e2d9a5d9af90cc2fdf437955cf703faa9f4b8033d153f446e2b17d4004a69b2f5eb6f04e5d101063649636e0f70a1e748a39064934ea89984dc00903461dec76cf095c" ], "v": 2 } @@ -151,7 +151,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28171e61eec64bdb92961722f3582b257924b876c33a1473c2f2956c5ae39a589f5ccda06e767c62b711690c3321f66b658f75817ebb94c8e8bba344e071fc6c89aa49b5b2d769c578ae913f547863787f37a20d0f1adcc939e903f0538b5c49089af5b4920e7cfa16cbc9cc70bd16418f7e3f4b6ea530f82b35e645cfa0694296aa97bf61e187e631dd85b17ecd98b9ec350904a994341cb251184047a6634573bbb89dba7db085b95d16dedbea7872786d751cc7908ba2be24c00a5198f77ddeb5d27da50565dce2f232a58aec2489e568b87d6760b8024c3bd81916cc907991ad760d219b9989e24402b8ccbf63f2bf462c64ec5135a4fb4d6d15d6968642f7116a426a0ebc6f2ade4e126b07b84556\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb285c978dec1b963bc7f60328f5e80987d0fd5c266ddfe367bc45ae9d35c78b62216a88578fd6b7f3353b0fa522a49300f909b7e4eb8a4cb21b595928c4cec39ada57da373fe98b35da780b9543a776ed4ded7c12bd4a235469aa7cb73060b1daca38770c691ab287a26ff3442951680b464c65d98e856871c6f8ea6ad100dd170f6a0a40e79ea5e8e88453b49b22c9c4b3984e3f2f9cbc7de39942eecebe0a2ddf50064dc5444858a4d3d68ab497f985e186087a7e693f55ee9cd0b152defb4771292c472ce71e3e041fc2ed819ef9c64a216f2efd24ae8f5ad84bca30d962e3db6e9a4ec9e6769502cbe0ca2ab0c4bb8d4594051a872ae5146ac98dd993b43be39dfcdf2acf50f8d4cf930295704f8606\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -176,7 +176,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28171e61eec64bdb92961722f3582b257924b876c33a1473c2f2956c5ae39a589f5ccda06e767c62b711690c3321f66b658f75817ebb94c8e8bba344e071fc6c89aa49b5b2d769c578ae913f547863787f37a20d0f1adcc939e903f0538b5c49089af5b4920e7cfa16cbc9cc70bd16418f7e3f4b6ea530f82b35e645cfa0694296aa97bf61e187e631dd85b17ecd98b9ec350904a994341cb251184047a6634573bbb89dba7db085b95d16dedbea7872786d751cc7908ba2be24c00a5198f77ddeb5d27da50565dce2f232a58aec2489e568b87d6760b8024c3bd81916cc907991ad760d219b9989e24402b8ccbf63f2bf462c64ec5135a4fb4d6d15d6968642f7116a426a0ebc6f2ade4e126b07b84556" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb285c978dec1b963bc7f60328f5e80987d0fd5c266ddfe367bc45ae9d35c78b62216a88578fd6b7f3353b0fa522a49300f909b7e4eb8a4cb21b595928c4cec39ada57da373fe98b35da780b9543a776ed4ded7c12bd4a235469aa7cb73060b1daca38770c691ab287a26ff3442951680b464c65d98e856871c6f8ea6ad100dd170f6a0a40e79ea5e8e88453b49b22c9c4b3984e3f2f9cbc7de39942eecebe0a2ddf50064dc5444858a4d3d68ab497f985e186087a7e693f55ee9cd0b152defb4771292c472ce71e3e041fc2ed819ef9c64a216f2efd24ae8f5ad84bca30d962e3db6e9a4ec9e6769502cbe0ca2ab0c4bb8d4594051a872ae5146ac98dd993b43be39dfcdf2acf50f8d4cf930295704f8606" ], "v": 2 } @@ -184,6 +184,118 @@ "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value < $1 LIMIT 100", "rows_returned": 100 }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 50, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 36, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bd14cf178b5b2bc249907e3fd3c316685c21da18b9799bb2019a55b33a03ec10016e5df6f52463e42a5f7c65bc262835c7f386cbcbe1cce4365354aeb256ed6ba39c5fd8fdfdce54ff35ffa6c805b8f29bb0d735259363a817e90f37bdf77bf3b497030fbd74c204989269243cebd42fa6c3df44bbbbed0343baad9c36c62c757cec82ad28ce60ebe091a0d770f6af73a76548b89eaeaaa72f67207dbb325dc491512e93e9088472e63df942e3d9e7f620b53c4d28c1c3e814d03d73c1a2a38096f6548a6c9c8cab0bcb4976ac8371db29f1db84adb4ed0b046e345c67a22d5a8ea0b95c4b7b7940d63d4764f178f0779012f34475326cad8355ddfa988277344bfe76f3e73b78e0581a852eb5a69c899\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 16.91 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bd14cf178b5b2bc249907e3fd3c316685c21da18b9799bb2019a55b33a03ec10016e5df6f52463e42a5f7c65bc262835c7f386cbcbe1cce4365354aeb256ed6ba39c5fd8fdfdce54ff35ffa6c805b8f29bb0d735259363a817e90f37bdf77bf3b497030fbd74c204989269243cebd42fa6c3df44bbbbed0343baad9c36c62c757cec82ad28ce60ebe091a0d770f6af73a76548b89eaeaaa72f67207dbb325dc491512e93e9088472e63df942e3d9e7f620b53c4d28c1c3e814d03d73c1a2a38096f6548a6c9c8cab0bcb4976ac8371db29f1db84adb4ed0b046e345c67a22d5a8ea0b95c4b7b7940d63d4764f178f0779012f34475326cad8355ddfa988277344bfe76f3e73b78e0581a852eb5a69c899\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 16.92, + "Total Cost": 226.86 + } + ], + "Startup Cost": 16.92, + "Total Cost": 226.86 + } + } + ], + "id": "ORE/ore/range_selective_gt_100/10000", + "indexes_used": [ + "integer_encrypted_10000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000" + }, + "ob": [ + "4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bd14cf178b5b2bc249907e3fd3c316685c21da18b9799bb2019a55b33a03ec10016e5df6f52463e42a5f7c65bc262835c7f386cbcbe1cce4365354aeb256ed6ba39c5fd8fdfdce54ff35ffa6c805b8f29bb0d735259363a817e90f37bdf77bf3b497030fbd74c204989269243cebd42fa6c3df44bbbbed0343baad9c36c62c757cec82ad28ce60ebe091a0d770f6af73a76548b89eaeaaa72f67207dbb325dc491512e93e9088472e63df942e3d9e7f620b53c4d28c1c3e814d03d73c1a2a38096f6548a6c9c8cab0bcb4976ac8371db29f1db84adb4ed0b046e345c67a22d5a8ea0b95c4b7b7940d63d4764f178f0779012f34475326cad8355ddfa988277344bfe76f3e73b78e0581a852eb5a69c899" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value > $1 LIMIT 100", + "rows_returned": 16 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6aa980fdc390f88b2c4f8ba1ce48984b408d7786b85d6952020359294210bb89a853960740e38339a5d089ee4643523719c74de8b1da34690e5b508103853d5ce147f0016c2a396da1b28b45fd0075aa52f85e4d7e4a96bc4f0b0066e40092445c39e0c2fa7fca297e0abfb2ec341c09b3320bd6f394cbbe694143a5072fac5bd988993e7080c71951767ab3743b896dcbdc1649c5965f7ebc3f9a920352a81a53640edd035c20ef76feeef51c8279004359d05e7daf293813099ea14506303240b16ed5707ef6f8b32c987ec547a47a44c143fcb8f8a1e4eabe8eefe3d489870390a5c95bc0b106ef490f6b2cbc7c8fe35cc151a9269608fac38392eb51478459851be6fdcac086fbc4ca4d687c5de2ae\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000_ore_index", + "Node Type": "Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000", + "Scan Direction": "Forward", + "Startup Cost": 0.54, + "Total Cost": 229.91 + } + ], + "Startup Cost": 0.54, + "Total Cost": 46.41 + } + } + ], + "id": "ORE/ore/range_highly_selective_gt_10/10000", + "indexes_used": [ + "integer_encrypted_10000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000" + }, + "ob": [ + "4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6aa980fdc390f88b2c4f8ba1ce48984b408d7786b85d6952020359294210bb89a853960740e38339a5d089ee4643523719c74de8b1da34690e5b508103853d5ce147f0016c2a396da1b28b45fd0075aa52f85e4d7e4a96bc4f0b0066e40092445c39e0c2fa7fca297e0abfb2ec341c09b3320bd6f394cbbe694143a5072fac5bd988993e7080c71951767ab3743b896dcbdc1649c5965f7ebc3f9a920352a81a53640edd035c20ef76feeef51c8279004359d05e7daf293813099ea14506303240b16ed5707ef6f8b32c987ec547a47a44c143fcb8f8a1e4eabe8eefe3d489870390a5c95bc0b106ef490f6b2cbc7c8fe35cc151a9269608fac38392eb51478459851be6fdcac086fbc4ca4d687c5de2ae" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value > $1 LIMIT 10", + "rows_returned": 1 + }, { "explain": [ { @@ -197,7 +309,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288c7fc4fbe45d08147e2a77a725807a26658454abbe8ef3b42e2c541fef1e5031f7f9acf75f12909d7c4d748eca10cbabac5226f324b1754cd88040d6ffd6b7fafd1db7d8858c64b12aaf659551bec51d7de9d04261fd71846b8b8c1e1df968ac45a432f558676b13bf1928474a82da050f3c7eb204c9eada77399754faf09f6c519787389dcaa5e5b581e683165ac606c80031564ba6d5822bfcb7b3a0023b5d12bf268b532ca01218da92e9f319ce4f6f20b1669c8c9f6eea6d490707aacc38eabc4b9461c094345e6a2bfe27448f6c543b23d5b18409a560d7c0b850bd972d90dbb9e8f98139a502fcb57360df32991df27a483a3387c50d9f7de7a5a993fcd8b83c545a797e335310b415bac5b99a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fa597283f14cd500b5ab76d12edda4cfb5911b350739fe2b2c4d928845173ae80d26eeb1ea64d99536a10252d25c51df841f74f2fc79cf2593a72d5c75a95b69fd9edbec2f2acacc2e9d83f03596f9baa07863b79d4c889d29c4045e2da13f8deef2feecd03d2f703b7387dc39b18d25faf252483c93855ff52f66be2628b280fbdc0fc46169a63baabe59d0cfbe0efef4498a79eb5b971b5e4094fb83ebe2e3f0e7ab4d5ab80cab21547e41c23597d709a3b8c1d4d80ec742793a09b32ed2bc310afa37260a09ca4e9def5f1c032463bc9287295ad8f8328e8d523ef28bee2a55350ee1b499b0d080a17d999648e50e9426706dcde1fabb05e335cd73a95799e005ca08ed6f0a3f12ad7dec97354bf9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -226,7 +338,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288c7fc4fbe45d08147e2a77a725807a26658454abbe8ef3b42e2c541fef1e5031f7f9acf75f12909d7c4d748eca10cbabac5226f324b1754cd88040d6ffd6b7fafd1db7d8858c64b12aaf659551bec51d7de9d04261fd71846b8b8c1e1df968ac45a432f558676b13bf1928474a82da050f3c7eb204c9eada77399754faf09f6c519787389dcaa5e5b581e683165ac606c80031564ba6d5822bfcb7b3a0023b5d12bf268b532ca01218da92e9f319ce4f6f20b1669c8c9f6eea6d490707aacc38eabc4b9461c094345e6a2bfe27448f6c543b23d5b18409a560d7c0b850bd972d90dbb9e8f98139a502fcb57360df32991df27a483a3387c50d9f7de7a5a993fcd8b83c545a797e335310b415bac5b99a" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fa597283f14cd500b5ab76d12edda4cfb5911b350739fe2b2c4d928845173ae80d26eeb1ea64d99536a10252d25c51df841f74f2fc79cf2593a72d5c75a95b69fd9edbec2f2acacc2e9d83f03596f9baa07863b79d4c889d29c4045e2da13f8deef2feecd03d2f703b7387dc39b18d25faf252483c93855ff52f66be2628b280fbdc0fc46169a63baabe59d0cfbe0efef4498a79eb5b971b5e4094fb83ebe2e3f0e7ab4d5ab80cab21547e41c23597d709a3b8c1d4d80ec742793a09b32ed2bc310afa37260a09ca4e9def5f1c032463bc9287295ad8f8328e8d523ef28bee2a55350ee1b499b0d080a17d999648e50e9426706dcde1fabb05e335cd73a95799e005ca08ed6f0a3f12ad7dec97354bf9" ], "v": 2 } diff --git a/results/query/ore_metadata_100000.json b/results/query/ore_metadata_100000.json index 710f7d6..759ca1a 100644 --- a/results/query/ore_metadata_100000.json +++ b/results/query/ore_metadata_100000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d00b4211483444a28607a5bb934773618d331665f575ce0476d41ea94f67d2fefc6bc53bcf427e70f19f00f4365a3736993d4ce1aba8c558c26113c7efff5e914754a40615e408043bc791899668848321621f722a1bf621c092351f7f29afdd9940fe1795fc81645d684c86e3c0197cc11130a43d335962754e594ab96647c2354281c0185044dc3ed9db19bd8d352965809ceb90fd23caea82b377b0a1b58351fd3830c67a4597c6ac542b15479972422922e08db7c8f7a0e9b80c83f7c4dbb51e4deabb318b6164ed0e37b360294bffce8b4c39dccec64293ddc5eae77cb130c1a78d2d944f92149d615c9cf0d0b251cfcdf45eded3faab0f118afb3d1e9c7e37cdc4ae44b69ae18fc945ceb4c058\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2887fa79ab6922a3fbece8a25bdef4c17916b4ddfc1858724d76eead689d241f6e289df0b37556748c0d9d2aca977f4513470000b8168f3308fd72025f31fd023d43b06dc4fc81a5e223cc54557451bc5ba4c7f7cf19e3c28ec4065c02461424ac2b0fe449e08bda47ab9ebc150527d82dbce68fa6e13a9b5bfc245afb84f357ca18d7a1a7fb8fa5501638611357c7b5828612addf3441169a9d5e29c78d6019bf186518cc170fc9b1253993f028cb937403b4ba1f0083b37ae2193bb308de175d80442984b6c4c1745d127047b76b381b6f190cb0e7e726deb6d772c9d46104cdf8014c4bc8f69b4f329ec172d2f626259c9854b69f670c2af6b923de020c1e43ba946dcc5e76b5c04b649179b5e078b5\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d00b4211483444a28607a5bb934773618d331665f575ce0476d41ea94f67d2fefc6bc53bcf427e70f19f00f4365a3736993d4ce1aba8c558c26113c7efff5e914754a40615e408043bc791899668848321621f722a1bf621c092351f7f29afdd9940fe1795fc81645d684c86e3c0197cc11130a43d335962754e594ab96647c2354281c0185044dc3ed9db19bd8d352965809ceb90fd23caea82b377b0a1b58351fd3830c67a4597c6ac542b15479972422922e08db7c8f7a0e9b80c83f7c4dbb51e4deabb318b6164ed0e37b360294bffce8b4c39dccec64293ddc5eae77cb130c1a78d2d944f92149d615c9cf0d0b251cfcdf45eded3faab0f118afb3d1e9c7e37cdc4ae44b69ae18fc945ceb4c058" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2887fa79ab6922a3fbece8a25bdef4c17916b4ddfc1858724d76eead689d241f6e289df0b37556748c0d9d2aca977f4513470000b8168f3308fd72025f31fd023d43b06dc4fc81a5e223cc54557451bc5ba4c7f7cf19e3c28ec4065c02461424ac2b0fe449e08bda47ab9ebc150527d82dbce68fa6e13a9b5bfc245afb84f357ca18d7a1a7fb8fa5501638611357c7b5828612addf3441169a9d5e29c78d6019bf186518cc170fc9b1253993f028cb937403b4ba1f0083b37ae2193bb308de175d80442984b6c4c1745d127047b76b381b6f190cb0e7e726deb6d772c9d46104cdf8014c4bc8f69b4f329ec172d2f626259c9854b69f670c2af6b923de020c1e43ba946dcc5e76b5c04b649179b5e078b5" ], "v": 2 } @@ -59,7 +59,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288e58e5089db6ea54ef0825214cd5699afefd9b328e8994790781267949aa9f8d6bb80e181f5357989def2f5a04e2acc6f5f6bd66f305fd869e70be94fb8e9c78b5e5d6dc4dfe882b621518a017866be7130be8ce17434e02d6e374f5b07a17ab4b40bf13c67cd8f041033d2588d5bafe682c1856081656c82b324a7fee52e6c212be290dfb80d97e321e6c25b91a2b9c640d1a26b43990a507016868414281792eeb6e8342170dc74e84015c8e67b69965b694937f58cd2975032b3b76fd21cb3761f94a932388b668e5b1869af04d64e19f83d07c2b01ae32136b28fb7d400ec58c6c39709df47d63509ec3099e58c8e1c1305754d94bf493825a9c15f3c80c0d21e6ccbf1f74ec43cd6a606fd0da97\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28de69a9ae665f6b140b5ae556a1bbfc214537ac7b4624f8f12be09e19c2f06490769a9e19355bb8d959d556d0fe5becf2aa7664874299016671fcf332a5dac73c584a66dec6ae50bbe29d9dbda833ee0487a3c7dd125ec2a35de08e5e134a1469cdf9a8259c72d5efb04b11d73eaa4f4052636c3532a562b47e6741dfb89f15440de4fb7f5628d89455e3621d46914ed72158a86590ea0f048991bbfa9b229ee7fd07f985078ebbbdcba8ae35f3748c2743d6aa369c04126f691babd6b457a5fec7ef29cfcb9e0c04b6a2a7ea16965b95c7247f5391463d4c748aa98039b82a27b364291101ee56eb753d20e4a78bd89a36c90155e29b3212a9148c82e31720d49da083aed5ddc5479caa9c6b1f8aea01\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -84,7 +84,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288e58e5089db6ea54ef0825214cd5699afefd9b328e8994790781267949aa9f8d6bb80e181f5357989def2f5a04e2acc6f5f6bd66f305fd869e70be94fb8e9c78b5e5d6dc4dfe882b621518a017866be7130be8ce17434e02d6e374f5b07a17ab4b40bf13c67cd8f041033d2588d5bafe682c1856081656c82b324a7fee52e6c212be290dfb80d97e321e6c25b91a2b9c640d1a26b43990a507016868414281792eeb6e8342170dc74e84015c8e67b69965b694937f58cd2975032b3b76fd21cb3761f94a932388b668e5b1869af04d64e19f83d07c2b01ae32136b28fb7d400ec58c6c39709df47d63509ec3099e58c8e1c1305754d94bf493825a9c15f3c80c0d21e6ccbf1f74ec43cd6a606fd0da97" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28de69a9ae665f6b140b5ae556a1bbfc214537ac7b4624f8f12be09e19c2f06490769a9e19355bb8d959d556d0fe5becf2aa7664874299016671fcf332a5dac73c584a66dec6ae50bbe29d9dbda833ee0487a3c7dd125ec2a35de08e5e134a1469cdf9a8259c72d5efb04b11d73eaa4f4052636c3532a562b47e6741dfb89f15440de4fb7f5628d89455e3621d46914ed72158a86590ea0f048991bbfa9b229ee7fd07f985078ebbbdcba8ae35f3748c2743d6aa369c04126f691babd6b457a5fec7ef29cfcb9e0c04b6a2a7ea16965b95c7247f5391463d4c748aa98039b82a27b364291101ee56eb753d20e4a78bd89a36c90155e29b3212a9148c82e31720d49da083aed5ddc5479caa9c6b1f8aea01" ], "v": 2 } @@ -105,7 +105,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2874d04c959852b019a0e4dd672cdb85ad0e0e01320c7b9f4fd5bbecd68a3bc0712d6644994b6459441cc699c1e4988622419949a1a92a82ed4b0b1391597552d082a123efc22e625b9ac5f380127dbc793c296bde791ccd927ecd79242081e0b5a17d23b6082ab04071d90338a1239a679fbafec5cbf246fce547a201c81cc52c12ea7da34daa7ac8ee7bba3c95e90d907be26557c2fb341f7e4c7f07e8911aa4a412dcffda035d0ea20108f94eeb6fc5c641e5fbeaed7c51091ea67837e6de9215defd292c4e401e5c69c600196c19ba8bdc9f397ab1b6ced97baa0e116720fda5706eaf4a1e6903bbc85354cf8bb6f70dd8c190ef210cbf2513aa29463f1c23194c209133a778d6b3757b70f375087d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28b2c5ac0a2da469ce95406da3e10b08a23f33dc21e4b4939b1b0138b627bc085fa2d8895e011f487226b5957f55c2e0a0039d8417243c881975f41308ffbb19a656cb32c787e3ba41587fa9e43f32d8b30cb06eb5f410a25bb22c796d354461d479a5231ee4ab0421dfb711e595731bfdc6ba468abbadcb2a7b5b5d930eba74359974a3c92ca8f26ffaad6cc48e643853f3a5dfd8d7ba9c04e5b3a7d5838f2e39d45e2ec9c20df33424f4cc99449d67a4792b403b67167f998327b0d5e9f38392232307449b2c240347932c141da4f50672c6b791ae8c511190ff51ec18efee11b76d26a7a0b1ec0eafaaa4da17c7b22e394e4b2fe4a6bd7fd0d810d483e16a5d6ec157ff8f57711777b135f1a41fa3bc\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -130,7 +130,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2874d04c959852b019a0e4dd672cdb85ad0e0e01320c7b9f4fd5bbecd68a3bc0712d6644994b6459441cc699c1e4988622419949a1a92a82ed4b0b1391597552d082a123efc22e625b9ac5f380127dbc793c296bde791ccd927ecd79242081e0b5a17d23b6082ab04071d90338a1239a679fbafec5cbf246fce547a201c81cc52c12ea7da34daa7ac8ee7bba3c95e90d907be26557c2fb341f7e4c7f07e8911aa4a412dcffda035d0ea20108f94eeb6fc5c641e5fbeaed7c51091ea67837e6de9215defd292c4e401e5c69c600196c19ba8bdc9f397ab1b6ced97baa0e116720fda5706eaf4a1e6903bbc85354cf8bb6f70dd8c190ef210cbf2513aa29463f1c23194c209133a778d6b3757b70f375087d" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28b2c5ac0a2da469ce95406da3e10b08a23f33dc21e4b4939b1b0138b627bc085fa2d8895e011f487226b5957f55c2e0a0039d8417243c881975f41308ffbb19a656cb32c787e3ba41587fa9e43f32d8b30cb06eb5f410a25bb22c796d354461d479a5231ee4ab0421dfb711e595731bfdc6ba468abbadcb2a7b5b5d930eba74359974a3c92ca8f26ffaad6cc48e643853f3a5dfd8d7ba9c04e5b3a7d5838f2e39d45e2ec9c20df33424f4cc99449d67a4792b403b67167f998327b0d5e9f38392232307449b2c240347932c141da4f50672c6b791ae8c511190ff51ec18efee11b76d26a7a0b1ec0eafaaa4da17c7b22e394e4b2fe4a6bd7fd0d810d483e16a5d6ec157ff8f57711777b135f1a41fa3bc" ], "v": 2 } @@ -151,7 +151,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb281aef769518e698df7c8adcb76b629160bf2f1a9305598b13ef214f364f64d77e1e8713c9b32f165428ffd0e19ba8448578fcbf4362d9381e37c8cad8779ca075701899a783c179aafa474886a729ca2563d6912f4533cc7e2a385037fdfd20124915428710afd87d4c3035ca6b65dd0c3c272f3b9f6993ae0726da4e2ae8756f1032e18b16f5c8108a1d15ffa96b26053303ad99973ce4e07f37551e70fea502ff41296391338bf0ab5a5e085d1a18c16ddaecd8f05eda92b9083b13f4dbf298add3264d717b9f01a7ed6d05dcc3d0f35446128cec3901b34a2e8dd6525a0282b0b95cbd3e222ef75e511e7a7bfa6cb76e6f5cd8a0b5e40679968ef04a83cfdf63bcd077a090b336c8a0416a10ab3ea2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fd6c2742e900b23d5877101beff1a03dd83ded73210dfcb0cc15acc98c37cfbd7d27c306f2c86e7c37d59dfdc35a00f966cfed157e45508526ea26b733710176aa28b533cee713aca07d458ccf470f946a823f0d57ecfff013ab9a059f0e0dd954a4fc89398c2673bd656bbc49a27a156b257130230c80e61029665b6e7d6ae3d29a20b928abb6c7b0d4a9d67165308591e5288e303f8fd36f5470f822a77449182dee99899d16e9a65b62ab17714cb794da8af30e2411ca7b59e1776a37d6ca89bd5eb0d18fdaabc6b0ae968c437d2a501c4fe385896194bd680a255cdd6df77f8d454e955b474773dac0f4448d51724113022490b497034284b75b1fe0d24092fee0207405b57af5158aa9e7a08cd9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -176,7 +176,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb281aef769518e698df7c8adcb76b629160bf2f1a9305598b13ef214f364f64d77e1e8713c9b32f165428ffd0e19ba8448578fcbf4362d9381e37c8cad8779ca075701899a783c179aafa474886a729ca2563d6912f4533cc7e2a385037fdfd20124915428710afd87d4c3035ca6b65dd0c3c272f3b9f6993ae0726da4e2ae8756f1032e18b16f5c8108a1d15ffa96b26053303ad99973ce4e07f37551e70fea502ff41296391338bf0ab5a5e085d1a18c16ddaecd8f05eda92b9083b13f4dbf298add3264d717b9f01a7ed6d05dcc3d0f35446128cec3901b34a2e8dd6525a0282b0b95cbd3e222ef75e511e7a7bfa6cb76e6f5cd8a0b5e40679968ef04a83cfdf63bcd077a090b336c8a0416a10ab3ea2" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fd6c2742e900b23d5877101beff1a03dd83ded73210dfcb0cc15acc98c37cfbd7d27c306f2c86e7c37d59dfdc35a00f966cfed157e45508526ea26b733710176aa28b533cee713aca07d458ccf470f946a823f0d57ecfff013ab9a059f0e0dd954a4fc89398c2673bd656bbc49a27a156b257130230c80e61029665b6e7d6ae3d29a20b928abb6c7b0d4a9d67165308591e5288e303f8fd36f5470f822a77449182dee99899d16e9a65b62ab17714cb794da8af30e2411ca7b59e1776a37d6ca89bd5eb0d18fdaabc6b0ae968c437d2a501c4fe385896194bd680a255cdd6df77f8d454e955b474773dac0f4448d51724113022490b497034284b75b1fe0d24092fee0207405b57af5158aa9e7a08cd9" ], "v": 2 } @@ -184,6 +184,98 @@ "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value < $1 LIMIT 100", "rows_returned": 100 }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bbb7b8e94bc9493304a6a2ffc7d98bf729ed1f9df61ecaa947365a8db06c5606e67c0690c9b2ece73c34a469b21e9fdae0da5ee9cf7ca0450f8ae0891c55b9eb19cfcdaa5c4dab13167f727789b59bfb5714b926ee4715ca0b728030903b03c62115448572bd33dbc08be3cc5520c3ccc56468970c77985aafe1bdce865f6667b0bdc83cb2ae1214a1bd62b173349080fb6dbe9ac51ca1278e75f58eafec4632b832e75266f26c0358edcf68e4a6e17a0f24eb36d88634f0c996b16e0b39f71178f8f18a66a3e98efb16b9bcdd586870297fdbf30d654966cc2f2c30b35b7ecacd1ac767381b330a3332394a52f14b5e6a526e967a3fad744764f660c744e46c00dcfffc91b843bef8aa0de06ba91beb1\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } + ], + "id": "ORE/ore/range_selective_gt_100/100000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_100000" + }, + "ob": [ + "4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bbb7b8e94bc9493304a6a2ffc7d98bf729ed1f9df61ecaa947365a8db06c5606e67c0690c9b2ece73c34a469b21e9fdae0da5ee9cf7ca0450f8ae0891c55b9eb19cfcdaa5c4dab13167f727789b59bfb5714b926ee4715ca0b728030903b03c62115448572bd33dbc08be3cc5520c3ccc56468970c77985aafe1bdce865f6667b0bdc83cb2ae1214a1bd62b173349080fb6dbe9ac51ca1278e75f58eafec4632b832e75266f26c0358edcf68e4a6e17a0f24eb36d88634f0c996b16e0b39f71178f8f18a66a3e98efb16b9bcdd586870297fdbf30d654966cc2f2c30b35b7ecacd1ac767381b330a3332394a52f14b5e6a526e967a3fad744764f660c744e46c00dcfffc91b843bef8aa0de06ba91beb1" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value > $1 LIMIT 100", + "rows_returned": 100 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6a00f6966051d014749ba52eaa1bb230ce41a9faada4aee59be57cf4ec741a7fb258b9f7815ccdea099dbc335b6390db8717b18e2b055cd6e57d723d01082a67c113226b78e83bd5456ddbb1ac3e8dff0f0c2c1b4c53720f9e9f81dd34dcfec28164deca3ce89a9917dd7a0714fe52c2b56ace4760b061260b94a47e640cb4ba566adf27a929056cf9dbc86adfd3e0d902d0b077f97282f92e9329bba2982e9f8a833dcccf6ae7a41bd55921185805ff395812de5f12cbb828df155f3511c7cd7afd89ba51ea0713bd13fe3d8fdb8a72dd2f4415685ce582109778d90a5eb7ec29091c11eba3fce250007838c5f55a4f385f154163ab80723451c8e9e51c710a294af896e1bea184210ac5667e575a7982\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 33333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 0.0, + "Total Cost": 73619.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } + ], + "id": "ORE/ore/range_highly_selective_gt_10/100000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_100000" + }, + "ob": [ + "4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6a00f6966051d014749ba52eaa1bb230ce41a9faada4aee59be57cf4ec741a7fb258b9f7815ccdea099dbc335b6390db8717b18e2b055cd6e57d723d01082a67c113226b78e83bd5456ddbb1ac3e8dff0f0c2c1b4c53720f9e9f81dd34dcfec28164deca3ce89a9917dd7a0714fe52c2b56ace4760b061260b94a47e640cb4ba566adf27a929056cf9dbc86adfd3e0d902d0b077f97282f92e9329bba2982e9f8a833dcccf6ae7a41bd55921185805ff395812de5f12cbb828df155f3511c7cd7afd89ba51ea0713bd13fe3d8fdb8a72dd2f4415685ce582109778d90a5eb7ec29091c11eba3fce250007838c5f55a4f385f154163ab80723451c8e9e51c710a294af896e1bea184210ac5667e575a7982" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value > $1 LIMIT 10", + "rows_returned": 10 + }, { "explain": [ { @@ -197,7 +289,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28438afc98bf36fef6e83c178b3ab0c64d59caa952da0255aff98a301c6f4ca13dd511de88efd661b0cb48d77b4747886b6e86352a46be56496e130dabf9dec5e7396ff2a0947bb93250b7335dc553e8e8d22d9f7c38ade7f0c319bd0d8f6c1dba8178f0702bf8909f73126afb3ff5de63e219246e172754781fa2957aaff37a1a85a8c890e610943387252cca785941efedd90270dbc44234010b9fd46b80bfe79be2c40441d25756965646f0ca9de7245acdac17fcbf4cec3069516e8251208e0ea4dbffd37eb25b3dbd49bb219f416158db8ae4fdd28ccb34ecf03de2955283cb00095c9699004807b9b4c90fd4f679313aa6fec7afb545b8f32682105be0482079485e7ee47f5308c017c2922346f7\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2830e3a6812683faa41ab7d28d6fb1186f9ad804728320ad991542e5a17bbcdead50e95733f8c9c9b32a5ce4f729ae4f44ae3300cfce0d573dcdf1642fb8ac849d6b9c49baf5f27908edc7f95674333be35f085c5f037bb42c990fe4f5ccba9235f42a34426ad223b73cdf0eb1e0e23fe755a1e74604981f9ee7d97f475d9854d9e823e05f5222bbf6491c9d6065a90fb8aac1bf5c6e019136aa14f19ef67feac356150483810f55f5d672d78128df5be7768157811644bd9bc3a9bec0351f3ede9258d24c0727a48687712722d0b30ef007dfc98244b2009bd159628040d89e912e63915fc261c20d99022ad227b073adc891acde0072ab8958d17bac41e0a5f0c05ec87080960d07eb896418141083c2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_100000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -226,7 +318,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28438afc98bf36fef6e83c178b3ab0c64d59caa952da0255aff98a301c6f4ca13dd511de88efd661b0cb48d77b4747886b6e86352a46be56496e130dabf9dec5e7396ff2a0947bb93250b7335dc553e8e8d22d9f7c38ade7f0c319bd0d8f6c1dba8178f0702bf8909f73126afb3ff5de63e219246e172754781fa2957aaff37a1a85a8c890e610943387252cca785941efedd90270dbc44234010b9fd46b80bfe79be2c40441d25756965646f0ca9de7245acdac17fcbf4cec3069516e8251208e0ea4dbffd37eb25b3dbd49bb219f416158db8ae4fdd28ccb34ecf03de2955283cb00095c9699004807b9b4c90fd4f679313aa6fec7afb545b8f32682105be0482079485e7ee47f5308c017c2922346f7" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2830e3a6812683faa41ab7d28d6fb1186f9ad804728320ad991542e5a17bbcdead50e95733f8c9c9b32a5ce4f729ae4f44ae3300cfce0d573dcdf1642fb8ac849d6b9c49baf5f27908edc7f95674333be35f085c5f037bb42c990fe4f5ccba9235f42a34426ad223b73cdf0eb1e0e23fe755a1e74604981f9ee7d97f475d9854d9e823e05f5222bbf6491c9d6065a90fb8aac1bf5c6e019136aa14f19ef67feac356150483810f55f5d672d78128df5be7768157811644bd9bc3a9bec0351f3ede9258d24c0727a48687712722d0b30ef007dfc98244b2009bd159628040d89e912e63915fc261c20d99022ad227b073adc891acde0072ab8958d17bac41e0a5f0c05ec87080960d07eb896418141083c2" ], "v": 2 } diff --git a/results/query/ore_metadata_1000000.json b/results/query/ore_metadata_1000000.json index e4373c2..8578aa8 100644 --- a/results/query/ore_metadata_1000000.json +++ b/results/query/ore_metadata_1000000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28cf5cc89b82640ab18c8d144a0505f4aac3a1b44eb0d446b6583aa58e3396788c4356256e7664ceb5d3a6ceea00d70031d209d1bcb718535b1d7b4e4fabc474cafffa8127017c7f8ceff14073f726621131c03fa28458716cf97a8f153236ff3cc98f8af000ee28bd357d3c1e4d1bb4b5e364330ab582e26ad1ed38e6ef4859026497b4a468a01743c448e50f555ac3b6296c5edcded0a88559b5b2a46068f6de824051670a6a4b51272eaecd42744d221efecb0c336f5bfdc9262bd589daa99197c2f363bfdc7ca1a95fea481a01efc47df38764be95198024f64e3423bc025801f7d5c14b80ab9ec17f2f61ce51d12e3b008650fabe4f2f1ce417edcde29971cdc959849f8d6fd2cce59bf3f9153669\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283ae2aff336287192432a7a2a377d1f6a4d3c1217b0cb2638ad900f3f27e5bd813df25230001866af892842d19eb70bc54e9a722854dac3537bbf78d6d9577f56077c86790b50d198ba195c234772d6581e4dbdf105d9af044a02ffffe87bb4bb904ddada19566bbac3132fc899ee9ab1f352323041bd8ca62814d8208b458e5c860e1bee8c63ab16351b7b8f4442d125a94d38158bf3baae8a17d53ca6b9180a2c4a0609e86999c1a930e2a77de2a04ff19096d427e1bd7ca94e9b1f04aeb145a9c8d064406f2146548e3df866a132fc1dca2b2fd1adc28d67ee24aec7415f5df7174fcc67f5e4bf2923e6f3dd029529fb855159aa232016865cfcf102e1639d5efc4a4d279cf0354c38071b894b999a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28cf5cc89b82640ab18c8d144a0505f4aac3a1b44eb0d446b6583aa58e3396788c4356256e7664ceb5d3a6ceea00d70031d209d1bcb718535b1d7b4e4fabc474cafffa8127017c7f8ceff14073f726621131c03fa28458716cf97a8f153236ff3cc98f8af000ee28bd357d3c1e4d1bb4b5e364330ab582e26ad1ed38e6ef4859026497b4a468a01743c448e50f555ac3b6296c5edcded0a88559b5b2a46068f6de824051670a6a4b51272eaecd42744d221efecb0c336f5bfdc9262bd589daa99197c2f363bfdc7ca1a95fea481a01efc47df38764be95198024f64e3423bc025801f7d5c14b80ab9ec17f2f61ce51d12e3b008650fabe4f2f1ce417edcde29971cdc959849f8d6fd2cce59bf3f9153669" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283ae2aff336287192432a7a2a377d1f6a4d3c1217b0cb2638ad900f3f27e5bd813df25230001866af892842d19eb70bc54e9a722854dac3537bbf78d6d9577f56077c86790b50d198ba195c234772d6581e4dbdf105d9af044a02ffffe87bb4bb904ddada19566bbac3132fc899ee9ab1f352323041bd8ca62814d8208b458e5c860e1bee8c63ab16351b7b8f4442d125a94d38158bf3baae8a17d53ca6b9180a2c4a0609e86999c1a930e2a77de2a04ff19096d427e1bd7ca94e9b1f04aeb145a9c8d064406f2146548e3df866a132fc1dca2b2fd1adc28d67ee24aec7415f5df7174fcc67f5e4bf2923e6f3dd029529fb855159aa232016865cfcf102e1639d5efc4a4d279cf0354c38071b894b999a" ], "v": 2 } @@ -59,7 +59,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2829721df213f24f5a49d72133263260e440f42d347acb5234497377af104689569a2abededff4a40e2b84bcae090690f80534ee697d22aeec41c1fe5a80f439e405a7b816553c26bedeb08ca907535d9e2f14a0f48fa9c853a8a532ca1cdbb2a7ad41b10326b596e7a5e4d7f6089a62f4bed7b34f5285e28411fa2897a82d9f70a845a41d9d666f7dc2c3e229caa9737623bf96c498572ebd601a21f97375fe35fc66e25668905f5efcbfee0223ba5d75ae2ec020e5986dfa8cd986651093ed8340d3136d02635e25af2c6d82c3def0e777f74a4a2c4cae73a16d05913de579cde92ed2bc2b2b3c326690a94b467cd311ebd6ca77bc5f0a0e0cb31548c57ba62a4933cbd9cfc4cb815da83dfbd4fe3d26\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb287f55c1e235f0f2c4954872c6effcdb6edd6a2940b22e632067473197cf10c783e2c93c17d9a82492f0260804fc091c241b25cbc45693d49bb8364dd1e135ac5ff25400f46370d4fdbe89b63f53c2fc0ca05e29208f2fb04f52a33ba87df85488ef74ae5af4add7dd00e389c4d0066a565fa2fda6978c3330b22fa5dc8915eb8ed9fad6c1db12384a5aab884f4f6eff88ffb6a4d64c184311dbf1a44e37273df568f410499f666747a94dd20781a1b5e212ffee6e2fca807cbd3530d8c5a71e30eb9ce9331b3d758d7d224e0e628b5fed0b9a24d3303e2b024c7e92430d23bca54ffabb77607f2beb7c2bf63b80bbf3c58116d7ae7ceb24a747621f603465de861b8fa5ee75e972d9d1398704cc76e397\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -84,7 +84,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2829721df213f24f5a49d72133263260e440f42d347acb5234497377af104689569a2abededff4a40e2b84bcae090690f80534ee697d22aeec41c1fe5a80f439e405a7b816553c26bedeb08ca907535d9e2f14a0f48fa9c853a8a532ca1cdbb2a7ad41b10326b596e7a5e4d7f6089a62f4bed7b34f5285e28411fa2897a82d9f70a845a41d9d666f7dc2c3e229caa9737623bf96c498572ebd601a21f97375fe35fc66e25668905f5efcbfee0223ba5d75ae2ec020e5986dfa8cd986651093ed8340d3136d02635e25af2c6d82c3def0e777f74a4a2c4cae73a16d05913de579cde92ed2bc2b2b3c326690a94b467cd311ebd6ca77bc5f0a0e0cb31548c57ba62a4933cbd9cfc4cb815da83dfbd4fe3d26" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb287f55c1e235f0f2c4954872c6effcdb6edd6a2940b22e632067473197cf10c783e2c93c17d9a82492f0260804fc091c241b25cbc45693d49bb8364dd1e135ac5ff25400f46370d4fdbe89b63f53c2fc0ca05e29208f2fb04f52a33ba87df85488ef74ae5af4add7dd00e389c4d0066a565fa2fda6978c3330b22fa5dc8915eb8ed9fad6c1db12384a5aab884f4f6eff88ffb6a4d64c184311dbf1a44e37273df568f410499f666747a94dd20781a1b5e212ffee6e2fca807cbd3530d8c5a71e30eb9ce9331b3d758d7d224e0e628b5fed0b9a24d3303e2b024c7e92430d23bca54ffabb77607f2beb7c2bf63b80bbf3c58116d7ae7ceb24a747621f603465de861b8fa5ee75e972d9d1398704cc76e397" ], "v": 2 } @@ -105,7 +105,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288a3d7d6cedb08cef232d94fdd36b136c500834ed262d47d8fd23d66ebd95a2ce1b1e55617da1bf5fcccc4bde63cdb98bd4d8185f26eb435715877626f04204132748b79865f9f4cfac7c6985af2df82c64fcb462a96a93cc4afba7c7b98e84d7a106efd4ca5cabfc6242c71da6c3ca3b2493e6a9f14f9066a4fb23c7c42b76296e4170af6ca8a380147dcbb4bc4f7877f1a4e525e45296cf98bdf539cfd8d2a547aa80c0c412282a2b710db584e2f6902c46baa25887f7f21feeea68591f42c121190c867341028027e40bb155709874082c2abcb9bb5a65914293f3e9fa1102b5dd6168f48098b68e244b3343f21a754478d694f5cc5a47688e803a8bb32d8fed23d80f5bdf0bf66686b83fa7bd09e0\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288713e20e778acc2e1c6e33c100e3ec2a420e1952508a3c48723395329058e990c9913ad85b9b7b250b5cee55946a3e4a56ebae9b3c01e8d7f969b8b823b22bfc9fb64f4abb9b041294aee6abb0739b7b4fb64bbbdeceacf6fbbd0b21078a2d72e5230f3e7f4c4b693ef50ebc41946630b79e338845dc760513eeba3de49404d8b41bcec3801093ebee9a8ea495dd40204e38d6af32b68d64fe34b5fd94f48ec43722f4613c9b2f9c2950514ab42c80b4acb0e95be1951aeaf547499131698e83edb71239ba11bd4231171348e5375f35f9d5c8e69182b38e09aef99f76ebf3efc872a36c5ff269615a449d665a99c5b24e554df192c56a9c70cb362fef91daeaf2df04c02f32c5856bafd2aefbbf4032\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -130,7 +130,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288a3d7d6cedb08cef232d94fdd36b136c500834ed262d47d8fd23d66ebd95a2ce1b1e55617da1bf5fcccc4bde63cdb98bd4d8185f26eb435715877626f04204132748b79865f9f4cfac7c6985af2df82c64fcb462a96a93cc4afba7c7b98e84d7a106efd4ca5cabfc6242c71da6c3ca3b2493e6a9f14f9066a4fb23c7c42b76296e4170af6ca8a380147dcbb4bc4f7877f1a4e525e45296cf98bdf539cfd8d2a547aa80c0c412282a2b710db584e2f6902c46baa25887f7f21feeea68591f42c121190c867341028027e40bb155709874082c2abcb9bb5a65914293f3e9fa1102b5dd6168f48098b68e244b3343f21a754478d694f5cc5a47688e803a8bb32d8fed23d80f5bdf0bf66686b83fa7bd09e0" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288713e20e778acc2e1c6e33c100e3ec2a420e1952508a3c48723395329058e990c9913ad85b9b7b250b5cee55946a3e4a56ebae9b3c01e8d7f969b8b823b22bfc9fb64f4abb9b041294aee6abb0739b7b4fb64bbbdeceacf6fbbd0b21078a2d72e5230f3e7f4c4b693ef50ebc41946630b79e338845dc760513eeba3de49404d8b41bcec3801093ebee9a8ea495dd40204e38d6af32b68d64fe34b5fd94f48ec43722f4613c9b2f9c2950514ab42c80b4acb0e95be1951aeaf547499131698e83edb71239ba11bd4231171348e5375f35f9d5c8e69182b38e09aef99f76ebf3efc872a36c5ff269615a449d665a99c5b24e554df192c56a9c70cb362fef91daeaf2df04c02f32c5856bafd2aefbbf4032" ], "v": 2 } @@ -151,7 +151,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28b4dbe701b41c719741e2eff5a0e2f548fb9de16f5a002836bbfca43c6dbc0f7123afd76d309428860f33374a22d69a08d23f2acd180e0956448b69c5bcfc7d99de9c47441574f9aaeb0c32c64114418fef7466e1b8f195b64ba3ce0e346d999c41d2e60f97a9f9a852c3c37bae9722e0e8b94d1195b9c9e8e9eb64b0bd1ca3a488fbc74e60162dcf39bf0ce5126171af14b7b5c306eb8836527957a0b47809828d43c79d3f1b80328c96bbc4123b5c6368bf7c5437cc1cc867e818d362f0dc4a9d6b9498e3a9a02ce3131b95aab7876356451be74c3a2ffe6f1e73b3367de432ba5357ffe0a935c12fb9cb169a0e7754a02e49f3e7ab6bac88e1442934328a618114e7eeec8717b49c25fff29fcf9e39\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d67163957f50c5d31ccbced07f36cd7e222bc9f071eccedaf37ba38c38b0b793f97cb988458441e003cbb82497bd85fe8cd223c31cb2e856ee7dd39fd1a8e0221eb112adffb09704e33243abaebd016238a7a72b0499b9b4d4137f2a5e220910a4c46b35318ef4d1c521ca6d3461921b51012547f79d165a5e3adf0fca0c1ce04683702c75f5019d866e2bd2832a16f3e795cc15536227ae743fc3170851a729301a9e94efcb2542428943889e4a21c4f3c04113109ab8bd5520da702db1422e217efb5eae238ab89e5902ffecd312b934a1b03dd5e3ae61fe9c33c051c7bc0cc23603aef10e6f5082132a0d346f0b97ae7f6fd089b840b0afb6fb01919fc5e12da6e245a9114f0d622ae017fd540630\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -176,7 +176,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28b4dbe701b41c719741e2eff5a0e2f548fb9de16f5a002836bbfca43c6dbc0f7123afd76d309428860f33374a22d69a08d23f2acd180e0956448b69c5bcfc7d99de9c47441574f9aaeb0c32c64114418fef7466e1b8f195b64ba3ce0e346d999c41d2e60f97a9f9a852c3c37bae9722e0e8b94d1195b9c9e8e9eb64b0bd1ca3a488fbc74e60162dcf39bf0ce5126171af14b7b5c306eb8836527957a0b47809828d43c79d3f1b80328c96bbc4123b5c6368bf7c5437cc1cc867e818d362f0dc4a9d6b9498e3a9a02ce3131b95aab7876356451be74c3a2ffe6f1e73b3367de432ba5357ffe0a935c12fb9cb169a0e7754a02e49f3e7ab6bac88e1442934328a618114e7eeec8717b49c25fff29fcf9e39" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d67163957f50c5d31ccbced07f36cd7e222bc9f071eccedaf37ba38c38b0b793f97cb988458441e003cbb82497bd85fe8cd223c31cb2e856ee7dd39fd1a8e0221eb112adffb09704e33243abaebd016238a7a72b0499b9b4d4137f2a5e220910a4c46b35318ef4d1c521ca6d3461921b51012547f79d165a5e3adf0fca0c1ce04683702c75f5019d866e2bd2832a16f3e795cc15536227ae743fc3170851a729301a9e94efcb2542428943889e4a21c4f3c04113109ab8bd5520da702db1422e217efb5eae238ab89e5902ffecd312b934a1b03dd5e3ae61fe9c33c051c7bc0cc23603aef10e6f5082132a0d346f0b97ae7f6fd089b840b0afb6fb01919fc5e12da6e245a9114f0d622ae017fd540630" ], "v": 2 } @@ -184,6 +184,98 @@ "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value < $1 LIMIT 100", "rows_returned": 100 }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bb3912de219c31a9599c80779fba57c1cfe168b393d1ff9334196da7f199fb25173eccfbb9a27f0a7e8706ac80c12f11187e9935c4c04ce1ad5096ca88f082bbb4aa082a56ed7abe712ba1559c603be9c9572932184c0c614e78cdbd7230db76ff9f7102838284c7d2fb4cc48bf15a4e02f6bf374dff6833e300b7509ae00855cc22eb7587e09aae068b2f82a8e1ee51b630b495b90b825b9fb6fab5ed7acb991c43dcf7a962d718663b42f6bb0e221172772adfa9304b40533c9fab3011175acc78c177835fd00a174c86551b2c2c9f280f3238beb03a8882083024212bcef9d6556ee7daae0877924005ae62de0a1ff7e909f8eddf537234089f49747427273701c7be291d64db45132955f80358b5d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } + ], + "id": "ORE/ore/range_selective_gt_100/1000000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_1000000" + }, + "ob": [ + "4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bb3912de219c31a9599c80779fba57c1cfe168b393d1ff9334196da7f199fb25173eccfbb9a27f0a7e8706ac80c12f11187e9935c4c04ce1ad5096ca88f082bbb4aa082a56ed7abe712ba1559c603be9c9572932184c0c614e78cdbd7230db76ff9f7102838284c7d2fb4cc48bf15a4e02f6bf374dff6833e300b7509ae00855cc22eb7587e09aae068b2f82a8e1ee51b630b495b90b825b9fb6fab5ed7acb991c43dcf7a962d718663b42f6bb0e221172772adfa9304b40533c9fab3011175acc78c177835fd00a174c86551b2c2c9f280f3238beb03a8882083024212bcef9d6556ee7daae0877924005ae62de0a1ff7e909f8eddf537234089f49747427273701c7be291d64db45132955f80358b5d" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value > $1 LIMIT 100", + "rows_returned": 100 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6aefac50f0f74635b3881a4cdfdf8bb62df6f62e8c586a8c1173af02b38f225da4d7c2030abba38883489be56b9fdf0805e14951eb9c6e25c1f9a453195eaf90e3bf2e4fa805365cd3c818b9b0b6395027877f48f5a25b15887fc87f2f7b257a2fb06dd9cb56d97e294e5cb337697938de8d572fa825483e33060f78e474229c2a7f224463984dc23337a7dd22b354f29519595665b72c009aaab90f1425dfe2068722c1726dd38a2132c5637b970dd1388f4e1234586addb836434e22a209df6affacc64fa4082f00dd51427a2a6894ff2e4e15eefb24c0498a5603e7afe1007aa1dd032e284ffc9f070c7d93d54a55e0d0ff48146e119bad6ebcd1527b3bd6f38865fe4474dd6451c836d671e9c5ac09\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 0.0, + "Total Cost": 736191.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } + ], + "id": "ORE/ore/range_highly_selective_gt_10/1000000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_1000000" + }, + "ob": [ + "4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6aefac50f0f74635b3881a4cdfdf8bb62df6f62e8c586a8c1173af02b38f225da4d7c2030abba38883489be56b9fdf0805e14951eb9c6e25c1f9a453195eaf90e3bf2e4fa805365cd3c818b9b0b6395027877f48f5a25b15887fc87f2f7b257a2fb06dd9cb56d97e294e5cb337697938de8d572fa825483e33060f78e474229c2a7f224463984dc23337a7dd22b354f29519595665b72c009aaab90f1425dfe2068722c1726dd38a2132c5637b970dd1388f4e1234586addb836434e22a209df6affacc64fa4082f00dd51427a2a6894ff2e4e15eefb24c0498a5603e7afe1007aa1dd032e284ffc9f070c7d93d54a55e0d0ff48146e119bad6ebcd1527b3bd6f38865fe4474dd6451c836d671e9c5ac09" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value > $1 LIMIT 10", + "rows_returned": 10 + }, { "explain": [ { @@ -197,7 +289,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c0f6362f3cad82bc6b39f6288ea86857f68a29b00b9033f3e630aa22afe465dbe174f8994479de4533cc97b3408bc77c3f9cd6bf5eb6fb299405269d6bd30295a0c8b2c7f9a5f548c639d3ca11f04adedcfffd6cf449a76996d818d8e526e6699ec77409c59da6ba6e7befd591c7bdb35971e386cd0eea33b938a77428515e93919de5e3d7bd74ae6f72b238a2687d4a89aee2b572deaf79d66b4a445f438f41190670efed806f2d4785e46707b31f5b026dbb6fac40e3e8f99136780cfb9adc69715ea7979e553fd6b5437391819fbba3c2738297368a031fd8583bbe8eaa9e1796f35d6b45581b935d0ed3e8f156abbfe59c71be9ad181b68014f2fde16723c481ab5827a2184e6cca7387c4fe44cc\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c3ff1d9bc42d48ea059867df14ce571a087c08dff7a5a4254c4cae26485e56566aab51653fb7638745706735e8ad9c2717ebaf590e12ce0086569000c709b77ddb914b56100a549f758c76f804638f17eb646e31fa597d422a9c3ea7caa87e2b83a729026f7b4a2e5042569818380945ce023ec705d9e9ab4ae5251fa22f90812d8f200c02790c55365eca4ff72850cc572445911aa8907b9a7a7341b4d5f1b2b61f25c5fc526851f24381195169656d5ffc0d5f7c34ff5f80b97adadba7d49b4ef92f363bc0b2fee139218129068a32d29f6c3d507842ffbfd3c06a52071bbffab7ce1abd8a3181b9d06459d15bfc978e2096516087f348f35c8813a4fb1dc579b622ff040262e46bfa2b18fa8e231b\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_1000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -226,7 +318,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c0f6362f3cad82bc6b39f6288ea86857f68a29b00b9033f3e630aa22afe465dbe174f8994479de4533cc97b3408bc77c3f9cd6bf5eb6fb299405269d6bd30295a0c8b2c7f9a5f548c639d3ca11f04adedcfffd6cf449a76996d818d8e526e6699ec77409c59da6ba6e7befd591c7bdb35971e386cd0eea33b938a77428515e93919de5e3d7bd74ae6f72b238a2687d4a89aee2b572deaf79d66b4a445f438f41190670efed806f2d4785e46707b31f5b026dbb6fac40e3e8f99136780cfb9adc69715ea7979e553fd6b5437391819fbba3c2738297368a031fd8583bbe8eaa9e1796f35d6b45581b935d0ed3e8f156abbfe59c71be9ad181b68014f2fde16723c481ab5827a2184e6cca7387c4fe44cc" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c3ff1d9bc42d48ea059867df14ce571a087c08dff7a5a4254c4cae26485e56566aab51653fb7638745706735e8ad9c2717ebaf590e12ce0086569000c709b77ddb914b56100a549f758c76f804638f17eb646e31fa597d422a9c3ea7caa87e2b83a729026f7b4a2e5042569818380945ce023ec705d9e9ab4ae5251fa22f90812d8f200c02790c55365eca4ff72850cc572445911aa8907b9a7a7341b4d5f1b2b61f25c5fc526851f24381195169656d5ffc0d5f7c34ff5f80b97adadba7d49b4ef92f363bc0b2fee139218129068a32d29f6c3d507842ffbfd3c06a52071bbffab7ce1abd8a3181b9d06459d15bfc978e2096516087f348f35c8813a4fb1dc579b622ff040262e46bfa2b18fa8e231b" ], "v": 2 } diff --git a/results/query/ore_metadata_10000000.json b/results/query/ore_metadata_10000000.json index d6b810a..c32ae53 100644 --- a/results/query/ore_metadata_10000000.json +++ b/results/query/ore_metadata_10000000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283605730cb2c4133689844265909d50beb6dad11754437265b47924ab44e0642a2e9869a812cf24d33ef2d20ad82e89239bdb64512670f4b016397c3333ac1c7368ff15b878966f9b6b429fbeba128da9aeff54f249f3dab72b129fae5ed7b2bd4a71048349b84920269854c2716da3cae689ffade3f88eb7ebd0abaf86c8bffea342ea06ed4d10a4247e24ca878d1c83da0823a30b644447926256ec415a043f6e1bff8c35f7f1f645a48dcc42934787ff9bf432402e411b5f327f506e39c384b3363bbe596a08e4444985270fba26552f3b54c48fa25c8351946b003534712a9ca12f64891e2d0efaa608a734f372c16481d6d36bd6e75e2ef374d80751c1d8ea715346d1e2beff102c0907bdb03543\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2890435d5297329edc86d5e7c41670b53c4278d42a4da24b36bc86c2fb88b9a5e51b82dfe94100c4073f909fa4b7755c9ad7420468585422afd102a59717c6dc849cc3ba8edc447958ef581c58b04035ae667cbae950f7e0878af278e28195a2d99db1a2905138ad4fe4abb06598472ceac188b6201a4f1709319be5be7f1e8aeaede760dc7df172ee60c51f32d4cafab3e51ef680e42bfa539e102accab7a612b1c3892f9f4f154e42a7404ecb964484e10caa6d8eec74eba1c698a1a8e78a5c6c9313f56367882d814868aca14ec4cff7f183b394a6ef5f40ba235247a81c9302c948a0e21ed3be1df7c42f17410d0f39e8194dfd022565a6005364dfff93f3315149e0adf66683b3432cd1ee883078d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283605730cb2c4133689844265909d50beb6dad11754437265b47924ab44e0642a2e9869a812cf24d33ef2d20ad82e89239bdb64512670f4b016397c3333ac1c7368ff15b878966f9b6b429fbeba128da9aeff54f249f3dab72b129fae5ed7b2bd4a71048349b84920269854c2716da3cae689ffade3f88eb7ebd0abaf86c8bffea342ea06ed4d10a4247e24ca878d1c83da0823a30b644447926256ec415a043f6e1bff8c35f7f1f645a48dcc42934787ff9bf432402e411b5f327f506e39c384b3363bbe596a08e4444985270fba26552f3b54c48fa25c8351946b003534712a9ca12f64891e2d0efaa608a734f372c16481d6d36bd6e75e2ef374d80751c1d8ea715346d1e2beff102c0907bdb03543" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2890435d5297329edc86d5e7c41670b53c4278d42a4da24b36bc86c2fb88b9a5e51b82dfe94100c4073f909fa4b7755c9ad7420468585422afd102a59717c6dc849cc3ba8edc447958ef581c58b04035ae667cbae950f7e0878af278e28195a2d99db1a2905138ad4fe4abb06598472ceac188b6201a4f1709319be5be7f1e8aeaede760dc7df172ee60c51f32d4cafab3e51ef680e42bfa539e102accab7a612b1c3892f9f4f154e42a7404ecb964484e10caa6d8eec74eba1c698a1a8e78a5c6c9313f56367882d814868aca14ec4cff7f183b394a6ef5f40ba235247a81c9302c948a0e21ed3be1df7c42f17410d0f39e8194dfd022565a6005364dfff93f3315149e0adf66683b3432cd1ee883078d" ], "v": 2 } @@ -59,7 +59,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb286048e82b076e777e50b8ff912b52bb690956d258fcd42d7fd52322f44102e5ef9d08e1810c14e6a731f3108c4f6748d7fc9b7dc6a9367dcde70d4265ca498018e1332e4e54c8e499335dddb31b62c6c94e734e1815b897eeb53fd030a0c5300877e2cc07e74a01d132a9259f864ef9d24bb6949306819ff6ba9c97c47d486870a98574b5fe987183a71b12ebd600fad72b061342adea94905f3b3ab6c38e8e68130d00c6e9ea2498afb7bed57486a322a53544aa8bbde8a2d4f9dcbaee22804181b24ac93fe2d549ef7ca366370be32cb97b958b0e86e4d203b1d9619c6e5d6e3168f849283f9a00d022486ac3813834f9cf510bfe2f973573abf6c58522b47a3eb9750b6ad7e852a013da39ff9d31f0\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb286fc7afee084401523cecb4d81e10569a8f9fee17361a1accb02196423076ff98b90453c77c7cdc92c397985defaa9e17f2b614b6253eec43052d40d6f0dc58aa2a15cad39fbe16decbe07921bc15da6cfa68d23f783aec815c9132e545f09e7d975cb8d8a4bc3e63cec57f7b9c8fdbb90188736a8e1bae34e8af038f77c6c6f4c302d6c0aa2ea37f3a54ee49034c4ba7792f39b92219c791f0bcea669a7e8570709add80217cc0ae3d3ad58b6d348d96e9dc1ccac1ee177438942d12c563d269ce7880789a03e6f82247cc72d8993ca1b03f3bb006feb36265c2d6add3c48ae270f7f361c17820ded8c40188ede8bb1c3bf216c9db901c52ffb46600826796c9037a7224a75ba002f049befea4207916\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -84,7 +84,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb286048e82b076e777e50b8ff912b52bb690956d258fcd42d7fd52322f44102e5ef9d08e1810c14e6a731f3108c4f6748d7fc9b7dc6a9367dcde70d4265ca498018e1332e4e54c8e499335dddb31b62c6c94e734e1815b897eeb53fd030a0c5300877e2cc07e74a01d132a9259f864ef9d24bb6949306819ff6ba9c97c47d486870a98574b5fe987183a71b12ebd600fad72b061342adea94905f3b3ab6c38e8e68130d00c6e9ea2498afb7bed57486a322a53544aa8bbde8a2d4f9dcbaee22804181b24ac93fe2d549ef7ca366370be32cb97b958b0e86e4d203b1d9619c6e5d6e3168f849283f9a00d022486ac3813834f9cf510bfe2f973573abf6c58522b47a3eb9750b6ad7e852a013da39ff9d31f0" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb286fc7afee084401523cecb4d81e10569a8f9fee17361a1accb02196423076ff98b90453c77c7cdc92c397985defaa9e17f2b614b6253eec43052d40d6f0dc58aa2a15cad39fbe16decbe07921bc15da6cfa68d23f783aec815c9132e545f09e7d975cb8d8a4bc3e63cec57f7b9c8fdbb90188736a8e1bae34e8af038f77c6c6f4c302d6c0aa2ea37f3a54ee49034c4ba7792f39b92219c791f0bcea669a7e8570709add80217cc0ae3d3ad58b6d348d96e9dc1ccac1ee177438942d12c563d269ce7880789a03e6f82247cc72d8993ca1b03f3bb006feb36265c2d6add3c48ae270f7f361c17820ded8c40188ede8bb1c3bf216c9db901c52ffb46600826796c9037a7224a75ba002f049befea4207916" ], "v": 2 } @@ -105,7 +105,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284d810cde25a7670e7b685dfdcdb9af84f015e9883a86e5b642398c22f72ba8908a2dcd921f29c2c9ee3d84e6d984b9c6395af88f7141a21a4633abeedd0eac9b09f72a339f32954bf8e968e0e9b3bb41392bc5733876fd8e6d8547eccace2176dd61f86b442c26fca3da52c1032f70874ee3d2118a950f256aeaf423ec7fd0c6df45f51cad5537aa4c3ea67840644a4b743d3e0a038087377c5da739145d1867361e71f4688ce7126c8358c914d1ea0156262887c55d6173bec6d6f4c0f1e1a3392712284df4757492ed1b7e53a025ebe271c1e5be28aeb053d8ac86378e1813adc29fdba6531c7323703d3af8e649cdd8facb00bd36a66778200e680bc7b4e07e9902a7d9c97c0cb1b06a9c87302cf7\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2845d75a224f5206768695f8e66fce45e9a9a8c7458bfa511468ecbdbe92bfc8ac59c0a8f658ca9497da56c37234dc809295b7c3ca69a29761c072d10570571746a24abeda8d6f8b4b835c2c6d5ae63d6372a7005b6ca4e8ffca128ef1ee97b22582ef4260c29418a2295f82629c10386d031c48f71416044308f414e1740c4e3859dd97b6e8ad126d25047af0254f9253d1c7ee6a6123c2bef8fcdc24a396896b6ef0ad75832ace6c2517f6f99718db08e8d79a6826d72cfdf07800865d40640abeca43f0463688d60a5fa0e4f9f7b09831d61322131173c6da5030e8d0a7f0074e2e51b6c7361747b55b6ebf98d53e59be0e8c2c20f34c98a2e71da01de019eed0146350a7fbc77aba6dc5138a99414d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -130,7 +130,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb284d810cde25a7670e7b685dfdcdb9af84f015e9883a86e5b642398c22f72ba8908a2dcd921f29c2c9ee3d84e6d984b9c6395af88f7141a21a4633abeedd0eac9b09f72a339f32954bf8e968e0e9b3bb41392bc5733876fd8e6d8547eccace2176dd61f86b442c26fca3da52c1032f70874ee3d2118a950f256aeaf423ec7fd0c6df45f51cad5537aa4c3ea67840644a4b743d3e0a038087377c5da739145d1867361e71f4688ce7126c8358c914d1ea0156262887c55d6173bec6d6f4c0f1e1a3392712284df4757492ed1b7e53a025ebe271c1e5be28aeb053d8ac86378e1813adc29fdba6531c7323703d3af8e649cdd8facb00bd36a66778200e680bc7b4e07e9902a7d9c97c0cb1b06a9c87302cf7" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2845d75a224f5206768695f8e66fce45e9a9a8c7458bfa511468ecbdbe92bfc8ac59c0a8f658ca9497da56c37234dc809295b7c3ca69a29761c072d10570571746a24abeda8d6f8b4b835c2c6d5ae63d6372a7005b6ca4e8ffca128ef1ee97b22582ef4260c29418a2295f82629c10386d031c48f71416044308f414e1740c4e3859dd97b6e8ad126d25047af0254f9253d1c7ee6a6123c2bef8fcdc24a396896b6ef0ad75832ace6c2517f6f99718db08e8d79a6826d72cfdf07800865d40640abeca43f0463688d60a5fa0e4f9f7b09831d61322131173c6da5030e8d0a7f0074e2e51b6c7361747b55b6ebf98d53e59be0e8c2c20f34c98a2e71da01de019eed0146350a7fbc77aba6dc5138a99414d" ], "v": 2 } @@ -151,7 +151,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f82ab8190bc3260864a052a8d00cd0ae8c3296e163f811a932c7482430a36e9035b0663d7fe5d440ace8afb73becb2e536afcf2689ff61b53f05655d06239186d9fa37a7da2308b8e12ab9ba94d77db95038889670c9fddd9b68cd490ea7f96f3bbb716fb650c078a6ff2e9e3660e94712edce5c4c70210536142462a9812ca22b78c4380c56b3aaefb73ab0999b2a18cfee2e26f67efe93ef9aab52822e3a3291d8263cd72dc1745fb1a9f0695241887dc1cd4477eec3a2eaa6eec0aad5ca91157a20d1e5c71d32bd11d05192bd5beeb175c0dbf2ae391950a3730a5f347004a04d90662e9e5f60b187809af9bf6bc9edb9fa0f6ccc6f1c7b275e377fc28283c940d7873a67dd1c0b5a33dd4a546028\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288bc855279c7f8173154bffd191b24d8ad6b8ed1b0107dbe327ca21d59767580d87bb3dfd4c5c08ee085a44201d3f73f9ff12ccdb2b795d42fa590bad9f9c8bb5390e2bdb936bb213f915428fcc22863abdd304f25005fa25d22fb67e03b1dfada9e4c14c445468acc43155da1b0cdea8892d7046952c5a4c9b8c6a62de9848de2cb4a38e4c2d21539337cb0beab59d03ba4a7de9f88633af14539ec908857bda4f2b239efdc96aee483f65b313b624e62b1112425958726ec94f8fac74e8fa4daaacc4eaff24565c37fdb6a353365042dfad11d5bc812d0f16ba53ef2b37dbc8b75fe170b95caf47ff58cf61ad1147f8a7a87393fe2f950d60997d7ab07fb5bbb2f0fcdded8f1998b46d498293409e88\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -176,7 +176,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28f82ab8190bc3260864a052a8d00cd0ae8c3296e163f811a932c7482430a36e9035b0663d7fe5d440ace8afb73becb2e536afcf2689ff61b53f05655d06239186d9fa37a7da2308b8e12ab9ba94d77db95038889670c9fddd9b68cd490ea7f96f3bbb716fb650c078a6ff2e9e3660e94712edce5c4c70210536142462a9812ca22b78c4380c56b3aaefb73ab0999b2a18cfee2e26f67efe93ef9aab52822e3a3291d8263cd72dc1745fb1a9f0695241887dc1cd4477eec3a2eaa6eec0aad5ca91157a20d1e5c71d32bd11d05192bd5beeb175c0dbf2ae391950a3730a5f347004a04d90662e9e5f60b187809af9bf6bc9edb9fa0f6ccc6f1c7b275e377fc28283c940d7873a67dd1c0b5a33dd4a546028" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288bc855279c7f8173154bffd191b24d8ad6b8ed1b0107dbe327ca21d59767580d87bb3dfd4c5c08ee085a44201d3f73f9ff12ccdb2b795d42fa590bad9f9c8bb5390e2bdb936bb213f915428fcc22863abdd304f25005fa25d22fb67e03b1dfada9e4c14c445468acc43155da1b0cdea8892d7046952c5a4c9b8c6a62de9848de2cb4a38e4c2d21539337cb0beab59d03ba4a7de9f88633af14539ec908857bda4f2b239efdc96aee483f65b313b624e62b1112425958726ec94f8fac74e8fa4daaacc4eaff24565c37fdb6a353365042dfad11d5bc812d0f16ba53ef2b37dbc8b75fe170b95caf47ff58cf61ad1147f8a7a87393fe2f950d60997d7ab07fb5bbb2f0fcdded8f1998b46d498293409e88" ], "v": 2 } @@ -184,6 +184,98 @@ "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value < $1 LIMIT 100", "rows_returned": 100 }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 100, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1b06bee8d036bcc3d921ba65ad066669be107aaeda5b7930d617d169a5d50ccd575c046d4ab111a575be6c2f7972dc38ef4949889519da256e1174cbc3cd362d9a093333d16245b611f6ccea14f8de6268f7772fd4dae66c7b8980d481b1dc492ec09e84cf602770cf2fc011fbf3371a74ac3b7a99597ec167f5f9eb6f02456e71f1841147d862cddbbfd1ccc7242e35a87fbb5a2fa37b1c0a5230ef4f326d825c7db7e97204948e6ab11220e15fcae1e1680d06d6ae93047551aa3549a13f9961b114e33920b25eab36f02d7304487f7fac9284cf46ac56e8fdc895d127e379a22b49dab3bbbd195f564a1380f725ecb9f8ac67ff676a7ec6970a5b06c9a5897e12674cdc4ba22adab3656e02f582ba76\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 220.86 + } + } + ], + "id": "ORE/ore/range_selective_gt_100/10000000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000000" + }, + "ob": [ + "4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1b06bee8d036bcc3d921ba65ad066669be107aaeda5b7930d617d169a5d50ccd575c046d4ab111a575be6c2f7972dc38ef4949889519da256e1174cbc3cd362d9a093333d16245b611f6ccea14f8de6268f7772fd4dae66c7b8980d481b1dc492ec09e84cf602770cf2fc011fbf3371a74ac3b7a99597ec167f5f9eb6f02456e71f1841147d862cddbbfd1ccc7242e35a87fbb5a2fa37b1c0a5230ef4f326d825c7db7e97204948e6ab11220e15fcae1e1680d06d6ae93047551aa3549a13f9961b114e33920b25eab36f02d7304487f7fac9284cf46ac56e8fdc895d127e379a22b49dab3bbbd195f564a1380f725ecb9f8ac67ff676a7ec6970a5b06c9a5897e12674cdc4ba22adab3656e02f582ba76" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value > $1 LIMIT 100", + "rows_returned": 100 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Limit", + "Parallel Aware": false, + "Plan Rows": 10, + "Plan Width": 36, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6a4ef19f8523420e65a1a7df8c684dbe8a33d50f7dade962583576499a00d171564d7b5b7704d2855c0e1b5ef7bfab4a460881932be411843599c2f9b1afee75c9b2584c9da8d21493d18972699f847f11a0653e2e20769c12b8af9e554b4dd04d40f4e2fbbc0dec2ecdb4aaa6f6ed54d3fcd4fac2e0471dbe0a00bb21911917c02d50394068a7597c922cc91d7dadb9b72ff2848652c8340707589cb2949a4b592fff3fa91279accf1f32f3d57994065050162c5e29ccc1513714628e08622ef73901e55aeb29f389c517ef8bb63f2f5983b9bfb125a3449208641cbff5b019fd5e743c3fff5c357a620a0ffbc64a2aecde5faeb4ce11578dffd4db267c7d77351593ab9a598c28e41ea538e16f3d5364\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Node Type": "Seq Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 3333333, + "Plan Width": 36, + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 0.0, + "Total Cost": 7361905.25 + } + ], + "Startup Cost": 0.0, + "Total Cost": 22.09 + } + } + ], + "id": "ORE/ore/range_highly_selective_gt_10/10000000", + "indexes_used": [], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000000" + }, + "ob": [ + "4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6a4ef19f8523420e65a1a7df8c684dbe8a33d50f7dade962583576499a00d171564d7b5b7704d2855c0e1b5ef7bfab4a460881932be411843599c2f9b1afee75c9b2584c9da8d21493d18972699f847f11a0653e2e20769c12b8af9e554b4dd04d40f4e2fbbc0dec2ecdb4aaa6f6ed54d3fcd4fac2e0471dbe0a00bb21911917c02d50394068a7597c922cc91d7dadb9b72ff2848652c8340707589cb2949a4b592fff3fa91279accf1f32f3d57994065050162c5e29ccc1513714628e08622ef73901e55aeb29f389c517ef8bb63f2f5983b9bfb125a3449208641cbff5b019fd5e743c3fff5c357a620a0ffbc64a2aecde5faeb4ce11578dffd4db267c7d77351593ab9a598c28e41ea538e16f3d5364" + ], + "v": 2 + } + ], + "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value > $1 LIMIT 10", + "rows_returned": 10 + }, { "explain": [ { @@ -197,7 +289,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb280fb6813c30e165c1b663cd926c07aac3ab1f56ef8768d7d7af43fd86b9d03c01f144844e102ef05c7caea1fc7dacca5069f230db61e989ec75af089851257f810a776030960c6cbe933cc2b06152132f5a01991ffdf372d25aefff82b7e43dc845f08971a5b48a2b5dd8808fab3e78fdaf19b36d4c276cfd1bbb95889d9b3e46aa1cc50ac1d6a86f626b298be0660058dc76cb8ff2d8449009c97e11108818d304effa5bab02ddd43b60afaff8e54322b5f9eca31412ad8fe0bab8a84887c26b2f48df0d85b99a978eb4c6b9db879933011f75b53124ace001788b21a6946ccc24040f68ba6292950806d7f340b1b1d5be6afd14e6f293c36448f48c4a64cd3b7dbf080b57a983e3bbc64b60ee291072\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283f81157123a8bcc98fadb7f09f77317799059f03f13dfea2bf0628e2b7a8bfdb0bcb6e0640bd29a9078309d8b087dffb0551480bc90ce1c75013b19d14c5f4cf0532741eee644facf53eade4d6867fda0cab4cda3da19f173838cf53eb88f897d5bf8c97449dac3326e0e85b91875c2548e134111454290899a54f8657ff198b0f8d083352004d329c18e6730ffb7156d9b79c9b19fc43d9dbacbe51f6d8657e35e848a53552ee182f700db8fcd2ca08f5f8f889293d745dcc49427244c7c5425df832c3e85d5cb5f091e0c1f415cf5c89c2a55a42f418c956a85b0eb3617aaa7ec69ae94574e817b7c2efec608410a8643aef102c5b1576133b4c3c20252a0e51416eed619477be302a2c96fc350b2a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -226,7 +318,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb280fb6813c30e165c1b663cd926c07aac3ab1f56ef8768d7d7af43fd86b9d03c01f144844e102ef05c7caea1fc7dacca5069f230db61e989ec75af089851257f810a776030960c6cbe933cc2b06152132f5a01991ffdf372d25aefff82b7e43dc845f08971a5b48a2b5dd8808fab3e78fdaf19b36d4c276cfd1bbb95889d9b3e46aa1cc50ac1d6a86f626b298be0660058dc76cb8ff2d8449009c97e11108818d304effa5bab02ddd43b60afaff8e54322b5f9eca31412ad8fe0bab8a84887c26b2f48df0d85b99a978eb4c6b9db879933011f75b53124ace001788b21a6946ccc24040f68ba6292950806d7f340b1b1d5be6afd14e6f293c36448f48c4a64cd3b7dbf080b57a983e3bbc64b60ee291072" + "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283f81157123a8bcc98fadb7f09f77317799059f03f13dfea2bf0628e2b7a8bfdb0bcb6e0640bd29a9078309d8b087dffb0551480bc90ce1c75013b19d14c5f4cf0532741eee644facf53eade4d6867fda0cab4cda3da19f173838cf53eb88f897d5bf8c97449dac3326e0e85b91875c2548e134111454290899a54f8657ff198b0f8d083352004d329c18e6730ffb7156d9b79c9b19fc43d9dbacbe51f6d8657e35e848a53552ee182f700db8fcd2ca08f5f8f889293d745dcc49427244c7c5425df832c3e85d5cb5f091e0c1f415cf5c89c2a55a42f418c956a85b0eb3617aaa7ec69ae94574e817b7c2efec608410a8643aef102c5b1576133b4c3c20252a0e51416eed619477be302a2c96fc350b2a" ], "v": 2 } diff --git a/results/query/ore_rows_10000.json b/results/query/ore_rows_10000.json index 1e2f91d..779c10e 100644 --- a/results/query/ore_rows_10000.json +++ b/results/query/ore_rows_10000.json @@ -1,11 +1,15 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[66,132,198,264,330,396,462,528,594,660],"measured_values":[89986167.0,184531500.0,278107541.0,406587500.0,433091459.0,503862500.0,655471916.0,703695375.0,808882916.0,904163000.0],"unit":"ns","throughput":[],"typical":{"estimate":1363549.6552931916,"lower_bound":1331328.6477072265,"upper_bound":1398940.371443246,"unit":"ns"},"mean":{"estimate":1377408.5263233525,"lower_bound":1337848.4323695288,"upper_bound":1421893.3213756613,"unit":"ns"},"median":{"estimate":1366685.356060606,"lower_bound":1332756.3920454546,"upper_bound":1408368.1450216451,"unit":"ns"},"median_abs_dev":{"estimate":53245.464132923684,"lower_bound":6069.904065975307,"upper_bound":108519.15003400615,"unit":"ns"},"slope":{"estimate":1363549.6552931916,"lower_bound":1331328.6477072265,"upper_bound":1398940.371443246,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[82116833.0,166431625.0,244969667.0,330177666.0,434403833.0,491737417.0,605206291.0,662134250.0,761381875.0,845289292.0],"unit":"ns","throughput":[],"typical":{"estimate":28079559.52121212,"lower_bound":27700394.24621212,"upper_bound":28409054.332621444,"unit":"ns"},"mean":{"estimate":27890745.2855291,"lower_bound":27544879.08593452,"upper_bound":28275743.025687825,"unit":"ns"},"median":{"estimate":27663765.625,"lower_bound":27372277.666666668,"upper_bound":28497828.461904764,"unit":"ns"},"median_abs_dev":{"estimate":585578.0432122461,"lower_bound":110955.61990514582,"upper_bound":1040758.7073072859,"unit":"ns"},"slope":{"estimate":28079559.52121212,"lower_bound":27700394.24621212,"upper_bound":28409054.332621444,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[87713250.0,179658458.0,255165291.0,363674542.0,448083583.0,583471625.0,655880666.0,719085500.0,811592500.0,902697083.0],"unit":"ns","throughput":[],"typical":{"estimate":6509021.125046382,"lower_bound":6416011.053000652,"upper_bound":6653139.966972312,"unit":"ns"},"mean":{"estimate":6460055.551269841,"lower_bound":6330176.3178571435,"upper_bound":6601877.024269842,"unit":"ns"},"median":{"estimate":6430808.283730159,"lower_bound":6340802.821428571,"upper_bound":6570248.082142858,"unit":"ns"},"median_abs_dev":{"estimate":68936.60453113045,"lower_bound":14242.00890215362,"upper_bound":383309.28978489974,"unit":"ns"},"slope":{"estimate":6509021.125046382,"lower_bound":6416011.053000652,"upper_bound":6653139.966972312,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[85069792.0,189511709.0,292855875.0,371683500.0,448769375.0,536252000.0,653552750.0,657844209.0,846958375.0,893712042.0],"unit":"ns","throughput":[],"typical":{"estimate":45049509.64545455,"lower_bound":43315705.56129545,"upper_bound":46621485.53347452,"unit":"ns"},"mean":{"estimate":45428362.49204365,"lower_bound":44008436.43878422,"upper_bound":46740647.966666676,"unit":"ns"},"median":{"estimate":45668687.5,"lower_bound":43611281.33333333,"upper_bound":47053243.05555555,"unit":"ns"},"median_abs_dev":{"estimate":1777791.0705212285,"lower_bound":143367.3927447104,"upper_bound":3707967.3375204206,"unit":"ns"},"slope":{"estimate":45049509.64545455,"lower_bound":43315705.56129545,"upper_bound":46621485.53347452,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[69,138,207,276,345,414,483,552,621,690],"measured_values":[111060667.0,219063125.0,253911834.0,376429125.0,419910667.0,554791625.0,603153916.0,710743416.0,807448792.0,904246625.0],"unit":"ns","throughput":[],"typical":{"estimate":1297288.617428948,"lower_bound":1272505.6931909956,"upper_bound":1320720.3629973563,"unit":"ns"},"mean":{"estimate":1349178.4928559929,"lower_bound":1274907.4537715665,"upper_bound":1437916.3804865424,"unit":"ns"},"median":{"estimate":1305370.977858293,"lower_bound":1248765.8716356107,"upper_bound":1463745.1690821256,"unit":"ns"},"median_abs_dev":{"estimate":85329.38814053542,"lower_bound":16993.340657003588,"upper_bound":198566.22868235348,"unit":"ns"},"slope":{"estimate":1297288.617428948,"lower_bound":1272505.6931909956,"upper_bound":1320720.3629973563,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118525833.0,237258208.0,365405167.0,458519583.0,550826541.0,675747167.0,819479625.0,906122292.0,1027776333.0,1075276500.0],"unit":"ns","throughput":[],"typical":{"estimate":28129895.777272727,"lower_bound":27454057.25,"upper_bound":28851483.846214976,"unit":"ns"},"mean":{"estimate":28710880.395178568,"lower_bound":28071885.58202381,"upper_bound":29330441.03869047,"unit":"ns"},"median":{"estimate":28603408.260416664,"lower_bound":27928824.3375,"upper_bound":29631458.25,"unit":"ns"},"median_abs_dev":{"estimate":1254109.96344135,"lower_bound":252896.20476644486,"upper_bound":1815360.4877334125,"unit":"ns"},"slope":{"estimate":28129895.777272727,"lower_bound":27454057.25,"upper_bound":28851483.846214976,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[96908500.0,183884750.0,273809125.0,364372917.0,454877541.0,555101208.0,641729542.0,757102625.0,881679375.0,891596917.0],"unit":"ns","throughput":[],"typical":{"estimate":6632393.939703154,"lower_bound":6445190.292926943,"upper_bound":6833055.548707483,"unit":"ns"},"mean":{"estimate":6629598.089039115,"lower_bound":6520188.978860545,"upper_bound":6753785.850499787,"unit":"ns"},"median":{"estimate":6557786.566326531,"lower_bound":6506659.232142857,"upper_bound":6765191.714285715,"unit":"ns"},"median_abs_dev":{"estimate":82034.71380180727,"lower_bound":18689.13459320081,"upper_bound":318864.8943390166,"unit":"ns"},"slope":{"estimate":6632393.939703154,"lower_bound":6445190.292926943,"upper_bound":6833055.548707483,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[83711708.0,186946750.0,238253250.0,333856875.0,499022292.0,579974666.0,671914292.0,755717166.0,786691000.0,904039875.0],"unit":"ns","throughput":[],"typical":{"estimate":45912346.8,"lower_bound":44480247.16841796,"upper_bound":47587818.02422145,"unit":"ns"},"mean":{"estimate":45240022.74222223,"lower_bound":43222386.5125,"upper_bound":47149731.78166666,"unit":"ns"},"median":{"estimate":45969340.625,"lower_bound":41855854.0,"upper_bound":47993878.0,"unit":"ns"},"median_abs_dev":{"estimate":3429377.2479330506,"lower_bound":814614.0304502081,"upper_bound":5577131.810723618,"unit":"ns"},"slope":{"estimate":45912346.8,"lower_bound":44480247.16841796,"upper_bound":47587818.02422145,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[81,162,243,324,405,486,567,648,729,810],"measured_values":[101927625.0,183648000.0,285075875.0,371978791.0,466711458.0,550812167.0,659200958.0,734835417.0,858927375.0,967386875.0],"unit":"ns","throughput":[],"typical":{"estimate":1165563.6322911656,"lower_bound":1142452.0461297275,"upper_bound":1182137.6070799173,"unit":"ns"},"mean":{"estimate":1166811.0974118165,"lower_bound":1147291.1165623162,"upper_bound":1191380.6883744856,"unit":"ns"},"median":{"estimate":1157492.9446208114,"lower_bound":1134005.273148148,"upper_bound":1183728.2664609053,"unit":"ns"},"median_abs_dev":{"estimate":32781.45571106847,"lower_bound":680.6365565892373,"upper_bound":53429.17962051653,"unit":"ns"},"slope":{"estimate":1165563.6322911656,"lower_bound":1142452.0461297275,"upper_bound":1182137.6070799173,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[130301375.0,224012959.0,354908583.0,431677833.0,555878041.0,659654084.0,768413875.0,911323709.0,1019158208.0,1093301042.0],"unit":"ns","throughput":[],"typical":{"estimate":27845454.65714286,"lower_bound":27450690.399918042,"upper_bound":28277742.617586352,"unit":"ns"},"mean":{"estimate":28397672.7177877,"lower_bound":27605788.168923117,"upper_bound":29479736.147133183,"unit":"ns"},"median":{"estimate":27897760.9625,"lower_bound":27409056.441666666,"upper_bound":28942832.736111112,"unit":"ns"},"median_abs_dev":{"estimate":755861.4880932729,"lower_bound":144772.13503977802,"upper_bound":1751406.0025198683,"unit":"ns"},"slope":{"estimate":27845454.65714286,"lower_bound":27450690.399918042,"upper_bound":28277742.617586352,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[82,164,246,328,410,492,574,656,738,820],"measured_values":[90483750.0,168410042.0,288967083.0,427702541.0,444457750.0,557713625.0,614258833.0,767316583.0,874200792.0,920633542.0],"unit":"ns","throughput":[],"typical":{"estimate":1143049.502375673,"lower_bound":1108616.5901618302,"upper_bound":1177927.006302521,"unit":"ns"},"mean":{"estimate":1137369.754083914,"lower_bound":1094944.5643873403,"upper_bound":1185221.4216869918,"unit":"ns"},"median":{"estimate":1128144.055081301,"lower_bound":1084043.2926829269,"upper_bound":1177121.9159044717,"unit":"ns"},"median_abs_dev":{"estimate":67176.34264030827,"lower_bound":14393.876085921082,"upper_bound":122894.2838520317,"unit":"ns"},"slope":{"estimate":1143049.502375673,"lower_bound":1108616.5901618302,"upper_bound":1177927.006302521,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[113353083.0,226082542.0,325551000.0,461117458.0,544071292.0,713962833.0,816882625.0,963532125.0,1257450959.0,1238742542.0],"unit":"ns","throughput":[],"typical":{"estimate":30858242.78116883,"lower_bound":28883458.590598777,"upper_bound":32651598.622754343,"unit":"ns"},"mean":{"estimate":29468221.082609124,"lower_bound":28306138.523515623,"upper_bound":30934982.549601935,"unit":"ns"},"median":{"estimate":28997110.29464286,"lower_bound":27770917.675,"upper_bound":30358507.4625,"unit":"ns"},"median_abs_dev":{"estimate":1382235.1401135442,"lower_bound":414774.6705237776,"upper_bound":2977019.4779173355,"unit":"ns"},"slope":{"estimate":30858242.78116883,"lower_bound":28883458.590598777,"upper_bound":32651598.622754343,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[15,30,45,60,75,90,105,120,135,150],"measured_values":[93573666.0,188793833.0,283055125.0,384679208.0,482121333.0,575166750.0,685497458.0,767627416.0,905023708.0,968794208.0],"unit":"ns","throughput":[],"typical":{"estimate":6492347.6519480515,"lower_bound":6400182.200712783,"upper_bound":6592477.324050001,"unit":"ns"},"mean":{"estimate":6413978.201978836,"lower_bound":6340527.187333332,"upper_bound":6496731.01118836,"unit":"ns"},"median":{"estimate":6404107.633333334,"lower_bound":6293127.766666667,"upper_bound":6478415.829523809,"unit":"ns"},"median_abs_dev":{"estimate":122685.36032789978,"lower_bound":15254.817069172952,"upper_bound":212535.547739407,"unit":"ns"},"slope":{"estimate":6492347.6519480515,"lower_bound":6400182.200712783,"upper_bound":6592477.324050001,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[128801416.0,233740375.0,374162417.0,522613208.0,678556750.0,783797792.0,871800958.0,1008207875.0,1196361917.0,1330190625.0],"unit":"ns","throughput":[],"typical":{"estimate":43413182.64935065,"lower_bound":42280589.56352201,"upper_bound":44205809.02266577,"unit":"ns"},"mean":{"estimate":42796905.64212962,"lower_bound":41661775.56076389,"upper_bound":43810427.95694445,"unit":"ns"},"median":{"estimate":43239063.55555555,"lower_bound":41573601.88888889,"upper_bound":44309700.62962963,"unit":"ns"},"median_abs_dev":{"estimate":1727989.5740095507,"lower_bound":366446.9151567668,"upper_bound":3171680.1253400277,"unit":"ns"},"slope":{"estimate":43413182.64935065,"lower_bound":42280589.56352201,"upper_bound":44205809.02266577,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[70,140,210,280,350,420,490,560,630,700],"measured_values":[87259250.0,184534167.0,307088042.0,369112125.0,452180667.0,551280958.0,620996042.0,796629542.0,783514333.0,867877584.0],"unit":"ns","throughput":[],"typical":{"estimate":1293990.4549165121,"lower_bound":1253886.8434462445,"upper_bound":1363008.5494522338,"unit":"ns"},"mean":{"estimate":1312315.2257573693,"lower_bound":1271761.903735601,"upper_bound":1359871.8344444442,"unit":"ns"},"median":{"estimate":1302259.2361904762,"lower_bound":1246560.7142857143,"upper_bound":1370326.9732142857,"unit":"ns"},"median_abs_dev":{"estimate":67175.78705767715,"lower_bound":4213.459992696266,"upper_bound":113199.26656764447,"unit":"ns"},"slope":{"estimate":1293990.4549165121,"lower_bound":1253886.8434462445,"upper_bound":1363008.5494522338,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[110708625.0,235886250.0,349780750.0,435579334.0,539106209.0,696925666.0,771592875.0,963742666.0,1043067834.0,1129232167.0],"unit":"ns","throughput":[],"typical":{"estimate":28598863.234415583,"lower_bound":27879078.15916955,"upper_bound":29294703.62157534,"unit":"ns"},"mean":{"estimate":28440767.895535715,"lower_bound":27822633.249785706,"upper_bound":29064407.482349705,"unit":"ns"},"median":{"estimate":28602455.3375,"lower_bound":27450432.3125,"upper_bound":29262175.333333336,"unit":"ns"},"median_abs_dev":{"estimate":1340733.688697219,"lower_bound":162828.64245921004,"upper_bound":1694392.0671310276,"unit":"ns"},"slope":{"estimate":28598863.234415583,"lower_bound":27879078.15916955,"upper_bound":29294703.62157534,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[90794167.0,178728458.0,271563000.0,361194041.0,477884250.0,573763916.0,630437500.0,716916667.0,813859416.0,925836250.0],"unit":"ns","throughput":[],"typical":{"estimate":6543824.503339518,"lower_bound":6445467.746801706,"upper_bound":6657959.5485129,"unit":"ns"},"mean":{"estimate":6534797.199702382,"lower_bound":6445522.02857143,"upper_bound":6639673.803750001,"unit":"ns"},"median":{"estimate":6462493.714285715,"lower_bound":6425467.629464285,"upper_bound":6656107.75,"unit":"ns"},"median_abs_dev":{"estimate":67391.61489730977,"lower_bound":11780.832053348422,"upper_bound":258587.76265914977,"unit":"ns"},"slope":{"estimate":6543824.503339518,"lower_bound":6445467.746801706,"upper_bound":6657959.5485129,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[131541125.0,330261416.0,586409000.0,603757750.0,1067581375.0,897628416.0,904340667.0,1068260750.0,1199106625.0,1303945459.0],"unit":"ns","throughput":[],"typical":{"estimate":47097735.24848485,"lower_bound":44329657.00054377,"upper_bound":53873587.77599363,"unit":"ns"},"mean":{"estimate":51085156.03727513,"lower_bound":45783194.07072222,"upper_bound":57268258.9898148,"unit":"ns"},"median":{"estimate":47189554.958333336,"lower_bound":43847041.666666664,"upper_bound":57734850.69444445,"unit":"ns"},"median_abs_dev":{"estimate":5238929.808825409,"lower_bound":492091.9193886257,"upper_bound":15378415.800589655,"unit":"ns"},"slope":{"estimate":47097735.24848485,"lower_bound":44329657.00054377,"upper_bound":53873587.77599363,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_10000","iteration_count":[88,176,264,352,440,528,616,704,792,880],"measured_values":[93431417.0,168270000.0,259509917.0,354351792.0,461086375.0,543030916.0,671730709.0,713979500.0,805827459.0,918234500.0],"unit":"ns","throughput":[],"typical":{"estimate":1034187.390820543,"lower_bound":1015662.2668766136,"upper_bound":1054523.0317840055,"unit":"ns"},"mean":{"estimate":1024941.9318452379,"lower_bound":1002012.6427083332,"upper_bound":1047443.799512987,"unit":"ns"},"median":{"estimate":1022963.2784090908,"lower_bound":998583.7679924243,"upper_bound":1052584.4715909092,"unit":"ns"},"median_abs_dev":{"estimate":33688.61377008949,"lower_bound":7989.498197930825,"upper_bound":65450.80789483411,"unit":"ns"},"slope":{"estimate":1034187.390820543,"lower_bound":1015662.2668766136,"upper_bound":1054523.0317840055,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107843583.0,222243750.0,343821125.0,478857125.0,561963792.0,678553583.0,841025250.0,945106584.0,1078282958.0,1128436334.0],"unit":"ns","throughput":[],"typical":{"estimate":29102144.675324675,"lower_bound":28429170.930959083,"upper_bound":29730603.4943662,"unit":"ns"},"mean":{"estimate":28742736.034781747,"lower_bound":28118958.481510915,"upper_bound":29360659.10757391,"unit":"ns"},"median":{"estimate":28462413.1875,"lower_bound":27995688.55,"upper_bound":29928570.3125,"unit":"ns"},"median_abs_dev":{"estimate":1300323.2025146484,"lower_bound":97688.39018651671,"upper_bound":1907872.6566284895,"unit":"ns"},"slope":{"estimate":29102144.675324675,"lower_bound":28429170.930959083,"upper_bound":29730603.4943662,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_10000","iteration_count":[132,264,396,528,660,792,924,1056,1188,1320],"measured_values":[166149500.0,172259375.0,259026208.0,343417917.0,424797667.0,513291000.0,587328709.0,679623791.0,769253042.0,847501708.0],"unit":"ns","throughput":[],"typical":{"estimate":645646.1752459662,"lower_bound":641881.6811688312,"upper_bound":653257.86796875,"unit":"ns"},"mean":{"estimate":707623.9209592954,"lower_bound":643824.1621164021,"upper_bound":831277.6963236531,"unit":"ns"},"median":{"estimate":647807.0462962963,"lower_bound":642839.7886363636,"upper_bound":652497.6325757576,"unit":"ns"},"median_abs_dev":{"estimate":6608.316626713042,"lower_bound":1192.717047385764,"upper_bound":13638.534186235322,"unit":"ns"},"slope":{"estimate":645646.1752459662,"lower_bound":641881.6811688312,"upper_bound":653257.86796875,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103108041.0,192167125.0,301699666.0,423563167.0,513662292.0,623179625.0,691367375.0,822097708.0,916785458.0,1002907625.0],"unit":"ns","throughput":[],"typical":{"estimate":25383559.62857143,"lower_bound":25094213.139989797,"upper_bound":25736824.842784785,"unit":"ns"},"mean":{"estimate":25398236.864067458,"lower_bound":24974549.66730159,"upper_bound":25788736.52459722,"unit":"ns"},"median":{"estimate":25574688.661111113,"lower_bound":24916665.398809522,"upper_bound":25828185.541666664,"unit":"ns"},"median_abs_dev":{"estimate":610963.7891907245,"lower_bound":75119.20791886526,"upper_bound":1170636.2353945503,"unit":"ns"},"slope":{"estimate":25383559.62857143,"lower_bound":25094213.139989797,"upper_bound":25736824.842784785,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[79,158,237,316,395,474,553,632,711,790],"measured_values":[85816709.0,182491250.0,254955791.0,350805000.0,446447042.0,522749500.0,596868000.0,697981834.0,781836000.0,890867709.0],"unit":"ns","throughput":[],"typical":{"estimate":1107833.3241492684,"lower_bound":1094200.7011159228,"upper_bound":1120482.007576427,"unit":"ns"},"mean":{"estimate":1107133.1603707052,"lower_bound":1093248.4614767933,"upper_bound":1122251.7813321277,"unit":"ns"},"median":{"estimate":1103624.3412447257,"lower_bound":1086287.4556962026,"upper_bound":1127680.6443037975,"unit":"ns"},"median_abs_dev":{"estimate":30684.770170046555,"lower_bound":3538.1833931972824,"upper_bound":40388.13207815711,"unit":"ns"},"slope":{"estimate":1107833.3241492684,"lower_bound":1094200.7011159228,"upper_bound":1120482.007576427,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[106824125.0,213833125.0,359582584.0,577376500.0,634938792.0,678911167.0,781983500.0,906117416.0,995777584.0,1081554042.0],"unit":"ns","throughput":[],"typical":{"estimate":28357965.96948052,"lower_bound":27575426.844040968,"upper_bound":30031796.134010524,"unit":"ns"},"mean":{"estimate":29046481.423730157,"lower_bound":27574920.41915774,"upper_bound":30955599.454465274,"unit":"ns"},"median":{"estimate":28107973.717261903,"lower_bound":27038851.05,"upper_bound":30031554.425,"unit":"ns"},"median_abs_dev":{"estimate":1814669.5723181718,"lower_bound":263850.2927432187,"upper_bound":3609628.396291282,"unit":"ns"},"slope":{"estimate":28357965.96948052,"lower_bound":27575426.844040968,"upper_bound":30031796.134010524,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_selective_gt_100/10000","ORE/ore_decrypt/range_selective_gt_100/10000","ORE/ore/range_highly_selective_gt_10/10000","ORE/ore_decrypt/range_highly_selective_gt_10/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_100000.json b/results/query/ore_rows_100000.json index 5df0c54..76fec37 100644 --- a/results/query/ore_rows_100000.json +++ b/results/query/ore_rows_100000.json @@ -1,11 +1,15 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[101,202,303,404,505,606,707,808,909,1010],"measured_values":[91160500.0,182376500.0,304800042.0,434117583.0,510882709.0,564115459.0,660987167.0,785577750.0,839989166.0,948590750.0],"unit":"ns","throughput":[],"typical":{"estimate":951606.8514851485,"lower_bound":934897.9247301175,"upper_bound":981389.5163965804,"unit":"ns"},"mean":{"estimate":959890.2041238409,"lower_bound":929788.3502003772,"upper_bound":994624.9616320918,"unit":"ns"},"median":{"estimate":937058.4809052334,"lower_bound":916868.7780528052,"upper_bound":1005940.7326732674,"unit":"ns"},"median_abs_dev":{"estimate":50915.295212904544,"lower_bound":6164.032940566597,"upper_bound":97486.34801590486,"unit":"ns"},"slope":{"estimate":951606.8514851485,"lower_bound":934897.9247301175,"upper_bound":981389.5163965804,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103536166.0,215434333.0,336811708.0,450210125.0,585622500.0,627015416.0,756647958.0,859603500.0,966346250.0,1104282333.0],"unit":"ns","throughput":[],"typical":{"estimate":27239732.94675325,"lower_bound":26806639.577777777,"upper_bound":27783058.811085995,"unit":"ns"},"mean":{"estimate":27276163.605019845,"lower_bound":26707655.767579366,"upper_bound":27898816.52049653,"unit":"ns"},"median":{"estimate":26976216.49107143,"lower_bound":26494125.854166664,"upper_bound":28067642.333333332,"unit":"ns"},"median_abs_dev":{"estimate":1098173.6551260208,"lower_bound":64004.015892868854,"upper_bound":1737150.2812594157,"unit":"ns"},"slope":{"estimate":27239732.94675325,"lower_bound":26806639.577777777,"upper_bound":27783058.811085995,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[91371834.0,176908959.0,265611958.0,350059375.0,456478875.0,549333208.0,626102625.0,723061292.0,812400500.0,999509750.0],"unit":"ns","throughput":[],"typical":{"estimate":6622368.730983302,"lower_bound":6406512.31523248,"upper_bound":6890219.664744158,"unit":"ns"},"mean":{"estimate":6491238.407964853,"lower_bound":6373679.996031746,"upper_bound":6656494.639285715,"unit":"ns"},"median":{"estimate":6451763.704365079,"lower_bound":6324094.238095238,"upper_bound":6530403.916666666,"unit":"ns"},"median_abs_dev":{"estimate":120619.30066691306,"lower_bound":13754.274105812987,"upper_bound":252543.829141451,"unit":"ns"},"slope":{"estimate":6622368.730983302,"lower_bound":6406512.31523248,"upper_bound":6890219.664744158,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[92295500.0,197616583.0,282205542.0,369333500.0,462115625.0,555529333.0,664306833.0,721478584.0,821792250.0,943184667.0],"unit":"ns","throughput":[],"typical":{"estimate":46370372.51688312,"lower_bound":45666452.67027027,"upper_bound":47072275.185547434,"unit":"ns"},"mean":{"estimate":46661577.17547619,"lower_bound":46028626.37542857,"upper_bound":47423483.35696428,"unit":"ns"},"median":{"estimate":46252836.79166667,"lower_bound":45910906.25,"upper_bound":47242372.53571428,"unit":"ns"},"median_abs_dev":{"estimate":1022350.5334496498,"lower_bound":61193.26373860976,"upper_bound":1720446.5068809763,"unit":"ns"},"slope":{"estimate":46370372.51688312,"lower_bound":45666452.67027027,"upper_bound":47072275.185547434,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[99,198,297,396,495,594,693,792,891,990],"measured_values":[80855458.0,162968958.0,240884250.0,393945791.0,489810167.0,603356125.0,633861792.0,697820458.0,785424542.0,891613625.0],"unit":"ns","throughput":[],"typical":{"estimate":912474.6217762036,"lower_bound":888819.8434242519,"upper_bound":954053.9609627629,"unit":"ns"},"mean":{"estimate":902881.3335289402,"lower_bound":859394.9825468974,"upper_bound":948159.8694933461,"unit":"ns"},"median":{"estimate":891064.4245230078,"lower_bound":823075.5454545454,"upper_bound":989515.4888888889,"unit":"ns"},"median_abs_dev":{"estimate":105510.34323674964,"lower_bound":9420.06583882101,"upper_bound":128714.70086864497,"unit":"ns"},"slope":{"estimate":912474.6217762036,"lower_bound":888819.8434242519,"upper_bound":954053.9609627629,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[111654541.0,220645542.0,315424209.0,445650208.0,575269417.0,661670292.0,780081167.0,857272875.0,1007956416.0,1068481625.0],"unit":"ns","throughput":[],"typical":{"estimate":27404781.223376624,"lower_bound":26937612.766666666,"upper_bound":27980013.538908582,"unit":"ns"},"mean":{"estimate":27532653.208065473,"lower_bound":27091033.970709823,"upper_bound":27951014.27245163,"unit":"ns"},"median":{"estimate":27716915.375,"lower_bound":26789777.34375,"upper_bound":27929415.50595238,"unit":"ns"},"median_abs_dev":{"estimate":354781.60235136654,"lower_bound":44846.61062881627,"upper_bound":1349659.4594487569,"unit":"ns"},"slope":{"estimate":27404781.223376624,"lower_bound":26937612.766666666,"upper_bound":27980013.538908582,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[89117166.0,179974042.0,263923125.0,358611125.0,451168208.0,529062375.0,613420917.0,727438792.0,828649166.0,860688542.0],"unit":"ns","throughput":[],"typical":{"estimate":6360608.364378478,"lower_bound":6222021.272004626,"upper_bound":6502240.648138833,"unit":"ns"},"mean":{"estimate":6370317.426264172,"lower_bound":6295929.245262755,"upper_bound":6443177.852579366,"unit":"ns"},"median":{"estimate":6384640.973214285,"lower_bound":6278879.359693877,"upper_bound":6461316.785714285,"unit":"ns"},"median_abs_dev":{"estimate":138650.08880096866,"lower_bound":28884.37955505732,"upper_bound":213380.7787492347,"unit":"ns"},"slope":{"estimate":6360608.364378478,"lower_bound":6222021.272004626,"upper_bound":6502240.648138833,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[92143083.0,176934750.0,245623708.0,334462125.0,469774000.0,544341208.0,662894375.0,694167750.0,756050291.0,905846708.0],"unit":"ns","throughput":[],"typical":{"estimate":44405417.89480519,"lower_bound":42931145.66774556,"upper_bound":45874850.52492179,"unit":"ns"},"mean":{"estimate":44341965.85587301,"lower_bound":43011411.137222216,"upper_bound":45645777.3328244,"unit":"ns"},"median":{"estimate":44763011.45,"lower_bound":42002793.94444445,"upper_bound":46169583.66666667,"unit":"ns"},"median_abs_dev":{"estimate":2662687.005540356,"lower_bound":577625.471675099,"upper_bound":3804144.3082254454,"unit":"ns"},"slope":{"estimate":44405417.89480519,"lower_bound":42931145.66774556,"upper_bound":45874850.52492179,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[90,180,270,360,450,540,630,720,810,900],"measured_values":[92365458.0,196050334.0,290771584.0,383668166.0,462165209.0,596294375.0,709846750.0,773773834.0,901384291.0,1005382250.0],"unit":"ns","throughput":[],"typical":{"estimate":1099724.238903319,"lower_bound":1074497.2141791044,"upper_bound":1113908.5806524178,"unit":"ns"},"mean":{"estimate":1082074.8982213405,"lower_bound":1060600.6432328043,"upper_bound":1101943.000746693,"unit":"ns"},"median":{"estimate":1083050.1574074074,"lower_bound":1050859.8391666666,"upper_bound":1112820.112345679,"unit":"ns"},"median_abs_dev":{"estimate":37783.0522527352,"lower_bound":7153.162456339152,"upper_bound":64577.69724501646,"unit":"ns"},"slope":{"estimate":1099724.238903319,"lower_bound":1074497.2141791044,"upper_bound":1113908.5806524178,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[112049833.0,231815583.0,344052667.0,435894875.0,572115000.0,671246125.0,792501458.0,998151417.0,1001527750.0,1117365333.0],"unit":"ns","throughput":[],"typical":{"estimate":28545191.475324675,"lower_bound":27897265.2535545,"upper_bound":29734859.05091353,"unit":"ns"},"mean":{"estimate":28472843.382152773,"lower_bound":27938646.104861118,"upper_bound":29172980.98049479,"unit":"ns"},"median":{"estimate":28158040.875,"lower_bound":27894401.909722224,"upper_bound":28791348.9375,"unit":"ns"},"median_abs_dev":{"estimate":582316.8792451434,"lower_bound":58062.265871692034,"upper_bound":1214111.4966452122,"unit":"ns"},"slope":{"estimate":28545191.475324675,"lower_bound":27897265.2535545,"upper_bound":29734859.05091353,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/100000","ORE/ore_decrypt/range_gt_10/100000","ORE/ore/range_gt_100/100000","ORE/ore_decrypt/range_gt_100/100000","ORE/ore/range_lt_10/100000","ORE/ore_decrypt/range_lt_10/100000","ORE/ore/range_lt_100/100000","ORE/ore_decrypt/range_lt_100/100000","ORE/ore/range_lt_hybrid_ordered_10/100000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[106,212,318,424,530,636,742,848,954,1060],"measured_values":[88455500.0,167453292.0,258458959.0,360949625.0,467331333.0,583981125.0,632744291.0,956513667.0,814216375.0,875999792.0],"unit":"ns","throughput":[],"typical":{"estimate":898121.6746875766,"lower_bound":838596.9778890879,"upper_bound":1000556.8872412947,"unit":"ns"},"mean":{"estimate":874899.7244725216,"lower_bound":830764.0803071653,"upper_bound":937920.6832206498,"unit":"ns"},"median":{"estimate":852025.6972708895,"lower_bound":823624.9355345912,"upper_bound":885842.8000524109,"unit":"ns"},"median_abs_dev":{"estimate":41025.27143788223,"lower_bound":2150.639945859307,"upper_bound":91064.65071016591,"unit":"ns"},"slope":{"estimate":898121.6746875766,"lower_bound":838596.9778890879,"upper_bound":1000556.8872412947,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[102811541.0,202651500.0,337628333.0,458427250.0,584422917.0,650900500.0,741549125.0,880019084.0,1011294583.0,1148764834.0],"unit":"ns","throughput":[],"typical":{"estimate":27923715.752597403,"lower_bound":27208800.78379004,"upper_bound":28475020.062317893,"unit":"ns"},"mean":{"estimate":27495885.104920637,"lower_bound":26691387.878911704,"upper_bound":28236876.379166663,"unit":"ns"},"median":{"estimate":27796056.284722224,"lower_bound":26411869.708333336,"upper_bound":28651703.125,"unit":"ns"},"median_abs_dev":{"estimate":1318558.741529235,"lower_bound":415266.5642483784,"upper_bound":2185958.651928976,"unit":"ns"},"slope":{"estimate":27923715.752597403,"lower_bound":27208800.78379004,"upper_bound":28475020.062317893,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[95229833.0,184744125.0,289487792.0,386203875.0,456576666.0,543582916.0,633249334.0,734302208.0,823729792.0,891882125.0],"unit":"ns","throughput":[],"typical":{"estimate":6504996.320037106,"lower_bound":6434948.917002012,"upper_bound":6606530.086072923,"unit":"ns"},"mean":{"estimate":6610907.087851474,"lower_bound":6506538.454705216,"upper_bound":6725493.433371031,"unit":"ns"},"median":{"estimate":6546903.873015873,"lower_bound":6471225.19047619,"upper_bound":6802130.928571428,"unit":"ns"},"median_abs_dev":{"estimate":119241.55555922983,"lower_bound":25015.845815880293,"upper_bound":306231.73938830005,"unit":"ns"},"slope":{"estimate":6504996.320037106,"lower_bound":6434948.917002012,"upper_bound":6606530.086072923,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[127421917.0,328541083.0,364346709.0,480154291.0,639285667.0,738389459.0,993028667.0,1086656000.0,1161563042.0,1251285708.0],"unit":"ns","throughput":[],"typical":{"estimate":43321471.50649351,"lower_bound":41855251.17663003,"upper_bound":45124055.2133758,"unit":"ns"},"mean":{"estimate":43866211.55494709,"lower_bound":41655420.03425926,"upper_bound":46760833.79083531,"unit":"ns"},"median":{"estimate":42546508.400000006,"lower_bound":41021636.61111111,"upper_bound":45277333.333333336,"unit":"ns"},"median_abs_dev":{"estimate":2660090.1554973028,"lower_bound":405402.93301377073,"upper_bound":5289634.616730215,"unit":"ns"},"slope":{"estimate":43321471.50649351,"lower_bound":41855251.17663003,"upper_bound":45124055.2133758,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[113,226,339,452,565,678,791,904,1017,1130],"measured_values":[83894917.0,168625292.0,269820875.0,353825208.0,462109166.0,637869958.0,623473625.0,709488625.0,859366500.0,929699500.0],"unit":"ns","throughput":[],"typical":{"estimate":824162.5654752328,"lower_bound":794361.2502568553,"upper_bound":857974.376164419,"unit":"ns"},"mean":{"estimate":806678.3230436158,"lower_bound":776879.6831019542,"upper_bound":843090.2911297934,"unit":"ns"},"median":{"estimate":792070.5857564264,"lower_bound":765481.0801991151,"upper_bound":831446.9020648968,"unit":"ns"},"median_abs_dev":{"estimate":41879.05931101138,"lower_bound":4010.6212995937,"upper_bound":78797.41027239374,"unit":"ns"},"slope":{"estimate":824162.5654752328,"lower_bound":794361.2502568553,"upper_bound":857974.376164419,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[113993041.0,220441500.0,328762083.0,439091792.0,575102958.0,690728750.0,833863625.0,875778458.0,983032459.0,1199746458.0],"unit":"ns","throughput":[],"typical":{"estimate":28574965.25844156,"lower_bound":27562393.12668658,"upper_bound":29512751.040843807,"unit":"ns"},"mean":{"estimate":28287807.669027783,"lower_bound":27701579.885833334,"upper_bound":28912354.56769444,"unit":"ns"},"median":{"estimate":28026723.875,"lower_bound":27396840.25,"upper_bound":29267995.825,"unit":"ns"},"median_abs_dev":{"estimate":1022188.7395796059,"lower_bound":55716.2460045889,"upper_bound":1807640.7070429618,"unit":"ns"},"slope":{"estimate":28574965.25844156,"lower_bound":27562393.12668658,"upper_bound":29512751.040843807,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[89145375.0,183354000.0,275553167.0,369812084.0,464883125.0,526154667.0,626761125.0,734383875.0,963282292.0,928066333.0],"unit":"ns","throughput":[],"typical":{"estimate":6763582.1283859,"lower_bound":6441927.303998049,"upper_bound":7180918.873298102,"unit":"ns"},"mean":{"estimate":6621205.77279195,"lower_bound":6446540.700807823,"upper_bound":6877433.827653061,"unit":"ns"},"median":{"estimate":6558894.287202381,"lower_bound":6395521.683673469,"upper_bound":6629045.235714286,"unit":"ns"},"median_abs_dev":{"estimate":113006.85477247775,"lower_bound":9216.24738637887,"upper_bound":327498.24115645775,"unit":"ns"},"slope":{"estimate":6763582.1283859,"lower_bound":6441927.303998049,"upper_bound":7180918.873298102,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[115351166.0,236949458.0,356903417.0,489800417.0,612043583.0,739675083.0,838807209.0,944654416.0,1089574917.0,1265157250.0],"unit":"ns","throughput":[],"typical":{"estimate":40696158.405194804,"lower_bound":39851789.190366834,"upper_bound":41549700.43585341,"unit":"ns"},"mean":{"estimate":40214090.33230159,"lower_bound":39604319.37286112,"upper_bound":40848264.358684525,"unit":"ns"},"median":{"estimate":40148913.49206349,"lower_bound":39491576.333333336,"upper_bound":40947982.849999994,"unit":"ns"},"median_abs_dev":{"estimate":982315.2068354152,"lower_bound":215091.62587136545,"upper_bound":1832564.283367135,"unit":"ns"},"slope":{"estimate":40696158.405194804,"lower_bound":39851789.190366834,"upper_bound":41549700.43585341,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_100000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1417664167.0,1412498167.0,1514225958.0,1334734458.0,1470432750.0,1442804792.0,1390097125.0,1422162167.0,1457211417.0,1626754708.0],"unit":"ns","throughput":[],"typical":{"estimate":1448858570.9,"lower_bound":1406304895.9,"upper_bound":1498579984.8625,"unit":"ns"},"mean":{"estimate":1448858570.9,"lower_bound":1406304895.9,"upper_bound":1498579984.8625,"unit":"ns"},"median":{"estimate":1432483479.5,"lower_bound":1403880646.0,"upper_bound":1485718687.5,"unit":"ns"},"median_abs_dev":{"estimate":46462613.46552372,"lower_bound":7659111.46402359,"upper_bound":121191396.47252262,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_100000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1417240834.0,1491390167.0,1416951333.0,1525325125.0,1418482875.0,1489318708.0,1437511917.0,1386189000.0,1571071208.0,1403916584.0],"unit":"ns","throughput":[],"typical":{"estimate":1455739775.1,"lower_bound":1422505898.3225,"upper_bound":1492937787.5,"unit":"ns"},"mean":{"estimate":1455739775.1,"lower_bound":1422505898.3225,"upper_bound":1492937787.5,"unit":"ns"},"median":{"estimate":1427997396.0,"lower_bound":1410578709.0,"upper_bound":1507321916.5,"unit":"ns"},"median_abs_dev":{"estimate":48843669.02325153,"lower_bound":1349939.1519337893,"upper_bound":106556776.67073905,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_100000","iteration_count":[113,226,339,452,565,678,791,904,1017,1130],"measured_values":[87937667.0,167327959.0,260291958.0,336664833.0,450789708.0,563227583.0,642146709.0,694267208.0,831152834.0,907416083.0],"unit":"ns","throughput":[],"typical":{"estimate":799612.5455005171,"lower_bound":780620.897061279,"upper_bound":812850.8430446455,"unit":"ns"},"mean":{"estimate":785992.5792168843,"lower_bound":767711.2924380179,"upper_bound":803880.7018555977,"unit":"ns"},"median":{"estimate":788033.6663716814,"lower_bound":756414.2002212389,"upper_bound":811816.3198482933,"unit":"ns"},"median_abs_dev":{"estimate":32612.33270685611,"lower_bound":7657.91357572642,"upper_bound":50659.972568599755,"unit":"ns"},"slope":{"estimate":799612.5455005171,"lower_bound":780620.897061279,"upper_bound":812850.8430446455,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101385500.0,239546166.0,325246250.0,454483584.0,569118000.0,682430583.0,761384042.0,895658083.0,991369250.0,1142287250.0],"unit":"ns","throughput":[],"typical":{"estimate":28022385.145454545,"lower_bound":27601128.99577465,"upper_bound":28424357.570431802,"unit":"ns"},"mean":{"estimate":27896604.982192464,"lower_bound":27153554.006775793,"upper_bound":28583285.66830357,"unit":"ns"},"median":{"estimate":28197269.546875,"lower_bound":27192287.214285713,"upper_bound":28495894.4375,"unit":"ns"},"median_abs_dev":{"estimate":755493.307628978,"lower_bound":43564.161651581526,"upper_bound":2023591.8614240652,"unit":"ns"},"slope":{"estimate":28022385.145454545,"lower_bound":27601128.99577465,"upper_bound":28424357.570431802,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[95,190,285,380,475,570,665,760,855,950],"measured_values":[176443167.0,178007709.0,258424666.0,352918667.0,480067375.0,535240708.0,612658625.0,781602708.0,841403416.0,938859083.0],"unit":"ns","throughput":[],"typical":{"estimate":979735.93949419,"lower_bound":949384.6393086036,"upper_bound":1003857.5833672155,"unit":"ns"},"mean":{"estimate":1050143.872851295,"lower_bound":941885.6947785923,"upper_bound":1238054.516974102,"unit":"ns"},"median":{"estimate":961558.1742690059,"lower_bound":928733.3342105263,"upper_bound":1010668.1578947369,"unit":"ns"},"median_abs_dev":{"estimate":54182.98663797206,"lower_bound":7624.605250162506,"upper_bound":106988.78930642888,"unit":"ns"},"slope":{"estimate":979735.93949419,"lower_bound":949384.6393086036,"upper_bound":1003857.5833672155,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[105669833.0,217027500.0,318471709.0,443374542.0,563120291.0,636836166.0,736602125.0,914114666.0,1029555375.0,1452942583.0],"unit":"ns","throughput":[],"typical":{"estimate":29980398.043506492,"lower_bound":27043551.478323698,"upper_bound":33242196.10730337,"unit":"ns"},"mean":{"estimate":28228259.55625,"lower_bound":26917803.114927083,"upper_bound":30229832.124583334,"unit":"ns"},"median":{"estimate":27419673.1875,"lower_bound":26478383.666666664,"upper_bound":28566083.3125,"unit":"ns"},"median_abs_dev":{"estimate":1398868.5649026185,"lower_bound":93640.76723754221,"upper_bound":2568174.531293289,"unit":"ns"},"slope":{"estimate":29980398.043506492,"lower_bound":27043551.478323698,"upper_bound":33242196.10730337,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/100000","ORE/ore_decrypt/range_gt_10/100000","ORE/ore/range_gt_100/100000","ORE/ore_decrypt/range_gt_100/100000","ORE/ore/range_lt_10/100000","ORE/ore_decrypt/range_lt_10/100000","ORE/ore/range_lt_100/100000","ORE/ore_decrypt/range_lt_100/100000","ORE/ore/range_selective_gt_100/100000","ORE/ore_decrypt/range_selective_gt_100/100000","ORE/ore/range_highly_selective_gt_10/100000","ORE/ore_decrypt/range_highly_selective_gt_10/100000","ORE/ore/range_lt_hybrid_ordered_10/100000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_1000000.json b/results/query/ore_rows_1000000.json index 6b35360..25660f2 100644 --- a/results/query/ore_rows_1000000.json +++ b/results/query/ore_rows_1000000.json @@ -1,11 +1,15 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[82,164,246,328,410,492,574,656,738,820],"measured_values":[97274334.0,184466917.0,246006375.0,315116000.0,564971875.0,723879500.0,634725208.0,703050834.0,810357625.0,833214000.0],"unit":"ns","throughput":[],"typical":{"estimate":1118963.237915743,"lower_bound":1046289.8294345898,"upper_bound":1248767.061756792,"unit":"ns"},"mean":{"estimate":1141277.3120838176,"lower_bound":1053948.48251476,"upper_bound":1244872.401222053,"unit":"ns"},"median":{"estimate":1101919.3038133953,"lower_bound":1016114.6341463415,"upper_bound":1251389.2286585364,"unit":"ns"},"median_abs_dev":{"estimate":126137.92427523842,"lower_bound":19831.785097712134,"upper_bound":264202.4161131281,"unit":"ns"},"slope":{"estimate":1118963.237915743,"lower_bound":1046289.8294345898,"upper_bound":1248767.061756792,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[108217958.0,223708833.0,347769292.0,484937083.0,614670666.0,720623292.0,765838666.0,974734334.0,1129768041.0,1155483542.0],"unit":"ns","throughput":[],"typical":{"estimate":29751479.244805194,"lower_bound":28690864.049668387,"upper_bound":30779811.294407893,"unit":"ns"},"mean":{"estimate":29314830.244523812,"lower_bound":28423218.79369048,"upper_bound":30173983.247462798,"unit":"ns"},"median":{"estimate":29503372.416666664,"lower_bound":27963604.125,"upper_bound":30521050.49375,"unit":"ns"},"median_abs_dev":{"estimate":1621398.3176231799,"lower_bound":315027.0029534032,"upper_bound":2507189.5084284884,"unit":"ns"},"slope":{"estimate":29751479.244805194,"lower_bound":28690864.049668387,"upper_bound":30779811.294407893,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[94402250.0,208453416.0,284746541.0,395297167.0,453979083.0,570378000.0,653109333.0,736098125.0,838793875.0,901366917.0],"unit":"ns","throughput":[],"typical":{"estimate":7125327.705094905,"lower_bound":7024785.886137594,"upper_bound":7273989.14393039,"unit":"ns"},"mean":{"estimate":7283670.692860196,"lower_bound":7117948.550128205,"upper_bound":7487944.4155494515,"unit":"ns"},"median":{"estimate":7219368.587912088,"lower_bound":7076736.001709402,"upper_bound":7451530.977564102,"unit":"ns"},"median_abs_dev":{"estimate":173962.25784905255,"lower_bound":37677.99740800555,"upper_bound":457808.34792573884,"unit":"ns"},"slope":{"estimate":7125327.705094905,"lower_bound":7024785.886137594,"upper_bound":7273989.14393039,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[107782125.0,205540416.0,333723208.0,352547458.0,398235625.0,529131041.0,687704750.0,767934416.0,826499708.0,852626959.0],"unit":"ns","throughput":[],"typical":{"estimate":45478392.62857143,"lower_bound":43474731.896731034,"upper_bound":47826281.22583448,"unit":"ns"},"mean":{"estimate":47454861.65849206,"lower_bound":44506945.71460317,"upper_bound":50475188.39444445,"unit":"ns"},"median":{"estimate":46956275.722222224,"lower_bound":43362800.68333334,"upper_bound":51506415.17857143,"unit":"ns"},"median_abs_dev":{"estimate":5346827.228581509,"lower_bound":1103593.0336973013,"upper_bound":8538244.58030586,"unit":"ns"},"slope":{"estimate":45478392.62857143,"lower_bound":43474731.896731034,"upper_bound":47826281.22583448,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[90,180,270,360,450,540,630,720,810,900],"measured_values":[92986292.0,172206042.0,252578291.0,376094375.0,463291583.0,568189708.0,661548583.0,754537083.0,847285541.0,889371292.0],"unit":"ns","throughput":[],"typical":{"estimate":1027749.6809812409,"lower_bound":1003706.2840392282,"upper_bound":1046607.8503521127,"unit":"ns"},"mean":{"estimate":1018407.0161953263,"lower_bound":991615.9377172949,"upper_bound":1041384.5790987652,"unit":"ns"},"median":{"estimate":1038943.8097222222,"lower_bound":988190.3244444445,"upper_bound":1048054.3239858907,"unit":"ns"},"median_abs_dev":{"estimate":15226.497997675679,"lower_bound":2701.4239967067683,"upper_bound":64255.2530287966,"unit":"ns"},"slope":{"estimate":1027749.6809812409,"lower_bound":1003706.2840392282,"upper_bound":1046607.8503521127,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[76362417.0,171641042.0,243914250.0,372690959.0,418689000.0,533272084.0,596231375.0,704000250.0,731663541.0,883712667.0],"unit":"ns","throughput":[],"typical":{"estimate":28712509.744588744,"lower_bound":27810064.367951065,"upper_bound":29441607.33054004,"unit":"ns"},"mean":{"estimate":28404002.20269841,"lower_bound":27451455.52510715,"upper_bound":29323615.882777773,"unit":"ns"},"median":{"estimate":28499405.285714284,"lower_bound":27101583.333333332,"upper_bound":29479785.319444444,"unit":"ns"},"median_abs_dev":{"estimate":1545243.6902697755,"lower_bound":217114.26700378396,"upper_bound":2786472.67349689,"unit":"ns"},"slope":{"estimate":28712509.744588744,"lower_bound":27810064.367951065,"upper_bound":29441607.33054004,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[92242333.0,177809167.0,273392625.0,359681458.0,463857167.0,519836458.0,625815791.0,794251375.0,841192542.0,895395042.0],"unit":"ns","throughput":[],"typical":{"estimate":7073820.937462538,"lower_bound":6856832.624609497,"upper_bound":7324753.784744141,"unit":"ns"},"mean":{"estimate":7025369.37691392,"lower_bound":6883607.349230769,"upper_bound":7193726.1203956045,"unit":"ns"},"median":{"estimate":6963509.211538462,"lower_bound":6863234.142307692,"upper_bound":7142621.961538462,"unit":"ns"},"median_abs_dev":{"estimate":190328.7431094512,"lower_bound":30170.932273589668,"upper_bound":383067.15785689175,"unit":"ns"},"slope":{"estimate":7073820.937462538,"lower_bound":6856832.624609497,"upper_bound":7324753.784744141,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[101038458.0,184379708.0,270968875.0,397779125.0,471026250.0,559401208.0,638480959.0,794081291.0,835057833.0,948124041.0],"unit":"ns","throughput":[],"typical":{"estimate":47278100.577922076,"lower_bound":46331501.741910964,"upper_bound":48385089.510040164,"unit":"ns"},"mean":{"estimate":47425158.54815476,"lower_bound":46372826.80654167,"upper_bound":48567513.23354316,"unit":"ns"},"median":{"estimate":46859696.16666667,"lower_bound":45998942.309523806,"upper_bound":49630080.6875,"unit":"ns"},"median_abs_dev":{"estimate":1496449.3459827222,"lower_bound":386840.2322322149,"upper_bound":2998663.820793074,"unit":"ns"},"slope":{"estimate":47278100.577922076,"lower_bound":46331501.741910964,"upper_bound":48385089.510040164,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[85,170,255,340,425,510,595,680,765,850],"measured_values":[108653958.0,219387750.0,326562041.0,390889250.0,451480208.0,612862458.0,761976375.0,824967709.0,846490750.0,1014787917.0],"unit":"ns","throughput":[],"typical":{"estimate":1183349.75052712,"lower_bound":1136328.3290239172,"upper_bound":1230366.5894607843,"unit":"ns"},"mean":{"estimate":1205731.7585018673,"lower_bound":1157039.842930439,"upper_bound":1250426.730595238,"unit":"ns"},"median":{"estimate":1207439.4507352943,"lower_bound":1149674.2647058824,"upper_bound":1280632.56302521,"unit":"ns"},"median_abs_dev":{"estimate":106773.52936071424,"lower_bound":1746.8644901632683,"upper_bound":130305.15595387593,"unit":"ns"},"slope":{"estimate":1183349.75052712,"lower_bound":1136328.3290239172,"upper_bound":1230366.5894607843,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[118006041.0,189919667.0,261554708.0,448485042.0,647526125.0,591655041.0,598980291.0,997648792.0,847496958.0,901803791.0],"unit":"ns","throughput":[],"typical":{"estimate":33492271.37922078,"lower_bound":30498506.60294951,"upper_bound":38140333.958710976,"unit":"ns"},"mean":{"estimate":34500261.86444445,"lower_bound":31455812.01777778,"upper_bound":37770069.12158333,"unit":"ns"},"median":{"estimate":32261501.166666664,"lower_bound":30060126.366666667,"upper_bound":39471226.58333333,"unit":"ns"},"median_abs_dev":{"estimate":5143507.817151144,"lower_bound":1097826.9388263412,"upper_bound":8643914.140029848,"unit":"ns"},"slope":{"estimate":33492271.37922078,"lower_bound":30498506.60294951,"upper_bound":38140333.958710976,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/1000000","ORE/ore_decrypt/range_gt_10/1000000","ORE/ore/range_gt_100/1000000","ORE/ore_decrypt/range_gt_100/1000000","ORE/ore/range_lt_10/1000000","ORE/ore_decrypt/range_lt_10/1000000","ORE/ore/range_lt_100/1000000","ORE/ore_decrypt/range_lt_100/1000000","ORE/ore/range_lt_hybrid_ordered_10/1000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[96,192,288,384,480,576,672,768,864,960],"measured_values":[84979625.0,180114416.0,308044084.0,419652208.0,640602125.0,578208458.0,697415958.0,737182583.0,818596250.0,938496834.0],"unit":"ns","throughput":[],"typical":{"estimate":1007898.2108766234,"lower_bound":968825.8315135542,"upper_bound":1092316.8125384378,"unit":"ns"},"mean":{"estimate":1024690.8791389717,"lower_bound":960974.4743287036,"upper_bound":1107073.451774915,"unit":"ns"},"median":{"estimate":990717.4986111112,"lower_bound":947449.363425926,"upper_bound":1069597.513888889,"unit":"ns"},"median_abs_dev":{"estimate":73926.47433129272,"lower_bound":18419.512983491644,"upper_bound":156512.99393765844,"unit":"ns"},"slope":{"estimate":1007898.2108766234,"lower_bound":968825.8315135542,"upper_bound":1092316.8125384378,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107792500.0,212476250.0,314866583.0,448205750.0,543059333.0,709514208.0,811214833.0,915312333.0,1082410041.0,1111943084.0],"unit":"ns","throughput":[],"typical":{"estimate":28639398.28961039,"lower_bound":27853541.166962758,"upper_bound":29407845.061603297,"unit":"ns"},"mean":{"estimate":27991644.76026786,"lower_bound":27249105.09818378,"upper_bound":28756906.905346725,"unit":"ns"},"median":{"estimate":27905718.2375,"lower_bound":26856248.95,"upper_bound":29083301.203125,"unit":"ns"},"median_abs_dev":{"estimate":1500267.6145399252,"lower_bound":439913.6542099703,"upper_bound":2224833.2783813123,"unit":"ns"},"slope":{"estimate":28639398.28961039,"lower_bound":27853541.166962758,"upper_bound":29407845.061603297,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[93712500.0,191010000.0,294255750.0,385896959.0,468973916.0,558335333.0,657561166.0,810283750.0,844498084.0,933025666.0],"unit":"ns","throughput":[],"typical":{"estimate":6792747.076437848,"lower_bound":6683309.608293004,"upper_bound":6996792.89558239,"unit":"ns"},"mean":{"estimate":6807043.764331067,"lower_bound":6708482.927473214,"upper_bound":6928752.304246033,"unit":"ns"},"median":{"estimate":6706086.781179138,"lower_bound":6682048.207142858,"upper_bound":6913937.5,"unit":"ns"},"median_abs_dev":{"estimate":74764.04525386334,"lower_bound":7546.763668875175,"upper_bound":280564.57530112594,"unit":"ns"},"slope":{"estimate":6792747.076437848,"lower_bound":6683309.608293004,"upper_bound":6996792.89558239,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[127976208.0,227495416.0,373696417.0,493386292.0,621720042.0,791323167.0,899310625.0,1072208333.0,1124929417.0,1288585792.0],"unit":"ns","throughput":[],"typical":{"estimate":42785458.34025974,"lower_bound":41853044.68494343,"upper_bound":43643893.35326895,"unit":"ns"},"mean":{"estimate":42073896.29771164,"lower_bound":40915298.330289684,"upper_bound":43085559.819109134,"unit":"ns"},"median":{"estimate":42161394.240740746,"lower_bound":41318674.222222224,"upper_bound":43393356.82142857,"unit":"ns"},"median_abs_dev":{"estimate":1115550.424875024,"lower_bound":160157.62603886085,"upper_bound":2819314.0510549517,"unit":"ns"},"slope":{"estimate":42785458.34025974,"lower_bound":41853044.68494343,"upper_bound":43643893.35326895,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[109,218,327,436,545,654,763,872,981,1090],"measured_values":[119531958.0,191403708.0,299414167.0,360396958.0,469106083.0,555203083.0,655288250.0,759747333.0,826514375.0,911952208.0],"unit":"ns","throughput":[],"typical":{"estimate":851711.3425235315,"lower_bound":842450.1663308042,"upper_bound":866557.5909239658,"unit":"ns"},"mean":{"estimate":883581.6630490025,"lower_bound":848727.5684618463,"upper_bound":936099.6701885831,"unit":"ns"},"median":{"estimate":859788.1823066841,"lower_bound":842522.2986748216,"upper_bound":893454.7658639144,"unit":"ns"},"median_abs_dev":{"estimate":26298.62659151582,"lower_bound":8755.29306410378,"upper_bound":60794.58348111619,"unit":"ns"},"slope":{"estimate":851711.3425235315,"lower_bound":842450.1663308042,"upper_bound":866557.5909239658,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103797625.0,221628125.0,328932917.0,449525417.0,540969084.0,662586916.0,771770500.0,867128417.0,1091483375.0,1145072875.0],"unit":"ns","throughput":[],"typical":{"estimate":28328455.305844154,"lower_bound":27312540.140370294,"upper_bound":29261362.92558584,"unit":"ns"},"mean":{"estimate":27742237.89088293,"lower_bound":27115476.808958333,"upper_bound":28462083.943125,"unit":"ns"},"median":{"estimate":27585510.154761903,"lower_bound":27097763.03125,"upper_bound":28165168.75,"unit":"ns"},"median_abs_dev":{"estimate":739502.7281868272,"lower_bound":103992.14346627395,"upper_bound":1689671.1467023434,"unit":"ns"},"slope":{"estimate":28328455.305844154,"lower_bound":27312540.140370294,"upper_bound":29261362.92558584,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[89679084.0,183365666.0,269551875.0,361549667.0,465003833.0,559734417.0,645370250.0,803253958.0,839322375.0,906610208.0],"unit":"ns","throughput":[],"typical":{"estimate":6671301.900742115,"lower_bound":6517030.5026010405,"upper_bound":6891170.893703879,"unit":"ns"},"mean":{"estimate":6602938.229047621,"lower_bound":6494163.732892856,"upper_bound":6750089.87807143,"unit":"ns"},"median":{"estimate":6567092.25,"lower_bound":6446844.492857143,"upper_bound":6661288.69047619,"unit":"ns"},"median_abs_dev":{"estimate":141298.56391644911,"lower_bound":16908.562029813267,"upper_bound":275889.12454948924,"unit":"ns"},"slope":{"estimate":6671301.900742115,"lower_bound":6517030.5026010405,"upper_bound":6891170.893703879,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[118654625.0,253920583.0,398690292.0,515973375.0,673610750.0,777516292.0,968144667.0,1078712167.0,1218729500.0,1270283042.0],"unit":"ns","throughput":[],"typical":{"estimate":44153868.04675325,"lower_bound":43012382.62672811,"upper_bound":45206942.6088632,"unit":"ns"},"mean":{"estimate":43580043.92935185,"lower_bound":42394622.722407416,"upper_bound":44629469.389351845,"unit":"ns"},"median":{"estimate":43747135.44444445,"lower_bound":42342768.06666667,"upper_bound":45022756.48148148,"unit":"ns"},"median_abs_dev":{"estimate":1920114.5086347554,"lower_bound":171052.226407662,"upper_bound":3368051.592135134,"unit":"ns"},"slope":{"estimate":44153868.04675325,"lower_bound":43012382.62672811,"upper_bound":45206942.6088632,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1529956583.0,1415685041.0,1447321833.0,1491518500.0,1334948500.0,1196042959.0,1412568417.0,1034242667.0,1339030375.0,1042974167.0],"unit":"ns","throughput":[],"typical":{"estimate":1324428904.2,"lower_bound":1215410395.8275,"upper_bound":1421998258.1,"unit":"ns"},"mean":{"estimate":1324428904.2,"lower_bound":1215410395.8275,"upper_bound":1421998258.1,"unit":"ns"},"median":{"estimate":1375799396.0,"lower_bound":1188961333.5,"upper_bound":1453601770.5,"unit":"ns"},"median_abs_dev":{"estimate":138802151.8790692,"lower_bound":25762706.823420525,"upper_bound":299742919.4842994,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1458322500.0,1398670083.0,1433383667.0,1255448291.0,1240342792.0,1397229458.0,1360156833.0,1468139833.0,1554823333.0,1446027250.0],"unit":"ns","throughput":[],"typical":{"estimate":1401254404.0,"lower_bound":1342678076.615,"upper_bound":1456449548.9675,"unit":"ns"},"mean":{"estimate":1401254404.0,"lower_bound":1342678076.615,"upper_bound":1456449548.9675,"unit":"ns"},"median":{"estimate":1416026875.0,"lower_bound":1326338874.5,"upper_bound":1458322500.0,"unit":"ns"},"median_abs_dev":{"estimate":69985081.33541644,"lower_bound":16392057.486882806,"upper_bound":159976738.10694516,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_1000000","iteration_count":[98,196,294,392,490,588,686,784,882,980],"measured_values":[101270917.0,188437208.0,265402792.0,358652333.0,436285083.0,525450583.0,615297958.0,694863542.0,831528250.0,900289958.0],"unit":"ns","throughput":[],"typical":{"estimate":911628.4077922078,"lower_bound":893744.1943814562,"upper_bound":927747.8618403951,"unit":"ns"},"mean":{"estimate":924113.2550647879,"lower_bound":901201.3957835682,"upper_bound":953478.1039702985,"unit":"ns"},"median":{"estimate":908830.0029761905,"lower_bound":893623.4404761905,"upper_bound":942775.7936507936,"unit":"ns"},"median_abs_dev":{"estimate":24951.301405954462,"lower_bound":4861.503450629907,"upper_bound":59410.56132453733,"unit":"ns"},"slope":{"estimate":911628.4077922078,"lower_bound":893744.1943814562,"upper_bound":927747.8618403951,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114070458.0,209193167.0,325878000.0,445833709.0,548680708.0,676047209.0,774890084.0,884728958.0,1040949334.0,1107916084.0],"unit":"ns","throughput":[],"typical":{"estimate":27949921.766233765,"lower_bound":27590100.697101448,"upper_bound":28416161.112987008,"unit":"ns"},"mean":{"estimate":27722612.346825402,"lower_bound":27260489.83536905,"upper_bound":28152358.291130953,"unit":"ns"},"median":{"estimate":27686273.97857143,"lower_bound":27402139.96875,"upper_bound":28191110.65625,"unit":"ns"},"median_abs_dev":{"estimate":544557.7162996682,"lower_bound":39831.41175535266,"upper_bound":1269700.9935895505,"unit":"ns"},"slope":{"estimate":27949921.766233765,"lower_bound":27590100.697101448,"upper_bound":28416161.112987008,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[87,174,261,348,435,522,609,696,783,870],"measured_values":[86646583.0,170502167.0,266976291.0,344826500.0,461274667.0,564236583.0,615429208.0,691060250.0,821411250.0,889422375.0],"unit":"ns","throughput":[],"typical":{"estimate":1027708.317032393,"lower_bound":1008082.691464453,"upper_bound":1048499.4867012404,"unit":"ns"},"mean":{"estimate":1020576.8920717023,"lower_bound":1001860.4246741243,"upper_bound":1040873.4768226601,"unit":"ns"},"median":{"estimate":1016440.7803776683,"lower_bound":992902.658045977,"upper_bound":1049056.5134099617,"unit":"ns"},"median_abs_dev":{"estimate":36396.46208745435,"lower_bound":4499.805949422909,"upper_bound":54714.00961426442,"unit":"ns"},"slope":{"estimate":1027708.317032393,"lower_bound":1008082.691464453,"upper_bound":1048499.4867012404,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[102517458.0,218164042.0,340746417.0,474731417.0,540108041.0,662979292.0,780821958.0,895191792.0,1017434250.0,1105963291.0],"unit":"ns","throughput":[],"typical":{"estimate":27910555.5974026,"lower_bound":27632917.680194806,"upper_bound":28229568.56514628,"unit":"ns"},"mean":{"estimate":27736804.405416667,"lower_bound":27115506.4125,"upper_bound":28339523.692500003,"unit":"ns"},"median":{"estimate":27767790.3875,"lower_bound":27270505.25,"upper_bound":28262062.5,"unit":"ns"},"median_abs_dev":{"estimate":735041.376375407,"lower_bound":194488.4529471388,"upper_bound":1765546.728590282,"unit":"ns"},"slope":{"estimate":27910555.5974026,"lower_bound":27632917.680194806,"upper_bound":28229568.56514628,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/1000000","ORE/ore_decrypt/range_gt_10/1000000","ORE/ore/range_gt_100/1000000","ORE/ore_decrypt/range_gt_100/1000000","ORE/ore/range_lt_10/1000000","ORE/ore_decrypt/range_lt_10/1000000","ORE/ore/range_lt_100/1000000","ORE/ore_decrypt/range_lt_100/1000000","ORE/ore/range_selective_gt_100/1000000","ORE/ore_decrypt/range_selective_gt_100/1000000","ORE/ore/range_highly_selective_gt_10/1000000","ORE/ore_decrypt/range_highly_selective_gt_10/1000000","ORE/ore/range_lt_hybrid_ordered_10/1000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_10000000.json b/results/query/ore_rows_10000000.json index c8003ad..919660e 100644 --- a/results/query/ore_rows_10000000.json +++ b/results/query/ore_rows_10000000.json @@ -1,11 +1,15 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000000","iteration_count":[68,136,204,272,340,408,476,544,612,680],"measured_values":[96754708.0,190514417.0,311903541.0,446284333.0,607293333.0,559102750.0,713874375.0,861184667.0,889539041.0,1288719209.0],"unit":"ns","throughput":[],"typical":{"estimate":1618386.4049656226,"lower_bound":1470706.9087009805,"upper_bound":1778497.553267974,"unit":"ns"},"mean":{"estimate":1558136.8148313493,"lower_bound":1464714.5171058006,"upper_bound":1665958.3643382352,"unit":"ns"},"median":{"estimate":1514337.5042016807,"lower_bound":1422863.3529411764,"upper_bound":1684608.4556985295,"unit":"ns"},"median_abs_dev":{"estimate":151944.52071641618,"lower_bound":39032.30836561642,"upper_bound":275244.1077897269,"unit":"ns"},"slope":{"estimate":1618386.4049656226,"lower_bound":1470706.9087009805,"upper_bound":1778497.553267974,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[122745292.0,243557500.0,417834417.0,491022500.0,674226291.0,719285834.0,835771667.0,933069875.0,1040736167.0,1134173583.0],"unit":"ns","throughput":[],"typical":{"estimate":29569884.418181818,"lower_bound":28899143.72067039,"upper_bound":31001614.452566206,"unit":"ns"},"mean":{"estimate":30659210.838144846,"lower_bound":29555885.665783726,"upper_bound":31970052.37367758,"unit":"ns"},"median":{"estimate":30207465.291666664,"lower_bound":29158433.59375,"upper_bound":32198818.775,"unit":"ns"},"median_abs_dev":{"estimate":1134539.359936025,"lower_bound":181039.35616090894,"upper_bound":3062034.8526880145,"unit":"ns"},"slope":{"estimate":29569884.418181818,"lower_bound":28899143.72067039,"upper_bound":31001614.452566206,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[96368292.0,184738500.0,287618375.0,399742458.0,470208416.0,567242334.0,664979000.0,777074125.0,846849500.0,933156750.0],"unit":"ns","throughput":[],"typical":{"estimate":6773065.924489796,"lower_bound":6704166.143455959,"upper_bound":6880506.17325228,"unit":"ns"},"mean":{"estimate":6804781.0705753965,"lower_bound":6720349.197946428,"upper_bound":6902142.153240574,"unit":"ns"},"median":{"estimate":6769192.464285715,"lower_bound":6693216.567460317,"upper_bound":6893109.188988095,"unit":"ns"},"median_abs_dev":{"estimate":135399.32509618133,"lower_bound":26406.471641191452,"upper_bound":250662.22444985615,"unit":"ns"},"slope":{"estimate":6773065.924489796,"lower_bound":6704166.143455959,"upper_bound":6880506.17325228,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[77092000.0,152283833.0,265005583.0,359431458.0,452347500.0,568671333.0,654152166.0,771718625.0,828844167.0,938884167.0],"unit":"ns","throughput":[],"typical":{"estimate":46609637.766233765,"lower_bound":45695341.115384616,"upper_bound":47262734.50257138,"unit":"ns"},"mean":{"estimate":44628619.07101191,"lower_bound":42372863.941250004,"upper_bound":46517494.026136905,"unit":"ns"},"median":{"estimate":45640824.08333333,"lower_bound":41737466.125,"upper_bound":47057216.23214286,"unit":"ns"},"median_abs_dev":{"estimate":2058301.8336628408,"lower_bound":502791.5698236687,"upper_bound":4871586.791712038,"unit":"ns"},"slope":{"estimate":46609637.766233765,"lower_bound":45695341.115384616,"upper_bound":47262734.50257138,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000000","iteration_count":[65,130,195,260,325,390,455,520,585,650],"measured_values":[105368833.0,197014416.0,319040083.0,426084875.0,447583500.0,605195375.0,605450167.0,885369334.0,839801709.0,937549708.0],"unit":"ns","throughput":[],"typical":{"estimate":1489900.717922078,"lower_bound":1413984.4858299596,"upper_bound":1599318.1106162842,"unit":"ns"},"mean":{"estimate":1525164.4145641027,"lower_bound":1451041.7548749999,"upper_bound":1597151.6140032052,"unit":"ns"},"median":{"estimate":1533639.26025641,"lower_bound":1409782.0830769232,"upper_bound":1636102.9897435897,"unit":"ns"},"median_abs_dev":{"estimate":148663.64471453882,"lower_bound":13142.516020135417,"upper_bound":210705.82181860867,"unit":"ns"},"slope":{"estimate":1489900.717922078,"lower_bound":1413984.4858299596,"upper_bound":1599318.1106162842,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[112621833.0,231900917.0,368463333.0,452877042.0,536919083.0,690795917.0,833750167.0,971240792.0,1058357333.0,1121062458.0],"unit":"ns","throughput":[],"typical":{"estimate":29003058.982467532,"lower_bound":28221331.77245509,"upper_bound":29772558.5203808,"unit":"ns"},"mean":{"estimate":28933572.579246033,"lower_bound":28241585.402222227,"upper_bound":29613948.714389876,"unit":"ns"},"median":{"estimate":28885388.916666664,"lower_bound":28155458.25,"upper_bound":29875044.777777776,"unit":"ns"},"median_abs_dev":{"estimate":1177746.383330819,"lower_bound":221436.4989437163,"upper_bound":1985732.357936204,"unit":"ns"},"slope":{"estimate":29003058.982467532,"lower_bound":28221331.77245509,"upper_bound":29772558.5203808,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[88503333.0,181855500.0,252623875.0,324933958.0,403502250.0,555884417.0,598329417.0,644473709.0,784877250.0,836203250.0],"unit":"ns","throughput":[],"typical":{"estimate":7063346.9443722945,"lower_bound":6863231.634782609,"upper_bound":7292290.563510044,"unit":"ns"},"mean":{"estimate":7125701.138541667,"lower_bound":6923604.928472224,"upper_bound":7339598.524236113,"unit":"ns"},"median":{"estimate":7070149.555555556,"lower_bound":6769457.458333333,"upper_bound":7422347.222222222,"unit":"ns"},"median_abs_dev":{"estimate":449094.57423947775,"lower_bound":65857.02905580355,"upper_bound":598862.9317555579,"unit":"ns"},"slope":{"estimate":7063346.9443722945,"lower_bound":6863231.634782609,"upper_bound":7292290.563510044,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[164941792.0,205672292.0,313177250.0,403220417.0,460695583.0,550247833.0,613414625.0,732984750.0,867830750.0,948105209.0],"unit":"ns","throughput":[],"typical":{"estimate":46990875.223376624,"lower_bound":45741044.192944914,"upper_bound":48243978.77784196,"unit":"ns"},"mean":{"estimate":51365623.09682539,"lower_bound":46669729.81587302,"upper_bound":58845368.90753968,"unit":"ns"},"median":{"estimate":47809039.947222225,"lower_bound":45853986.083333336,"upper_bound":51418073.0,"unit":"ns"},"median_abs_dev":{"estimate":3403312.1314041317,"lower_bound":222724.0505358518,"upper_bound":7099355.448601242,"unit":"ns"},"slope":{"estimate":46990875.223376624,"lower_bound":45741044.192944914,"upper_bound":48243978.77784196,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[95843041.0,201657708.0,304984458.0,427695166.0,505595834.0,585515291.0,678240208.0,726232125.0,835371334.0,924562625.0],"unit":"ns","throughput":[],"typical":{"estimate":1141839.152652167,"lower_bound":1119105.9184395585,"upper_bound":1188490.1303304504,"unit":"ns"},"mean":{"estimate":1176997.5839218781,"lower_bound":1142517.04235884,"upper_bound":1213139.1789386116,"unit":"ns"},"median":{"estimate":1171550.2416810098,"lower_bound":1118301.6519410978,"upper_bound":1219821.3253012048,"unit":"ns"},"median_abs_dev":{"estimate":74131.15697756346,"lower_bound":7436.507116168425,"upper_bound":103685.9810534226,"unit":"ns"},"slope":{"estimate":1141839.152652167,"lower_bound":1119105.9184395585,"upper_bound":1188490.1303304504,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[113373417.0,227715209.0,371558208.0,482900416.0,561571500.0,711829834.0,786435125.0,915503667.0,1039270250.0,1165295833.0],"unit":"ns","throughput":[],"typical":{"estimate":28915183.388311688,"lower_bound":28547424.592136152,"upper_bound":29310076.44964528,"unit":"ns"},"mean":{"estimate":29038783.90159722,"lower_bound":28516230.744374998,"upper_bound":29641463.39604167,"unit":"ns"},"median":{"estimate":28739053.824652776,"lower_bound":28275684.9375,"upper_bound":29659576.416666668,"unit":"ns"},"median_abs_dev":{"estimate":776722.7467406206,"lower_bound":196280.85454031825,"upper_bound":1552509.936862439,"unit":"ns"},"slope":{"estimate":28915183.388311688,"lower_bound":28547424.592136152,"upper_bound":29310076.44964528,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000000","ORE/ore_decrypt/range_gt_10/10000000","ORE/ore/range_gt_100/10000000","ORE/ore_decrypt/range_gt_100/10000000","ORE/ore/range_lt_10/10000000","ORE/ore_decrypt/range_lt_10/10000000","ORE/ore/range_lt_100/10000000","ORE/ore_decrypt/range_lt_100/10000000","ORE/ore/range_lt_hybrid_ordered_10/10000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000000","iteration_count":[87,174,261,348,435,522,609,696,783,870],"measured_values":[98323791.0,179556500.0,314983834.0,414072708.0,465601041.0,520215750.0,598545917.0,697497791.0,747895333.0,817622250.0],"unit":"ns","throughput":[],"typical":{"estimate":990746.7703836394,"lower_bound":962899.6093942281,"upper_bound":1048634.4558857183,"unit":"ns"},"mean":{"estimate":1050566.8418669037,"lower_bound":997683.6188943625,"upper_bound":1109389.0357270571,"unit":"ns"},"median":{"estimate":1017042.9533045976,"lower_bound":975874.1749680715,"upper_bound":1130158.5172413792,"unit":"ns"},"median_abs_dev":{"estimate":85383.5012875116,"lower_bound":18449.535238834567,"upper_bound":155860.33595591437,"unit":"ns"},"slope":{"estimate":990746.7703836394,"lower_bound":962899.6093942281,"upper_bound":1048634.4558857183,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[152663583.0,208793833.0,376839250.0,426117792.0,611749542.0,822479166.0,864827584.0,943308667.0,1068448167.0,1247068083.0],"unit":"ns","throughput":[],"typical":{"estimate":30575220.538961038,"lower_bound":29556621.91258741,"upper_bound":31699050.683139537,"unit":"ns"},"mean":{"estimate":30837911.315565474,"lower_bound":28901047.2191808,"upper_bound":32979099.65130878,"unit":"ns"},"median":{"estimate":30737088.264285713,"lower_bound":28155738.875,"upper_bound":32723333.6625,"unit":"ns"},"median_abs_dev":{"estimate":1717343.6856941786,"lower_bound":382934.37555155455,"upper_bound":5795233.170139041,"unit":"ns"},"slope":{"estimate":30575220.538961038,"lower_bound":29556621.91258741,"upper_bound":31699050.683139537,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[90977875.0,186501292.0,287027042.0,397562792.0,494171333.0,575565792.0,656788250.0,758572875.0,848141208.0,942228125.0],"unit":"ns","throughput":[],"typical":{"estimate":6783157.150649351,"lower_bound":6737303.128664408,"upper_bound":6878526.923901099,"unit":"ns"},"mean":{"estimate":6794043.0357057825,"lower_bound":6691771.053869047,"upper_bound":6902273.792501276,"unit":"ns"},"median":{"estimate":6752125.763392856,"lower_bound":6695480.660714285,"upper_bound":6946783.830952381,"unit":"ns"},"median_abs_dev":{"estimate":128405.58332034537,"lower_bound":22562.981738712362,"upper_bound":307812.59867523337,"unit":"ns"},"slope":{"estimate":6783157.150649351,"lower_bound":6737303.128664408,"upper_bound":6878526.923901099,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[113897000.0,232397208.0,397345125.0,519163125.0,621163000.0,766687834.0,873259875.0,1103012542.0,1239555584.0,1181021583.0],"unit":"ns","throughput":[],"typical":{"estimate":42819443.15324675,"lower_bound":40520002.625,"upper_bound":45059059.02991446,"unit":"ns"},"mean":{"estimate":42093573.36343916,"lower_bound":40439694.773439154,"upper_bound":43741709.642058864,"unit":"ns"},"median":{"estimate":42088786.06349206,"lower_bound":39367386.1,"upper_bound":44586529.91203704,"unit":"ns"},"median_abs_dev":{"estimate":3544950.0836345563,"lower_bound":876885.1546655092,"upper_bound":4975484.032600828,"unit":"ns"},"slope":{"estimate":42819443.15324675,"lower_bound":40520002.625,"upper_bound":45059059.02991446,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000000","iteration_count":[75,150,225,300,375,450,525,600,675,750],"measured_values":[87186542.0,220425209.0,300638334.0,382010375.0,441172625.0,546292416.0,625702042.0,749709417.0,829634208.0,907020584.0],"unit":"ns","throughput":[],"typical":{"estimate":1224454.1792207793,"lower_bound":1208219.6462570878,"upper_bound":1247170.6005632961,"unit":"ns"},"mean":{"estimate":1251174.7992555555,"lower_bound":1204401.911453889,"upper_bound":1310696.4282222223,"unit":"ns"},"median":{"estimate":1221535.4311111113,"lower_bound":1191813.4133333333,"upper_bound":1292843.0341666667,"unit":"ns"},"median_abs_dev":{"estimate":55447.100776950865,"lower_bound":14623.578056113138,"upper_bound":120369.77885600949,"unit":"ns"},"slope":{"estimate":1224454.1792207793,"lower_bound":1208219.6462570878,"upper_bound":1247170.6005632961,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[110703125.0,198516125.0,404260333.0,475667500.0,543634792.0,694092209.0,897771083.0,1060358875.0,1111945500.0,1286987792.0],"unit":"ns","throughput":[],"typical":{"estimate":31266603.62922078,"lower_bound":29763377.071280994,"upper_bound":32192905.580566734,"unit":"ns"},"mean":{"estimate":30027166.262470238,"lower_bound":28282850.851705357,"upper_bound":31668301.594166666,"unit":"ns"},"median":{"estimate":30308296.875,"lower_bound":27675781.25,"upper_bound":32599733.90401786,"unit":"ns"},"median_abs_dev":{"estimate":3335044.555406124,"lower_bound":795386.6271259408,"upper_bound":4855322.435035173,"unit":"ns"},"slope":{"estimate":31266603.62922078,"lower_bound":29763377.071280994,"upper_bound":32192905.580566734,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[83866125.0,170120125.0,259221375.0,334456292.0,443956542.0,519914291.0,605788292.0,679443167.0,775439583.0,891439125.0],"unit":"ns","throughput":[],"typical":{"estimate":6682972.028171828,"lower_bound":6579059.963651733,"upper_bound":6784322.239336775,"unit":"ns"},"mean":{"estimate":6624357.864203297,"lower_bound":6543030.635277014,"upper_bound":6709522.11956044,"unit":"ns"},"median":{"estimate":6637195.333333334,"lower_bound":6497161.057692308,"upper_bound":6743557.421978022,"unit":"ns"},"median_abs_dev":{"estimate":146926.8144847976,"lower_bound":13985.299024788055,"upper_bound":278028.2133424738,"unit":"ns"},"slope":{"estimate":6682972.028171828,"lower_bound":6579059.963651733,"upper_bound":6784322.239336775,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[113666667.0,250611834.0,390298542.0,569264750.0,628248917.0,733116125.0,946263750.0,978346458.0,1156705750.0,1242898166.0],"unit":"ns","throughput":[],"typical":{"estimate":42331374.56277056,"lower_bound":41333395.53333333,"upper_bound":43776739.03638513,"unit":"ns"},"mean":{"estimate":42317020.34695767,"lower_bound":40844606.648394845,"upper_bound":43904738.14390477,"unit":"ns"},"median":{"estimate":41825950.06666666,"lower_bound":40764435.75,"upper_bound":43950566.137566134,"unit":"ns"},"median_abs_dev":{"estimate":1600311.5710371172,"lower_bound":336047.79031395837,"upper_bound":4454316.170310078,"unit":"ns"},"slope":{"estimate":42331374.56277056,"lower_bound":41333395.53333333,"upper_bound":43776739.03638513,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1583933458.0,1351277333.0,1725878708.0,1455653292.0,1484423250.0,1250594750.0,1502571458.0,1513434792.0,1185822250.0,1309759459.0],"unit":"ns","throughput":[],"typical":{"estimate":1436334875.0,"lower_bound":1341971804.2,"upper_bound":1533460300.2175,"unit":"ns"},"mean":{"estimate":1436334875.0,"lower_bound":1341971804.2,"upper_bound":1533460300.2175,"unit":"ns"},"median":{"estimate":1470038271.0,"lower_bound":1300936041.5,"upper_bound":1543252458.0,"unit":"ns"},"median_abs_dev":{"estimate":172467982.40058124,"lower_bound":26906532.703113556,"upper_bound":293916053.99354696,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1684110333.0,1652424500.0,1433998125.0,1651120833.0,1405893875.0,1682478667.0,1299228000.0,1364037166.0,1384241375.0,1518795084.0],"unit":"ns","throughput":[],"typical":{"estimate":1507632795.8,"lower_bound":1420833891.9425,"upper_bound":1593975379.2,"unit":"ns"},"mean":{"estimate":1507632795.8,"lower_bound":1420833891.9425,"upper_bound":1593975379.2,"unit":"ns"},"median":{"estimate":1476396604.5,"lower_bound":1384241375.0,"upper_bound":1666799750.0,"unit":"ns"},"median_abs_dev":{"estimate":212815118.5688764,"lower_bound":23245561.93150878,"upper_bound":241836488.21324408,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1091136416.0,3271345959.0,1703446000.0,1863895000.0,1801209209.0,1936193459.0,3146901750.0,1404908167.0,2070000000.0,2065330208.0],"unit":"ns","throughput":[],"typical":{"estimate":2035436616.8,"lower_bound":1659976091.5,"upper_bound":2458165174.0775,"unit":"ns"},"mean":{"estimate":2035436616.8,"lower_bound":1659976091.5,"upper_bound":2458165174.0775,"unit":"ns"},"median":{"estimate":1900044229.5,"lower_bound":1603058688.0,"upper_bound":2606115979.0,"unit":"ns"},"median_abs_dev":{"estimate":271726475.37589073,"lower_bound":99190787.08231151,"upper_bound":1176074931.7492962,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1552113250.0,2172603916.0,1872198458.0,3450851208.0,1147853625.0,3246299583.0,2322079667.0,2057241375.0,3460448708.0,2157530625.0],"unit":"ns","throughput":[],"typical":{"estimate":2343922041.5,"lower_bound":1887853051.1875,"upper_bound":2816448116.4,"unit":"ns"},"mean":{"estimate":2343922041.5,"lower_bound":1887853051.1875,"upper_bound":2816448116.4,"unit":"ns"},"median":{"estimate":2165067270.5,"lower_bound":1804677312.5,"upper_bound":3246299583.0,"unit":"ns"},"median_abs_dev":{"estimate":671486454.1816324,"lower_bound":85518250.12504756,"upper_bound":1496947093.6238766,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000000","iteration_count":[88,176,264,352,440,528,616,704,792,880],"measured_values":[77901208.0,161719083.0,246808666.0,312706375.0,421551458.0,499964750.0,563170792.0,649541291.0,759034916.0,809632667.0],"unit":"ns","throughput":[],"typical":{"estimate":931709.0746162928,"lower_bound":918310.8471170455,"upper_bound":947549.5376283496,"unit":"ns"},"mean":{"estimate":924762.2270071248,"lower_bound":909667.5991612215,"upper_bound":939525.6030707634,"unit":"ns"},"median":{"estimate":921340.5004261364,"lower_bound":903614.4048295454,"upper_bound":946902.9356060605,"unit":"ns"},"median_abs_dev":{"estimate":28987.23527062921,"lower_bound":2806.156351743266,"upper_bound":48881.494453174375,"unit":"ns"},"slope":{"estimate":931709.0746162928,"lower_bound":918310.8471170455,"upper_bound":947549.5376283496,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[115818125.0,288138292.0,340111334.0,450383250.0,645769041.0,674034458.0,818898417.0,979822250.0,1059042917.0,1232040708.0],"unit":"ns","throughput":[],"typical":{"estimate":30006281.76363636,"lower_bound":29136401.555657662,"upper_bound":30737339.444444444,"unit":"ns"},"mean":{"estimate":30192129.702876985,"lower_bound":28937994.13756746,"upper_bound":31781740.29503472,"unit":"ns"},"median":{"estimate":29332115.42063492,"lower_bound":28342611.166666668,"upper_bound":31453948.68125,"unit":"ns"},"median_abs_dev":{"estimate":1801736.0176086272,"lower_bound":238717.9622244145,"upper_bound":3280429.544802399,"unit":"ns"},"slope":{"estimate":30006281.76363636,"lower_bound":29136401.555657662,"upper_bound":30737339.444444444,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000000","ORE/ore_decrypt/range_gt_10/10000000","ORE/ore/range_gt_100/10000000","ORE/ore_decrypt/range_gt_100/10000000","ORE/ore/range_lt_10/10000000","ORE/ore_decrypt/range_lt_10/10000000","ORE/ore/range_lt_100/10000000","ORE/ore_decrypt/range_lt_100/10000000","ORE/ore/range_selective_gt_100/10000000","ORE/ore_decrypt/range_selective_gt_100/10000000","ORE/ore/range_highly_selective_gt_10/10000000","ORE/ore_decrypt/range_highly_selective_gt_10/10000000","ORE/ore/range_lt_hybrid_ordered_10/10000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} From a45b3ef9f5d2fb36635808ec63a047fa036e4150 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Sat, 16 May 2026 09:57:35 +1000 Subject: [PATCH 24/30] bench: point at cipherstash-suite branch carrying the RequestFailed source fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switches `cipherstash-client` and `stack-profile` from crates.io 0.34.1-alpha.4 to a git dep on cipherstash-suite branch `dan/zerokms-unexpected-error-context` (cipherstash-suite#1960). That branch makes `GenerateKeyError::RequestFailed` expose its inner `ViturRequestError` through `Error::source()` and surfaces `kind` + `message` in Display, so the bench's ZeroKMS failure path now shows the real underlying cause instead of the opaque "Unexpected error". API renames between alpha.4 (crates.io) and the current suite main: * `Plaintext::Json` → `Plaintext::JsonB` * `ColumnType::Text` → `ColumnType::Utf8Str` Adapted across the ingest binaries and benches. Revert this commit (or the affected lines) when moving back to a published cipherstash-client. `encrypt_combo` now installs a `tracing-subscriber` honouring RUST_LOG so the cipherstash-client trace! emissions (including the rich ViturRequestError display from `vitur_client::generate_keys`) reach stderr when the env var is set. Default is `warn` if RUST_LOG is unset — silent on the success path, but lets us drop in `RUST_LOG=cipherstash_client=trace` to capture the failure chain. `.cargo/config.toml` sets `net.git-fetch-with-cli = true` so cargo can authenticate to the private cipherstash-suite repo through the user's SSH agent / git CLI config (libgit2's built-in SSH transport couldn't). --- .cargo/config.toml | 7 ++ Cargo.lock | 140 +++++++++---------------------- Cargo.toml | 15 +++- benches/combo.rs | 2 +- benches/exact.rs | 2 +- benches/match.rs | 2 +- src/bin/encrypt_category.rs | 2 +- src/bin/encrypt_combo.rs | 18 +++- src/bin/encrypt_json_large.rs | 2 +- src/bin/encrypt_json_small.rs | 2 +- src/bin/encrypt_ste_vec_large.rs | 2 +- src/bin/encrypt_ste_vec_small.rs | 2 +- src/bin/encrypt_string.rs | 2 +- src/lib.rs | 6 +- 14 files changed, 88 insertions(+), 116 deletions(-) create mode 100644 .cargo/config.toml diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 0000000..71510b8 --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,7 @@ +# Use the system `git` CLI for fetching git dependencies. Required because +# the cipherstash-client / stack-profile git deps in Cargo.toml point at +# the private cipherstash-suite repo, and cargo's built-in libgit2 SSH +# transport can't pick up the user's SSH agent / config the same way the +# CLI does. Removing this needs the deps to move back to crates.io. +[net] +git-fetch-with-cli = true diff --git a/Cargo.lock b/Cargo.lock index bf5d43e..30fc946 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -619,9 +619,8 @@ dependencies = [ [[package]] name = "cipherstash-client" -version = "0.34.1-alpha.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3d67cc26d8422509d2c20644576124e7344a4bf14ded06c7affa8dc18aabca" +version = "0.34.0" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" dependencies = [ "aes-gcm-siv", "anyhow", @@ -648,7 +647,6 @@ dependencies = [ "miette", "opaque-debug", "open 3.2.0", - "orderable-bytes", "ore-rs 0.8.3", "percent-encoding", "rand 0.8.6", @@ -676,7 +674,6 @@ dependencies = [ "url", "uuid", "vitaminc", - "vitaminc-protected", "winnow 0.6.26", "zeroize", "zerokms-protocol", @@ -684,21 +681,18 @@ dependencies = [ [[package]] name = "cipherstash-config" -version = "0.34.1-alpha.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "283fa04db19f9bf2cb2f09e8c1505a15560310bc50fdc066734072c616aa8ca9" +version = "0.34.0" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" dependencies = [ "bitflags 2.11.1", "serde", - "serde_json", "thiserror 1.0.69", ] [[package]] name = "cipherstash-core" -version = "0.34.1-alpha.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5bb7181053c3fc35569e0800fa7510c85ee2bffee21abbd2a7aeb498f5f0972" +version = "0.34.0" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" dependencies = [ "hmac", "lazy_static", @@ -732,16 +726,12 @@ dependencies = [ [[package]] name = "cllw-ore" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d007a5be83ae12adbd17543f9631d64090d761c029d2f8f7eb8f8ddb2a87caf" +version = "0.34.0" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" dependencies = [ "blake3", - "chrono", "hex", - "orderable-bytes", "postgres-types", - "rust_decimal", "subtle", "thiserror 1.0.69", "unicode-normalization", @@ -1038,9 +1028,8 @@ dependencies = [ [[package]] name = "cts-common" -version = "0.34.1-alpha.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b26644e630f2e690194c6b61f5b613b768061750f2060cf4db73ddb8058d284" +version = "0.34.0" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" dependencies = [ "arrayvec", "base32", @@ -1052,9 +1041,7 @@ dependencies = [ "nom", "regex", "serde", - "serde_json", "thiserror 1.0.69", - "tracing", "url", "utoipa", "uuid", @@ -1121,6 +1108,7 @@ dependencies = [ "sqlx", "stack-profile", "tokio", + "tracing-subscriber", ] [[package]] @@ -2733,10 +2721,6 @@ name = "orderable-bytes" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adba0469737879cabc3bdcaa6a7beb4ff7f5bb4aa5d624816c8bb9d425a7d5df" -dependencies = [ - "chrono", - "rust_decimal", -] [[package]] name = "ore-rs" @@ -2766,14 +2750,12 @@ dependencies = [ "aes", "block-modes 0.9.1", "byteorder", - "chrono", "hex", "lazy_static", "num", "orderable-bytes", "rand 0.8.6", "rand_chacha 0.3.1", - "rust_decimal", "subtle-ng", "thiserror 1.0.69", "zeroize", @@ -3038,7 +3020,6 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.114", ] [[package]] @@ -3277,9 +3258,8 @@ dependencies = [ [[package]] name = "recipher" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b3561e1082283a4c064635b7886aa4d24db57a43ac31c55930c10797ab5cdeb" +version = "0.34.0" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" dependencies = [ "aes", "async-trait", @@ -4254,9 +4234,8 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stack-auth" -version = "0.34.1-alpha.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "072e420b2bb179e7627f2e9e5ee4080d1f939c6710ecf91524d52fc87e40cbd0" +version = "0.34.0" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" dependencies = [ "aquamarine", "cts-common", @@ -4273,16 +4252,13 @@ dependencies = [ "url", "uuid", "vitaminc", - "vitaminc-protected", "zeroize", - "zerokms-protocol", ] [[package]] name = "stack-profile" -version = "0.34.1-alpha.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd61bc4129d2258ec1ba89d742558308560fc0f585f9c24d478685def8efd14" +version = "0.34.0" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" dependencies = [ "dirs", "gethostname", @@ -4948,36 +4924,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "validator" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43fb22e1a008ece370ce08a3e9e4447a910e92621bb49b85d6e48a45397e7cfa" -dependencies = [ - "idna", - "once_cell", - "regex", - "serde", - "serde_derive", - "serde_json", - "url", - "validator_derive", -] - -[[package]] -name = "validator_derive" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7df16e474ef958526d1205f6dda359fdfab79d9aa6d54bafcb92dcd07673dca" -dependencies = [ - "darling", - "once_cell", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "valuable" version = "0.1.1" @@ -4998,11 +4944,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "vitaminc" -version = "0.1.0-pre4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c8b739a2cb1e528e77a69267728532f52d2d5ce18ae2839e26c797859fe9015" +version = "0.1.0-pre4" +source = "git+https://github.com/cipherstash/vitaminc?rev=4327afd#4327afd37b2991508ed0e2e160aebe84538d234c" dependencies = [ - "vitaminc-aead", "vitaminc-encrypt", "vitaminc-protected", "vitaminc-random", @@ -5011,9 +4955,8 @@ dependencies = [ [[package]] name = "vitaminc-aead" -version = "0.1.0-pre4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c29cef4d4b0d018c4223d366017d2a9756012acf76e25011aaca877f3c74904" +version = "0.1.0-pre4" +source = "git+https://github.com/cipherstash/vitaminc?rev=4327afd#4327afd37b2991508ed0e2e160aebe84538d234c" dependencies = [ "bytes", "serde", @@ -5024,9 +4967,8 @@ dependencies = [ [[package]] name = "vitaminc-encrypt" -version = "0.1.0-pre4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e3869aaf60ebb95ccbdfcf003985132325b4d1ac6f5d945ad2fbb9149afd3a" +version = "0.1.0-pre4" +source = "git+https://github.com/cipherstash/vitaminc?rev=4327afd#4327afd37b2991508ed0e2e160aebe84538d234c" dependencies = [ "aws-lc-rs", "vitaminc-aead", @@ -5037,12 +4979,12 @@ dependencies = [ [[package]] name = "vitaminc-protected" -version = "0.1.0-pre4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af693c39d3cd1c818ef6267539433c6ceca87840b12d24124adbc9c8ecba1709" +version = "0.1.0-pre4" +source = "git+https://github.com/cipherstash/vitaminc?rev=4327afd#4327afd37b2991508ed0e2e160aebe84538d234c" dependencies = [ "bitvec", "digest", + "opaque-debug", "serde", "serde_bytes", "subtle", @@ -5052,9 +4994,8 @@ dependencies = [ [[package]] name = "vitaminc-protected-derive" -version = "0.1.0-pre4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e74520596b66eec546ef18d5376f6f18cdaf874caca9fa39e03eb12f9abb76fa" +version = "0.1.0-pre4" +source = "git+https://github.com/cipherstash/vitaminc?rev=4327afd#4327afd37b2991508ed0e2e160aebe84538d234c" dependencies = [ "proc-macro2", "quote", @@ -5063,11 +5004,11 @@ dependencies = [ [[package]] name = "vitaminc-random" -version = "0.1.0-pre4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea9de431cb93359d293ec7e70d05d87117a57f34bfc5bc94f040b81d4dd1afd6" +version = "0.1.0-pre4" +source = "git+https://github.com/cipherstash/vitaminc?rev=4327afd#4327afd37b2991508ed0e2e160aebe84538d234c" dependencies = [ - "rand 0.10.1", + "rand 0.9.2", + "rand_chacha 0.9.0", "thiserror 2.0.18", "vitaminc-protected", "vitaminc-random-derives", @@ -5076,9 +5017,8 @@ dependencies = [ [[package]] name = "vitaminc-random-derives" -version = "0.1.0-pre4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49d33ac4682235551d25c874525c20e03d4c863b39f556391f52f7a2083bfbdf" +version = "0.1.0-pre4" +source = "git+https://github.com/cipherstash/vitaminc?rev=4327afd#4327afd37b2991508ed0e2e160aebe84538d234c" dependencies = [ "proc-macro2", "quote", @@ -5087,9 +5027,8 @@ dependencies = [ [[package]] name = "vitaminc-traits" -version = "0.1.0-pre4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c25a9e51d24c3befddd71e907dd4ae9f21cfbaae065fb0ef5202e5d21cd198d0" +version = "0.1.0-pre4" +source = "git+https://github.com/cipherstash/vitaminc?rev=4327afd#4327afd37b2991508ed0e2e160aebe84538d234c" dependencies = [ "anyhow", "bytes", @@ -5926,9 +5865,8 @@ dependencies = [ [[package]] name = "zerokms-protocol" -version = "0.12.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2f045e2ee975a3d448419245c4621ea8844d2a004c63a96277181dc7cf8483" +version = "0.34.0" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" dependencies = [ "base64", "cipherstash-config", @@ -5940,9 +5878,7 @@ dependencies = [ "serde", "static_assertions", "thiserror 1.0.69", - "utoipa", "uuid", - "validator", "zeroize", ] diff --git a/Cargo.toml b/Cargo.toml index d9cd8e6..72ce436 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,13 +14,24 @@ ore-rs = "0.7.0" hex = "0.4.3" hex-literal = "0.3.4" rand = "0.8.5" -cipherstash-client = { version = "0.34.1-alpha.4", features = ["tokio"] } -stack-profile = "0.34.1-alpha.4" +# Temporarily pointed at cipherstash-suite branch carrying the +# RequestFailed Display/source fix (cipherstash-suite#1960) so the +# benches surface the real ZeroKMS error chain instead of the opaque +# "Unexpected error" catch-all. Revert to a crates.io version pin once +# the fix lands in a published cipherstash-client release. +cipherstash-client = { git = "ssh://git@github.com/cipherstash/cipherstash-suite.git", branch = "dan/zerokms-unexpected-error-context", features = ["tokio"] } +stack-profile = { git = "ssh://git@github.com/cipherstash/cipherstash-suite.git", branch = "dan/zerokms-unexpected-error-context" } anyhow = "1.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" chrono = "0.4" fake = { version = "4.4.0", features = ["chrono"] } +# tracing-subscriber wires up the cipherstash-client / zerokms-protocol +# trace! emissions to stderr when RUST_LOG is set. Without a subscriber +# the trace calls are no-ops; with one, RUST_LOG=cipherstash_client=trace +# (etc.) surfaces the rich ViturRequestError display from the inner +# trace! at vitur_client::generate_keys. +tracing-subscriber = { version = "0.3", features = ["env-filter"] } [[bin]] name = "generate_data" diff --git a/benches/combo.rs b/benches/combo.rs index 7284d17..147b7f8 100644 --- a/benches/combo.rs +++ b/benches/combo.rs @@ -73,7 +73,7 @@ async fn build_query( // build_query produces a bloom-filter-shaped ciphertext for the // parameter. let column_config = ColumnConfig::build("name") - .casts_as(ColumnType::Text) + .casts_as(ColumnType::Utf8Str) .add_index(Index::new_unique()) .add_index(Index::new_match()); diff --git a/benches/exact.rs b/benches/exact.rs index 3e344fa..90f7f92 100644 --- a/benches/exact.rs +++ b/benches/exact.rs @@ -25,7 +25,7 @@ async fn build_query( table_name: &str, ) -> EncryptedQuery { let column_config = ColumnConfig::build("value") - .casts_as(ColumnType::Text) + .casts_as(ColumnType::Utf8Str) .add_index(Index::new_unique()); let identifier = Identifier::new(table_name, "value"); diff --git a/benches/match.rs b/benches/match.rs index 2618461..eb7ed25 100644 --- a/benches/match.rs +++ b/benches/match.rs @@ -26,7 +26,7 @@ async fn build_query( table_name: &str, ) -> EncryptedQuery { let column_config = ColumnConfig::build("value") - .casts_as(ColumnType::Text) + .casts_as(ColumnType::Utf8Str) .add_index(Index::new_match()); let identifier = Identifier::new(table_name, "value"); diff --git a/src/bin/encrypt_category.rs b/src/bin/encrypt_category.rs index 524cdb6..3d2f087 100644 --- a/src/bin/encrypt_category.rs +++ b/src/bin/encrypt_category.rs @@ -32,7 +32,7 @@ async fn main() -> Result<()> { .identifier(Identifier::new(&table_name, "value")) .column_config( ColumnConfig::build("value") - .casts_as(ColumnType::Text) + .casts_as(ColumnType::Utf8Str) .add_index(Index::new_unique()), ) .build()? diff --git a/src/bin/encrypt_combo.rs b/src/bin/encrypt_combo.rs index 97bb363..a3c9658 100644 --- a/src/bin/encrypt_combo.rs +++ b/src/bin/encrypt_combo.rs @@ -36,6 +36,20 @@ const REINIT_EVERY_ROWS: i32 = 200_000; #[tokio::main] async fn main() -> Result<()> { + // Honour RUST_LOG for cipherstash-client / zerokms-protocol trace! + // emissions. The cipherstash-client traces the full ViturRequestError + // (kind + message + underlying transport error) at the failure point + // in vitur_client::generate_keys; without a subscriber that line is a + // no-op. The try_init is a no-op if a subscriber was already installed + // upstream — keeps it safe to leave in. + let _ = tracing_subscriber::fmt() + .with_env_filter( + tracing_subscriber::EnvFilter::try_from_default_env() + .unwrap_or_else(|_| tracing_subscriber::EnvFilter::new("warn")), + ) + .with_writer(std::io::stderr) + .try_init(); + let database_url = env::var("DATABASE_URL").context("DATABASE_URL environment variable must be set")?; let num_records: i32 = env::var("NUM_RECORDS") @@ -55,14 +69,14 @@ async fn main() -> Result<()> { let mut rows_since_reinit: i32 = 0; let name_config = ColumnConfig::build("name") - .casts_as(ColumnType::Text) + .casts_as(ColumnType::Utf8Str) .add_index(Index::new_unique()) .add_index(Index::new_match()); let age_config = ColumnConfig::build("age") .casts_as(ColumnType::Int) .add_index(Index::new_ore()); let category_config = ColumnConfig::build("category") - .casts_as(ColumnType::Text) + .casts_as(ColumnType::Utf8Str) .add_index(Index::new_unique()); let name_ident = Identifier::new(&table_name, "name"); diff --git a/src/bin/encrypt_json_large.rs b/src/bin/encrypt_json_large.rs index 9e580bb..d8e6dff 100644 --- a/src/bin/encrypt_json_large.rs +++ b/src/bin/encrypt_json_large.rs @@ -40,7 +40,7 @@ async fn main() -> Result<()> { .identifier(Identifier::new("json_large_encrypted", "value")) .column_config( // No searchable indexes — pure encryption-and-ingest baseline. - ColumnConfig::build("value").casts_as(ColumnType::Json), + ColumnConfig::build("value").casts_as(ColumnType::JsonB), ) .build()? .ingest::(FakeJsonLarge) diff --git a/src/bin/encrypt_json_small.rs b/src/bin/encrypt_json_small.rs index 6178cef..5a42a0d 100644 --- a/src/bin/encrypt_json_small.rs +++ b/src/bin/encrypt_json_small.rs @@ -43,7 +43,7 @@ async fn main() -> Result<()> { .identifier(Identifier::new(&table_name, "value")) .column_config( // No searchable indexes — pure encryption-and-ingest baseline. - ColumnConfig::build("value").casts_as(ColumnType::Json), + ColumnConfig::build("value").casts_as(ColumnType::JsonB), ) .build()? .ingest::(FakeJsonSmall) diff --git a/src/bin/encrypt_ste_vec_large.rs b/src/bin/encrypt_ste_vec_large.rs index 8dab2b4..fcdb91d 100644 --- a/src/bin/encrypt_ste_vec_large.rs +++ b/src/bin/encrypt_ste_vec_large.rs @@ -45,7 +45,7 @@ async fn main() -> Result<()> { .identifier(Identifier::new("json_large_encrypted", "value")) .column_config( ColumnConfig::build("value") - .casts_as(ColumnType::Json) + .casts_as(ColumnType::JsonB) // FIXME: There is no convenience method for SteVec yet on Index .add_index(Index::new(IndexType::SteVec { prefix: "value".to_string(), diff --git a/src/bin/encrypt_ste_vec_small.rs b/src/bin/encrypt_ste_vec_small.rs index 9f6005a..36b5a4b 100644 --- a/src/bin/encrypt_ste_vec_small.rs +++ b/src/bin/encrypt_ste_vec_small.rs @@ -48,7 +48,7 @@ async fn main() -> Result<()> { .identifier(Identifier::new(&table_name, "value")) .column_config( ColumnConfig::build("value") - .casts_as(ColumnType::Json) + .casts_as(ColumnType::JsonB) // FIXME: There is no convenience method for SteVec yet on Index .add_index(Index::new(IndexType::SteVec { prefix: "value".to_string(), diff --git a/src/bin/encrypt_string.rs b/src/bin/encrypt_string.rs index 4d41059..c27afe5 100644 --- a/src/bin/encrypt_string.rs +++ b/src/bin/encrypt_string.rs @@ -41,7 +41,7 @@ async fn main() -> Result<()> { .identifier(Identifier::new(&table_name, "value")) .column_config( ColumnConfig::build("value") - .casts_as(ColumnType::Text) + .casts_as(ColumnType::Utf8Str) .add_index(Index::new_unique()) .add_index(Index::new_match()), ) diff --git a/src/lib.rs b/src/lib.rs index 7d30920..ea7ba69 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -202,7 +202,11 @@ pub struct WrappedJson(pub serde_json::Value); impl From for Plaintext { fn from(WrappedJson(value): WrappedJson) -> Self { - Plaintext::Json(Some(value)) + // cipherstash-client renamed `Plaintext::Json` → `Plaintext::JsonB` + // between alpha.4 (crates.io) and the suite-1 main branch we're + // currently pinned to. Use the new name here; revert if/when we + // move back to a published cipherstash-client. + Plaintext::JsonB(Some(value)) } } From 098895e48de4ba3fee6de184bbde50a4827aafd3 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Sat, 16 May 2026 13:45:04 +1000 Subject: [PATCH 25/30] bench: drop manual cipher refresh, tune ZeroKMS client for bulk ingest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `init_scoped_cipher` now sets `with_connect_timeout(5)`, `with_request_timeout(60)`, `with_pool_idle_timeout(600)`, `with_max_keys_per_req(100)`, `with_max_concurrent_reqs(20)` — bulk-ingest trade-off favouring per-request reliability and persistent connection pool warmth over the cipherstash-client defaults (which are tuned for the interactive case). See the new "Tuning for bulk ingest" section on `ZeroKMSBuilder` in cipherstash-suite#1960 for the rationale. Removed the `REINIT_EVERY_ROWS` / "refresh cipher every 200k rows" loop from `lib.rs::ingest` and `encrypt_combo.rs`. It was based on a wrong assumption about ScopedCipher having a TTL — auth tokens auto-refresh through `stack_auth::AutoRefresh` underneath, with no need to recreate the cipher. The refresh loop was actively harmful: it discarded the warm `reqwest::Client` connection pool, forcing cold-start TLS handshakes on the next request, which then timed out against the (then-default 10s) `REQUEST_TIMEOUT_SECS` and hit our retry loop. 10M combo ingestion now completes in ~2h 17min (vs the prior run which hit MAX_ATTEMPTS=30 retries without finishing in single invocation): | Class | Count | |----------------------------------|-------| | SendRequest: connection-closed | 4 | | ParseResponse: timed out body | 2 | | Forbidden (WAF false-positive) | 2 | | SendRequest: timed out (old) | 0 | The remaining failures all auto-recover via the prepare-task retry loop and trace to distinct layers: TCP/LB connection drops, ZeroKMS-side slow body, and an AWS WAF managed XSS rule false-positive on `/generate-data-key` (random key material occasionally matches the `CrossSiteScripting_BODY` regex). Investigation followups land separately. --- Cargo.lock | 18 +++++++-------- src/bin/encrypt_combo.rs | 20 +++------------- src/lib.rs | 50 ++++++++++++++++++++++++---------------- 3 files changed, 42 insertions(+), 46 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 30fc946..db1f77c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -620,7 +620,7 @@ dependencies = [ [[package]] name = "cipherstash-client" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" dependencies = [ "aes-gcm-siv", "anyhow", @@ -682,7 +682,7 @@ dependencies = [ [[package]] name = "cipherstash-config" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" dependencies = [ "bitflags 2.11.1", "serde", @@ -692,7 +692,7 @@ dependencies = [ [[package]] name = "cipherstash-core" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" dependencies = [ "hmac", "lazy_static", @@ -727,7 +727,7 @@ dependencies = [ [[package]] name = "cllw-ore" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" dependencies = [ "blake3", "hex", @@ -1029,7 +1029,7 @@ dependencies = [ [[package]] name = "cts-common" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" dependencies = [ "arrayvec", "base32", @@ -3259,7 +3259,7 @@ dependencies = [ [[package]] name = "recipher" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" dependencies = [ "aes", "async-trait", @@ -4235,7 +4235,7 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stack-auth" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" dependencies = [ "aquamarine", "cts-common", @@ -4258,7 +4258,7 @@ dependencies = [ [[package]] name = "stack-profile" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" dependencies = [ "dirs", "gethostname", @@ -5866,7 +5866,7 @@ dependencies = [ [[package]] name = "zerokms-protocol" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#e9c9bb57415ea5b4e5bdd2db559ae84880cde6b9" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" dependencies = [ "base64", "cipherstash-config", diff --git a/src/bin/encrypt_combo.rs b/src/bin/encrypt_combo.rs index a3c9658..990e4ae 100644 --- a/src/bin/encrypt_combo.rs +++ b/src/bin/encrypt_combo.rs @@ -30,10 +30,6 @@ use sqlx::{postgres::PgPoolOptions, types::Json, QueryBuilder}; use std::borrow::Cow; use std::env; -// Re-init scoped cipher every 200_000 rows (same threshold as lib.rs::ingest) -// to stay under the ZeroKMS TTL window for 10M-row preparations. -const REINIT_EVERY_ROWS: i32 = 200_000; - #[tokio::main] async fn main() -> Result<()> { // Honour RUST_LOG for cipherstash-client / zerokms-protocol trace! @@ -65,8 +61,9 @@ async fn main() -> Result<()> { .connect(&database_url) .await?; - let mut scoped_cipher = init_scoped_cipher().await?; - let mut rows_since_reinit: i32 = 0; + // Init once and reuse for the binary lifetime — see lib.rs::ingest + // for the rationale. + let scoped_cipher = init_scoped_cipher().await?; let name_config = ColumnConfig::build("name") .casts_as(ColumnType::Utf8Str) @@ -84,15 +81,6 @@ async fn main() -> Result<()> { let category_ident = Identifier::new(&table_name, "category"); for batch_start in (0..num_records).step_by(batch_size) { - if rows_since_reinit >= REINIT_EVERY_ROWS { - eprintln!( - "encrypt_combo: refreshing scoped cipher after {} rows ({}/{} total)", - rows_since_reinit, batch_start, num_records - ); - scoped_cipher = init_scoped_cipher().await?; - rows_since_reinit = 0; - } - let batch_end = (batch_start + batch_size as i32).min(num_records); let batch_count = batch_end - batch_start; @@ -147,8 +135,6 @@ async fn main() -> Result<()> { .build() .execute(&pool) .await?; - - rows_since_reinit += batch_count; } Ok(()) diff --git a/src/lib.rs b/src/lib.rs index ea7ba69..7cad279 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -33,8 +33,30 @@ impl Dummy for String { } pub async fn init_scoped_cipher() -> Result>> { + // Tuning for the bulk-ingest path. See the "Tuning for bulk ingest" + // section on `ZeroKMSBuilder` (cipherstash-suite#1960) for the + // rationale; the short version: + // + // - `connect_timeout(5)`: fast-fail if TCP+TLS to ZeroKMS can't open + // in 5 s. Real broken-network signal. + // - `request_timeout(60)`: generous total budget. The default (10 s) + // trips at scale because cold-pool `generate-data-key` calls can + // plausibly exceed it under variable AWS Sydney latency. + // - `pool_idle_timeout(600)`: keep warm TLS connections alive across + // the bench's idle gaps between batches (default closes after 90 + // s). + // - `max_keys_per_req(100)`: smaller per-request server work → + // lower per-call latency → lower chance of any one request + // timing out. Trades request count for predictability. + // - `max_concurrent_reqs(20)`: more parallelism to compensate for + // the smaller batches. let zerokms = ZeroKMSBuilder::auto() .context("failed to build ZeroKMS client")? + .with_connect_timeout(5) + .with_request_timeout(60) + .with_pool_idle_timeout(600) + .with_max_keys_per_req(100) + .with_max_concurrent_reqs(20) .with_key_provider(FallbackKeyProvider::new( EnvKeyProvider, ProfileStore::default(), @@ -108,13 +130,6 @@ impl IngestOptionsBuilder { } } -/// Re-initialise the scoped cipher after this many rows. The ZeroKMS scoped -/// cipher has a ~10-15 minute TTL bound to one `init_default` call; a single -/// 10M-row ingest run reliably outlives that. Re-binding at a row-count -/// cadence (cheap call vs. the slow encrypt path) keeps the cipher fresh -/// without requiring callers to chunk their invocations. -const REINIT_EVERY_ROWS: i32 = 200_000; - impl IngestOptions { pub async fn ingest(self, f: F) -> Result<()> where @@ -138,21 +153,18 @@ impl IngestOptions { .connect(&database_url) .await?; - let mut scoped_cipher = init_scoped_cipher().await?; - let mut rows_since_reinit: i32 = 0; + // Init once and reuse for the binary lifetime. The previous + // "refresh every 200k rows" loop discarded the warm reqwest + // connection pool and forced cold-start TLS handshakes — which, + // with the cipherstash-client default 10s request_timeout, + // reliably tripped `SendRequest: operation timed out`. Auth + // tokens auto-refresh through stack-auth's AutoRefresh under the + // same client; no manual rotation needed. + let scoped_cipher = init_scoped_cipher().await?; let column_config = Cow::Borrowed(&self.column_config); for batch_start in (0..self.num_records).step_by(self.batch_size) { - if rows_since_reinit >= REINIT_EVERY_ROWS { - eprintln!( - "ingest: refreshing scoped cipher after {} rows ({}/{} total)", - rows_since_reinit, batch_start, self.num_records - ); - scoped_cipher = init_scoped_cipher().await?; - rows_since_reinit = 0; - } - let batch_end = (batch_start + self.batch_size as i32).min(self.num_records); let batch_count = batch_end - batch_start; @@ -180,8 +192,6 @@ impl IngestOptions { .build() .execute(&pool) .await?; - - rows_since_reinit += batch_count; } let result = json!({ From 7ba2fbff300a1f95f1bab1ec3666aafdc5f7f9a0 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Sat, 16 May 2026 17:11:10 +1000 Subject: [PATCH 26/30] results: full ladder refresh after fixing integer_encrypted workspace mismatch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous bench:query:all attempt failed at ORE/ore_decrypt/range_*/10000 with `Could not decrypt data using keyset 'e53449ba-...'`. Root cause: the integer_encrypted_* tables held data encrypted under a previous workspace whose keyset is no longer accessible from the current workspace. Surfaced clearly only after cipherstash-suite#1960's third commit added #[source] on EqlError::CouldNotDecryptDataForKeyset — the full chain then revealed a 403 with body "Context did not satisfy lock requirements, access denied" coming back from ZeroKMS. Re-ingested integer_encrypted_{10000,100000,1000000,10000000} under the current workspace (~1h total, zero errors with the bulk-ingest tuning in lib.rs::init_scoped_cipher). Then re-ran bench:query:all cleanly. bench/ore.rs gains an init_tracing() call (shared helper added to lib.rs) so RUST_LOG-driven cipherstash-client trace! emissions reach stderr — useful for surfacing the inner chain when a bench fails. Linear refs: * BUG-277 — ZeroKMS error UX should differentiate keyset-not-in-workspace from lock-context failure (currently the same opaque 403) * CIP-3115 — structural: encode keyset CRN (workspace + region) in encrypted record metadata so cipherstash-client can detect wrong-workspace records client-side, before any ZeroKMS round-trip --- Cargo.lock | 18 +- benches/ore.rs | 8 +- report/BENCHMARK_REPORT.md | 10 +- report/combo.md | 122 +++++----- report/exact.md | 32 +-- report/group_by.md | 187 +++++++-------- report/match.md | 76 +++---- report/ore.md | 212 +++++++++--------- ...uery_combo_bloom_ore_order_limit_chart.png | Bin 38502 -> 39753 bytes .../query_combo_filtered_group_by_chart.png | Bin 38083 -> 37959 bytes ...ry_combo_top_n_filtered_group_by_chart.png | Bin 32486 -> 38472 bytes report/query_exact_eql_cast_chart.png | Bin 38703 -> 33946 bytes report/query_exact_eql_hash_chart.png | Bin 35604 -> 36589 bytes ...low_cardinality_groups_encrypted_chart.png | Bin 44404 -> 44073 bytes ...low_cardinality_groups_plaintext_chart.png | Bin 40865 -> 41376 bytes ..._group_by_top_n_groups_encrypted_chart.png | Bin 37360 -> 41586 bytes ..._group_by_top_n_groups_plaintext_chart.png | Bin 39566 -> 40826 bytes report/query_match_eql_bloom_chart.png | Bin 48520 -> 46576 bytes .../query_match_eql_cast_firstname_chart.png | Bin 45659 -> 45423 bytes .../query_match_eql_cast_lastname_chart.png | Bin 49286 -> 45359 bytes report/query_ore_range_gt_100_chart.png | Bin 29903 -> 30923 bytes report/query_ore_range_gt_10_chart.png | Bin 32626 -> 31234 bytes ...ore_range_highly_selective_gt_10_chart.png | Bin 47651 -> 47109 bytes report/query_ore_range_lt_100_chart.png | Bin 33889 -> 31050 bytes report/query_ore_range_lt_10_chart.png | Bin 31779 -> 31839 bytes ...y_ore_range_lt_hybrid_ordered_10_chart.png | Bin 33448 -> 34775 bytes ...query_ore_range_selective_gt_100_chart.png | Bin 51542 -> 53221 bytes results/query/combo_metadata_10000.json | 54 ++--- results/query/combo_metadata_100000.json | 54 ++--- results/query/combo_metadata_1000000.json | 54 ++--- results/query/combo_metadata_10000000.json | 98 ++++---- results/query/combo_rows_10000.json | 6 +- results/query/combo_rows_100000.json | 6 +- results/query/combo_rows_1000000.json | 6 +- results/query/combo_rows_10000000.json | 6 +- results/query/exact_metadata_10000.json | 8 +- results/query/exact_metadata_100000.json | 8 +- results/query/exact_metadata_1000000.json | 8 +- results/query/exact_metadata_10000000.json | 8 +- results/query/exact_rows_10000.json | 8 +- results/query/exact_rows_100000.json | 8 +- results/query/exact_rows_1000000.json | 8 +- results/query/exact_rows_10000000.json | 8 +- results/query/group_by_metadata_10000000.json | 155 +++++++------ results/query/group_by_rows_10000.json | 8 +- results/query/group_by_rows_100000.json | 8 +- results/query/group_by_rows_1000000.json | 8 +- results/query/group_by_rows_10000000.json | 8 +- results/query/match_metadata_10000.json | 150 ++++++------- results/query/match_metadata_100000.json | 150 ++++++------- results/query/match_metadata_1000000.json | 150 ++++++------- results/query/match_metadata_10000000.json | 150 ++++++------- results/query/match_rows_10000.json | 12 +- results/query/match_rows_100000.json | 12 +- results/query/match_rows_1000000.json | 12 +- results/query/match_rows_10000000.json | 12 +- results/query/ore_metadata_10000.json | 66 +++--- results/query/ore_metadata_100000.json | 96 ++++---- results/query/ore_metadata_1000000.json | 28 +-- results/query/ore_metadata_10000000.json | 28 +-- results/query/ore_rows_10000.json | 28 +-- results/query/ore_rows_100000.json | 28 +-- results/query/ore_rows_1000000.json | 28 +-- results/query/ore_rows_10000000.json | 28 +-- src/lib.rs | 15 ++ 65 files changed, 1119 insertions(+), 1074 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index db1f77c..13c6791 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -620,7 +620,7 @@ dependencies = [ [[package]] name = "cipherstash-client" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#ee9bf49a3ea4bfd6a27b0e0342ed18e198a1f1a4" dependencies = [ "aes-gcm-siv", "anyhow", @@ -682,7 +682,7 @@ dependencies = [ [[package]] name = "cipherstash-config" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#ee9bf49a3ea4bfd6a27b0e0342ed18e198a1f1a4" dependencies = [ "bitflags 2.11.1", "serde", @@ -692,7 +692,7 @@ dependencies = [ [[package]] name = "cipherstash-core" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#ee9bf49a3ea4bfd6a27b0e0342ed18e198a1f1a4" dependencies = [ "hmac", "lazy_static", @@ -727,7 +727,7 @@ dependencies = [ [[package]] name = "cllw-ore" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#ee9bf49a3ea4bfd6a27b0e0342ed18e198a1f1a4" dependencies = [ "blake3", "hex", @@ -1029,7 +1029,7 @@ dependencies = [ [[package]] name = "cts-common" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#ee9bf49a3ea4bfd6a27b0e0342ed18e198a1f1a4" dependencies = [ "arrayvec", "base32", @@ -3259,7 +3259,7 @@ dependencies = [ [[package]] name = "recipher" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#ee9bf49a3ea4bfd6a27b0e0342ed18e198a1f1a4" dependencies = [ "aes", "async-trait", @@ -4235,7 +4235,7 @@ checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stack-auth" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#ee9bf49a3ea4bfd6a27b0e0342ed18e198a1f1a4" dependencies = [ "aquamarine", "cts-common", @@ -4258,7 +4258,7 @@ dependencies = [ [[package]] name = "stack-profile" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#ee9bf49a3ea4bfd6a27b0e0342ed18e198a1f1a4" dependencies = [ "dirs", "gethostname", @@ -5866,7 +5866,7 @@ dependencies = [ [[package]] name = "zerokms-protocol" version = "0.34.0" -source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#6f5c916b233cdff34b5ce432918fdd532c86eb8d" +source = "git+ssh://git@github.com/cipherstash/cipherstash-suite.git?branch=dan%2Fzerokms-unexpected-error-context#ee9bf49a3ea4bfd6a27b0e0342ed18e198a1f1a4" dependencies = [ "base64", "cipherstash-config", diff --git a/benches/ore.rs b/benches/ore.rs index 7a1aa5b..55d1b99 100644 --- a/benches/ore.rs +++ b/benches/ore.rs @@ -9,8 +9,8 @@ use cipherstash_client::{ }; use criterion::{black_box, criterion_group, criterion_main, Criterion}; use dbbenches::{ - bench_assert, extract_indexes_used, init_scoped_cipher, write_metadata_file, EncryptedQuery, - EncryptedQueryBuilder, ScenarioMetadata, + bench_assert, extract_indexes_used, init_scoped_cipher, init_tracing, write_metadata_file, + EncryptedQuery, EncryptedQueryBuilder, ScenarioMetadata, }; use sqlx::postgres::PgPoolOptions; use std::sync::Arc; @@ -116,6 +116,10 @@ async fn build_query( } fn criterion_benchmark(c: &mut Criterion) { + // Wire up cipherstash-client / zerokms-protocol trace! emissions to + // stderr when RUST_LOG is set. No-op when unset. + init_tracing(); + let rt = Runtime::new().unwrap(); let target_rows = std::env::var("TARGET_ROWS") diff --git a/report/BENCHMARK_REPORT.md b/report/BENCHMARK_REPORT.md index d019238..23d1333 100644 --- a/report/BENCHMARK_REPORT.md +++ b/report/BENCHMARK_REPORT.md @@ -92,11 +92,11 @@ Per-query-type detail is broken out into separate pages — click into a scenari | Query Type | Scenarios | Tiers | Largest-tier median (no decrypt) | Detail | |-|-|-|-|-| -| COMBO | `bloom_ore_order_limit`, `filtered_group_by`, `top_n_filtered_group_by` | 10,000, 100,000, 1,000,000, 10,000,000 | 105.58ms | [open](combo.md) | -| EXACT | `eql_cast`, `eql_hash` | 10,000, 100,000, 1,000,000, 10,000,000 | 412.26μs | [open](exact.md) | -| GROUP_BY | `low_cardinality_groups_encrypted`, `low_cardinality_groups_plaintext`, `top_n_groups_encrypted`, `top_n_groups_plaintext` | 10,000, 100,000, 1,000,000, 10,000,000 | 981.51ms | [open](group_by.md) | -| MATCH | `eql_bloom`, `eql_cast_firstname`, `eql_cast_lastname` | 10,000, 100,000, 1,000,000, 10,000,000 | 122.53ms | [open](match.md) | -| ORE | `range_gt_10`, `range_gt_100`, `range_highly_selective_gt_10`, `range_lt_10`, `range_lt_100`, `range_lt_hybrid_ordered_10`, `range_selective_gt_100` | 10,000, 100,000, 1,000,000, 10,000,000 | 483.80ms | [open](ore.md) | +| COMBO | `bloom_ore_order_limit`, `filtered_group_by`, `top_n_filtered_group_by` | 10,000, 100,000, 1,000,000, 10,000,000 | 99.48ms | [open](combo.md) | +| EXACT | `eql_cast`, `eql_hash` | 10,000, 100,000, 1,000,000, 10,000,000 | 401.88μs | [open](exact.md) | +| GROUP_BY | `low_cardinality_groups_encrypted`, `low_cardinality_groups_plaintext`, `top_n_groups_encrypted`, `top_n_groups_plaintext` | 10,000, 100,000, 1,000,000, 10,000,000 | 969.58ms | [open](group_by.md) | +| MATCH | `eql_bloom`, `eql_cast_firstname`, `eql_cast_lastname` | 10,000, 100,000, 1,000,000, 10,000,000 | 64.93ms | [open](match.md) | +| ORE | `range_gt_10`, `range_gt_100`, `range_highly_selective_gt_10`, `range_lt_10`, `range_lt_100`, `range_lt_hybrid_ordered_10`, `range_selective_gt_100` | 10,000, 100,000, 1,000,000, 10,000,000 | 512.87ms | [open](ore.md) | --- diff --git a/report/combo.md b/report/combo.md index 5548439..fbdbfdf 100644 --- a/report/combo.md +++ b/report/combo.md @@ -49,10 +49,10 @@ ON combo_encrypted_10000 USING hash ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 9 | 1.03ms | N/A | -| 100,000 | 10 | 3.43ms | N/A | -| 1,000,000 | 10 | 23.35ms | N/A | -| 10,000,000 | 10 | ⚠️ 217.26ms | N/A | +| 10,000 | 0 | 611.23μs | N/A | +| 100,000 | 0 | 885.92μs | N/A | +| 1,000,000 | 0 | 3.78ms | N/A | +| 10,000,000 | 10 | ⚠️ 209.71ms | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -99,7 +99,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1033,461,1554,1393,91}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1789,10,1555,1603}'::smallint[])", "Index Name": "combo_encrypted_10000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -110,7 +110,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1033,461,1554,1393,91}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1789,10,1555,1603}'::smallint[])", "Relation Name": "combo_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.73 @@ -170,7 +170,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,1033,1554,461,453,91}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1164,36,1603,10,1789}'::smallint[])", "Index Name": "combo_encrypted_100000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -181,7 +181,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,1033,1554,461,453,91}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1164,36,1603,10,1789}'::smallint[])", "Relation Name": "combo_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -241,7 +241,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,453,1033,1393,1554,461}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{10,36,1555,1164,1603,1789}'::smallint[])", "Index Name": "combo_encrypted_1000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -252,7 +252,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 311.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,453,1033,1393,1554,461}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{10,36,1555,1164,1603,1789}'::smallint[])", "Relation Name": "combo_encrypted_1000000", "Startup Cost": 311.97, "Total Cost": 316.48 @@ -312,7 +312,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1033,91,1554,453,461,1393}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,1555,36,10,1603}'::smallint[])", "Index Name": "combo_encrypted_10000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -320,24 +320,24 @@ Full `EXPLAIN (FORMAT JSON)`: "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 2300.22 + "Total Cost": 2296.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1033,91,1554,453,461,1393}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,1555,36,10,1603}'::smallint[])", "Relation Name": "combo_encrypted_10000000", - "Startup Cost": 2300.22, - "Total Cost": 2304.73 + "Startup Cost": 2296.1, + "Total Cost": 2300.61 } ], "Sort Key": [ "(eql_v2.ore_block_u64_8_256(age))" ], - "Startup Cost": 2304.74, - "Total Cost": 2304.75 + "Startup Cost": 2300.62, + "Total Cost": 2300.62 } ], - "Startup Cost": 2304.74, - "Total Cost": 2304.75 + "Startup Cost": 2300.62, + "Total Cost": 2300.62 } } ] @@ -390,10 +390,10 @@ ON combo_encrypted_10000 USING hash ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 9 | 618.30μs | N/A | -| 100,000 | 47 | 1.01ms | N/A | -| 1,000,000 | 227 | 5.67ms | N/A | -| 10,000,000 | 250 | 50.80ms | N/A | +| 10,000 | 0 | 670.95μs | N/A | +| 100,000 | 0 | 933.65μs | N/A | +| 1,000,000 | 0 | 3.75ms | N/A | +| 10,000,000 | 250 | 44.88ms | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -444,7 +444,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,453,91,1033,1554,461}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,36,1555,10,1164,1603}'::smallint[])", "Index Name": "combo_encrypted_10000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -455,7 +455,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,453,91,1033,1554,461}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,36,1555,10,1164,1603}'::smallint[])", "Relation Name": "combo_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.49 @@ -520,7 +520,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,10,1603,36,1164,1555}'::smallint[])", "Index Name": "combo_encrypted_100000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -531,7 +531,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,10,1603,36,1164,1555}'::smallint[])", "Relation Name": "combo_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.61 @@ -596,7 +596,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1554,1033,91,461,1393}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,1555,1603,1164,36,10}'::smallint[])", "Index Name": "combo_encrypted_1000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -607,7 +607,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 311.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1554,1033,91,461,1393}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,1555,1603,1164,36,10}'::smallint[])", "Relation Name": "combo_encrypted_1000000", "Startup Cost": 311.97, "Total Cost": 316.24 @@ -672,7 +672,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1603,10,36,1555,1789}'::smallint[])", "Index Name": "combo_encrypted_10000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -680,25 +680,25 @@ Full `EXPLAIN (FORMAT JSON)`: "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 2300.22 + "Total Cost": 2296.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1603,10,36,1555,1789}'::smallint[])", "Relation Name": "combo_encrypted_10000000", - "Startup Cost": 2300.22, - "Total Cost": 2304.49 + "Startup Cost": 2296.1, + "Total Cost": 2300.36 } ], "Sort Key": [ "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" ], - "Startup Cost": 2304.5, - "Total Cost": 2304.5 + "Startup Cost": 2300.37, + "Total Cost": 2300.38 } ], - "Startup Cost": 2304.5, + "Startup Cost": 2300.37, "Strategy": "Sorted", - "Total Cost": 2304.52 + "Total Cost": 2300.39 } } ] @@ -751,10 +751,10 @@ ON combo_encrypted_10000 USING hash ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 9 | 600.17μs | N/A | -| 100,000 | 10 | 988.76μs | N/A | -| 1,000,000 | 10 | 5.47ms | N/A | -| 10,000,000 | 10 | 50.03ms | N/A | +| 10,000 | 0 | 597.35μs | N/A | +| 100,000 | 0 | 1.05ms | N/A | +| 1,000,000 | 0 | 3.78ms | N/A | +| 10,000,000 | 10 | 44.80ms | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -823,7 +823,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1033,1393,453,1554,91}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1603,10,36,1789,1164}'::smallint[])", "Index Name": "combo_encrypted_10000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -834,7 +834,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1033,1393,453,1554,91}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1603,10,36,1789,1164}'::smallint[])", "Relation Name": "combo_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.49 @@ -928,7 +928,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,461,1033,1393,1554,453}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1555,1164,10}'::smallint[])", "Index Name": "combo_encrypted_100000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -939,7 +939,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,461,1033,1393,1554,453}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1555,1164,10}'::smallint[])", "Relation Name": "combo_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.61 @@ -1033,7 +1033,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1554,461,1033,91,1393,453}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1555,10,1603,1789}'::smallint[])", "Index Name": "combo_encrypted_1000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1044,7 +1044,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 311.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1554,461,1033,91,1393,453}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1555,10,1603,1789}'::smallint[])", "Relation Name": "combo_encrypted_1000000", "Startup Cost": 311.97, "Total Cost": 316.24 @@ -1138,7 +1138,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1393,1033,461,91,1554}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,10,1789,1555,1603,36}'::smallint[])", "Index Name": "combo_encrypted_10000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1146,36 +1146,36 @@ Full `EXPLAIN (FORMAT JSON)`: "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 2300.22 + "Total Cost": 2296.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1393,1033,461,91,1554}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,10,1789,1555,1603,36}'::smallint[])", "Relation Name": "combo_encrypted_10000000", - "Startup Cost": 2300.22, - "Total Cost": 2304.49 + "Startup Cost": 2296.1, + "Total Cost": 2300.36 } ], "Sort Key": [ "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" ], - "Startup Cost": 2304.5, - "Total Cost": 2304.5 + "Startup Cost": 2300.37, + "Total Cost": 2300.38 } ], - "Startup Cost": 2304.5, + "Startup Cost": 2300.37, "Strategy": "Sorted", - "Total Cost": 2304.52 + "Total Cost": 2300.39 } ], "Sort Key": [ "(count(*)) DESC" ], - "Startup Cost": 2304.53, - "Total Cost": 2304.53 + "Startup Cost": 2300.4, + "Total Cost": 2300.41 } ], - "Startup Cost": 2304.53, - "Total Cost": 2304.53 + "Startup Cost": 2300.4, + "Total Cost": 2300.41 } } ] diff --git a/report/exact.md b/report/exact.md index ba1ba24..4edd732 100644 --- a/report/exact.md +++ b/report/exact.md @@ -41,10 +41,10 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 417.91μs | 411.64μs | -| 100,000 | 0 | 398.18μs | 415.60μs | -| 1,000,000 | 0 | 518.60μs | 413.16μs | -| 10,000,000 | 0 | 429.34μs | 423.97μs | +| 10,000 | 0 | 428.29μs | 435.88μs | +| 100,000 | 0 | 450.88μs | 411.44μs | +| 1,000,000 | 0 | 414.56μs | 423.32μs | +| 10,000,000 | 0 | 410.21μs | 419.32μs | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -73,7 +73,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "string_encrypted_10000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_10000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -115,7 +115,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "string_encrypted_100000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_100000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -157,7 +157,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "string_encrypted_1000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_1000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -199,7 +199,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "string_encrypted_10000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_10000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -260,10 +260,10 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 412.70μs | 395.84μs | -| 100,000 | 0 | 406.77μs | 400.13μs | -| 1,000,000 | 0 | 401.58μs | 397.75μs | -| 10,000,000 | 0 | 387.61μs | 399.45μs | +| 10,000 | 0 | 403.48μs | 421.56μs | +| 100,000 | 0 | 404.76μs | 418.98μs | +| 1,000,000 | 0 | 407.13μs | 386.56μs | +| 10,000,000 | 0 | 396.38μs | 403.55μs | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -292,7 +292,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "string_encrypted_10000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_10000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -334,7 +334,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "string_encrypted_100000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_100000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -376,7 +376,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "string_encrypted_1000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_1000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -418,7 +418,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "string_encrypted_10000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_10000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, diff --git a/report/group_by.md b/report/group_by.md index 733b5df..fff48db 100644 --- a/report/group_by.md +++ b/report/group_by.md @@ -35,10 +35,10 @@ ON category_encrypted_10000 using hash ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 1 | 2.65ms | N/A | -| 100,000 | 1 | 28.78ms | N/A | -| 1,000,000 | 1 | 93.23ms | N/A | -| 10,000,000 | 1 | ⚠️ 1.587s | N/A | +| 10,000 | 1 | 2.61ms | N/A | +| 100,000 | 1 | 29.25ms | N/A | +| 1,000,000 | 1 | 93.42ms | N/A | +| 10,000,000 | 1 | ⚠️ 1.669s | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -350,37 +350,37 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Seq Scan", "Parallel Aware": true, "Parent Relationship": "Outer", - "Plan Rows": 4166672, + "Plan Rows": 4166667, "Plan Width": 32, "Relation Name": "category_encrypted_10000000", "Startup Cost": 0.0, - "Total Cost": 506629.4 + "Total Cost": 506629.33 } ], - "Startup Cost": 517046.08, + "Startup Cost": 517046.0, "Strategy": "Hashed", - "Total Cost": 517049.2 + "Total Cost": 517049.13 } ], "Sort Key": [ "((((category_encrypted_10000000.value).data ->> 'hm'::text))::eql_v2.hmac_256)" ], - "Startup Cost": 517059.16, - "Total Cost": 517059.78 + "Startup Cost": 517059.08, + "Total Cost": 517059.71 } ], - "Startup Cost": 518059.18, - "Total Cost": 518117.52, + "Startup Cost": 518059.11, + "Total Cost": 518117.45, "Workers Planned": 2 } ], - "Startup Cost": 518059.18, - "Total Cost": 518119.4 + "Startup Cost": 518059.11, + "Total Cost": 518119.32 } ], - "Startup Cost": 518122.52, + "Startup Cost": 518122.45, "Strategy": "Plain", - "Total Cost": 518122.53 + "Total Cost": 518122.46 } } ] @@ -412,10 +412,10 @@ SELECT count(*) FROM (SELECT 1 FROM {TABLE} GROUP BY value) g | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 1 | 1.48ms | N/A | -| 100,000 | 1 | 9.84ms | N/A | -| 1,000,000 | 1 | 35.75ms | N/A | -| 10,000,000 | 1 | ⚠️ 461.94ms | N/A | +| 10,000 | 1 | 1.44ms | N/A | +| 100,000 | 1 | 9.96ms | N/A | +| 1,000,000 | 1 | 36.04ms | N/A | +| 10,000,000 | 1 | ⚠️ 557.87ms | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -664,6 +664,15 @@ Full `EXPLAIN (FORMAT JSON)`: ```json [ { + "JIT": { + "Functions": 7, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": false, + "Optimization": false + } + }, "Plan": { "Async Capable": false, "Node Type": "Aggregate", @@ -680,24 +689,24 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Group", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 200, - "Plan Width": 36, + "Plan Rows": 250, + "Plan Width": 12, "Plans": [ { "Async Capable": false, "Node Type": "Gather Merge", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 400, - "Plan Width": 32, + "Plan Rows": 500, + "Plan Width": 8, "Plans": [ { "Async Capable": false, "Node Type": "Sort", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 200, - "Plan Width": 32, + "Plan Rows": 250, + "Plan Width": 8, "Plans": [ { "Async Capable": false, @@ -708,8 +717,8 @@ Full `EXPLAIN (FORMAT JSON)`: "Parallel Aware": false, "Parent Relationship": "Outer", "Partial Mode": "Partial", - "Plan Rows": 200, - "Plan Width": 32, + "Plan Rows": 250, + "Plan Width": 8, "Planned Partitions": 0, "Plans": [ { @@ -718,37 +727,37 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Seq Scan", "Parallel Aware": true, "Parent Relationship": "Outer", - "Plan Rows": 2860410, - "Plan Width": 32, + "Plan Rows": 4166608, + "Plan Width": 8, "Relation Name": "category_plaintext_10000000", "Startup Cost": 0.0, - "Total Cost": 82659.1 + "Total Cost": 95721.08 } ], - "Startup Cost": 89810.13, + "Startup Cost": 106137.6, "Strategy": "Hashed", - "Total Cost": 89812.13 + "Total Cost": 106140.1 } ], "Sort Key": [ "category_plaintext_10000000.value" ], - "Startup Cost": 89819.77, - "Total Cost": 89820.27 + "Startup Cost": 106150.06, + "Total Cost": 106150.69 } ], - "Startup Cost": 90819.8, - "Total Cost": 90866.47, + "Startup Cost": 107150.08, + "Total Cost": 107208.42, "Workers Planned": 2 } ], - "Startup Cost": 90819.8, - "Total Cost": 90867.47 + "Startup Cost": 107150.08, + "Total Cost": 107209.67 } ], - "Startup Cost": 90869.97, + "Startup Cost": 107212.8, "Strategy": "Plain", - "Total Cost": 90869.98 + "Total Cost": 107212.81 } } ] @@ -789,10 +798,10 @@ ON category_encrypted_10000 using hash ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 2.67ms | N/A | -| 100,000 | 10 | 30.84ms | N/A | -| 1,000,000 | 10 | 92.73ms | N/A | -| 10,000,000 | 10 | ⚠️ 1.449s | N/A | +| 10,000 | 10 | 2.72ms | N/A | +| 100,000 | 10 | 29.11ms | N/A | +| 1,000,000 | 10 | 94.56ms | N/A | +| 10,000,000 | 10 | ⚠️ 1.352s | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -1157,44 +1166,44 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Seq Scan", "Parallel Aware": true, "Parent Relationship": "Outer", - "Plan Rows": 4166672, + "Plan Rows": 4166667, "Plan Width": 32, "Relation Name": "category_encrypted_10000000", "Startup Cost": 0.0, - "Total Cost": 506629.4 + "Total Cost": 506629.33 } ], - "Startup Cost": 527462.76, + "Startup Cost": 527462.67, "Strategy": "Hashed", - "Total Cost": 527465.88 + "Total Cost": 527465.79 } ], "Sort Key": [ "((((value).data ->> 'hm'::text))::eql_v2.hmac_256)" ], - "Startup Cost": 527475.84, - "Total Cost": 527476.46 + "Startup Cost": 527475.75, + "Total Cost": 527476.38 } ], - "Startup Cost": 528475.86, - "Total Cost": 528534.2, + "Startup Cost": 528475.78, + "Total Cost": 528534.11, "Workers Planned": 2 } ], - "Startup Cost": 528475.86, + "Startup Cost": 528475.78, "Strategy": "Sorted", - "Total Cost": 528539.83 + "Total Cost": 528539.74 } ], "Sort Key": [ "(count(*)) DESC" ], - "Startup Cost": 528545.23, - "Total Cost": 528545.85 + "Startup Cost": 528545.14, + "Total Cost": 528545.76 } ], - "Startup Cost": 528545.23, - "Total Cost": 528545.25 + "Startup Cost": 528545.14, + "Total Cost": 528545.16 } } ] @@ -1226,10 +1235,10 @@ SELECT value, count(*) FROM {TABLE} GROUP BY 1 ORDER BY count(*) DESC LIMIT 10 | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.59ms | N/A | -| 100,000 | 10 | 10.42ms | N/A | -| 1,000,000 | 10 | 37.39ms | N/A | -| 10,000,000 | 10 | ⚠️ 464.48ms | N/A | +| 10,000 | 10 | 1.54ms | N/A | +| 100,000 | 10 | 10.38ms | N/A | +| 1,000,000 | 10 | 37.31ms | N/A | +| 10,000,000 | 10 | ⚠️ 600.45ms | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -1537,15 +1546,15 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 10, - "Plan Width": 40, + "Plan Width": 16, "Plans": [ { "Async Capable": false, "Node Type": "Sort", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 200, - "Plan Width": 40, + "Plan Rows": 250, + "Plan Width": 16, "Plans": [ { "Async Capable": false, @@ -1556,24 +1565,24 @@ Full `EXPLAIN (FORMAT JSON)`: "Parallel Aware": false, "Parent Relationship": "Outer", "Partial Mode": "Finalize", - "Plan Rows": 200, - "Plan Width": 40, + "Plan Rows": 250, + "Plan Width": 16, "Plans": [ { "Async Capable": false, "Node Type": "Gather Merge", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 400, - "Plan Width": 40, + "Plan Rows": 500, + "Plan Width": 16, "Plans": [ { "Async Capable": false, "Node Type": "Sort", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 200, - "Plan Width": 40, + "Plan Rows": 250, + "Plan Width": 16, "Plans": [ { "Async Capable": false, @@ -1584,8 +1593,8 @@ Full `EXPLAIN (FORMAT JSON)`: "Parallel Aware": false, "Parent Relationship": "Outer", "Partial Mode": "Partial", - "Plan Rows": 200, - "Plan Width": 40, + "Plan Rows": 250, + "Plan Width": 16, "Planned Partitions": 0, "Plans": [ { @@ -1594,44 +1603,44 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Seq Scan", "Parallel Aware": true, "Parent Relationship": "Outer", - "Plan Rows": 4166667, - "Plan Width": 32, + "Plan Rows": 4166608, + "Plan Width": 8, "Relation Name": "category_plaintext_10000000", "Startup Cost": 0.0, - "Total Cost": 95721.67 + "Total Cost": 95721.08 } ], - "Startup Cost": 116555.0, + "Startup Cost": 116554.12, "Strategy": "Hashed", - "Total Cost": 116557.0 + "Total Cost": 116556.62 } ], "Sort Key": [ "value" ], - "Startup Cost": 116564.65, - "Total Cost": 116565.15 + "Startup Cost": 116566.58, + "Total Cost": 116567.21 } ], - "Startup Cost": 117564.67, - "Total Cost": 117611.34, + "Startup Cost": 117566.6, + "Total Cost": 117624.94, "Workers Planned": 2 } ], - "Startup Cost": 117564.67, + "Startup Cost": 117566.6, "Strategy": "Sorted", - "Total Cost": 117615.34 + "Total Cost": 117629.94 } ], "Sort Key": [ "(count(*)) DESC" ], - "Startup Cost": 117619.66, - "Total Cost": 117620.16 + "Startup Cost": 117635.34, + "Total Cost": 117635.97 } ], - "Startup Cost": 117619.66, - "Total Cost": 117619.69 + "Startup Cost": 117635.34, + "Total Cost": 117635.37 } } ] diff --git a/report/match.md b/report/match.md index d282fe7..d231226 100644 --- a/report/match.md +++ b/report/match.md @@ -39,14 +39,12 @@ ON string_encrypted_10000 USING GIN ( - 1,000,000: `string_encrypted_1000000_gin_index` - 10,000,000: `string_encrypted_10000000_gin_index` -*⚠️ = Query time exceeds 100ms* - | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 930.87μs | 28.78ms | -| 100,000 | 10 | 2.66ms | 29.79ms | -| 1,000,000 | 10 | 17.40ms | 43.78ms | -| 10,000,000 | 10 | ⚠️ 164.61ms | ⚠️ 189.74ms | +| 10,000 | 0 | 590.02μs | 627.32μs | +| 100,000 | 0 | 1.42ms | 1.48ms | +| 1,000,000 | 0 | 9.36ms | 9.19ms | +| 10,000,000 | 0 | 83.30ms | 82.09ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -84,7 +82,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,682,1057,1760,1496,1183,1453,998,1143,1200,792,1109,1596,865,1845,710,1735,61,582,1574,587,1751,1637,830,2028,1068,895,421,1018,1500}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1967,1061,1185,97,242,237,702,820,1987,1659,1098,2024,1665,44,523,1715,461,1196,450,835,765,543,1846,1988,518,290,1381,574,1609,513}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -95,7 +93,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,682,1057,1760,1496,1183,1453,998,1143,1200,792,1109,1596,865,1845,710,1735,61,582,1574,587,1751,1637,830,2028,1068,895,421,1018,1500}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1967,1061,1185,97,242,237,702,820,1987,1659,1098,2024,1665,44,523,1715,461,1196,450,835,765,543,1846,1988,518,290,1381,574,1609,513}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -139,7 +137,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1183,792,865,1500,1057,1751,830,1596,710,587,61,1574,582,1143,1018,895,1200,421,1453,2028,682,1068,1735,1760,998,1845,1496,1637,1109}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{44,1098,1381,290,237,461,1609,242,1665,1715,1967,1988,2024,1196,1846,1659,1061,1987,450,1185,97,820,523,765,543,513,702,518,574,835}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -150,7 +148,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 454.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1183,792,865,1500,1057,1751,830,1596,710,587,61,1574,582,1143,1018,895,1200,421,1453,2028,682,1068,1735,1760,998,1845,1496,1637,1109}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{44,1098,1381,290,237,461,1609,242,1665,1715,1967,1988,2024,1196,1846,1659,1061,1987,450,1185,97,820,523,765,543,513,702,518,574,835}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 454.35, "Total Cost": 458.86 @@ -194,7 +192,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1637,61,830,682,1109,1068,1031,1735,1596,1751,1845,1496,998,792,582,1183,1143,2028,865,1574,1018,587,1500,1760,895,421,1057,1200,1453,710}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1381,1846,450,1185,765,1609,574,543,1665,702,513,1659,1715,1988,1098,835,97,242,290,461,237,44,820,1987,2024,1061,1196,1967,518}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -205,7 +203,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 1530.98 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1637,61,830,682,1109,1068,1031,1735,1596,1751,1845,1496,998,792,582,1183,1143,2028,865,1574,1018,587,1500,1760,895,421,1057,1200,1453,710}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1381,1846,450,1185,765,1609,574,543,1665,702,513,1659,1715,1988,1098,835,97,242,290,461,237,44,820,1987,2024,1061,1196,1967,518}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1530.98, "Total Cost": 1535.49 @@ -249,7 +247,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1735,2028,1845,830,710,1183,61,587,792,1596,895,1018,1751,421,865,1637,1031,998,1574,1143,1453,1496,1068,682,582,1760,1500,1109,1057,1200}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,237,1987,1846,1196,44,1659,1098,1381,513,835,1665,1715,2024,461,518,765,1967,702,1988,290,574,543,450,97,1061,1185,242,1609,523}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -260,7 +258,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 11294.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1735,2028,1845,830,710,1183,61,587,792,1596,895,1018,1751,421,865,1637,1031,998,1574,1143,1453,1496,1068,682,582,1760,1500,1109,1057,1200}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,237,1987,1846,1196,44,1659,1098,1381,513,835,1665,1715,2024,461,518,765,1967,702,1988,290,574,543,450,97,1061,1185,242,1609,523}'::smallint[])", "Relation Name": "string_encrypted_10000000", "Startup Cost": 11294.85, "Total Cost": 11299.36 @@ -314,10 +312,10 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 4 | 620.15μs | 26.75ms | -| 100,000 | 10 | 1.24ms | 28.74ms | -| 1,000,000 | 10 | 4.97ms | 32.56ms | -| 10,000,000 | 10 | 40.05ms | 65.93ms | +| 10,000 | 0 | 537.11μs | 476.72μs | +| 100,000 | 0 | 1.02ms | 835.98μs | +| 1,000,000 | 0 | 4.32ms | 4.27ms | +| 10,000,000 | 0 | 30.20ms | 30.69ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -355,7 +353,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,461,453,1393,1554}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1164,1603,1555,36,10}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -366,7 +364,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,461,453,1393,1554}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1164,1603,1555,36,10}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.73 @@ -410,7 +408,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,453,91,1033,1393,461}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1603,10,1789,1555,1164,36}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -421,7 +419,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,453,91,1033,1393,461}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1603,10,1789,1555,1164,36}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -465,7 +463,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,461,91,453,1393}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,1789,1603,36,1555,10}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -476,7 +474,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 307.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,461,91,453,1393}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,1789,1603,36,1555,10}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 307.85, "Total Cost": 312.36 @@ -520,7 +518,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,1393,453,1554,1033,461}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1555,1603,36,10,1164}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -531,7 +529,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 2258.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,1393,453,1554,1033,461}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1555,1603,36,10,1164}'::smallint[])", "Relation Name": "string_encrypted_10000000", "Startup Cost": 2258.97, "Total Cost": 2263.48 @@ -583,14 +581,12 @@ ON string_encrypted_10000 USING GIN ( - 1,000,000: `string_encrypted_1000000_gin_index` - 10,000,000: `string_encrypted_10000000_gin_index` -*⚠️ = Query time exceeds 100ms* - | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 959.00μs | 28.34ms | -| 100,000 | 10 | 2.71ms | 30.04ms | -| 1,000,000 | 10 | 17.18ms | 43.77ms | -| 10,000,000 | 10 | ⚠️ 164.52ms | ⚠️ 188.25ms | +| 10,000 | 0 | 697.29μs | 653.88μs | +| 100,000 | 0 | 1.58ms | 1.54ms | +| 1,000,000 | 0 | 9.94ms | 9.68ms | +| 10,000,000 | 0 | 82.38ms | 82.15ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -628,7 +624,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1109,1596,895,61,1143,1845,1057,865,710,830,1496,582,1068,792,1751,1574,1500,682,2028,1031,1200,587,421,1637,1735,1760,1183,1453,998,1018}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,523,2024,1098,835,1967,1665,1196,242,461,518,574,513,1987,1846,702,543,1381,1061,1609,44,1988,820,1185,765,450,97,1659,1715}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -639,7 +635,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1109,1596,895,61,1143,1845,1057,865,710,830,1496,582,1068,792,1751,1574,1500,682,2028,1031,1200,587,421,1637,1735,1760,1183,1453,998,1018}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,523,2024,1098,835,1967,1665,1196,242,461,518,574,513,1987,1846,702,543,1381,1061,1609,44,1988,820,1185,765,450,97,1659,1715}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -683,7 +679,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1496,1500,1735,1183,895,1143,1845,1109,421,830,1751,682,1574,792,1637,1760,1068,61,865,2028,582,1018,587,1453,998,1200,1031,710,1596,1057}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{513,1967,574,523,97,1987,820,242,765,290,1098,1196,450,543,835,1988,44,1846,518,237,1659,1609,1381,1061,1665,1185,702,2024,1715,461}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -694,7 +690,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 454.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1496,1500,1735,1183,895,1143,1845,1109,421,830,1751,682,1574,792,1637,1760,1068,61,865,2028,582,1018,587,1453,998,1200,1031,710,1596,1057}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{513,1967,574,523,97,1987,820,242,765,290,1098,1196,450,543,835,1988,44,1846,518,237,1659,1609,1381,1061,1665,1185,702,2024,1715,461}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 454.35, "Total Cost": 458.86 @@ -738,7 +734,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{830,421,1735,1574,1751,1200,1143,710,895,1031,792,1068,2028,1018,61,1845,1596,682,1109,1637,1496,865,1500,582,587,1183,1760,1453,1057,998}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,702,461,543,1098,44,523,1665,518,450,2024,1987,242,1609,1185,1967,1196,1381,835,765,1846,1659,1061,820,1988,574,513,97,1715}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -749,7 +745,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 1530.98 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{830,421,1735,1574,1751,1200,1143,710,895,1031,792,1068,2028,1018,61,1845,1596,682,1109,1637,1496,865,1500,582,587,1183,1760,1453,1057,998}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,702,461,543,1098,44,523,1665,518,450,2024,1987,242,1609,1185,1967,1196,1381,835,765,1846,1659,1061,820,1988,574,513,97,1715}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1530.98, "Total Cost": 1535.49 @@ -793,7 +789,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,710,1109,1200,421,1637,587,61,1143,2028,865,1574,998,682,582,1751,1845,1453,1183,1057,1031,1500,1596,1068,1496,1018,830,895,1735}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{702,1381,835,97,765,450,1988,44,1061,523,242,461,1609,1846,1196,237,1715,2024,290,1659,543,1987,820,513,574,1098,1967,1185,1665,518}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -804,7 +800,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 11294.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,710,1109,1200,421,1637,587,61,1143,2028,865,1574,998,682,582,1751,1845,1453,1183,1057,1031,1500,1596,1068,1496,1018,830,895,1735}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{702,1381,835,97,765,450,1988,44,1061,523,242,461,1609,1846,1196,237,1715,2024,290,1659,543,1987,820,513,574,1098,1967,1185,1665,518}'::smallint[])", "Relation Name": "string_encrypted_10000000", "Startup Cost": 11294.85, "Total Cost": 11299.36 diff --git a/report/ore.md b/report/ore.md index 097ba93..577343d 100644 --- a/report/ore.md +++ b/report/ore.md @@ -35,10 +35,10 @@ ON integer_encrypted_10000 ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.14ms | 29.47ms | -| 100,000 | 10 | 874.90μs | 27.50ms | -| 1,000,000 | 10 | 1.02ms | 27.99ms | -| 10,000,000 | 10 | 1.05ms | 30.84ms | +| 10,000 | 10 | 1.24ms | 28.22ms | +| 100,000 | 10 | 1.38ms | 29.37ms | +| 1,000,000 | 10 | 1.15ms | 28.73ms | +| 10,000,000 | 10 | 1.44ms | 28.25ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -67,19 +67,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d496a9cf2c12027027412bf84aa0661d4ff672bdd9481d3e1bc741dd39dbcdcdf706eb49e05c4c2a1ed0db3e091609b0ceaff07d1e6d3b67aee279ea47a7ea305a245a95c10cf561ea235c94bea029b1c3b7d19123d492e5a44e7659579bfd61012a8dea1d103bd60d4fe7d7b5b85fd1bc7b07b5cb8d44b0d67b56888b01a63439be4cb376c98c458a79693fe8687e5f6c20cc8f825cae1f2abe210a1f8fa7a970a79620b0f48e407d3f8d2ffc6fdcf1f223085e3a20e5a9208abfd5f0203b2693ce032139861f65a6fbcbe0be1acd7b7022e2bfcc302815c513588c5c60fad1efa9d0edf1d14d7730e22fb846d431690c2db0be33ad1893b50473b68f14d3c6a2aba04a1be63944366e489be1953701\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcb371609a9d6c573eed7e891d65e32763a0777fe30e584652309016ccaf8c0b4e4101f904e3cbeedebd563ec8f9bba67000d22aecbe5b547dd4e291e7a913ab7de63374518292d0046f8248fbf7c2abe5e8d96c0c07f4006b44f6b28fc569cee4c70913e19a951f1b30c21047b44bc16ea55ffaef4d32b98f01a0e0b24286638e29b77706c07bd44000b951b5976af1bbc9665f7e342ada753179ccd9003f14119b0199d54835f99e140f5e4431a7524fff57064614978f575978d4ba7c81a776ecd4f632e402d63d7fa4be00559e25b737cae53bb7ebd547de3bf796fa7823a3aebb321a191d501068035259eeec5cb805e3cf3d651f159698f511a3394b871299d5275978baf403a46ae93a636b33cd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 5050, + "Plan Rows": 4950, "Plan Width": 36, "Relation Name": "integer_encrypted_10000", "Startup Cost": 0.0, - "Total Cost": 7791.5 + "Total Cost": 7766.5 } ], "Startup Cost": 0.0, - "Total Cost": 15.43 + "Total Cost": 15.69 } } ] @@ -107,19 +107,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2887fa79ab6922a3fbece8a25bdef4c17916b4ddfc1858724d76eead689d241f6e289df0b37556748c0d9d2aca977f4513470000b8168f3308fd72025f31fd023d43b06dc4fc81a5e223cc54557451bc5ba4c7f7cf19e3c28ec4065c02461424ac2b0fe449e08bda47ab9ebc150527d82dbce68fa6e13a9b5bfc245afb84f357ca18d7a1a7fb8fa5501638611357c7b5828612addf3441169a9d5e29c78d6019bf186518cc170fc9b1253993f028cb937403b4ba1f0083b37ae2193bb308de175d80442984b6c4c1745d127047b76b381b6f190cb0e7e726deb6d772c9d46104cdf8014c4bc8f69b4f329ec172d2f626259c9854b69f670c2af6b923de020c1e43ba946dcc5e76b5c04b649179b5e078b5\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bca47ad7534549731c44e6f8ae43f935528296fe8d3533fe139de063f95576d9b55dbdda14c67c41e5fba98e168b989ff6d69ab07c4facafffc88a9c07d08b03a392cd10c4eddcc204656c32fe8322644e9d1668a79977496654e3679ea13c53bc94a0d230f1011e831d43ddf27a31c39e12508fbd608bb1dc684c649dd97bf573aeb0a5078fe6e72c00230490ed497305581711594898b52e4ad8ad040692f613b8594678f4c2ae77b9b2e64f691626ed188e9045730c0df6031ffdd36fd3ca6d212874284261cc54a165fc2d832ebf4c5e66a2387dc40e05f258034a674550b1b9e9ed526c8cdc80ae6883d36a103a05a3ced71df03b5a404a40f752d0524e97eb2e09f5399b6d4fad3034fcdefcef8d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 50500, "Plan Width": 36, "Relation Name": "integer_encrypted_100000", "Startup Cost": 0.0, - "Total Cost": 73619.25 + "Total Cost": 77911.0 } ], "Startup Cost": 0.0, - "Total Cost": 22.09 + "Total Cost": 15.43 } } ] @@ -147,7 +147,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283ae2aff336287192432a7a2a377d1f6a4d3c1217b0cb2638ad900f3f27e5bd813df25230001866af892842d19eb70bc54e9a722854dac3537bbf78d6d9577f56077c86790b50d198ba195c234772d6581e4dbdf105d9af044a02ffffe87bb4bb904ddada19566bbac3132fc899ee9ab1f352323041bd8ca62814d8208b458e5c860e1bee8c63ab16351b7b8f4442d125a94d38158bf3baae8a17d53ca6b9180a2c4a0609e86999c1a930e2a77de2a04ff19096d427e1bd7ca94e9b1f04aeb145a9c8d064406f2146548e3df866a132fc1dca2b2fd1adc28d67ee24aec7415f5df7174fcc67f5e4bf2923e6f3dd029529fb855159aa232016865cfcf102e1639d5efc4a4d279cf0354c38071b894b999a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc035addeee789fb2e823f5127d1ea3eb2abec3e929c3f195e7794ec84783ac99293e9193130a55e1b1410f10b6329d3c464483505f17295f734aefb6e1337d2b9c98fdaf8a235d84ef4ff1960efc83ff09e1bd8f63dd6faaab9b80ccd1384130d8cf4ac09c2fa90bb31be4e1ddebe36774abd33f2d9c2e51eeaed60f34c42a440d7aa1747824c7baa7b9e8b070ad454113251385cf58966ca6a198532ac2cb83f883562dbd945ba80181f5ab2bddbdfdc35957e867f11ba1f413f9d34594bd08be25ec5a8691863d709c0b1bd322e54fa37a4aa7b1397ccbb7e83bfd3fcc86581a771819df23434b5fd4d43ec3b5d7199c5b80d404129c2e570861640f43ed28a0c970002f9a35e1369df809d1309d87e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -187,7 +187,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2890435d5297329edc86d5e7c41670b53c4278d42a4da24b36bc86c2fb88b9a5e51b82dfe94100c4073f909fa4b7755c9ad7420468585422afd102a59717c6dc849cc3ba8edc447958ef581c58b04035ae667cbae950f7e0878af278e28195a2d99db1a2905138ad4fe4abb06598472ceac188b6201a4f1709319be5be7f1e8aeaede760dc7df172ee60c51f32d4cafab3e51ef680e42bfa539e102accab7a612b1c3892f9f4f154e42a7404ecb964484e10caa6d8eec74eba1c698a1a8e78a5c6c9313f56367882d814868aca14ec4cff7f183b394a6ef5f40ba235247a81c9302c948a0e21ed3be1df7c42f17410d0f39e8194dfd022565a6005364dfff93f3315149e0adf66683b3432cd1ee883078d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce9f7ed622e356cf9c68940a09e4fa6c7f53e37fd1a20685f2a2a72ae6d7919eab25bcf13844f317689fd847005d206ec1816218ec9a2dcb8e446dcf2a0eaed8de0d485642d9c06eaf1387f6430753d5d0435e7f068d641d168118ba14c382047edb764caa4062c1d3d353c202f15b1f45d74b553b3a74b49d2d75ed36d6f31c1f349913841fe6a723724c9efb37675e297f1ad661829c03080963461a8413f5a45b1e535f4bcb9ee04e9863c1917c32e5122fa229ac0fd79e87119c2d386d6b82903c0afb914c6826c542f72db96910f3f52f5d7dd5cb377b9802a473b2d60c753b5ed34ead5511b8551bbcb77c7b69d4c46f685f891bf30c1880f3355a9ac89335779f285fc8a4d2730540f91cf1da7\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -240,10 +240,10 @@ ON integer_encrypted_10000 ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 100 | 6.41ms | 42.80ms | -| 100,000 | 100 | 6.61ms | 43.87ms | -| 1,000,000 | 100 | 6.81ms | 42.07ms | -| 10,000,000 | 100 | 6.79ms | 42.09ms | +| 10,000 | 100 | 6.52ms | 45.74ms | +| 100,000 | 100 | 6.56ms | 48.51ms | +| 1,000,000 | 100 | 6.85ms | 47.69ms | +| 10,000,000 | 100 | 7.12ms | 46.06ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -272,19 +272,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288385f5e7dfa655b2dd4f453733a186c66eb453e1f46b5225f3d440c512c9badd37536b892db1eae6fa6ec72f6548ec3f29436aa5d59de334e6ba86d8ed69e8b91af923d95f965bed5bd84a5f714deb58fe502e63bb8c2a58c4c7e8bd61e53cdc81c6881d91bdb9e98782e0430e6c727844f22bfd798ab931e62980cba256e80538b3813db73be32603a8aa3142664dba1dbc09c7029f81b21f64624ae9e646e22166b68e6d4c5d52a6da0688640cb2ac07c1404de8e86e8e1aa664369a305493e00a01567f48a6e2c34aa90a08c681771601bf864e94bdd23689234fb86c6d6d603bea30e999a6622403405f4de053474de09080f2df7366b0d007e84910347a907bb352f323018c5600dd4d500b59fe\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc846ca961e9c7d073e4b69bb55d2d389f16d58a6d5fbea545a848998537d5026fe275212f67f28a6157e1747db9eb445488d3e56ab96df32df2090cf3a11c95bf0beb228000a33380009da004dd79117bd926f4a8ac0d7c82898a8a3b73e31c229035b21f79d827929aabc6b37077d26b88a1edd8c4e6d5e0681558d1cbebd09ffec80d242137bd9f745ffc6b89fde4a526a0239da0cb97d29db6b2f95e9e0d3ce1ec8d22cc092c95b9453b291a802142c9b0e2162ddc7d9ae4eb3e27081699918005f53afdb84d5dbe2916b02c1dbb14f838f2811d0ec550f07e0ab51a3595556cea1ae203c1c9066cac83d049092fef5912a7d22dc6a89818a0581d00bc975f4870d3f0412c3d9c7fad7d138855e56c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 5050, + "Plan Rows": 4950, "Plan Width": 36, "Relation Name": "integer_encrypted_10000", "Startup Cost": 0.0, - "Total Cost": 7791.5 + "Total Cost": 7766.5 } ], "Startup Cost": 0.0, - "Total Cost": 154.29 + "Total Cost": 156.9 } } ] @@ -312,19 +312,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28de69a9ae665f6b140b5ae556a1bbfc214537ac7b4624f8f12be09e19c2f06490769a9e19355bb8d959d556d0fe5becf2aa7664874299016671fcf332a5dac73c584a66dec6ae50bbe29d9dbda833ee0487a3c7dd125ec2a35de08e5e134a1469cdf9a8259c72d5efb04b11d73eaa4f4052636c3532a562b47e6741dfb89f15440de4fb7f5628d89455e3621d46914ed72158a86590ea0f048991bbfa9b229ee7fd07f985078ebbbdcba8ae35f3748c2743d6aa369c04126f691babd6b457a5fec7ef29cfcb9e0c04b6a2a7ea16965b95c7247f5391463d4c748aa98039b82a27b364291101ee56eb753d20e4a78bd89a36c90155e29b3212a9148c82e31720d49da083aed5ddc5479caa9c6b1f8aea01\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcc8d0e399915c1409fbe0693675ccdf11458ba4640908d8197d60f34cf19ad8ae8795552ae5ac3976d25075691f279e335e9abcff0102d9d2ace321522e17591b35726bca2c1efa066d734337789854fd221d52799ebc7842fd15d7fc500f27027ce0cf3cd9273fa6a217ffc95881800ab06d6c75adf5b21cbf8b7ba6f8e962d79ae0b9fda4729a8f027c1b0f0651935bc5639fc10d3c3b5230824c6178cc45fecd0bbf22dbd5268049788ab40b3b5a334d6e81d475617b8cf23046eb1068fe3e115047cef9ef39f4e34278fd33f05b6cb875bdd160d57a0061bd8ebaacf429f9a96fafcd18d2a901ab3b987a57147a3bd39d0e5c3a9bb87a75e24ef2ad1c006eb08af175e138160fad88f898f057d696\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 50500, "Plan Width": 36, "Relation Name": "integer_encrypted_100000", "Startup Cost": 0.0, - "Total Cost": 73619.25 + "Total Cost": 77911.0 } ], "Startup Cost": 0.0, - "Total Cost": 220.86 + "Total Cost": 154.28 } } ] @@ -352,7 +352,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb287f55c1e235f0f2c4954872c6effcdb6edd6a2940b22e632067473197cf10c783e2c93c17d9a82492f0260804fc091c241b25cbc45693d49bb8364dd1e135ac5ff25400f46370d4fdbe89b63f53c2fc0ca05e29208f2fb04f52a33ba87df85488ef74ae5af4add7dd00e389c4d0066a565fa2fda6978c3330b22fa5dc8915eb8ed9fad6c1db12384a5aab884f4f6eff88ffb6a4d64c184311dbf1a44e37273df568f410499f666747a94dd20781a1b5e212ffee6e2fca807cbd3530d8c5a71e30eb9ce9331b3d758d7d224e0e628b5fed0b9a24d3303e2b024c7e92430d23bca54ffabb77607f2beb7c2bf63b80bbf3c58116d7ae7ceb24a747621f603465de861b8fa5ee75e972d9d1398704cc76e397\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcabf433c453472e46375cfb9e11c18e0e3f87e0245b92ddf5108247cb9915ec904903ad62305a9920d42b6890aaebccbc85fc49a32976d85be76bd6c90134b27d4444f4a53289bc92fecfdff9804d948dabc7c704e9f45fe89c47b81710a4fc20f6f274a24618cb01bc9fc89ab94fb800c232512f1fe71f2b607e83af896d4addbbea739c4552e5b465ac7792a211caae25294f851a90ac7aca8391001d9c65b8fb3853c2942b7ec27cd30f5731b657d56e7061d0fd71ad3348733ad44cb48607536f1f9c8fe94a540c405bcc1abfbe88f58171c51a06f1a8e6917a7a5087b5eba87d49f194bb76656a9fde0bce63c2d40df25f1eb5fade7feddbd8c04ebd7776e92ec8e7a769ffe9a5c80e4e63a81412\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -392,7 +392,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb286fc7afee084401523cecb4d81e10569a8f9fee17361a1accb02196423076ff98b90453c77c7cdc92c397985defaa9e17f2b614b6253eec43052d40d6f0dc58aa2a15cad39fbe16decbe07921bc15da6cfa68d23f783aec815c9132e545f09e7d975cb8d8a4bc3e63cec57f7b9c8fdbb90188736a8e1bae34e8af038f77c6c6f4c302d6c0aa2ea37f3a54ee49034c4ba7792f39b92219c791f0bcea669a7e8570709add80217cc0ae3d3ad58b6d348d96e9dc1ccac1ee177438942d12c563d269ce7880789a03e6f82247cc72d8993ca1b03f3bb006feb36265c2d6add3c48ae270f7f361c17820ded8c40188ede8bb1c3bf216c9db901c52ffb46600826796c9037a7224a75ba002f049befea4207916\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcaa4cb850266e2f346f8fea794a1917aa7ea9eee7fede9bb46574390fb91029c306c2863f3160b1d50a1c22209038b95afeceab30c37721d6be0b1a58a93bcb76bcbe32bb1aefd0644c058db25ca04e297e4d068a0b8154770a4df0950b96dd0b7c15c69de74428d561f73ebb11c691418b8751e55d5e175eeddc212dfd1565fee086c748f11988efad13c1cb0847b010da5b7306c8541003e226ff21554299470f0d33e560263c005d1086470860a48208c87ad25db365bcc4f196b76bb5b392c6745177154bd309c0f9dbf69da7910ab86af23d190a66afe6e5d6c184df20b7c5f4d03ba7c948fa47e31377be3fe4bfe46ac3932a492ae9eed49d131b605e5da48d3390054fd79722aff6a220503c14\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -439,7 +439,7 @@ ON integer_encrypted_10000 ( **Indexes used by the planner (per data set size):** - 10,000: `integer_encrypted_10000_ore_index` -- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: `integer_encrypted_100000_ore_index` - 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ - 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ @@ -447,10 +447,10 @@ ON integer_encrypted_10000 ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 1 | 707.62μs | 25.40ms | -| 100,000 | 10 | 785.99μs | 27.90ms | -| 1,000,000 | 10 | 924.11μs | 27.72ms | -| 10,000,000 | 10 | ⚠️ 2.035s | ⚠️ 2.344s | +| 10,000 | 3 | 735.89μs | 26.70ms | +| 100,000 | 8 | 866.03μs | 27.93ms | +| 1,000,000 | 10 | 1.09ms | 29.18ms | +| 10,000,000 | 10 | ⚠️ 2.225s | ⚠️ 1.822s | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -479,7 +479,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6aa980fdc390f88b2c4f8ba1ce48984b408d7786b85d6952020359294210bb89a853960740e38339a5d089ee4643523719c74de8b1da34690e5b508103853d5ce147f0016c2a396da1b28b45fd0075aa52f85e4d7e4a96bc4f0b0066e40092445c39e0c2fa7fca297e0abfb2ec341c09b3320bd6f394cbbe694143a5072fac5bd988993e7080c71951767ab3743b896dcbdc1649c5965f7ebc3f9a920352a81a53640edd035c20ef76feeef51c8279004359d05e7daf293813099ea14506303240b16ed5707ef6f8b32c987ec547a47a44c143fcb8f8a1e4eabe8eefe3d489870390a5c95bc0b106ef490f6b2cbc7c8fe35cc151a9269608fac38392eb51478459851be6fdcac086fbc4ca4d687c5de2ae\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e365e1efa586a135a120a71549033398f2cbce5b88891afc9d3a622967aa8d8dc53b113eaf91f7e0fe64b07e4809682e3b02d669a9ea612ff80f029011631431896c4512ad6391d90c7827c6faa85e075cb13d2b5674e86d899e6f3bd910ba29df139ba69d18cbf9ae9dfe04592c10d1fcad9a67ab809095c71f799a08037dfd15c2849c19a43d11c03a535751da2c46b581f8a33a8feb983049bf6468551c1f7de504a324f2655f7405b318fd2f8284c5d43ad52934069c2e69a7c9d0aa2e0116866002104f3fedf883ea021aafd8440838f441c1246ad022cfe7f46c402f36d88bc44059f55ecaf8b83a1166da49675be7aadb67a15af6ec4fa71ddfef80fb72c9e167c4f075207100662462a5ccaae1c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -489,7 +489,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Relation Name": "integer_encrypted_10000", "Scan Direction": "Forward", "Startup Cost": 0.54, - "Total Cost": 229.91 + "Total Cost": 229.9 } ], "Startup Cost": 0.54, @@ -503,7 +503,7 @@ Full `EXPLAIN (FORMAT JSON)`: ``` Limit - Seq Scan on integer_encrypted_100000 + Index Scan using integer_encrypted_100000_ore_index on integer_encrypted_100000 ``` Full `EXPLAIN (FORMAT JSON)`: @@ -521,19 +521,21 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6a00f6966051d014749ba52eaa1bb230ce41a9faada4aee59be57cf4ec741a7fb258b9f7815ccdea099dbc335b6390db8717b18e2b055cd6e57d723d01082a67c113226b78e83bd5456ddbb1ac3e8dff0f0c2c1b4c53720f9e9f81dd34dcfec28164deca3ce89a9917dd7a0714fe52c2b56ace4760b061260b94a47e640cb4ba566adf27a929056cf9dbc86adfd3e0d902d0b077f97282f92e9329bba2982e9f8a833dcccf6ae7a41bd55921185805ff395812de5f12cbb828df155f3511c7cd7afd89ba51ea0713bd13fe3d8fdb8a72dd2f4415685ce582109778d90a5eb7ec29091c11eba3fce250007838c5f55a4f385f154163ab80723451c8e9e51c710a294af896e1bea184210ac5667e575a7982\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36d31ebf310f4f64f5edf80e48d5106acd24e0a932f1899d44451ec171617bf9462f3b3defdb109a9c8fdd011ecf6056ff152dea945a72395abcb7c3047ebecd7025b972bba9cac08526c182538e90b3968303422a68b4cfc5275cc59708420f3998c08e8a04db9784be0462bfac2daa18038c49e66523aa3300cc1adce2c2d6d5c9c658a3f5447ad97739ddde9a0fc196dd572f73ff74a4fb2774f1613afbf0665b8832dfbdd46f4cea035ad86dfae1bd64becab39499529c7281a1579080976002a94cc889e36c17232a74ee3b43fa84665959170b38495e31073f45698dcb54e08daddec7cf516627647098be4ffd4a52bc80d28b3d570fab7b6b2e4513c448e2b2513c966a52abd60cef02d033dd26\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_100000_ore_index", + "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 500, "Plan Width": 36, "Relation Name": "integer_encrypted_100000", - "Startup Cost": 0.0, - "Total Cost": 73619.25 + "Scan Direction": "Forward", + "Startup Cost": 0.67, + "Total Cost": 2258.41 } ], - "Startup Cost": 0.0, - "Total Cost": 22.09 + "Startup Cost": 0.67, + "Total Cost": 45.82 } } ] @@ -561,7 +563,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6aefac50f0f74635b3881a4cdfdf8bb62df6f62e8c586a8c1173af02b38f225da4d7c2030abba38883489be56b9fdf0805e14951eb9c6e25c1f9a453195eaf90e3bf2e4fa805365cd3c818b9b0b6395027877f48f5a25b15887fc87f2f7b257a2fb06dd9cb56d97e294e5cb337697938de8d572fa825483e33060f78e474229c2a7f224463984dc23337a7dd22b354f29519595665b72c009aaab90f1425dfe2068722c1726dd38a2132c5637b970dd1388f4e1234586addb836434e22a209df6affacc64fa4082f00dd51427a2a6894ff2e4e15eefb24c0498a5603e7afe1007aa1dd032e284ffc9f070c7d93d54a55e0d0ff48146e119bad6ebcd1527b3bd6f38865fe4474dd6451c836d671e9c5ac09\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e362e90356e07af380dcec26319c745d1f2fed64b395086551b2c70af35183d7f698b2d5da79484f9e665ef27d45f2673fe0241c2e74a550eacd6cad81f62657082ec6c0ecb99acbb0b2594f42efca5e9d12d0a59e968716bc97bce90740302854fc4e5c4a509f1dfadeab14f35ceae0f198453666e9b5e2b4ecaceda7d074369b16e0a01b920fae9a8c4a0c4d743cf34e087a2d8f67f7f35d0ce89ee60290ce36132112bb3fb0162ecf5c2bebdc7c6adfb7bdb44d3afd4087837f34e699596e816e7cdefcfbb415f5d49044f7783a2b04e78994d0ffb764389ea1ed6e1c0f9fd615fd7683bc907f5782ceb86426df1600e840e931f4650a1564a11bf0d6376d3605a1380581345c978a908c837b71af201\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -601,7 +603,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6a4ef19f8523420e65a1a7df8c684dbe8a33d50f7dade962583576499a00d171564d7b5b7704d2855c0e1b5ef7bfab4a460881932be411843599c2f9b1afee75c9b2584c9da8d21493d18972699f847f11a0653e2e20769c12b8af9e554b4dd04d40f4e2fbbc0dec2ecdb4aaa6f6ed54d3fcd4fac2e0471dbe0a00bb21911917c02d50394068a7597c922cc91d7dadb9b72ff2848652c8340707589cb2949a4b592fff3fa91279accf1f32f3d57994065050162c5e29ccc1513714628e08622ef73901e55aeb29f389c517ef8bb63f2f5983b9bfb125a3449208641cbff5b019fd5e743c3fff5c357a620a0ffbc64a2aecde5faeb4ce11578dffd4db267c7d77351593ab9a598c28e41ea538e16f3d5364\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e362d7a510fc7d46008fe6067002171f9642fae8a000509fee2c127df0e97786422914d978ab9a267c42d6802b197cedd4559d1eb60928041eb30f70beeadee64deec4637be4a8efb1694de349958bec1bb971eae1fa61b8dc6e310804b3081824d4bcb368e19a464a5ea9e42bc2ea057960076d3adf73a65b2d3c9e9e85647a60642cb99df28a65ba53b4161aecb75493963c82402757169b0472e51253b8b505d7d10ba32c7ce5e036e8c3c794313cb63963d4d2ed31503d5ff23821e0a6df22caa1283805c306ba89e0bfee044ed2c9a274c230000dc215364beb1f904b2c4d11a096bd5c272f875742ebb122a8627346963f9f5fdb330379f6957e5b995ab947459e8bdd5b96d0fcc5df978bbd25b91\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -654,10 +656,10 @@ ON integer_encrypted_10000 ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.31ms | 28.44ms | -| 100,000 | 10 | 806.68μs | 28.29ms | -| 1,000,000 | 10 | 883.58μs | 27.74ms | -| 10,000,000 | 10 | 1.25ms | 30.03ms | +| 10,000 | 10 | 1.46ms | 28.11ms | +| 100,000 | 10 | 1.19ms | 29.48ms | +| 1,000,000 | 10 | 989.54μs | 28.59ms | +| 10,000,000 | 10 | 1.39ms | 28.28ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -686,19 +688,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28af0b28a7adb73b651daebf5951ac82dbe77560df3f76a23f1924bccf00064b7e9bec34a2dca21271dddd4659c9cb13047e9794461f65c7dd4fd8159329c09980bd29a99adcf6c919998d7a748922682bdaa1ad4f6e6a33a2670f0a9cfa53615bad5b286fdf19b57c6460973f3eade7ec118f5a8a9c89df97563f1550ed0088090079264d6ed8d809426c4987bc2c803ff0947663a02f7270d9b1090a46c333ab65d4b72ed6897e63035357c169081f98cea9584f89b83bd356cc969f94ea9ec2310ba21e9bfb111b50f9c62643e2d9a5d9af90cc2fdf437955cf703faa9f4b8033d153f446e2b17d4004a69b2f5eb6f04e5d101063649636e0f70a1e748a39064934ea89984dc00903461dec76cf095c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc57f85ffccf8e70b0898a351a513249073689e3f752ccf5980e9a9f53238814cf822bfd393e5a011182187e00da33bb8e6816d22227c1bea13e524cbd9a9a680a44d56bcedb7f86701ed51a92e89385df2b1c75b0f37f923eb260624b5d284a0ffc7ea45fde7e851f983f4b08643d36fb7fcb1bf05d594a5a4ae8f78d65fa246681c47ea1923a30a28600082254cfb4a371204ff38164bfcb55e812a6827ed264429a54cb049ca7b40bd569a3ef78dedb9eca1ec189311e985499160fecd9b7a91388def686639bf0ab60f9ae38f5a6243f7ba78a20e0a12b482c5e4d2820140406f08d55a5d121fcbcb0e4b1ce0cb777e218d05d46ccbcf520504b84d2cf59a25e57c4dbeb6178d720ec23120460764d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 4949, + "Plan Rows": 5049, "Plan Width": 36, "Relation Name": "integer_encrypted_10000", "Startup Cost": 0.0, - "Total Cost": 7766.25 + "Total Cost": 7791.25 } ], "Startup Cost": 0.0, - "Total Cost": 15.69 + "Total Cost": 15.43 } } ] @@ -726,19 +728,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28b2c5ac0a2da469ce95406da3e10b08a23f33dc21e4b4939b1b0138b627bc085fa2d8895e011f487226b5957f55c2e0a0039d8417243c881975f41308ffbb19a656cb32c787e3ba41587fa9e43f32d8b30cb06eb5f410a25bb22c796d354461d479a5231ee4ab0421dfb711e595731bfdc6ba468abbadcb2a7b5b5d930eba74359974a3c92ca8f26ffaad6cc48e643853f3a5dfd8d7ba9c04e5b3a7d5838f2e39d45e2ec9c20df33424f4cc99449d67a4792b403b67167f998327b0d5e9f38392232307449b2c240347932c141da4f50672c6b791ae8c511190ff51ec18efee11b76d26a7a0b1ec0eafaaa4da17c7b22e394e4b2fe4a6bd7fd0d810d483e16a5d6ec157ff8f57711777b135f1a41fa3bc\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcdcffe978b21683de0de0c34696ae1e7af3620b38927983ed81e4f0a065da02e5df334f1bd8a45773dcd6cde85981d31d68e57fbfd5ed1fe323c0d7927ddae1fec43c67f1613027cdff914a690c2a2ec1aab26220e32cfc55846614b8e3e400035ac430c1fedd962fc35c40bc56a064e9a5584fba907c54662db4c092da217fee9ea90c53009a4cdbdabcee3ecf0314f9b11a0dc17ec276ca15c9c5b605ad14b4e6ef140b436ec03c1f4e21131f1bf4ccef35cadbd3e34054ae2dab502bcec0c14ab401f134c0fad17bc2db1c36840e4a81a3140bd0ff75feee8a040f7bb6f48cb75154629e7ab32688a47b460cae90074ecc9740fde20a9ce14882b427996dfa631adde672809609a140b1d657de6213\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 49499, "Plan Width": 36, "Relation Name": "integer_encrypted_100000", "Startup Cost": 0.0, - "Total Cost": 73619.25 + "Total Cost": 77660.75 } ], "Startup Cost": 0.0, - "Total Cost": 22.09 + "Total Cost": 15.69 } } ] @@ -766,7 +768,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288713e20e778acc2e1c6e33c100e3ec2a420e1952508a3c48723395329058e990c9913ad85b9b7b250b5cee55946a3e4a56ebae9b3c01e8d7f969b8b823b22bfc9fb64f4abb9b041294aee6abb0739b7b4fb64bbbdeceacf6fbbd0b21078a2d72e5230f3e7f4c4b693ef50ebc41946630b79e338845dc760513eeba3de49404d8b41bcec3801093ebee9a8ea495dd40204e38d6af32b68d64fe34b5fd94f48ec43722f4613c9b2f9c2950514ab42c80b4acb0e95be1951aeaf547499131698e83edb71239ba11bd4231171348e5375f35f9d5c8e69182b38e09aef99f76ebf3efc872a36c5ff269615a449d665a99c5b24e554df192c56a9c70cb362fef91daeaf2df04c02f32c5856bafd2aefbbf4032\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcfb185e1980702303c643f954653b34c7357713c723e207ed0348fa34b10abd7c02e289d963ba377b5c7efc4b21dc7c1b7c1461a37ac1123462fd512b9ffde212ffeb78136ed8e1145ea64fc75bf8d9b117ea36c05c23168c3c84a2df2149c38ba0e2faafd9aa349783678d28df4ecc90c977513fb33fe57dcdc8ad323fe71810665a52896d94d088912715b9fbf1d4fa0255f24c6bafd8ce9ec470b4284988eccef7f419e59d1dbc7f68f68a4fb28d0ee70c02726f6923f6196c8adb4d7cc881f926e5600d0cb867a2d852a558659762521e9b97aef8283ed807060737357bb04aff873a5830ca19431eb2304d736d1c12c4fbd453db24e5a381f3eb2dffd7ba3cd7dd444d7bb5319153602a5803220f\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -806,7 +808,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2845d75a224f5206768695f8e66fce45e9a9a8c7458bfa511468ecbdbe92bfc8ac59c0a8f658ca9497da56c37234dc809295b7c3ca69a29761c072d10570571746a24abeda8d6f8b4b835c2c6d5ae63d6372a7005b6ca4e8ffca128ef1ee97b22582ef4260c29418a2295f82629c10386d031c48f71416044308f414e1740c4e3859dd97b6e8ad126d25047af0254f9253d1c7ee6a6123c2bef8fcdc24a396896b6ef0ad75832ace6c2517f6f99718db08e8d79a6826d72cfdf07800865d40640abeca43f0463688d60a5fa0e4f9f7b09831d61322131173c6da5030e8d0a7f0074e2e51b6c7361747b55b6ebf98d53e59be0e8c2c20f34c98a2e71da01de019eed0146350a7fbc77aba6dc5138a99414d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc8132d7923212529301fdc6ac7b34477530d11b3d7ec96fbb24491111827ba4a3c088470e675b26d0b3aa505dd61edb45c65b90ff960e05ebff9737d17c88cbb558c31143c25512d0b1377d41fa5efe8a134c4440068d78d886e67309efe82ea5e601688cc40ba279889879468b0c723cf3120005de8478891920aaf9d8def79d932a8304099244e4f99115dec9f0dfda776b98a8846acaa601597928cc375d2753118e357b12b8a445214de7611c1508a3cbaa2383db1c89b44e1f63133eefe866d93bdfdac4036b45f79dcef01cc656810b3b8ac238854d972f1893d8c1e0da2700f76f7255948f7293c67d933361fb089969df4efcef5339159b540a434b03bc923e2088967a68b93ce0958da998e6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -859,10 +861,10 @@ ON integer_encrypted_10000 ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 100 | 6.53ms | 51.09ms | -| 100,000 | 100 | 6.62ms | 40.21ms | -| 1,000,000 | 100 | 6.60ms | 43.58ms | -| 10,000,000 | 100 | 6.62ms | 42.32ms | +| 10,000 | 100 | 6.72ms | 46.04ms | +| 100,000 | 100 | 6.52ms | 47.22ms | +| 1,000,000 | 100 | 7.03ms | 48.06ms | +| 10,000,000 | 100 | 7.35ms | 46.83ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -891,19 +893,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb285c978dec1b963bc7f60328f5e80987d0fd5c266ddfe367bc45ae9d35c78b62216a88578fd6b7f3353b0fa522a49300f909b7e4eb8a4cb21b595928c4cec39ada57da373fe98b35da780b9543a776ed4ded7c12bd4a235469aa7cb73060b1daca38770c691ab287a26ff3442951680b464c65d98e856871c6f8ea6ad100dd170f6a0a40e79ea5e8e88453b49b22c9c4b3984e3f2f9cbc7de39942eecebe0a2ddf50064dc5444858a4d3d68ab497f985e186087a7e693f55ee9cd0b152defb4771292c472ce71e3e041fc2ed819ef9c64a216f2efd24ae8f5ad84bca30d962e3db6e9a4ec9e6769502cbe0ca2ab0c4bb8d4594051a872ae5146ac98dd993b43be39dfcdf2acf50f8d4cf930295704f8606\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce5c3c861e0d404bee8c16e5ebce826e0d8e85dd403f45a75081065aefadf5fc7c59b86264a4847de423f3625a82374ebf02cb1fb0b4b0001fc8d58ae7cf9a3fc6041ad3d2d4fdd03e1a6c86f9b23525ad50aa6911b529a79e5578e20381b28f95691a92f787294ee30604140fffe39a8cb6075aba4c7a2811c54806fadc353a79e9a9a6252965bcfbe5faa4ece57440ba74f2e58b7b6c49adc3e8cfffe43b1d3b0268747f275d14e68ffb3eca6a6590aea2bf07f64018b090e4944355fda0616d6e296e8042fcd4579f5568c5deeb407ac9a78f485a653c609e0a7d010933314ad2fdbc047a4b0057d99c082e15983941f75332acb480a95b683749cfebf77eb6503281f91e69eab8462513b6bc21ee2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 4949, + "Plan Rows": 5049, "Plan Width": 36, "Relation Name": "integer_encrypted_10000", "Startup Cost": 0.0, - "Total Cost": 7766.25 + "Total Cost": 7791.25 } ], "Startup Cost": 0.0, - "Total Cost": 156.93 + "Total Cost": 154.31 } } ] @@ -931,19 +933,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fd6c2742e900b23d5877101beff1a03dd83ded73210dfcb0cc15acc98c37cfbd7d27c306f2c86e7c37d59dfdc35a00f966cfed157e45508526ea26b733710176aa28b533cee713aca07d458ccf470f946a823f0d57ecfff013ab9a059f0e0dd954a4fc89398c2673bd656bbc49a27a156b257130230c80e61029665b6e7d6ae3d29a20b928abb6c7b0d4a9d67165308591e5288e303f8fd36f5470f822a77449182dee99899d16e9a65b62ab17714cb794da8af30e2411ca7b59e1776a37d6ca89bd5eb0d18fdaabc6b0ae968c437d2a501c4fe385896194bd680a255cdd6df77f8d454e955b474773dac0f4448d51724113022490b497034284b75b1fe0d24092fee0207405b57af5158aa9e7a08cd9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc0fc2aba22d9169f6b28d24ca48b501dca3db2a5e16d50e4f7f14473c2138ce0768831cfe327fb1b6cf7f233d3073a6f71fcc86a1cea7478f892fc2039d2f98a4b3fde24cd6792d1d8379215fbeb931c41780d00691592a0d7b1b921b9a04101c70140d87534627f2a92c7fa32d36be3ea3da049bc5e5cf203af86eacf599a7b85e328dbb7d03c22a60556c07ab23547da67943a66e7c5211bce92361f2d2add82ccfb15e6113160936f5c77efd2ad3ad91a585ac53c9bd1d7ed93d359ab6bcaebca1c92b97ce6a9ab37ad67ca277d41c137b8a0cbc08dba59590bf723a804be8fa60762c91b8e9c035ef15484204d84d052e1340c9da3d002839f93015b48c3e50816eebc7f77825d62b76d5ed31fa3e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 49499, "Plan Width": 36, "Relation Name": "integer_encrypted_100000", "Startup Cost": 0.0, - "Total Cost": 73619.25 + "Total Cost": 77660.75 } ], "Startup Cost": 0.0, - "Total Cost": 220.86 + "Total Cost": 156.89 } } ] @@ -971,7 +973,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d67163957f50c5d31ccbced07f36cd7e222bc9f071eccedaf37ba38c38b0b793f97cb988458441e003cbb82497bd85fe8cd223c31cb2e856ee7dd39fd1a8e0221eb112adffb09704e33243abaebd016238a7a72b0499b9b4d4137f2a5e220910a4c46b35318ef4d1c521ca6d3461921b51012547f79d165a5e3adf0fca0c1ce04683702c75f5019d866e2bd2832a16f3e795cc15536227ae743fc3170851a729301a9e94efcb2542428943889e4a21c4f3c04113109ab8bd5520da702db1422e217efb5eae238ab89e5902ffecd312b934a1b03dd5e3ae61fe9c33c051c7bc0cc23603aef10e6f5082132a0d346f0b97ae7f6fd089b840b0afb6fb01919fc5e12da6e245a9114f0d622ae017fd540630\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcf28f42cb49ccd75fa7e54ba418fcd991111d5f4129246ac88a77e5214e642a4d8e97c073f3af5c652c1a165ef4225398c7c94f18c903c437dd465304087d70187cd10a0cbb348a4edc9d7f90a724c418ac57d9cf92471feb1eebac3c604ec5da99a479e9795e1ac97c63e3403b53d8d2400bbdc1639920baa792384076900dbbabc7b6b325ec56694fed33e9cb5c7f3b40a91d4cf56964e266614447f25d4d0796485905d4b0879b044001bf16ba3a55ced53a94b0e00c756aa3dbbc5b260b64c1ce599612c69183dade17ea9fdd5ac44d7d5a4fee1348e425d2e7cae3460949f89f43ae5a195ecae00794c045006bd1bed6b3d094b0b25e3b5694af78aba0032c8554291e77e1860458e907cc5c2687\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -1011,7 +1013,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288bc855279c7f8173154bffd191b24d8ad6b8ed1b0107dbe327ca21d59767580d87bb3dfd4c5c08ee085a44201d3f73f9ff12ccdb2b795d42fa590bad9f9c8bb5390e2bdb936bb213f915428fcc22863abdd304f25005fa25d22fb67e03b1dfada9e4c14c445468acc43155da1b0cdea8892d7046952c5a4c9b8c6a62de9848de2cb4a38e4c2d21539337cb0beab59d03ba4a7de9f88633af14539ec908857bda4f2b239efdc96aee483f65b313b624e62b1112425958726ec94f8fac74e8fa4daaacc4eaff24565c37fdb6a353365042dfad11d5bc812d0f16ba53ef2b37dbc8b75fe170b95caf47ff58cf61ad1147f8a7a87393fe2f950d60997d7ab07fb5bbb2f0fcdded8f1998b46d498293409e88\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcb7119eb60232106d51c55cf33e10845b9cab118f2dbd69bd1f8a51a71e69c708eb9ce74d7dc21d89173cc27449d218a91a171d8fd58eda154a787dd1bfa2a724778bf424e2c12e1114db4554bbb670d5fb7891bbde0ed2c974313108074d538713145b575cc0c169dc3a98e0f851c70b8326dc7ba511d564f54639564a2ff6e0f44baeacdfa25bc448f723529a07b966a0a301c32bb00f8c1e1295573f1cabff2137451e37ab5672bf0a862111155910682b8456ee9a9b9cfd6958353b73b6208e17dd215d207a796afb8790e07cdd9c5f92da803eac86a083bb3654de1638eab39c210ba3d70e2aea44bba80a2e4d33a82da6ba938116cefa072c21cad029eda93f4a7dc3d1daf7f4681a89a0ac7c44\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -1064,10 +1066,10 @@ ON integer_encrypted_10000 ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.11ms | 29.05ms | -| 100,000 | 10 | 1.05ms | 28.23ms | -| 1,000,000 | 10 | 1.02ms | 27.74ms | -| 10,000,000 | 10 | 924.76μs | 30.19ms | +| 10,000 | 10 | 1.20ms | 28.08ms | +| 100,000 | 10 | 1.35ms | 30.54ms | +| 1,000,000 | 10 | 1.10ms | 28.18ms | +| 10,000,000 | 10 | 1.19ms | 29.87ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -1096,21 +1098,21 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fa597283f14cd500b5ab76d12edda4cfb5911b350739fe2b2c4d928845173ae80d26eeb1ea64d99536a10252d25c51df841f74f2fc79cf2593a72d5c75a95b69fd9edbec2f2acacc2e9d83f03596f9baa07863b79d4c889d29c4045e2da13f8deef2feecd03d2f703b7387dc39b18d25faf252483c93855ff52f66be2628b280fbdc0fc46169a63baabe59d0cfbe0efef4498a79eb5b971b5e4094fb83ebe2e3f0e7ab4d5ab80cab21547e41c23597d709a3b8c1d4d80ec742793a09b32ed2bc310afa37260a09ca4e9def5f1c032463bc9287295ad8f8328e8d523ef28bee2a55350ee1b499b0d080a17d999648e50e9426706dcde1fabb05e335cd73a95799e005ca08ed6f0a3f12ad7dec97354bf9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bca312a3e2e91346fccfa7e1e73602090d983d69dadc05e5db49676b273551a87fc355b31dc329804542f93d17c67a463498b75ff7ec9503249fac50bc3a8029b9440d50832ebf92d5c23ef249c4f08a7fccf67d8e82bc15a9ad391669869dba89b8a6c082544bc8a5a3095186eccf71494a2beec0115605b56a0603d26e2c5e2bd4de6f8c3e1b9f07bd4bb6ba6f972899977547dc254b31f019886c76ce8ac1aea86f7d397773651ea1a24c8ba34bf18d1ff9df0ae42bedee88abb323942e6b7b266dba24babd21e6f757dfa02ff5b88be00f15909ff72a17c74ced3f6b2376ff8ca7c50958342bead3f9a2dcaee0e108f1f465fc354acc8f5cd4a09902cc52707da38f7311e51ef77d82ea93de2537ed\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 4949, + "Plan Rows": 5049, "Plan Width": 68, "Relation Name": "integer_encrypted_10000", "Scan Direction": "Forward", "Startup Cost": 0.54, - "Total Cost": 9829.55 + "Total Cost": 9909.19 } ], "Startup Cost": 0.54, - "Total Cost": 20.4 + "Total Cost": 20.16 } } ] @@ -1138,21 +1140,21 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2830e3a6812683faa41ab7d28d6fb1186f9ad804728320ad991542e5a17bbcdead50e95733f8c9c9b32a5ce4f729ae4f44ae3300cfce0d573dcdf1642fb8ac849d6b9c49baf5f27908edc7f95674333be35f085c5f037bb42c990fe4f5ccba9235f42a34426ad223b73cdf0eb1e0e23fe755a1e74604981f9ee7d97f475d9854d9e823e05f5222bbf6491c9d6065a90fb8aac1bf5c6e019136aa14f19ef67feac356150483810f55f5d672d78128df5be7768157811644bd9bc3a9bec0351f3ede9258d24c0727a48687712722d0b30ef007dfc98244b2009bd159628040d89e912e63915fc261c20d99022ad227b073adc891acde0072ab8958d17bac41e0a5f0c05ec87080960d07eb896418141083c2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc32fb06f4dc0ab36ab1c28b25ebd021e08aab8952a40ba32ffb2c8a1e417cd771d03133c8160da2c0efaa4a739ea7f4457b87052666b3f7e18d82b85be132e368d47a2da4af0dab2a70887fafb9b37924f239ce2639d8de1171faf4fd661c3501a4d1d9cc66f9a8767d019a189870d99127441e4956b25e60f159e5e50d6c363943d096aa7e476ce737393d8344b703a0aee037c9718fe7fa9ec646833b65f67102290d0cd8c6d444b823fe27f4edc44652fb3f3c3f42e88acf5c01ffdbb8b38a1c91da2b65db407f6337d5ed460fa8a76499f883082b0c7dff04b17443c3c257734e1c7b26e782b6e3c7b8effac4da10fa0996ecf03f1aaa2bd2663ebf2814cbf57504215241512f4c07c27e1044c377\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_100000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 49499, "Plan Width": 68, "Relation Name": "integer_encrypted_100000", "Scan Direction": "Forward", "Startup Cost": 0.67, - "Total Cost": 84790.49 + "Total Cost": 98196.07 } ], "Startup Cost": 0.67, - "Total Cost": 26.1 + "Total Cost": 20.51 } } ] @@ -1180,7 +1182,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c3ff1d9bc42d48ea059867df14ce571a087c08dff7a5a4254c4cae26485e56566aab51653fb7638745706735e8ad9c2717ebaf590e12ce0086569000c709b77ddb914b56100a549f758c76f804638f17eb646e31fa597d422a9c3ea7caa87e2b83a729026f7b4a2e5042569818380945ce023ec705d9e9ab4ae5251fa22f90812d8f200c02790c55365eca4ff72850cc572445911aa8907b9a7a7341b4d5f1b2b61f25c5fc526851f24381195169656d5ffc0d5f7c34ff5f80b97adadba7d49b4ef92f363bc0b2fee139218129068a32d29f6c3d507842ffbfd3c06a52071bbffab7ce1abd8a3181b9d06459d15bfc978e2096516087f348f35c8813a4fb1dc579b622ff040262e46bfa2b18fa8e231b\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcfe25aa74c45f540ea9869d814b87456326344ecaddb887948106a4a8afd92807632d2dc6494c7ca7dcf2b8f88ca9266b8fc24c8a69d516e89e3d19f4d0cd8fc3f7b4c2919ee8fab6e47b4940e53e2d087adfbe796bfe69d06957aa10be28e290d167b5bcca6c632090aa425874ecf5a30de441cb145253360f9bc3b5b4b7d71d17e635c5e3ae729975e9a85f8ecf3d8a6969eb441f44b90e9aa3082190734dc9276fdaf7f7b31d220226c3d4d8187a3f7a76394691dceeee7ba0c1d94337413f495037588a28d454f595705a1c7b3ac3b2e86e94617b0c2549599ae518cb3ba46dd8bacd2a0a66a31962fff3557cf93fb56c476e2adbdc0f49ee7ebdf01a741bfecd7038cc43e48a35b3e1dfce63417a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_1000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -1222,7 +1224,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283f81157123a8bcc98fadb7f09f77317799059f03f13dfea2bf0628e2b7a8bfdb0bcb6e0640bd29a9078309d8b087dffb0551480bc90ce1c75013b19d14c5f4cf0532741eee644facf53eade4d6867fda0cab4cda3da19f173838cf53eb88f897d5bf8c97449dac3326e0e85b91875c2548e134111454290899a54f8657ff198b0f8d083352004d329c18e6730ffb7156d9b79c9b19fc43d9dbacbe51f6d8657e35e848a53552ee182f700db8fcd2ca08f5f8f889293d745dcc49427244c7c5425df832c3e85d5cb5f091e0c1f415cf5c89c2a55a42f418c956a85b0eb3617aaa7ec69ae94574e817b7c2efec608410a8643aef102c5b1576133b4c3c20252a0e51416eed619477be302a2c96fc350b2a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc289c53daf516e8568c88adb4f2d3b23cbbf7a042fdcd1d6cbad70010a62ee830bc54df044bb9e29efe363cab6fc4ee4c3e39d2f8a9ee67cc65c649dee782e170148ef852e50bceb66186e0fea1be6e01145a88d33344152b04143be84e12a338d80e1915b300915d044bfb40037e18ccbfb0519ec06bcdecfe08e4f3e501109828f3c1421d805f26c94939e3a42cba0d0f1b60be9525c804f26323400d823355c5c05a6d8c6f6a275b307e44243dbee6725d69b0cd9a7c34a92203edaec1cc29b595f8e360f7b3c46a996626e1e734f75be6d272d3bdf86dea2c60209b0d4cf1f744cee86267dc086ca4d62f8f45d0c1a753db67911a34e7dd5545b580597778307a13ab6d7bca8c3f6edcd759b75d54\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -1271,7 +1273,7 @@ ON integer_encrypted_10000 ( **Indexes used by the planner (per data set size):** - 10,000: `integer_encrypted_10000_ore_index` -- 100,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 100,000: `integer_encrypted_100000_ore_index` - 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ - 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ @@ -1279,10 +1281,10 @@ ON integer_encrypted_10000 ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 16 | 1.02ms | 28.74ms | -| 100,000 | 100 | ⚠️ 1.449s | ⚠️ 1.456s | -| 1,000,000 | 100 | ⚠️ 1.324s | ⚠️ 1.401s | -| 10,000,000 | 100 | ⚠️ 1.436s | ⚠️ 1.508s | +| 10,000 | 21 | 1.20ms | 30.31ms | +| 100,000 | 100 | 1.80ms | 41.75ms | +| 1,000,000 | 100 | ⚠️ 1.319s | ⚠️ 1.425s | +| 10,000,000 | 100 | ⚠️ 1.418s | ⚠️ 1.525s | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -1320,7 +1322,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bd14cf178b5b2bc249907e3fd3c316685c21da18b9799bb2019a55b33a03ec10016e5df6f52463e42a5f7c65bc262835c7f386cbcbe1cce4365354aeb256ed6ba39c5fd8fdfdce54ff35ffa6c805b8f29bb0d735259363a817e90f37bdf77bf3b497030fbd74c204989269243cebd42fa6c3df44bbbbed0343baad9c36c62c757cec82ad28ce60ebe091a0d770f6af73a76548b89eaeaaa72f67207dbb325dc491512e93e9088472e63df942e3d9e7f620b53c4d28c1c3e814d03d73c1a2a38096f6548a6c9c8cab0bcb4976ac8371db29f1db84adb4ed0b046e345c67a22d5a8ea0b95c4b7b7940d63d4764f178f0779012f34475326cad8355ddfa988277344bfe76f3e73b78e0581a852eb5a69c899\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b97e769d90c4aa9a8664f6041d91455ab95f38d16a8d06669d4393487ea6b1fde1e9532e3d075810c7cb75e2312c1ccba071e065a23c2c3d3a795fb836994b62dd2cba44bf078dcbe8ede1f0da70b421fcb6a55bdd32f285afe0a8220222afee937aedbb92a2b194a84788b6d45abcff27fa4549e99bcb6c1455f529609f6140fb5cbc35040f21dfd54508018a0a25bd0c4c9d35e526b7ad0843121738b0feee112e30d6cb8d6a50f1dd5c5bb7c50353132130126f16db97a124be86b4b499375ac323ae8f3b4262a34287177780d745228248f4271ef33e241274647edd2e7bb9ddcedb3a20db9a682cba094412acfce00bdc7d690e9502058a1b91da23040b9c8851684336236c699500b7d827d84454\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1331,7 +1333,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 16.91 } ], - "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bd14cf178b5b2bc249907e3fd3c316685c21da18b9799bb2019a55b33a03ec10016e5df6f52463e42a5f7c65bc262835c7f386cbcbe1cce4365354aeb256ed6ba39c5fd8fdfdce54ff35ffa6c805b8f29bb0d735259363a817e90f37bdf77bf3b497030fbd74c204989269243cebd42fa6c3df44bbbbed0343baad9c36c62c757cec82ad28ce60ebe091a0d770f6af73a76548b89eaeaaa72f67207dbb325dc491512e93e9088472e63df942e3d9e7f620b53c4d28c1c3e814d03d73c1a2a38096f6548a6c9c8cab0bcb4976ac8371db29f1db84adb4ed0b046e345c67a22d5a8ea0b95c4b7b7940d63d4764f178f0779012f34475326cad8355ddfa988277344bfe76f3e73b78e0581a852eb5a69c899\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b97e769d90c4aa9a8664f6041d91455ab95f38d16a8d06669d4393487ea6b1fde1e9532e3d075810c7cb75e2312c1ccba071e065a23c2c3d3a795fb836994b62dd2cba44bf078dcbe8ede1f0da70b421fcb6a55bdd32f285afe0a8220222afee937aedbb92a2b194a84788b6d45abcff27fa4549e99bcb6c1455f529609f6140fb5cbc35040f21dfd54508018a0a25bd0c4c9d35e526b7ad0843121738b0feee112e30d6cb8d6a50f1dd5c5bb7c50353132130126f16db97a124be86b4b499375ac323ae8f3b4262a34287177780d745228248f4271ef33e241274647edd2e7bb9ddcedb3a20db9a682cba094412acfce00bdc7d690e9502058a1b91da23040b9c8851684336236c699500b7d827d84454\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Relation Name": "integer_encrypted_10000", "Startup Cost": 16.92, "Total Cost": 226.86 @@ -1348,7 +1350,7 @@ Full `EXPLAIN (FORMAT JSON)`: ``` Limit - Seq Scan on integer_encrypted_100000 + Index Scan using integer_encrypted_100000_ore_index on integer_encrypted_100000 ``` Full `EXPLAIN (FORMAT JSON)`: @@ -1366,19 +1368,21 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bbb7b8e94bc9493304a6a2ffc7d98bf729ed1f9df61ecaa947365a8db06c5606e67c0690c9b2ece73c34a469b21e9fdae0da5ee9cf7ca0450f8ae0891c55b9eb19cfcdaa5c4dab13167f727789b59bfb5714b926ee4715ca0b728030903b03c62115448572bd33dbc08be3cc5520c3ccc56468970c77985aafe1bdce865f6667b0bdc83cb2ae1214a1bd62b173349080fb6dbe9ac51ca1278e75f58eafec4632b832e75266f26c0358edcf68e4a6e17a0f24eb36d88634f0c996b16e0b39f71178f8f18a66a3e98efb16b9bcdd586870297fdbf30d654966cc2f2c30b35b7ecacd1ac767381b330a3332394a52f14b5e6a526e967a3fad744764f660c744e46c00dcfffc91b843bef8aa0de06ba91beb1\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b953531b3b060ae34090ce80ad8482fc3f7762b9c33883b4da2c2f076642d3ed31a6aeff2b3575f09ff7f6310123141304841cc74996d88850fc4ed1f989f4a1693019e01ac64f4c7f46a67c7a1aa6e5e810b697da0815820d5c58f730940200e6676e103c4bd6746b27e374fef5fc76de8f5efe5f547f0c42e8fc48d4a0ce0dfb5f299cb6b36b9d5b76aeb113732d9b8d2acfe5afb7d9e6d59c140578ab4a9d48f298ceddf20a7bf028c04ce603ea91f30a2c09e03e7b20561ab94b23f0dd629b98cfeafbf8400e34f14ab8272b5a00358d9b060a0844768cc814e8a764148f29f3063d95818f26c5b7fae5e61e5d954045faa5cf50958bf6b96b5850afae14f3ab58ea7120338014aa91e85a496c5b13\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_100000_ore_index", + "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 500, "Plan Width": 36, "Relation Name": "integer_encrypted_100000", - "Startup Cost": 0.0, - "Total Cost": 73619.25 + "Scan Direction": "Forward", + "Startup Cost": 0.67, + "Total Cost": 2258.41 } ], - "Startup Cost": 0.0, - "Total Cost": 220.86 + "Startup Cost": 0.67, + "Total Cost": 452.22 } } ] @@ -1406,7 +1410,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bb3912de219c31a9599c80779fba57c1cfe168b393d1ff9334196da7f199fb25173eccfbb9a27f0a7e8706ac80c12f11187e9935c4c04ce1ad5096ca88f082bbb4aa082a56ed7abe712ba1559c603be9c9572932184c0c614e78cdbd7230db76ff9f7102838284c7d2fb4cc48bf15a4e02f6bf374dff6833e300b7509ae00855cc22eb7587e09aae068b2f82a8e1ee51b630b495b90b825b9fb6fab5ed7acb991c43dcf7a962d718663b42f6bb0e221172772adfa9304b40533c9fab3011175acc78c177835fd00a174c86551b2c2c9f280f3238beb03a8882083024212bcef9d6556ee7daae0877924005ae62de0a1ff7e909f8eddf537234089f49747427273701c7be291d64db45132955f80358b5d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b973c9cba3bed1de176e1e0c737f3e06a87d24c01f532180c5c6077db31a11b5db39e39761370cfda38eade049692bb691af812eb7057175beb7df44a1e4280960b53b78b78d98b66568e00c60af82a8f01eeb4ca38ddb63ccee9b03ed6cf2aee3bc1c9ff7c05c1ae8754ef48c774f9c062b25b984fe11a69cec39ee6752ecd2595afb793db146724c17eb97d35c60e41ced6ebd7927cf90b486116e1968e7f6a4cac146ca749ef16bb38375c397df01f3df43ac1126fadc672d1709aa748f3b7d085f49723bde2c9e9e142f3b7084bb70b8f036275265f3f5ccb89805e1cf4308fce7df350e57c3355a25e958fe8ff0923307e5aa76c1a2ec1f8cfbe9b781402a8d8650468262388a0b9a78afedcf53ed\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -1446,7 +1450,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1b06bee8d036bcc3d921ba65ad066669be107aaeda5b7930d617d169a5d50ccd575c046d4ab111a575be6c2f7972dc38ef4949889519da256e1174cbc3cd362d9a093333d16245b611f6ccea14f8de6268f7772fd4dae66c7b8980d481b1dc492ec09e84cf602770cf2fc011fbf3371a74ac3b7a99597ec167f5f9eb6f02456e71f1841147d862cddbbfd1ccc7242e35a87fbb5a2fa37b1c0a5230ef4f326d825c7db7e97204948e6ab11220e15fcae1e1680d06d6ae93047551aa3549a13f9961b114e33920b25eab36f02d7304487f7fac9284cf46ac56e8fdc895d127e379a22b49dab3bbbd195f564a1380f725ecb9f8ac67ff676a7ec6970a5b06c9a5897e12674cdc4ba22adab3656e02f582ba76\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b90a6e72435955f17eca00bb5f24313355ddd769245e20eb3cf26894ef43403ef5ba9310bcb83c432fa5351944383f549d9f8f0b826c16146da7220bfb64a1fb262f2b0495330e0bd235b375daddc8c3f0bb7c0e0744c137e356ad043adcd0cbe7047298e4b5a14084aa7e52acbf28531f78b25828bdde1af75b0089afef8c1e1c70d8cce9adfac3f687fe207d7b779e3aad4631976390402c9123618ca76ae8d5fe52ddf11d8ad8f27c860cb5b864516351a6f5c65e2ed17e8cf28f9fb9998b51f4e924d5de50227a42d29284139555cfb259e673df19abdb2a6bd8a2e262c8ef98668b023d9add2135c159f4a0980e7a207ad001f0d74b0a7e02c5b159f12b35ab41f1e7454438c7be1d02bd5a0bd7ba\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", diff --git a/report/query_combo_bloom_ore_order_limit_chart.png b/report/query_combo_bloom_ore_order_limit_chart.png index 17ec42ccb5fde96e6e7131feacf5c9fd424441b7..588ea4abfda57511f79507781a01684621b69a57 100644 GIT binary patch literal 39753 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 XQkbBvJuZ`s{*Kf&`KuXM^zZ+F538)X diff --git a/report/query_combo_filtered_group_by_chart.png b/report/query_combo_filtered_group_by_chart.png index 92782955463ac82c9b024524dd8a040387cb2d40..4343d2bd8398791980abf85a6cd41136cd6ba12c 100644 GIT binary patch literal 37959 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

      dG}U&w0+d&wcLYb-(WCrIyA6dO8+52n0f}qI_Qm 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�_2T5W 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

      2V$@u$l9U+1rrg~Z=W7ef@D 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 diff --git a/report/query_exact_eql_hash_chart.png b/report/query_exact_eql_hash_chart.png index b86f6fbbd146a9cecd8e5b3e45bcbdbba8d618fc..1d84a872243529051ccdd40eb1c645b04db1997b 100644 GIT binary patch literal 36589 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 z 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 Ic*^_#0l$VeiU0rr literal 35604 zcmeFZXH-+$yFQ9tLBx%s(go>N=^dm9getwG(z|p+S1Ah82@t9X0qMPj5>!A+=mA1U zr1#$2o!Pke`JH?JWIR?X+tgN*%*PQSByw7}|`B7C_mJpu|9}f?YP+m@2 z4G-@!0uS$^^7X6W9rM+)$KW3!7a1KFbq8}7_m@s)cuFr_UfVjj*jl}M=w{~RY~^6j z&GFSPv+C4c{|u#(G9@DUqZ0$|aUP2qy3jc#-_foU zfh6TDb#M>3MjkMDV0!-2k2dDw->>{uu7h8VYcGT)na^JhhNpsn?3n^d0JEb`GxHqKIEW4ip-vPC*$N8PV^q z5KIr~JHUio7v)-`=;>)`B|8P@D3FJXxn|%toc7lz71M$X`N5Acea3VJ53iGq&}ZCh zOUb!#cXf>Q($$;mgXZ9Rn|RHpt?&GaxUgNdUp_KQ5T4bMg zmWR~GJ=a8sD(n&|#C;5uQ^nZNPWDpSjB0hR5|Yt%iJy6i8R7bl3m;u}84vH9O11kM z2fKbnd)aaAR;TmHXqlBdDZhP^$m#yn?8ebrJ?GY3SDf%_Rl{YaI?p}63z5B$9NkiL zsCR*i*nu?Yq!=rtmZs=dJ2&yY*aMrcOr^vO@1tF+qXnevLa$64jFr*R(Q&hZNW5jS zKet23kPo_P8g6pDJK|9CdQuWQb+lTevN({xggLr|ho>6z7vut--^KLFFkTH#VX45I zkt*UR8d`ZeFR5(IqIP$ntH?RihCsrCmD$c@n|Cx0qpV-Zcq|{D9Zj4W^lK}`vPIey zAQ>=X?&Hub*@rvZ7!~v#6_H4*mgGP+JzmXf7c1ui(p0QyOz*?a)f8#6@eVk*?6~)y zq56UA^57F@V^nRK4OaOo5fz)=NJU3kxYm2CE5joW_3TG`Yy3|WP;14-#pc)3XK-(I zW4C%_sarGTqo>2gPa|G61w`KH`O)9sU+XwnT1$7F z`kCpW-0*FE{dKsB&F8PpdgazIXsBMKcADfB!M#yugi<2kX3L{+ITx2Q>{jo~jPz%r zQ8FR-;B%Ng=?V1d$d__k596RV84tHQOQD`TgV`G4bytKD&fwF?o6UP6ZBR5-ag zeyQSTDm1P~DZ;tv(Q`d04Q6KMS&RHw`i1!X3K_C%@%7FEX+-P3E_wWAw+(t#H=Gi znbIfQ`&(JmVxj{ol1Oa-n}$+$oUzZ)4&1WuYviaCn%(^RTxYUy#}T5gt>jC;PGn?c zX1(sl@1~B3o@hpu1XsO&lDt$B5ZVdT?&9GwJr>IA@U~2pxfJy&Ev6bwlo>FMVmMLz zKTHmm3hOzZKYy+(7G6;4vN}3+a|0tG74%y$S(zK1dP^NMX?2e>Y)<)o$cs|@F`+xl zI%22$CP?t?4Z~e$CG7eN*1nf^i7nwHjG!|lSU%82(J)r+gf!>H6wlQsQWsXbt6gol zP1WB^6T*2EF=9rGSYuz;05y6@OazD*@vh=$$E62j$pVg&9JT9`2U}g@h8HqX_qCW{ z@$vH>DLv`3HDP8wFO!9iIa!6sr*^Q$4n76X(*s40*Bc7HvCz@LwHIHiXp&fHROX)>s1mWxoK7z-;>`-FCdu6!XFfB%_TDJ_c zaC)>B$3On2LBq$)3|nAWkjh!Nt%f-^vNA4>GxBKNCbJnVO1m+~a~nM<+^$w`t*QMG z;X>{1Veb#p?lkrJb0NEY&^tf+MXAwsUhA1u&@EmPRiRH^BhET5Utyl{-K7>P+7HsD z4$5+7kGHz`!(AW53sd5|@#P@OdJav(MPsd?xcqSwQQN^6Phz*7|9fgmG`6|1@r_7< zMt0O7LMva7DtxTr$=>%hs`In`_>R33~Lwdj?-GiSqUgw#ZW|WqeR$#|t+x=2&m4tVQu(cOY z!NNpc+X#xdNi8;7t}GR9KUOXOxK-dzT4!d~cLO)BPCg4w2HoA25k|LG0evGan8K=* z1h0nIT(Z03PSoy)-bs&PZI(xdSujl@+vo4)Dc!R8SKtVkve2|jkb5=JN&5;E#PVYr z++?;$4!peDkxtHUZyOjXPOg)#?HJ4BR9`>X1Ap1Dp-TuzvL zEwrq7iIUJVhVL4+uv=a(ndRy60kLJ7e4UJ^Ij>c3qvpws(aE&3aq2F6u1@h6*_|XU zIYKIt!Q&*uQh<9@*KwoKZ>4n2Y&kCDm;agK%ypJ?)lVlJYLGeYx5`s7ExHG7b8 zGt)eWZ|Yk_pygP7^L|O@z7sn;cGi~LSj;ULyo-T8W~|vp7|`9)}jsO=iZ@UaUi{U2Djj%NB#$lk){ya^B`gC zofrfNk`;9TB1VwnMs1PzuIQeRywGu{_x16w&(quUtYe2tEfNFA$@CU(+UW@*Xd(j* zwH}!4gl`Uf)+hJWE-)Cnd7&(DK^M#&Q>zz1`U z-27U(Y*|mA&*i*UiQq@1rCxP^E1f&Fy=Oz%gG(F-x<^luK~AI#Ya+ROlJE0nslCha zy2!wEqN8hO2VeyM!&N0Bk#)bN;#=96%z@RiSMsc1@=#)WPq<$-URS>|HU4_odp}i} zvcPStgTIE#=GSi{!}R`V!?*Q=b{7;~$l|Sx8S)2vbqC81A@B2Ksi4vqBl%d)X5x$$ z#W|9_Rf5*7CfM^SFh5uH>@o{G>fqHVKD*6)blIe*w6y<_+u`=Y<_`i+xz9b_>tpT{ zy!EW2dz&+8g}v3Wj&6k$N@#lj3%vukA+tF6OD{cWR-w8tY9>~Hx@HYUP)+p;5AQDD zEeoT>2jI7S?jAyU*O0E79{_}d0I|VhCkX_&NofRl2DoM`i^F)hHqtXs0sevVnf$!z zjQ-f^fdwIV93bvrl7Al(2cUtxy^4 z-JIBZYHgjfJYJ^{fw9ov3QGUw%lh|ccuyhv7wG8dFMZ}JeVYzsVyIB0)XOs z>T`Ywe!1`2i8er`No?3VkOK+Uj6D8QmxW$pHZ40*I(O9Rk}h<$`*sjg#$Skzt&wIj zjfU9VenC9w&3IP+{Zb`qxexvcCz5ouY%4}_K})Dv3)w@*P6~dJ#$n}D^}VjzIu4a1 z-AZ@iYgotL3ZffnWVie*%9jC_K>*A&bjnJE_w5c=1&^s3+nFvKp75KBRiza_EruwM z#*<9$iaL|40Wn>MPMoW<}EL9TXnx57#7*&qU z8`~*Va(O5fVWh61S(`+*lfI;0^b_-iLcCpId0az35>%7&X5< zGIQ|ylC97tx7F6x6S*mu6__bBZ`-}zj9t+d&P-u93CnQcv0ty!M243-c{>a?>>nYmls-TX3gFL2#diPQX^=f9_d9c&dG!$ zv6PXF09&i(4ui>9b^0V50n6(o)&X#%be|y))zcwYxkX9>7@sRkQuz`+xJA{$+Ypjh zhe4Qm8*;SYfsG>GOiG%LuiC<4>A^KEy|rxB8_%>p&;DhK2(nqFiK{F^U$&xp3%}|l z=x@_%^){*Ub%)*@>2KYq#)r>)2xS0@ulS^_e6yiHmx24eFj9+`-rDC{;eW^xXhzw@cHcM~iOR!Zdnx3&fVDZ|o0 zesqWL*&{~f6rR##ntcF{1Ra0-OUuX%?HY=Th#2H(70}J4x~K3sjE{;`gfz4=VzaIq z_Vn}+Q&UrGh$2c(8zB1)IUk&f`tl&$+7Ym+_4b=EQ)V%Ln<0O$1*wJuLA#dS* z?b%aHxaa4Y(W7>K72Z8n_C%B=5`3C7hA*UwS<1Y6NLoLv+a<6RMsOn&?^{rc8mNkh z@7$465&PDqRcOS%=3OR73wfrnQ@xWR-5PalVnQ?N5}c$c!rb&IBt!`wlcX%f?s+=G zeB^$@s; z?s+8N=pU7OjODTsuDs2LK@D()&uxhm*uY&sZ4b$fNmVR|p^H>OIvNNhB&Vb2QRF}! zLoPD!YxXblX6zzEXTrs?3Lrh(9e9B%)vx2Np5qOa1iKyAJGLJjm9N>+HwZ?9EIck- z*w=M=UB`|Fy))-k|9Z5w^yDI(cf>+%_z^Q(ZJ@=_WiwLNmTfT}o}(gVY(VuDtAXlI z=pS7EHsd+NwaJW{c6fdg<<4`;AG5U#fBe{YraIM5cQZVgEEJ~)s5y35#w+*&p5Rq$ zE2)up{HkdC-nXAbdk0p6<1A2vF;m4gl{xl@TL{h12uN@?o3rOF!&s_Wq&cY)(Q4j~ zm6RkV4!M$8u>yB456r(xfGz5Nm{j$UU(@cTpk{=bX8){-PF!)$N;?XfYmF92ipk*{ zd^@D@_MJ1=M$Fw1w!b1AHe}ao=^s&1JY?mwi!PZ#qkVv0qq5HHaA_kYLNm`r_ zmjn|u*x03hev0!U5}A+NqYan;&+x-{{ugH8nBJ1^^7T;vEhBYn?>ts{C0 zCz^!wrajgAp2TXZU`)++=L$({4xf!KNA56JpestN9Lk24(bWIBWvbOv8jkxN&E>0~ zf?+J^5o51Myh{TF@!{jm1mjU(iRrllRCL)Z8(M;>BBrNJ;g7cv%lu{K;UqZpM715h za6>ybl9@W6Cwz?i&eGYJAcLWS0ST5t)`61f-}GNMZ}#VnTUkh!FTblSd(rNEJI^C= zY@U0oFaRoB2{>yX=IhTL)94qyc)Jbgpo02S58X1$$mV*Ea4J!~*>?CN*)WPoP{vDx zcK`?G@y`ZtS z@;gNB8i+g4lPusL!EKhl=Wn9tZLmQi@vJ z(QYji&wovLLt{^T*Z=r%3cnCd{opV|?)US9Rdkox00H-mZz7+<##g3=(ee9;_!vhb)!jZoq-$TA=^}A)hV{_NEL)~KRsOV)+WI?uT+QGr&=JT|A zT+S%=oFlnRktLRmfj&3@t}pLQov`aHJt;UsT`Sc*PC=pR)(fVun`m`#k$HW-Jb*rA;S4gBbHT0|l zJM;1ANTD<~zx|V~HMWzoH_iF}g6G-88#iu5QpftRU-B4da~3~T)H9AcSX<9)Pvn)# z45MVOTl18lB0usi+3`)BIml{;LsGt{|MalUopV(vMD?Cc$|9=5NuC}iP$Ns@3|t#J z7}y|6O0W*{fyBqmj1KjiQAs0ZaFLTAwp$*lo(jGZS3?t9KFF)je7ta?bOmE#(wun0qM6T7jGdTwMbc5h zI8%M)0!5C}MqfkKp}%_Uoqn}Efv)C<)4x2@gKxGF(jF4MVV+C${wZ=8Vc@Lb4j*4* zzadYw@lN+!fSP)iG7P|Gg?gWpb`!!ZT+s;^b}tawXuM;z*F&_nQaQl^NJkj8&;EA} zDdd?A;;R0mXP+LEXe@^Ek4J#o0B)T_CF(J_-3Ayo$wXoVgGCj>w5n_0nJ=8^cx7bk zv{YldTk9{`7I>o1%h#fA851>}&J&$_)KN`tVKWUnsKNwC zSt65u71T0R~n_cQFf&Zy&nv|9U!9Zc-z%;d^IhbFjc%H_1@SSn;!UGBjrFiT^ZbmV7_gh|rm!B>EzNIbqM%q7nwA%UCd$mjhD0a7U7pcDL zvmR+sM?`*Rz}T9lg8uMP-GD@SrC@#@gA%&C9>72DsA((n>|WgS@S8D5L1N6Vi~JE? z6TaGfg=gwwI;YWnHiIp$w)p~yC(Cs3!^I_YXsa4Raqa7;2K+j9cdD^R>PBbJstvpf zM0kH$V>j{5AZ>m(2xd@;Bl2~NB!*{}9?-bl>7M5*@-P2VO^eA4%hfK7ec2F*jJ3Kr zQfwlti{#3$4B}T2-HFNmQVrMvMWz}1kqSHW2cM}Lh$$)Ua*DR&$0eCpxYow4PUm~l z3(nTJ@8xZe?x3|F*I&gWoj0cH)R_2juP~fD&pC5isKwFLU~PK`T9>zHW!%+#%lpKl zq2${c*RQ_sTt-sdvQ$5cB1Ep5R&(&gr6oPuDsCL+-+~Hkc~I$6bS*8l^`ms_)&!G7 zh}H;>m1UCy0tGX4XaIKLx{PL6cM7mKdiOY-^jYckHswaUxF^EYFge))r8eT^$zI+W z!J$|K4&%b-sYjNtN{|QdwfJL;a>{7)9jFW;Y6y96+Flcz>8LJ>?2FMXIxda&+tx*Llm|JF) z4MIl4!@Dbb@-3(Jz5I@ltN~ZE3=H#9tT$7+LStLFaV_W0Qh#hhr0mT0uCc*f-|oA> z&7t3j-=hc4!(STHf8UfRo(rQk?3(MIQ}}e>F^PESFnNjB?hM2}Pv2URp2~D&g`OU7 z0S(QqpuCBaW`DH-1yq^IoMOG_gt)L(YHAW+iPQUI(`%?za@DlHx0kLd_D5?yL1LN{ z`JkyOo=w3dn}F8B(LHqqScx{FXFpB!mbelgzkHWn-DY`qdJ+{MU+>#rtS|S&{)W7W zt&f|KI{lN$c#3gjHHujRl$^Dxt~|Tu4qGaH1W|zmgA4_OYEQ&(MVR7n7nxf|5aR&f zD!RAfw#^WHXJJqGWVx7)zF|x6Z750Ee#xn#PV~-c%A9p4b<4X3uU5#JLGHIDyM_BQ z%sGzc*HKAPPo|wR9H!jv5Uz?e6ey0&`)IAt6(@T(rJ^tcC?vE~waadsKbES`3}4xB zE_T@s#JAEl_>Fn!>-{LZ;{>`8xr|~L1|)@thO6<^oaP8 z4La{U@vOF1%tE-U;bBQxD)(sCnb)Sv>FHa^hN?%5Dv62pk_BJaZ>x8h*-z3ivshUHjzjwKAVQ$3GbMCeH z-p#ocp`h)qP}eZ3xyhBf_1#nRE5hI7$s|C@#^P!*5rfz4z9WM)akUh;qhsxl>{to(%m&Sha|mJ zRO=u{z|r<_bVp|?FE}8m^=&9?Q;+I&i?6=fROU)=t(j~gNmE!p8q>+V@j-x2l43+8 z#9Wbyo>9gvg}GX=cE#BF?AJ6=Z3<@mz10OnH8s7-Pg=f|pw4wtI5I=fG0s)3eZ0d+ z_hciZReY1oC)?jYFW3AMUrZZ1WVt^#&gz8`SnsQ+)MhO&D};F>G{6E3jtf((cF~h6 z`F#7VP{3$`_EzOM6A8EN@0+X)o!5LwK4$7VsB)b(!-6K|1x4KmRGbXyqZ8-aHb=b+ zm!F);hDtV&5_1p}$NCU-{I;MT5Ok_9#CUkw)&s!l6gHPI?DknMo5cc^ktmyRVMM(y{RIGn#jT$Zmb2+*07r6Q;3|dSDsoDIR;B-1p5oi zd>L)H-X-x9p783_Q9rkC+laNMy$-G;LA_MJztpaND4?0NK!P`*M7<>bD>IZ$j@}SHri+HwDgE;$??O;hTkX2aAA7- zg?RrYMOLxb+F6oM;JYoZPC|k*1NP(enDGPUt6`~}Xd^N@`e4}%@1TLMuOky52E?7J zPcQUMNy6MJo!4lFs_as0A8(r@zi3{l=?dwTZLkxGZuW+!h0q|=Pzh{I4x6OTas?ywCv z?85?iK}S#i$@T-y9E}YDbFhe8mm*vIs;Qm*(MbUG2yun2PHv_E)FQ5+ITwQ37rrez8Um+Y*t2HE!m9*(*za;)f8EZ*8_Yo|))OfyAFbXs zKk3LpW7aylZruofEtgA>KC=o61c6h+Az#T1=^@L=q7P+jCQax}Z66_NS`2F_E&4-@ zVyZzq{`W^;q#@dojVD&vob_H_OFpa#7h}Ss%Kis4p2NBdlFXm988EHq6mfRhnWd8H!~ihuhB1E9uOJ z2E*O~S7~`iJZg!^=3K0LpAR$zwEX6b3+c03Ll!nWi?gG#CyY`{2Fz)hT}e`?L(AeD zKRcJ+w`Tfkr#ll1U`5@JL1`qx ztlOs0qjb2jmFT-)?I01L_Sav3^?s2d(5-gKc3Fz$gQcUa4&VIx_7+~@0G6hY59U&- z&}C^zEmhI8((PD^%nFtjv3zCL6=>d^LM|ggYteFhN0RJM zGoy+QYh4}7ukhH(N_ftgDuhY*8N8`IsNN z{d&RaBvh@=%}&s5`)j-I@mr1D=ju7`wLrqOB-j?S7GqUXn>L zeq#?_ zNaw=)%*IA^9zh>O7}V-Q<)ZDs{MGX9WzfvfjVaT@(%LdqRWkgkGI<&2(Qjw??ywg( z!RI`ABE+H*+%0L@e@$+!2P2)~<_X=~L6+=dHG5av!qlE*mMjk=4aJTYuOat0m1%i- z%G&hQf?Gbnj7C`0*K{m0Ec?gEok z>Y0vmiV%C8p^i%MeS$dAYrkh|`p;S#DqSP=G@aiNm3&Ua$;nG;_@l#jFGeaq^d9UpSXp zd)?7y5Veoa&v0shqp@)S#iCmxA0dEjqu^I=%h4;#NMC}Bk`)cH_+LDls9^#=IX|Ct zQA=xnU>g0>mUV(Qaf4-68&zJycWwC~NizWpL|$Lqb+~unqS`sBkl1Sv4F?Wkt;lW}6E7u+X1~=_=DNl-#X!wcxa&dk+s)!p)7enyHCja4u}~-DKFl$Wogui z!hiB)vu)eLY$8QeEyu+QS=7R{{-=;qVU#P}tEcM|jWaa1$8&@LG;a$NC-wD3TpyPzZXp z)N&d+ROwPt@XX-r;hsJtQMNZND47_i|M>wXI$L&h*S&W_;k9 z85$Pn+~vR`dN{T+yxRGc2;FI?Kht_`6_&msJAK-mf@9_uybt_@=_^){YAh^jMyKnt z2ir$wDE)9-4%?t1+CV`46 zB11g1*u~5ROjhF1rbf^$$_${I;BpujDFphx5$!MvLE4ae>`v^MI027sODGWXbX2>o z47Y}GqL>KDl1K>>Df9DsNsoZ`;(cyb%&n(TUG$yzehm{15%_PeM;YfjZvTw)efXK; zKzmwR4++h|FoTOkInA`eNmXwWX0&yO5aDfZk8P!_JvgO!p-i9E^6}qt$JPmVv!s>3d#O#h%#u&3@0d784@z_`(!5)GX5lZDxea*Obah z59@=?GW%WKjeA-PGE>=EDO~(-dcLH}x$vF^@gcK+GSi-UTzDvF`O7pwS*Rbm%ktqP zjl@;FyO1WA2ZlOdW7s3lSV-8f3&4^Rn9E9Xsz;^rO%^W1dp*cD~r^_S(IUMQ7N_4BwGku@;!lMvB|^sl=Bs<)B|oo zk+xWgMceBws`z|1J#oJIKn5al`uLc1;mU=`$+TH5F}vQ!_5KDantB#L^6%(g)*UEO ze5<48G@KC%%{ZweCXVjtp#D+oZ?KxCd4p5akld|V!KLZ(kn?nge^6k?-b$}$kU!VO zM*=djVt0fDlcUI-45TdvSueh&$5Hk`dV;~nyv-#&{dAE4$r95pBIRKuSrDC-pB8BG zBQGzfER502AU4e+&h2OCHOj>|JWqy3yf2v=LE~?5ffG<)>ff~`S<7uDm^9-z3N^un@Kj&$m=*{2H+}Gx)NqT}ZV5+ashHL1Ey2<+x3v2b#ia_kX<(0>d9}kd z4HwY8d(5^cRbZ8FS;$NB7PTm|Su}-{@(`20ak|)~*GbFSbjvWJH*Kk3EgRC$_MU){bW|!Q!!#?Y;vMT=bHNL=ck=17 z%Lsq}WsQThqf|vmWOP*h%kbEu?Uz9X_yybe?74cZ>VsyhU3uc_2e67|+dzY}M#|{5 z(@NtoWS|pOWK`tKUer^W?E6zeSM3A^e3s*ncYzw}c!C3&Y2jW>@b@Ff!+R>psAFYuVF3a!jm7hqbi=!G$B>XFPE4*!xnfc>A4Kz!YqL{Z{7^NUvQ$xda=29VSt5aBI z`CQ$BCvh7mHofVyPcu|(5@b78t*M+MV)Y~7Mf#-HE2m&ms;`ymvldIS2@4j_LNYhmORT20n}5VNpy3IX8fSdu>JVKi&}xTtBi})#1dA#QHxaR{f4&F{i%Bo(@=E0Jsqsj zZJD$Fw?GVh?RC0RSALrN%t^P!C_Yjow@l4+XIF}A1KlCGO0C|OGPJ(@w>}yi`a-=$ zGi@54Im2!p3*+}0r}3P+!_6zifAmpqW?s(9u*M+m_{2YHaQNr! z+$X#C{N`%Z=Y*tGJDj8s*DU1YwsKnXggJOfp092fb6|G@NE-IeKkNL$F{c@+9LkF3 z)F)~Yuh~_ob7p}g3X$O31;hmWQJ?=}BOr8ak#TKPNRDDAzN2m=i4T2W~Yhe=l_c&_)kbv%Q&0 zfz0ZepJJGvOD6C;a5$h2GMo8;2%RLTVbXD_7ZE~O2(;3;HtsL)r(5+p?Ix9oj(Jy# z-NkGxOs2f8ZJzCTt?sK=uej`t3k(EF#k{I`to!6>X=$f{NH*H%DjpK3T3EN6 zu;d7;XR+S)+HW0)}(y4@iw}0avxll z2cK&d7{I4afj=UaUEe$>he0`MzStfJC^9`D4PRLcsw8pfb_N}{=aB?fh~SAcfcBpi z`PtAp|)ON`L#Uw*jdWCR2z61y}7Zp{p7 z?B!Lfk*n2lSsqA6H-Cq4LV!?FBye@?%~Ysbjhh{iI){iHOh@;Y+i2f$S=c32ihum{ zXBcIo)d5(TqJQ$_`MU$Dv^CgOb+X+HcvWr}@g_tsJbayTFRFgz4l(gN&X~4bH3Xy; z;P9EjVv`b=1vN}`j&ib)xn=5NPkNBe2#^v_++4$?`RIwd&cL+Ig;KPv7oLo=B673~ zIY8IN^db}#9{X06x7MJ-UYx$ZFTMlEh{KBbOxQ=Fui5knU0>~kA7cs}UWzA3Ifm`&ue z8DJ|l3fi{v{hDZB-KwE)rIMW{6_n7HGdMU{dZ>3EN`iCz2oS)$VNVtuPR0uXP7#~H zDR$kG#{Oe3ATp;idqJi%22_2ShuLp7e)oQT{s=DaixLd$o%F-WqQH``Ar2yI=4!!! zBpqGlI8}SA2RJZ5llbl|P>v8TL484jJAUEdLUsQ>BUn$~23p>NWV~-&4N?fIS(^A0krfjoHQ&z}$jgCy(<8hC~pf{5aPAE6CI%?#su zpV?iY<*lxO^H@bGrivMY(9K?dycu$%a6A6v$B%p{uJbeNP$;uM!hfho3bd}QxH1u% zl#syEpQ|1B^!?RV-~*b(Ji)mY{`OvtRyk%uazIAeoKFvLi=dHeKiuDclMMv;?TP#< z9^3PgQyXDaqAWlTXkL#CIYqsDY7KSq@ehFVph|=o?;`QP5u%+E%mY6NLsV3hDPZ!= z-z3X4-0{wXsS5VsSugY=N}yZj$mJ4rdkHWVwE{)HXjrzxr$A#A#UF%ndY|FK^tZQ{ zzzJUE#E&kV$Kq552k=XxK}eUkwES8N1n)S-T&eOU=A{Ru;a2%*x$t!UJ^!vltW(_; zR#A7t)prNHcz$F55f1kggfD9_!L&h$k1DspwiTN+D3CHCJku6IDyUtnYUL0`jxLWs5s_7Zt2&4r)YcXlV8&v++q-;vrcey+YZr z&EOezI*FgifIjXz&MRHB8?EZOtUw0QJz99;0tDwKixuNH$@$tZ>#xGphOs$diR0;n zdfVjdcUHLC^z; zGD*PX{mU8s3B(*HhdbO$Ks;r4C~HL@)9X1_0c;Qq|1B0{sfmfikBdH0ivtf#p@U>j za%t465RuAlx&7!joWNIDmMBLP^_m=UP%eCU3gtTKW~Y# zWgGN_G&MEJD=Oan&&Q&Odn{vE3i>z3H0L+-?%x06O3)ME-2Ok$ME7H{l;M=Z42gVp zQJ1dW`p_^L0cM8W`>TW*8rf>6qByBOXm?jst${dW^KhvU-AwJvwuCK=1Fp019Wa@C zGvx0q4CE(n1L6{R2B+4xa3lgqz|U_WP7jwjNqMbfytaE})iM=H7rN8l<1AzhE-d;L zc>+Mm?6qHXBOfOn<~DDS0Jg$bLjKVgt6)5hzVoI3`#g9|25B0=pEnIw?_+_@&p^m+ znd#-rp|#kgB(@2!t_<9V zEc9hZFNnIH9?YQukll2$JU{a81t>m3Z2#9K9GkoJx9b%6W?&mr&1j2MZwBD;<1%l5 z;G4pDet7WVI?h3)0{o>600|AK63>c+mH~cPKG9Ad%Jr!2?b7mH3PE7C6PMLcQ zuZv1^Vqb_~1zz$kbM@m5DD@1x*`$@MCvw%hrfe|X&kvcTqPGmsYvEj)@lJ=LA32|G1jus83e0UtZZ#WFbD%K?e=d1Op=^gwBEj>amnD~!+dRHGJNs|z zDk+a;1Wr>XxLU}4X4Mq4I#J{9ppEDQk;=5^iwsmK3)nOuz@ggM+^hid8@{Vnc#3e&KGWm<4Kss4qWLqq3C7cU&)T1(D+|H~!n1&ds9H8=g!%z~wDp zXjEqkoM^vQgc4J={;72ez>;vqkusdC$zKgO#cw2+0Qf+;WdIiT!m+B5#Lu2K{sm8! zi-H8nAS8j<3wUn7hk^S={DR+F3Tlhjxka7pFA@^7oQz|3;8fQuv!nrYacBR&wf88f zc-Zz50S5a-&aVty#h#x$sA2%Ow7)WXKC*t*hyR17lp?Tf7`0k*| zCYV}i!00P|b3NI?D%5%G0DWtPgwc7ef`|WNKShgS3@rCJb?{>2Jy$BH^Iz@<+&79} zGI3uUALF@84Wj6cI6w^8vwY5*ofCFn-DbL!$ZHb|FJGHYbl4T>1jVvhd;F8xS`hjy zBnyB*I-X%ZS=gNqra2xsfBu6${}N0Z?iD36>?$yC<7j0p7{ze6ydrQ@AeBdg4T%@z}n+N(c;%|vBQ>jYb@}|`@y}5&coDq z8kMv@5GI*H_K2EG@$5XaI43OpBso>eU+8%tLVuj!2HuEdHZJT4uhptsdOZ6xjjso; z@!F66ZSm!W`hA{|vlM+BY`e&p*Fi_CMU2;YU*!~H$c}1TO#NEui7V-4TfY3$TYN-V{VCHp9bO0R>ss8 zFb+DZqv#dd-V=#2fv?xrcafamkc?oA$M27fxQ!AvLE+Q}#&y$zOZ7lNU|?GZ{{&me zea_uE=%1nSHAoGx8d0D^!dX%qCtsWDO?-ZO31?#z@BA}B15{Ihpp;w_@EmMdFuwGn zqNBH*jn1#e)VO&U(x0!d4Ki=^%wZww5JCpFkVxG+zkmcyY?kWcYRy_K(s`~8OdZ3M z43`HJfHX4&TVIrzwi0u*QlFpcms0%ncR-Svk|pl}?*d4HCb0{OULd&eH0<(3;KZ)~ z9W<1&Sa&7~_GYO7q4>!juF8xB;EFqM4Y%P2$eQhE7U%HA?+YbF7f??LCN8jr2AtPM zD|Q5tkug29etrbgG0<1k#~H9KSGe*TTS zj?hJB5-KYDoQyvg0nr7B!&|aaeG;-5&qEO2CXZJkC~vqdyC34}<{1E$Vn7umhf9wu zxN3U*<@vYw8DpxqdlfoPKtG#-olf8b!pX{x0u=w;2HshK8X!>hjNJa2LR65Q1q>r+ z&G|sbgF3j}`g3P*5HWn*SgPlo^~WVvmIdL?UqY7Ll3Vq#)i09hDf zdYj3F%owwF&Oc?U_98>!oDW0QuDSj}K{ZqkBNgl;iT0`5+!mcNIA1MT&;nM8X8^Oo zW-6R#+nfHJRn!aVGsOiz{fGDN#RR0f` z47S2x$2~M)sllkQdGY$GfE+YU7(u<>)>Hejc&%hvW1(BE&>@N}r z2$xpY!rE7Xq#TCTeXipG_pD5}4;;{}v0XCDk8*txPb{`I4UAQ6wR14xB_>lvBXLHES;D zvHcZ^EmCm!4(T$Ks(#@^i1&gYM-lGa!P{Sj3!`RlA@LFT)zAZ=E2g8TmjNhYy4Zl) zVYsX{%LKR0%-@?VTt~c(asBkExop6U=jD&fq{42tnKNL=6{1BN-@~*I;oV*c%Wl<*Cv3{{dNH6&ctn<+Yy%l9I4!JSOblTN#-HcM5#)f+OBpAYVvkgQbO^ z+o2^o|F9d@)GQ9cB&_E4qzg7gyN_k1vVW`#;eAv7mubhiqs(y~z_X29sTj%lEG;c9 zhvSd~G%M}L+PQMA4nQeVI;vuUJ*q!D5rv0ptB(T2+I{t}Cdlzo|i|+%V>ipYR2CyL9WHxK(LSCGze;ADm;)CSL&F74UDB{0}rhgcXra4G9*xE)52Pb@!|D=cD$Ei}; z01Dn;hM(W==a%c^dbr)MK)cNT|FS8R#A|;wA%Y2via5Kl+w%Gu>G=fs+>KUe!a3nd zMLo&@7}w^gS>}QQJWeMjHhyMtzI^8=$qdk$wy`%oj^%HSW<-O(8L&%AB$ym%Tso!p zJuU{5W%%D@Bl)OH6oFf64Hwz`a12WS5*+RYF04Gm8ZGt0sJPcGvy&mvB+f3Y>RK4LmNmpmSzMX6E5k_W4g%y*@1*Bjj^j z)t)MD461cnUhBRHfG_0=kh5gay)pNWE;1d_{a^3708e(7^yK_o?~HVe+#vGuks$2! z`ae(g+WeRVc5%TWeE`<;aHc^Pjjz9kcR{+1W=!?!)ljGdVf|F(pR9pUg?K)r6mpRR z^%DaQu>!=7M$V-q&g|kM4cPVPIO(5K-Gj+>2W-m(N|otg)`HtX4Utp3q8{6ial2iC z_E1F>0am@4L3rer+V#5eClC2~1*tWK+~==L15Z0{#PGa_{A#;EQPhD2J8Q-L`&NJ& zF4A2gxYq)rA8l)EYi;QHshRel%>ft%i-@?5+#C0t`F@R>r*wUxNX&iMVG->9(}JG- z)A231-2H40)Xs6h_HGw$^Wc3wlo#@>>rW<>d6x3ejth7e^f5vp^oig$z9J`Q zy>IaPEhzQd*u-7tBNUT`Gy%tv>XnS!5dt*)LJ`6Vu$xC*nZtw;C`yg9!5&7o!)5Ye zl)|%%{5!o0oUP#HH2BWm-oZb(EKn_6bT=Ms-OvIODm??k|JB}ChgF%r>tZVkI-@v( z5+-R8N{cWmAPCYRp@V=(N{F%iPCLGz*ZT+C@8^Fm zOv?qG7Ip7?zcF--(VNgO~lCw|WFZ;DF284bu$}a0EEH2+J zXu>}#7bJKV@~E;D(o?nRl6ez96bYwl@A$Cv%{Z2i)O6226d5>_+V^1FVM*XU<~}6& z3wjdV2!*)A%>sh|erYfFvsw(}_^f`koQaD=Lo;~AsLJnU{nMnPY;DZhn-?6GUjBJ> z^!JnGydzNS2UdbRgv@;blKbW_y=K@WJi)l_W8}iURx3gk?F;Bw22W8(fJxFY^`GO9 zfMKa054FD`_0)l^?p?+o!j8L?f1h7&`?WgCs>UjvK$j{`;?MFnE=@z%C7($!1^a?n z#_X%M=?)3p13tGCpYt-HV_tw2?t@FW(VILm3J&dl+ld^UgwkM9ku%`$-nH~auD42( zlgo&fGIj-h3k4{1Rm7={oG323^xxlW7aPu*Z2Qq!*L_R>iGz2fR=M}va9fJqpsviB zGZU?UpIf#Z>G}oqjDnV7H3^!^vc3n%x&IWPQ><#d4}q2wmQF94*{!n9(>>8u2zIj{ z{___YUsaOOgpqR8j%)N7&j(bJ_Yi@gP27Z3ao7b5%f1Kkg{>XRjIP0L)q!3^fNzi- z1Xev1U&F>uXeu9(>^2f0mp3;NNPv>giqM0o#*>rw-+vvBTS~}pOY=IYr;7}?#~q~( zOe)5QD77m4wbC9DruzK%o3yZcCIgcv{5t%XHN=nE}o2*=NE1^+f>UNI^N0OiPNDZt&CJE z;mLD|QnPaYKD7w04_CQO%Wx6kthiZx)1QC*(LQ~VbjjdxeMof+5HN{E(j9rak=3A^ zaSSaHTAouO_MMEeKv{eW%&H=P|JsmRU|YTO?$SqG>!uiog1BgxLi3)|a)#P>RbBha zi6jL>AiPz1uC6`Qx9EXfETabfOc|I#^qXBV&lfqNK)hs?3kss zms#|Oq`^{FwZ)KM0!CugR&?nl>-lFw)DGm#O*B;j+~X?=nYdE**_QA`Xsa|c%!3(U zs%Kxjk{WCtx}C&2czJChrG&0Dg4}te8xD1z@aNG=D@;Gb z{TL~KETmqNn!Nl3a=LVm9W`sLxuqgtQs-sY>P#)&*IjmN-DbIK-j#o=4t`=~wQ%E1 zlw9!_IQL1KfO96pPg)(s83aoM=C@zoT8le^_l%3t{|-63Luth&V;j=HF{4~OCV98tv1Xd{?EmOZhLMmbj(Gqghlze-thbiC#4OD?E8~3+Q~OFszld;^ z3)h(c`HDRvdVF`BZY#}4)yg~@_S z_wDN9YaWSYEG)M8TLHH^KTQG7H9^m3bdNF7@jW^+=4`6b>=WC}&A ztYYbw5)@gYt)N)=Z`ul%*tqk&h z@aQLayaI%67@qKiGbhgq)pLQSmAb7NPb{U=kuN{Aok*5>$mUXQXUp60SYEnz1H%8O_)C|G?&{ z%{$La#)1u$2D+ybr&0v*(Z@97r-=nY|0LN@|MuH60Q;J7virb5J zkCrCIIp$x;o_1#cE7{Yp*2fu$?CH3ql#~GuHI|a`D{Atk>wEngLyOOOa?x4+$J(Yh zdp7^WAykleW>MX=y7cf;YxBr;nKA_Dh1x*=B2lHQkW+?VD*z~db7|0DL#J41!pY8m zc@j<8$SoZZKjusSZ{N?Gs%(2}&A-`l**D~*BF%K)uotItX(BrK6vQ2dK3uvlXl4is z&)k4^9kPt56)w+@3VYta{}iGO(wP%I#%p$(m3}pnBX+Nog=B|vC70g#Kb;Q$FD47) z-TwR4mM;1KRwDC%>AJnXzJc;D=+>tGR%9R>!`Rj^4`S9AlcZz9U{gl2;0}7vbG`?3 zXumCL=rMj?`p=a}uG2m2Jq@YR&9+pX5riS1CZLTO8h@51YTVOV-j z*gi@9(1QMe>&W!vn@{Ro`ICXyW%e48ms9magl&tP zc|bb~OadwGBta0tXN(jP1o3?PztJzOdW5#lr=L%5uEX*h8Bn62O4TE~0!YrR~_UyqowmwbJA6+d%lry?yE*DY9r5pVlSC}LxCBKtoE0JIw z)8@c|AK!qbl1M!HZ88x0GDM{xlS>QM|Ke^|bxvLx5q< z8$Ma?bQV$;zQDbqjO5L)ANxsm>IQ?fvAvFpiprb$;iPaCE2|W^(pG&H+Vx!gAp4o1 zLzIYn4P1-Q*Zi*>9d~v*sZoM7oY&;#KO^ zrHQniAzXzF|){3uLVHN+#kC3cZY^eCYbh(ZEt z=?48wcMZmP+p#X_;$?ty#M2t%2uqqf6C}8kjP2{>_-h>Cw-YP>j5*2+^7MBq2YM22 zBi!6`U2)2GAJCCUdvG3`%n{J*@hO%oVy;)mMEMn~trta-Qyx2nl<}r>sZUxMF1eoWlYfFaM~1lDhZD}5!1&iGN=A6-zI_3OjEa&m4|Gdw zo72|)T6;)#HD+6?%lfT6hiWfnwL&$(-s(IV-1n+(Fbs#9;kn7lw{yz;F2d0_?yqKY*pBJeWDf2EZipznfWzq!l_1eZ zaL)<>(uEo};8Qzf+TH*!6>_IKw-c3xUAK^j1t6PU@)7w%?E zUOJXy_X!k>3u1Bnde|N`W|?E%OS5yC2o~soSeFo3Q=e{bEIl&K(re-jgfl01A6@)d z^RcP+&6=536nkfN9b4~HfBLL;SB{c@0Y3Wq4y0=68@%Yez2hY;n;yS)1Q#3R#J*?1tp>h}wTanOmg`4{lpI7E8F^L;* zdUnIh{g*~-S>u>1y)~T4;a>C|)gP6#(jyq88S%Fl7CG7uK+${`eASGNA4N#5wA~i0 zwmz0HDK`Qvwg$&dv1MDXBQTwx=Uocn%!NLSpLQ)+J;h2bpI$vLD!cTUyd={G3X<4!ft?AV%GI?dddd9EVbmQvx z>2h~YUf$I0vV*zKXq8eiZSmq~f4(_fWm#n$C8%A6(|~h3!+;q*3B7Cerjt^f zbP+13Jn{x*zydGU^;o{l{@_2`Y&;YZ{xlhp*K+4o9?9q1UTOxCBhR{@B9@qNInjgv z6(MgG3T!tvHOG@S&sdU^IV<{YYs2MjgZ*|-he@qU6&M<1Gxpl$+`v}9Qzb-r>JDt$%WV+~@Jx`>| zNLMPMwX`YpUwu}qHX`kENsfY-xaX0bcC4~~)UJ$fMN#K7W?@N$@UDIxi%B->3r7S_ zr@;4LA&?T-schbSrGVLR+sCnvug;Vj4=&cp(X-r4MeB z>Cw{%bM`yNk})#$DJftp7e9?UvF*(QiFg%WFLr09nsh9SqGQcN#%; zt(!1~t}C$lrv1K)da{M=1S!~H|FN6L4$Qtcs3_{!h}5|Utj9iLo>SHDy|ISn5$<6b zXbH=npJYynPOULked>PPp}djxbpGD{JCr^F>8e}>p~|R%MkCq$JOGP^dD|O)22bEtDK9!|S{bdVXP+C!@JMVyV5WiQ|rc?1gHuYL+X-r+YGXqaaKU5qg z^K{?TSaxHzbUq8+bujw|hT+xX@{JPB&n|els}Yw?S42)C@9K+YT{r0+mPLA$h5N_vv+N?(L@w;};Z0mo8szWyX`lpek$BQq4Frc1_DaGP#B7 zB4^iP>$`3`A&hf(aIJzxqs3{dy=Gb@$S3v8O$wCt0iRu`Ul(7Fl4NG8N8CncXMl;E zCl|9%w0tceeZwLq{>ju@(0Jd|2%s7P{+;}V96DKP1;S=)bIqELRQpPE8;{7|8A)us zD*ff>pZ7+oM5ZO_ln*i}O~==L))D6KHy!8WDkjTe>`^x_BA-0z^EKI<0&}z78}1Sr zfJ9qzh2W-yG}aLJ3gH7|rl2(%5K3OcYdc#W)V; zPiHiAjl+mZrEkOhK>P){e$kXpFnN{V9U;O`lTjquKBXt(fq&Jbu00b`6Z;1*+r1}Y>F2)1=7{~_7 z^y&8SJ1kGoqUedEh^|}D?dNF%B%jCxj&o|JL}o6wtJnEryo3YK>?jp~q=YDn(FovX z#A_zU;B~?^7w0wwygLy}I`U9AakmYL&1FI^f)MM$ILoRFmy>+2e!10*W+!UbX{kiC zF+v5STxtn^>v9N#OGZ#)=o^6~w&WK*rwef@JkzrP*)x93ULY`Tqs3rlDVWAS9SWY> zecJJg;cm^A`E)G#>kBZ)lILuu6;o~JHo#wFg73*$u3?}mq&Y*D5|Qxda;R+lSqfCA zwWnP)Jo)HbtBaG-rpl6bW;DPyc(tVu`nJG1G`LcuA5Wb)A%l8K2uGpZJBw9j<$B53 zU9$P~iEb&~6~Z>jxPnPPdMl2OGj~ReTRG@#ZKOj#+V}-@G#G_?qth;ibmsuBZ{CJ& zha`}S8q_yh^IUobBi$vQjApC*Q0n+UzYNRHzBgGT#oQeq!lex7xSDi+Oi zmxaJ$LU4efQCDo|h)lJRXn#s#m5n6dO^tR1ev+wpOB7jD7t&V6woilaFU!KbSleup z?wiY6*X9x8I&VKZ-z}7IF5?XJ+8u;h&s&&p(ti!PS>U7%1cy~9@SEK;H)bw!&1`;$ zosz?{YjoQ+v?rP(_e@<)m^%9Vt?5JA2^T#Ib6Tftr0D_(O}p9Z(znQ+_g5=LD}){q zi}q6Myd>SW->ZstSO0zrgV;y+F=MvKf7cgvs9}bbyA}aPZfCq&A}`iEFmlq_rFlN3 zAFYmyCS$@=(i1|1t5fiSttfc4JVXUCeJ|V2iTwSycN~=C zm1LieZs0^-Rq=j`^UIX&oiSbUgTIGF1PESvW^cjYZk?Q6CD99_`pB`q#dd>8<~!#W ze^|D9)bK5Ikw0IZ>C#}Qznf>QS_ARFyg&smkNlfw;rCW63-c(<$o6c?!4@sQ&vu!$ zpfjlzYL=AaO1dyZs2_^VA4_9ZgXBu=W#xJKz!%(!JiV=Xt}hE}xDMC}mnN$x>qfoE za#tcMEyTbC>Z%Pu>KWK`#oUld6huBYCp6tUH!ybP{m#1sgW>cUD$^`KFCA^PD2WH_x;icZj8e;;yS2=_H#iLN zs}%R~IAG@qe@>FuY9+>*3z`Z3G!S2gv>i@|YgG7_!i)%h`;rZBtEpI|BrkNXxmAkW zYkide+QsL-kUm`H_^`pY7DR0wjJ|!mA**f0<2WNGgPHsECDoRY8x^oPmZs09lpNrj z3$XDEns6(=NB_Cne}opM=#q9aeqkHNAEI^hXHn<{_=Ytf{J~d6ySslkg+VX#3R?I; z+BhNWPQQ62xJU}q9yo5k);Ej>y6>kw29qI|HXfjxx2X?hSjpua^kQ&HU3!}_T;->z z@R}7HMbA%5XRg^ZojRc|D=RzFs8IYY{E^xLW12{@KpP*yoDT1abBps?As<%BT4`WehW=rd4=VLa4Arskf#h6CvU!sZWis_2>*3|N* zNYS@C^d*YsEy-3^ZZ~Wd34B(3{}x4{ulz|8wV(F->NAb^W$ui?r&zSxOIBL?kbF_1 z?#Ykc8=Rn>3AKTGd@Q2s`MzWPx2n3T&qt%pGyL|6w0EP!A3i8j4;`WNOA9#79gf!I zlQCS5Nz|~p6n>s67e%J&?n9!9(<8UbEu&R69Fm=*c&j?Q2~Dnz35|er{$MHm#VVeq z_8MzYq}Xh?Td+6{9cL81_FTwE&8VlZ&N>lCI7{o2Fv86Jlk>QBYsfAxQAEXX~0xmI)Ov$2Aw5!#Av#Y(f-Z zM<+(8-|ye&^Ne`*3_@k;FtzMG?ChsCG&J6X>|WkCiuusx7;6?O9aQJ^S{ZBpdT?$gYSbW^NoN z@`qNn|9a=^*`15c4hQcdjb$*>UPKfb#I%|{^lm-qkUpLaS9m`zqK!#`?3BoRhFl7!*F*Y3NMi0pe6-NM8lDLg8@G|LlT=t68jtUeL_IrNr6-AV$}V_Q+7$<)KlV558(5Hafti*d?t(iWI%P{9 zo=b6oT_x3OgFILIF)E7v_L`g*wA)>s_PL#So?Ry)sPMWxoGr8BdSj?HR>!R)ef2wgtNyWtnYZc6a<@@P8rwufmNCfoJWm0t zRS0Wx*#-wSwn(Be=(Y`oQYm1ZXgp0C0Qs2t#6vw6cwRQ+g(Sz^G3nsj7H_UE)AiI$ z&^T;ut&RsOFZ(22%gFY%9h2L#4u-3I8Y(c_rLnTagzna8THg-Z5&Kzt)1+XI!V2}U z^*&UlwOvK&)eD1njy-&9SMlbjwF|+Gdo^@T*n-%pXBP5UwMD8gs_$fY6pkK*f(?Jt zfJG^gt?`;Q^23`#a?7WIh@XZg_y;L00-fkz?A8FBXu&AOMvlpBY^pQNQ9ELM zUI2$Bd7jqAlCb(JVeW4!)hIoiHWf&G;*ia&Sh{RigQbp(dmi&FOW(X|YKqq8?TFTj z&!U-Erx)hd-fHEZjpmpWzxnr-{Aq0-^*rLlYHWLXFlzi~abna7JlG)~(6+s_Xf=0> z#=KdiiUeA%r7my&qkb-!7&y|@*a>AJ_W+cT66%sd)e39kf#`)%tz;LpP+!nN7d>+kYqs+ z%z3oM=IK`wlMx8RQ*o`j9uXzMOt^bdd&tf{)8oD3dJeT1Xh0Fd<;@L`lBg9zh!J;> zX(&~XS`6i62^?3K0yOGi?9n&Wq~R#+i#VFA{d9I%hj+KDPCP0)JMljXWx%u<$e6h- zjAO3Fxln;xOwdh?NEcrUVeU4-E<~mC@Qtqw0cj_4XCvzX@e$cx{k02A!`ffW`x}K^ zIeF@o2o#I$vu&Qof~Y!n!KoO2%CSGu(7qHpP{G~1b_Idtur;rL{sIUXrN2Uu0s*mZ=cr~!B7zdK~3p|*7;OK&8Qi1|P*Wv2=HL z7xv}Re3!gK;)Wh8-$+M5yXWAOkKfv~m@%Fu0MZ`CG+~#dm-lfB&I&=aJOfTp*o}On zU(P{G+tk{kGi#YhrmwPbR~Uvn7dD>s*!FqD#*KDFVp{Gd!NIVScfR0pKtOMTc4mq- zic^vSR(xF93R}EWObQ|EyYRq#atM0z%SYyVM_x#LU>3{<}}!D0#n`qns8`g z=j4=u0lNPM2*tbhru`9paQOGXc;NFD8q)mq2OmwQbiveVHvvp9MiDlEE_Bt1!?Lij zByWdgN*R!M8?%U}zVTtq#KR8St~%Vd+b8uknl9Qhuet8#RV`4Y*SdFouU2A{HdJ>% z|Mb)6EAxa?K{`d(%-k}?v6c9JxaVvV(`H1t!c{g^EgbTiSySU+npo1kRIi@&i#sH< zo|$7a%6O2W|0?tsnw2H#N`tl@xv!z{Bl1rlDnH&gwee)0DfEuK3dxK#BV5rYPx5k4 zJ2>i^1kP&5Pd%g!i&<#Nq2hT-c*z-)H~Bqii)=!UWmACw#ya$cNS^r1Is+A;QS0dF z%C55JP_6QzM7{X>pKsju<%?)tU&20NYZ(?Oj@B zb}BR{<^~6fU9!{+)8&uPNVUWaQ-q zJQJO5oUdJbRd7W3rAqX(w3n4LSQT2`mOl>$BJdy&Bsm8jQP@{+u>9?Tq0FiXjLxI*H1aZf;d^57Hv(>gPo%Xaz*x5>zs7-P#!hN$%9b zP29AB4apS7A$dKy6v8$>4k zQOr22CUj{ej_Y!7WD&hIUy%js+AyGn1YsTI7#Q;-Iasa9-VXD4&!g0KG+)<5*U)Tf zA3wWLxJW`Ildl_F5no|3OiiB#IAHnGgj&8M0sw8Nrwk28f~y@YS!F@-xvO3ExN$D) z7{N(UI&~CFI*Fq2m-;nD;S0)#1T+MjF4rY+lAR_HYKHVHFS{NVLjQ`0G|}D2fa$K7 z=%Kl;hmU+}2mKxLqt@At!Tdrz<5M_rB2l?siXWxf5|#HFoyED#;rH7Oa3>rWlM@2I zM??FbZ2J-x)`EAY?A!*Lspr>*f5QaqxHghz3)8ek71327b*g^8dHPfhgSz%{wpC$@ zf`P7f2eDNfDu|*m`p7Nb-=pN7GpGL0ga6keC?s}b5Z?w!)Tkpf8RJ7wYhK>Un^1I; z-QfmE88ezuL7?4}rA4La!i^+1_icr!4z=C8zFxy$+&K%Df%d8TV{>Cq*BOwIr}>w# zlMt;2$@L1dMu0&(WTD)Q>2nhWBQ?B02o1sR)o=@ z!*m8mb_aU2Cy24ob~_FoO(ZZ7-V5(;r8;vV=t71*y1GZSi5&ySy{&Y=5&0e2Q9{-X zk*SIh4Wv;ZJ?Xm;vOGKh60$yh1%KWXgl{A}%WL9PODwu(iMbunw*1-}B9TYjh5bXI zc)IWM^U2ojvhl+L+Hrs%?OTK@Cu4~08+v5qzDvOVZ*xMSfM=ZCigRY`t)g; z{7pU)Vw@mG6NFh)R^A6qRzw1Sx{?vqVKifd3##<4d;%J?>(5TdKh%0@+T$P!=2Y{g zslT>$nSfP`Ewu=ADFv<7&ui1B;}Ew&;MUU+`W9rpdi83#>pURjB7!wq4e~lb`3taI4M& za4iP`T?r2kP0daO#@OxGgCu(l$+pmu>vLTvW3A*ZjHwPQPigI?q%ALDVtIwpGxcja zRhO^8^Y`B$Ls8`aNQT?M>4ibbR%0}aQ4+E}!_6>B7sL99rRDoNwYhb}}mGEuhEJHVrtr$l?@S`6gxZL!Eo?0^v7@LCwXarI<0 z75<_m_WN(ml`S7-PF@sOVL+L*|eY&wm)LpmNvK;t{ zrvb4W33Z}f(kW3=Qj()Qo%!$<9UL*pm0CHwmLny>9!-u|xkAM$?h!1oZrh=^8%xg* za#3Kyc+-PD3Iw>0I`+7h|JzK0Y_DPd;#U-|=W5z11CBZV6$akM?_xLB=hVvvKqu_t$*C|}j2rt3x`>hV^RUGajDNY>k- z0ze>P!|X%Mkm}SK8}x$#*43j`w8G=q04|MgCo`klF+QL1ApC07E{ah_h!tFG#U${9 zH!-`q?efM0c1+qGW7D`!%RYpV!|AF6MuxO#$|xSdGOIvneY!{ub8rGHF4sg%<(-0% zA>^1ev===sOF>SRLF31!!+@)UZF_5qhJ*B+$5pMHp^)lA*&Em)WED9I4~S({WF)c- zOKe^P7B11B0;R#b-vV@UDhiR1c!uo&3O0WMib7PXMQd(n5OH)FH<7~DpE3eqK5#Mv zMv!uB+)MomGo6k5ty_Mhc1MwKVx53$c(`d4^*1;bkC*0rl5NhoHrIgz<=MWNRwk}( zG%EGG@G=w&ugB;CKI(JM{0iy65j$8qLi&NxV^DV3&*Dh)pKA`~ z<0jq|`!g1Uh|A#++|UZRYMBi8-DacD)`Os-y@(o)Bzf2aAYcl8*yG{>L7TM)zCj=@ zk8=<+GgnOQ3E@A^#9zhPU=(+a#6!j1;%N-zKsiB8y!g<0?1io)@iMz}5_`xsN#&zNi=mmMs@y1; ziyhFNFFy8})ZU8?(&$P|{)L97{tihkUAc$(UWfShMz~Z;pK~*RiCXr6epPkuS*~b_ zqGwVWHZguj8tOhsdWPq(bQU`aPqV+~nVIdz($A#k(Y6$b3@f>ui zrh0`&bu(SXg1Mrx!m1`Bf*?P<)Cz$;qqp6~8$%a~;rxCchmXQrc-w@IUi$DRVX`AT zHL#{(T1RutS=nKJAkD~kf-bd=n{EMZy_w-e^^nZXS6FGN2ro`2)4S;7;pSc9+KLrA zfjxber@2*12ePgC_8_I9ofRfh90`@V@=RYZ<(rixW_-NN^(0Lx1|=-2SK5&dp0q!k zyMDd7t^Z)8w*>Au0r_kJ8nitxdIH-^4)b8@-A7XyIFVSDE3M}=d>j2l!H!caIQyyX z4{BSv^3v>{uHLUT9=Y?Ocq<%PsV%1holI=Kjy$4Heh3c9II^5N`F^`|UP{C=U&q~( z9wU7Be}i4L9WN8bB`d|j?NsHs=$pYrns*C=tf1;Il9X9%uM&oTbZk(AAD}vo(jclhh+FWUUFAc4CsA;ywflEBAX9BdxturOhi}h7gUMyS(%ps~NxY zR)yQk-l@+Vy}BXseN```p2pi#C$)?_#5c%uXQ2>e(?_3%*-h}E7}cZ8pMlOJdt9{Y zf;k#@^{5M$1N?_@65fk|ir=y2By|Bt$iDU>={sebe4Pdq99#QDYv#3cKYWmpia=A~ zID5uM`q{j0QttF+Y6=Nus*UrG9chFn=@i8)B#=c)N&s4x%3S4vw4BCha`>LOcLEHU1WtlNOH{x&=Y@J zUyro#S4>Ed1vn&ymPMW-hap18n~#*)p25gv9`vIraX~58fCmG^W?E1v{(_g{w<90;}H~Q;^Zt4rn@`_aONO!1$RI^!B?xV z)kFClFz;fMNq;jn?p=1}CQkGz+3Zm1DLfpER@;lmw^SvsXOo<>j+VeU4w-<-Q5Zdk z>UCGdAk*mmSZ&n>ciGm1bZs_yXw4l=UGdt1;uoh~E-P@-4eDO|yo%5C?Dnj4Y3g-A z$mLvN)IOiOJg5PgB5&fUx{mUv^|dolPmI9v27{2df>LFa?Ef}wG=k-;e7pIpx0(Pb zjgT|7c$NcMX!?2#Y5tyO;GDY>)Di>u_U!p1p%ty8<~$-%1Otzl^?G=C*wmqs#H#0C zyO6^x_OhrLaXD>Y5iXkw-(@)wjq1aKSC0ra%jB*Zctbo@o%uX3py1gz z@AA5}x%D-K+oK`;m}m&tYJ`7LX0lD>Y62e!9RH`tGASokbB8&d1u(|ClO(S)6&PMQ zqGyZ%TLi6Gy}^=2+)1$dDpZ%5LT7MI#C$L+wHQv}Q}w{W9daT6HhfGv7jE9yV0zq5$jmp;}e43*$VkKFH zljtt`dxip&bY2I1w)*Ixyea@=hhMmt@CKzj%OMYO{5y{MuSk#o=MJY$ujh^(iGCGh UH)^|<;G!}o&itArdEV`R0DZJMSpWb4 diff --git a/report/query_group_by_low_cardinality_groups_encrypted_chart.png b/report/query_group_by_low_cardinality_groups_encrypted_chart.png index 94f759132b13097409b80795d936dd897271a2df..180303759189b880456365826a577be2d2c8a1bd 100644 GIT binary patch literal 44073 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 z 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 U)s~`*$nOxp_c&B};P{1q0SBi$FaQ7m literal 44404 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 Sc#{wA59i~J8$z;LYq diff --git a/report/query_group_by_low_cardinality_groups_plaintext_chart.png b/report/query_group_by_low_cardinality_groups_plaintext_chart.png index 47ef5c9ff968aaa68c5dbeed062ac9b509e89b20..76ef4f7476627ede0319be177b97c9e047bf3976 100644 GIT binary patch literal 41376 zcmb?@cQjnx8}6ikk|06iLl7iHPt*`4L86!Fqet&VjWS3hLi8Ff!stvGy(SUSi8>f9 z(TyR>j55aDJ^A9d?ppWXJ8M~HInLf^w|779^E~^6YiTG_o@YD{fj}sgl@zogkkfDo zUy@!A4ZU>SY`uJ+c-TPHpLn@DyLmY~SYG$B@$htTa}^f2b6emp z-*tO0FLzH#K|z=Q{fB^?hn?UTWA8pt3Wd88)Dr@senS2^Q6QV|0D)v*R91MP`z(EJ z>fAFrJ@ofYuBHbkPsnXF$!opUR)}S1|3~FYd863d^Kaj>zoAs1yKuc(EKv5r=_@hp zZ{9FJTxr^!*1okuFzu&kaF(Od78{QvZPbtUto8L}W@JQ;r+H@1*_0ddodnf`58d^R z7lC*F`+onj%85VUK79WF_f4x~%4+Y0q7BX!vHt1;I4t-}7eMBU6q6Hd2Z3b1)H)A2A1iFv*YPc!7H-uZrCnwsL2>b7 zLP!XN+qk-<(gm&mDC!z_3lX1Y$afX(xf2mWq(6n}MWc=7YDB$unQYo}wqD zArJ@!1%(u=%@z_-us5KOf`F=SIdkSrYPA-~0PD#hl07 zM`WT|qHzkS=KM+iAousGxU%W{d^Qbd=Mv}find7^(xK=6LbCY{A)&1z z7cRAw>p6*+>6 z&RZU@YHROGxX*^v@f&{neALn@`DZ`IB zIYWUyjM`s>aac6!RYQ?w+uL7`Wi3bk+XM=_+|`lde2I-6R$(w$VdTL&L2NxrwaY9o z#k6!)yUmyxRXcM(d`lOLwCnFWz+o14XM)9_sOY;k;q-?Zlv?>IJ&*S0s69#h+e-^0 z2Ih%wEkv%iCFmyBXJDTb*3h z?km`unIyX`*yv8epjaf6c;6&xqlMHp-xnhqQWvhFxv63Z znihSr=H0t@RcdKsy);*@*fhA!G{dTwR$bP{%B$OHXlVGZ@aTS$)^G5^iV)B(!7Xk5 z{r&i7aFs;9Fltr}WbgNPO#BZcu2#9|6zOsgQSrj02`Cgk*PzbB20e$Js8ZcdDKlmr z!meQ_>xRh7ETB<6O>A7IY}^m49M1`NAQb5pJGYlUo%>!*c=_T5UxV*PHJA?`rS%xTp|a3)G>YCW3)cY}`_ZMNn+lfW%TUt3#y{qozj zQTb}AmS~M#Y5yI2)noxvzL6q5nzORtHD4Av-&Jk5%t`QQ-~EtoU)il6EPiXUCC577U-d5XKtx zX%fVnq?njXsUl7TsFRL!0vkQz|#!b;ARO~TvYjY(!yk^|?!-L1*!(?MV}q7wbXYq(7!K z>BkQ(&uQGHHn5T>q9=QvPX>MYKQJB3kZZ}sxj4Fvl+z3ueNJtPNbaig@ z4CE;CQ%mo}z|~TP7KMv+@}m|&6hpWW)-n+*(N0-1Fup6i`jxPCe&cEp6fMC?L0dbH z91uTY^Zm9L7iEf3W&yqUlpry5jhm)tZ|`!_5lIg++xZV1^10O^#e&qnK3V7KxpP<| z$9;u?!687c<^H%T>#Y^~{YbESd3t?>ZF_FTXo1NL9mLlLJ?}5TcDa@0o`ENO0x|hY8zduI1gX!NwxZ#*wZX^=JaX9=EE&jG@eP!S!sJOmP4_J zNH1t6V!l?gD@)uNs$ROtAoR_rg$0>DfwYU>UlVf5f!XIiU#eNA2HaZgs5I=8>eZ@`WI5Tko@o7O1eExAnQ^xdp}G zuIHeJcHwO0Fbi8!G!?_t;JJ2*rZNXZClZ5^8>0pZk9HgP-$)a4sbAdpAQ5+$coGKP z>p*O0Sl^DScnU0V5w!g~o`6)!Zp=`AbR?^+Oz-wtO2!-e zE=zqGd1Z+sRjc-<5u?LhCC|#575M{Q;jMdS&wifK=`bxdsT1nOgCN~9>4SFpr6$?v zG5h&B4J)hLsA|HkCo=S~Xe0Txot2@*J58Dw#!w|t9Y!%{`}1QMtI>Y#8Ny63iJyXk zq8dgzz#tehxg<+O@~gg7rW}GmIyij4ej&-Y$LgS7@>;hFx~!GYd%5Up3~Gj=bfXGJ z@DcXX#sm^U%-re~pE2>4LD$rHEOZSP8wgTRQ6+(KdQYfweZSsbWZK}fm?v-I{mkBM zC1`cH&?+d*ySDV`h+8_$yI>jYeRgR5u=dsRVV~82;YJG(a<{@@YFJcr zbIvmEesKPdq04mR_;3RGObr#Oi<^MzTg#Kr6JnIhk-zWt zuhs$9J4MGebnN~!UGSgZGxTqSp^CN4b z;b8#dvYlH?mZ;O{d;xX_wrl#{DqsHm5cR3SOx=}?yHCGfWE=ijB-x|g9}d>V7=HWn zDQfG3dmmb9hNz2&pFEem(OLhFimCEQ#y-HSR>#L5W<3({DC{yo0b?vkSzoZ^{6+$X zJ?#O4Oj;SrH=g##@NctJnT{?kYZXo66T14W^d(Kkj*POK{u$cM9N7NiAME2m4fgJ% z*_YJL(JQyb2`su$W&`FpAF#fP@ouu;s#Ows@@ldYGsW?Q6mhp{(P%3T84SQo#=qv~ z08suRLTE2--CM7nqe8>*(pO8PnD5!vx&M4|QxGMJRd)=Qu3(MIs{uQ@9j1v_x{nM_ z8BW>}n}()s!E<@D=S#zP@>&Ij8RbgE2{Wl{=?Hv_!9;*4tp72=Q;hh#_xY)F6D&0? zEX$%q0JRL7MysOeA#`VV5>AH5-Dt`C+`N*P*3+`L+7jAO0T2>=KiMJR0P#~k^kV1G z5%xj`rY8tMbrEUqqx~gT&&W!yMA!+Nj1^70xuIZY)U>2ND{SX+)Dhey;3SmPHl4XX zmmS8^g(D0=FPB!LLcK%p!n^&mnrn8@j?@{5mZOQ$?ypDrc)Di*7^rEU&G6O=c0^o& zOZ!)zgK8M=I^nu_5hmW5m?cX%A|J`*sL6=I*eV3PvVPPbzk_6Rbi0gw@MHvGE{ooH zS#9?@0qvv}x%H%q;|pcyGOyqZg-y{@5giMGt1nhw<%ZOE*?3E>!tnTwF}&Gbl^<+L)fI zF58&OJaQc)O4FwRUb}K7aiv869Mv@?WLZCw+I7uFz6vWj(gSWY1ml~jnfLBM|+w3 zQNX=g^cl{a#qW-Xv4hxvbb*G2uh45d*~6n(Vk9Xq>`0@7GbM-l^Ru4Am~fLro|3$h zw7H?|C`;ywl*`PViJ6%*_`w>E{O78V*202$G71N~WGse$^amMgyH4liNCQaDDe_oy z_%`eoyfxjU>nO!(`4SCH+~VdMReSI9_VBhu6^H8gtgPmwJ`+bumbL!i06d|i^G?g? zz7=dkQ)WN6?rQ&g(e5?lV8q(XyOhzQ7pq$G7Il5laaWjaQ#05~>Lj?32TfYg*Zru2 zNyJ0a=9kROume)u9jouTb>C}1AEF7TL%x2mA}KRLV(b{Njt4)lIV!Fnlw@N3xZK-J z|GCOvdYN7Yd&b(_SKg_p5jSe=P(2ddR%3^ij-LkLT?l3dlGH(|JnyG#E6H*M!Luth znyiB+ne(lOyfreKm~#%M35UxIdR2~kI>q04kc{H{BQN<8JBObJ{drc#XY6J!+;5pT zZaIyimn$`;V`6f8ai4OwBnvTWQ;y(I9P-y*K^J5fRW<9_u3!Uu%y!zSQ^k?1<6Rk>E;?h2 z(riUknW<-^Cc&y~DH(RRG>TO=6VtELZ%3F*JK7$qH^EEKfu1HT!QJ9vSY(L_=CHik zx0Dqw?FXV9=k`*6GC<9(rvpdv%lj_oPJH4O=%k+Ia-&N7$L~p84w~#uXE73mqO<3J z?Xuq+Y@x^A%sb&`D~>&3?*{T2p(kHoiR`Y(D%m3*LhgV6vjQlYB}LRP8)2KQWTn^y zMS2F=Zs;4)jWrik;v+wizJ8D|-sz5)rbO;sC`t^yYjkO}2&7>S)hN^_(#PEiCj^Lo z*d6q}Au@|`rX{iJdU=k6<_V`U+u$Ko{{^R?=9o*&PABX!$)-($IW9xz)FwO?SAIxg zl`SaYUVE8DnY92zn`EkiihSv#!CkLU8{u~5V`k`rwqjgF)7gY^hSfv{%3qaBk%@Tr zO8k!>c>6cTT5B^oRForZCKE5U0^kmh9TZhq|FIrLYX>04b|;Y3?OtQ1u5Vu%N5~mN zBMOZpcJf&#QfVhJ8Uc@u91sEojK%?*DSoL1_9=U*cBI0ldoX$lZ8+0juzByJ3%c>@JydYVrWqu;gy~E`#RcLU2KvDBD^AxxGloE!&uIn>iwB3=x_7m22 zbk9OGzx|em{B}Q3M20>fXYZxEAwj8_L3qTzPz4u!8A4<6?qzFjgL*7JJkNfUj^pVrRMk@^V%wdcf{lXqGf^kUP)7ArCt1J z@PO=I)zKSRKQ}XD0Zt=*;YYT-ki*~&WXY2Rs={(=rONLS_XZ}EC36z+6$2p;!%*Y> z&32TgBEOZ)qg79_!bn|=J@(P;gA?(PAu&U{8D!QO;g*$v zN_@uv3s1Dv)*FVdJn1V~yK`Q{zbyhJ2`NX-t4~Khbp{nAj~Wk+|ELU$B!22m@2j_i zvqff#k7i0S)?zMMmImi$$9n5GPx`MG<~w^A?M#5ZaSaqd$f$vrZt}Y4M7%AHs4Ppz zEA%R>-=Pe_?JDdRFJWqCf}8@>Fhfw%9Se}AFN#*~#^QU1=Srn5vGPbKoOS(GB5`Eb zT9%NRNTu1VPpwFdtfU-$5`<_zDBADY+1>}}^@7*G4nBPblxp5eHG?yz%s~K&iVqRg z}Ly`9^gne`bKu${uu)^;#i8JrQDS!JQ?p?1t z>;BaD$-ZX03>Ti;w{L@FZAteLGH4~zccq31(rM>tbKfa%2Nn!Sqsq_-gkH|0cWUSY zWPy#CRT@se+8NqiS~LCrXOBHdEWPwUMJ}%y0kGcXP72`cnz1BAm61^69 zs$XA_*zF9sAkvc`iRyCvUIDl_&ov?ceiF#?^x8XuY#(8I68y^De}26hs@^^K{%DtrXjg`O0f+((C_pzc@@t2JZd7xa*QpMF%;5DsK&obY)1LOrEsrAS$%$Ek1654h!w7)2 z7!0zpL%aFyMo!W8*=__Di*>mG#btL*B7HD6v}*Ry$G(W1r_YohB!=wvt0n^o@eK z1$Vrw&b?-#ClUwQoDL+(WDm8#4T8ZTtOYjuw12b04 zzu@xoJN5C+VOf0&0Om{SxG5o`{i7WEnV9SCWOI3Wn*w&lq>FcU6~Yo$0#?S6`E^la z^tPyzzl`QIFF0TnE*vxzA_}_?8j6L37QOZFOJ`NK$7p=E;J<|+wfvY48RwrZbs0`w zsWeDsk;f|Mws1`}zi1S&-3=V^4?oDPS}HvvDQ4wkM>EwAOkk4}gaJw9hbn^-Dq~cp zo(kdtnRs()nTQ_@`lpmi7WMP_gy&dLiZq0d)9k&PM8jpE5&RA`($Q!c!(?SKvae{> zHeM7QdJ@9;EjM3&5ir7bOi3l?N2RTAO%q|yT`7f1kyj*NQZ-dm@ebYBBYimu2|2v4 z&JBv0=jCTdAV00}S&s%&k4($^mHJkCt!V2g7-4Ysg4eKZNY5n=Kfsf?JWs%X>vW0+ zBx{T;*uKFp#2|J5aCTG_<6wdOOJPiBPHV3h=RIZtAkvsnXVXC-K9yG^y{kW$0RCgT z=i8a~A%}qREpWu2ub0bu}7) zdLOzdn&0kCIwJ0mUWGu`9xq?}BdS2o^fkz);fDKaeoB}(;Iq!IF5{*lec#mtt_6@rhcU}*%@;L{}* zb28Hpk`S9zwUdzA(36nhmnTEE;mvc690~u4ME9Rt?Xmp%qpK|-kSdxxv&G4ITSoxb)ptk)NRZlk4SZfJL4>d(UpjdJqV3bfV5Tqe|REfk5&4+yR=bR`N~NtrTa z(|PdRy47(wY{A3M{vtc@zXF11LlR0&UPqnlpubYA7hlC2oB)KKllwBu^;3Z+2|>5J zW@cu_)lY1_7Ihx+wjqsRl6=&|_B^e$_fZCc9mEx-NLpMzyV>JHk?xsxze<9(}z z^XR!o_<53jlCG39(x88osw0bX%2E`0g!r#wpi;g^=Hw`%F5DuSkozB z$C2&2XjJOi)~{cCtN_s-1Lk}<(pvm*5W6G2tbV~47xSV(JOQ4kcO$*Z*|?%v6(2T^O%WgUl?rT{Sqn(+j^yTjqpP1aDHg(`#IL`Y$9Pk zRguJ@DeKiTTwO7% zA9N9>iqnL^Jhg*m;gw;chNnrH&1gGo*L23cdE9P(_iuXhxP^%3`101UaTXM#Dq|dR zt5wMF*Zv)$1(K~QZlcP@oz!5nG|F$AHb6U*R8Ps2HkZ?S9yf}~e2_Yg5Yb|i{Dc@T zGB%&ixTEtZ(hsUHV9IV4N}af4=D$i&XjoO`=XS8~f70Ae{KIXd`u&th<66C_hwbC* zyi8YbSv8Er_fd999^xiy+}z{}f=NUJpl~{@697A!3v`w(K%J|an536#O#=-J4kEI4 zlfO5z3|*U(Y#sz<@n2^1{5b}6zQD~kdcf_Rqg`(N{q@2=zTW7XNo(^V4U5@cJ)9hO zJKkTVmkqRNk=mVL8f?~~_slvgx$-dU9#@v&o|)rtq0^`)i!3K1nvt8Dib)_^8dp+> zcrc{2|8�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 diff --git a/report/query_group_by_top_n_groups_encrypted_chart.png b/report/query_group_by_top_n_groups_encrypted_chart.png index e95c42dd41138a86b279cc3976eccd732ff035a6..a1f598958ea7c1f84758eaf9c4f949fd1e7a6dc4 100644 GIT binary patch literal 41586 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%0DM?ag1NumAeDZ1+<9cIx=c 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 G5}E)V8{)D6 literal 37360 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 Ms;X?d^zBFg4{31<_y7O^ diff --git a/report/query_group_by_top_n_groups_plaintext_chart.png b/report/query_group_by_top_n_groups_plaintext_chart.png index e6a8397c8891b19e6bbf866eae67691d5858cad1..0a097d9e310af4f7ea429a9896c01206f2c3b018 100644 GIT binary patch literal 40826 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 KE9sZ+y8j<9FHNTa literal 39566 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 PMx}B>{dlV4x$FN2-6H3? diff --git a/report/query_match_eql_bloom_chart.png b/report/query_match_eql_bloom_chart.png index d448dc400668bdae42a1fece2a1f1c1781ae4f16..59e5dcd45ab52c49b38ff9a0cdb98901a6a1afeb 100644 GIT binary patch literal 46576 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 literal 48520 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≪Ul(esYL=I$I&u*;Tuy#C5+6vr7HYtf=h zh0CKgv!=b?4UrfwesQF%Prf*>9eWrn5F%(h_6kXTU7c#bAIzlC1sS*rJ6r3$Ge}Sh zqBR9)%kld}5NY$I(p6gP#wP)KM8Niwo6j+UuX0B{n990n^7(;nkj`A{WD6c7d^vDa zop}|)HGYCKqziBh0!X7Ku96=KaI4(AnFDG*bP~hUb7|} zPR3y>iN~#_J_^?PO=NcC;H_uEd6eFk>(|J^!h2%yL$Q9v59G?9HFE+$zwG9={p~Fg zGY0Br#lWLmuiKnvO8(B*;ODX7ShY_n&H#FH`qtxVO+J#DMu0ID z7YA~AafgBpb>mc#oElsdMR0bxzEuHqk@|TbMvR<_4&$$g3hQ(yl;%7Y3d~OEU@z)R z1Rb*JbO%mq2ithF^8NdBB2eHUR78I$aS!)W>HR1HM5pwtC)1@O$uql?+?uu#0HdZS z+I%tBct3T`nVlhks4Fh_?(reDr=}(CkpB9ZCI+fV?Tuw2A(HnozmL-in}p9rh@1Ty z`ZOh?Mtn@#w0+ESKUu%s6U2lT;^i(~-s5gcuI&IsMeu?bp(?h{RzHmR?4@x}7^TvB=6wVMbf#~^8CH>Qz! z4C_EAU^PR1WobHi*Y6CG3@6dN6e8V`c=xF5ev?wppEl^bk*pJ}3;hI2#HI;G>q5lV~vWuPRcK!huGtRcKqwpm_P@HiI)`>d;R?BgsPMT<`5E>7QBcZ#jzvg~~RLhzkRwju|>t6G?#~x2?WDXa$q6FQvxUMOueMBV%YaX=)8~94?XKS61{%Z#-WGJv4kyPWW`Wu z1w&e%+AYDU#EJ*$;3KPn0X zR1&vxveHGH>VYNoVw1pu8x1j}bjCOi;2^Bg94a*MK)0GQ5$`;chYOoS$M1YSdkfl* zMQjw!cy^yzdDkO!#PvolCF)a zKE}Jv&~(9!T3P_(JB%N9toQ3$c-;|yL*_K?WG)5@rd9hIEe9VL)YJ*-i1X-_9zb_Z zkc+_OFh~Tq(LMgj#O_Hmj%F=9+xbW6ee;@OMCzWTy6#}qMg-||mO#yEBf)6> z-~TU7P-y@WjM$u2B8wJhwGCGePvZm)^Fi;@`M_`AUF~~c7;2SV>g$63lS$uD3Tuea zSHf-5n<9`y>S6yB3Cw}SWnG8w`1o7TkE4)&bTtzu~Z)VxhyF7W|ybGGW)0;O&~TM6#X0zJs4}&&cbh<#C%-hGcx0 zIbKyW+9{%}{<9%e{&yH3w_>|hnNH`M$wlbB-bL&Jh}1oD;uPc!g|01tC)whs9V;b6 zgd&TG<6v*Ob3WpX3!lAmle3juOTXAA0peBk^9?v}1m0|%YoakVQp3#mZM+SjrKEhU zP)DIR;`1pwkCn?|Sx2F{H578Wud{g^mSr^+ZPgTbc<`Ta(XZaS0mjdkJRNf+ind2W z7&kD#HWflo(6G++PL_TVa9OnS)BX7un#2RYXO$M8ConR5jf$ackA@ovbG$d2^w8gd zQNqB#mO^$3x-kSXIfCmrXgqu&;=K9)(Eo6FX|i*z>up%>cCkFSm39|XPr%FRIGMD=*$Db6n8tZD4(en<3=H*+(fW zPXPg3c1eF^r{(hH%U@&V4MkC!8@C_4r^u(#Bl}l(gr3?mPOkb6y20mT1iSL>dS1Kn z;V2|RFnZY$z4LRmv$Ns}QXbBaOg=-%T-S67miETJ3n2=k8((?3`BpdH_Xb=LKu;xu zt&~?|bJ&MINP?Lwscz*B;y$)??=cLYs(p7!tI#3>stE(mEg%vt@g^<`#P=89L%$$X zRpCqoJJ(c2dyaO?owX89D@)A`oc!wW@OE})d_op0vWbU=N! zS{ulS(Bh}5s8WR%%G-HwDajw1!@@>to5L`#0o7hYjsf4Zk}JW$V1jl@Qzi%>VuF&Z?zI@ z-#cmR>sF-cO=+p`?ox@KC#{z9&}+wwoPk(5$l%XVh!eFH%D;9Ua`p>H-PNq^tz0Z3 zXpiJCX{n%o9o%Q`qrY^CVHabPe^Zu)@>Qso?yBY+e8>1$>Khc4x)&?<9;eO6B-tM1 zerUrre)u>@EQTcZIq~eEY4!K@vqT&-WaO$Q6YLWEH`dHC_(#P^y*TSdL3z^q>{8^| zbYc}iO({t-b$RBy6>>Uxy@mEQ;!B|%?np^+PNis4)6RBfN*q09L4osh5X$*z0DUpq z4wVhNL(muVGS_M4yRQ{VOlCppFaYhA9eny@3r>bF)a7mPfqp9dWvB8|$9nRek}05O z$Nt6_e`->>sDB)R8XkVllo2rtqJYO#$TY;Zf8ExqA*v8+ulduzyJ{cmZ-JS<$b&_c z!aBAz?WGg1d(62P7DNi0&tHgd5Nr4KoU5DzMlEEUTT@9MekxV69)QMel8=%n>v?R9TjcK7ch#AX zeS=eug%q;eAHU!H8NJto9tg@77Jlq8nCa-*7pPLzmK3X{#y--1gT(540TCTkPXR7! zj=_5_#|ZKVbXdPsNef~N=n7|Zoa!mryWFYZn2C#;4qt-&=b}FqA$Dw4dQg-jD{`cR zgc0FJ>Nc~5K@?x4zwTc7xzb{^IfHd(f{hi_EM7BzbV}&W)nijF6w&|M7XI6g^XUHI6OwsJD2XC9LDNTj<;BS1G@Dd~GM?J?xRR2PN$hk3Z|8uTyf;_i`^ zw0+;Xk68vH^DMMhX3WmEFY|R4merBg-bqja^FPPjJ_%B}x^7`Q|0@_1Wt{x-p>2}L zaND$)Z7#SCew1o@KXWN^Bt3ZOL;T@d=54|uquzybHs@xRY75@B}DiF^(XJ?zV51IFc zvk}h(xYxj$Ktm0}S(2VVl4S#9gzU24C%e|rHIA35)>Plf{QB7})$q}N=AkxKGi~PL z^GKY@fFiQy!uGqX3}xhljD8E(XvM}l#CplT7U;^Kz)-0HxbDa^l!3;WF*%_1y|(>*RliZm6zw=w zT_vykArX}Br>C0(C))LSrvM@YJXReMs+gWxlJ*8U5koJu6jq^fGXwoKGFZhP0w$2n zixmzQAWTwVmIN~g2S+cx2J)-ahKxMM;&!4ZChpCTAW0RDN+oS?0X~DK;c6$ReR|f+ zOvo=-p*jW%IEWQB1;e~np26#`Y~2i)>mtskmZ=!dp=%+|16XGVP6Jc-{rD7@<;#-! zFQubAY|Xg1SS`X-;-lFDRs&|%rW4L*1Wj*cXQfv*^=)W9wdnm>uJzH(1qQLK_F7l< z^q^s`Mb~|LcPv{@IU3T#+FqT!G`8r3AH^Xzj4~ZwmDU$y*b!;Kk=jYRr$~J>D_wHp z=yj3&a+O2))%nSyPy(-95JJ8O0}sNk zjdv2+HC96DQumy&tq$lw)qX!oB|P!1_g*y$a3TN26nH@Aq;y2A67bq+96A|^>%w{N z?IN$RrnP>Nl`c5$^&0o-5!2jhJJW$LOfwESk{H+GB@MbaZ&bT$@BW}XX*pAxygZfk z;U4*szu{OwVbz&Cq0Q{=?L7tk8~M(a8c<;O5V>Lo(w(g=ZXr#!&@c+ACTqKK?GtAx zbE0alwWaJR6=o~)hu@>HNbF-Y-RwEaz_k`42%~k#&t5YLpUtHso`5%TmY&ja>)}W+ zkJAVH&d0V%-A(~kQ6FU4is*AOZNiL1-Qf6ffT1Y(jgTzzUK%s7c~ZHkBM(RXUN=Ig z`4H(e%sVS5IopRx*1(jKrDS#F?9qO}477?PZAL@#32>93bl&u@%PKGPn0H~vvyl(* zl9~E-77Xnyf_*qPy(^eq4G?(gUjd$Ua$+}$Q*AyEBN<3VUWIjF z4u;cBh`l;Z@A-(8NFi1iA$%Jq=wH4KTm3-2l8gRYciIh4i(Hta;c{t{TP1kuAiRAj zTu6$)H8Ojus;UZc69d82JO9}@Z1sxqrW_>e-ejjBk{`v2Mn)YkIPk+w^18*59gd}^ zgL*@2Z0koXT`YGuv75;pn2r>q8-UfsK_Z#b=8RCBSy~_esn%jg{AGe&Wn9&SFavmW zw=7Glknyo5?fm-zO@fPBS43>xF{>szAZI-gcq^d;0*~;ve8dOqBJ(Odg(9eMcfLd5 zsMN!JtXs0KbLJj+A{`YrWax5~2l0u|UKVElgsrJIEtY6o^^&ayRe8C#*4{^DvPp-q zSs>l`HjUL^ynL&h4nJ&`5Fc|g@Tm`bYf!cK5>y}v49-qNgu8~I+SZY8zH{TSdhw9- zgM)qy_769fx;Zap`t8o7oA`$g^F)>O1h#&}{FtqFC&wX!&C~M$ z3xhWMU~leYAJ{39q4+@z0$N2@G5&NSksa34pfBhG5dy+JW7nOCd**j*YZ=e-$qPrt zJaIF|=x<%w!o2^wnEY}v&+|4`Zw87kU(kNzQn@Er51GRVX zr`bG#sxAe;fGRK@T-p6uFf1(QE)mB_8k<*zRF+SId{-Hr^fX(z@n5qO+vlz;%id;C zVAjWRbwhzUl%Y5c(P-cYuhq=q%TGgoLe!MSGADlJQxL&)C2PV_l6~H8{Gt3WCmy$H za`ry^)-FI{J>uziDlY)Diqe0HHhS3sCAw|b40Km5qvD8s0lp4GQ^rKm&)U_cFs@RB z3WgG!Ndb60Kqk}1XTH`gcwf;=H&31DfI8-ta~lURTpa?T+hA8t{PoMmHKJxTS7;u# z4^!}bQ;WJe{pls=<&e@~5w#m-20Fbk*vdtJ$cW;nB(~3?pzgVVQvXwrsIp2IzImF8K^2y z;ekR_49FjetDU81b05(Ek^2>AcP8|+k(BeB20yhqegvYi5+NEdM-o}D+A=Uj2Hzvl zDb^wStPW0+@L$6h;wP+)FG}WHhx58EbTDpU0leOFER^ag*h_;>L1LQ5veO&gvhn5i207E3FtT$ z^rE0`QpL$Oa+(qipTtL&{RM8fDtgPF9w61|AT=NZlml9ghw7&O9TJ)i^3bjAB8 z$VZ8y=1AI@&F_yP+i#m z1(HwH&DJXslo4#|9F_y+8)#u}yJNN;C-d zKuWY)(BN~7CgtR%dubqO+k~_=WgR{c4IpILd48gbhu`N?FLqHEJ1Vb#Mb+dAW=D3( zakANtD}139+!}J}aaFiNt2E`$$N_TqHtr7S@?eaf3cTuP&N(Sjgqk5lm4t-E8#*0cMnlgMHp9?n$PY}^QP zuDwaXg?vYI_QLEZ$dl_3}})rZJ|^UPLR36%d19t zRTiTApQBfb5p7aTg(^fciU9infBlu(68Xx%LW@mIrRh!A$y1xPr4a#!t+9Uc-WuZf zzOwK4-nS7M_i-N;UkjP$aRiB_Y5<+cY_ltbALnL6rdYexGTgv)VXu`kcqfq|Q%J%p zFE>Ji*t5K+-EH*u1dJhD+W5l2=&U*nDg&t)s|ZA)A@L&6F>~&!dHwozZt9(rCr_^B zz($>#S^u`*q9ig@pA_|*oajrRWL$@@KPHG^ZtBC?UiQ1~;PvTfxg-YVd&b;=Oxci zxa3DSH~LfaSw+KdoGSBaC3|ysYoSGewBDpEGh)XzTe1GyA|SVah`u@f(9kWV2#Wj& zYID8&YP;7-y*QEEbMs80s-lk#9egcbKZ69NZYW5BslHBc#8-a&A3CVTcdf=1zhKR@%jvsa>UOb;)lz4p z?Tz2MNjLV4R<1~27X+@FY!4Z+M)LU}^(xDsG?!GtkehyA_^bz_(|aR(BdUL*uligK zp}zjW>j0@jmZpGpw*d5 zNs2Ud1y^By!(YK%JIRem>oW$K^#*ENeLw&r#w|o`zog?#)w_v4=e)}4C%8KHY~j`v zxyAo&Da-67KPdiP5~d~A(7DRCrz#ZX`@?(=wWm&@ZzQxw zZ01LaD#EOeI!y}A$ri*F_lZVvk5JbZ^3!r|H7KX#2WI!fmyS9 zSLEied=v7kR81}Gm^W;{e9wv-Q^#8&Xzh;PK~D;n780?(*U{T7NdQyQ^{XoN+*eh> zv#g$P+#+9^4ZRg)Fvw~(DMd6UoLE5GWZjNJfY$rNso8E>9aFd47uBt}_ZDE*=EO91 zGr^&=BT4E!R1jXi@TpL{BQ)vk26PgHWa=Bk>Z8I}KO?u7hpQEVrY7iWQ#txorf;Z` z9}c2n{{aPo+^$S4rLO9sqO|y4?Hd9l)mM%u2XWmx{Se6r^s<=yPh^;uGBGmj3ZGV) zkOZ9D|EUVB(;gP(l6f5+Zg$2ZR|`D(C_pOMMQUr;VS3vTO!Udo^A;-=U;;oqAw&~^ zDwqJ~)PN%W3ytEqu&>L<-UVTsrB}g@!hbyb^`p*1CU3zOj^C|4r%m7t)~8=HPm4!+ zs2z}`sU(Jl3`sy}O|%epuMz`}1H|6I=m<>ETmSazHs6oqLpQY5IU=MBc0mN#<(vCzCZAX=F*b6FC|v_kAq*G zP7Dx8>O^K6A!D5g#Stq&{oQ2{%b|3h?K_LmqYFLwzAgDKf+!Qu&&eN;*VoqfOh*ze z*WBX42=J4jc&yJWstET-K5d7_(kSMgu1 z&^jT?>I)1Qr~6CGcH=j;+`o|Y3$1dNeTskLIwM^=UjGKr3MzbGS>nZY7ESE0v&-uMl18zj{ z+!^zkl<}j}JEF%o?;m&7OD4qHQDFMiPFP}Dhzm;|VmH3{|L=hl=lx>^H7YB~ znGfHMn7iN`AB`Ajb0eW_C3^U$IN1kAxSw!_fNqA2PdT@Iem3GDgWaD;8Mn*CPUAkJ zj*jnmT&|LWV+-&FFUjM4wVADtu9h)u{Nji|_#X&+e&00J(;G)GT~+P??HY)hQZ>C) zLxs4KTFVet|#miAdE=&Fl;)d1~EUh8Bq2Gps8`?S3fmR^K|qS~g-_TxJsLQ@@N-IdtTvh2+TV*!cu6oXJ2eOO8$jS?1yO83A9YSuS5k zsv@t;``bVt`+PBXNl}60N99SjOWsXEwr4|VXnp;V{`V}XZkIrHyHcG}Pf29E#mWEt z72AGp*Jjy2xm|UBBd3I^d7qT1S%^KFx#%nbTMpM273wC<{P8almw$ok@aD>Y^1JaUr zu+a7@^)fU)=L#@3@l~QTgBm>2W2?Z*4Q1}HgW{G2Ynh{ij?G&eGP?Jr&uG_WiEcUv z-`kzwe!>?uQ!!ZfG*b227_6LXf&He24QO?f7vcmo9i3#-os;^em#_4$)|X?5;X6M| zwZ4IV93^?|&$n4@p#m?XLKi`porjvaXmdWU!o^@B9lQCdu(Kmy3h8*F(EIjEFCmNF zyOB3EmRzDY^MsPmei>K$KfP`+>UaO)=2hx?N(FC89?6y0%_*{oWn}+cCPb zJ2w{PQI5(xK`wdjavLQps|ReD_HRkE_vtbG3oEn*R$0A5uXItQZZJm7v5;Ocg(T@L z+fBiNF7}MGZRY*cb%XZ&WM0?4#th<-9VgG{R}B95AAylAZp#D_7}>)qhrn_7cc8-1 zzgi_aO;G&wbi05waP?OcLMbtr3pz+fw%#QlobUKHEm^@Nb4y_C-u=fTnB|{Wez-Bz zcZI$g!$Y7=2p4}VvfQ}$ReFJ|U+=+LEV)GxAj)XL{I_kJ^ndx?Y!Sa3D$wZ9GYR|u z28{(l&=}1XXz5u`OYc+;$7d~%AI2Bol2c`^5;A^4QY-prJD{Zt;NIdj9i{j$Q}h@p zMH;C*XEHj=ENQ97a+FA;(xh{R5$Z~Z`_IFC4w}E^zyhO}hyl<&Mf#h0L)O5~!{=~* z?MqR8+-Y!1B?pjq9eec8AAM=bk(3d|G;bZ06!|VS&JnCF_uDRGU~_j6yZO-ygHc^g zgzh^E`{x&n7)(?EHBd~ZkUN8_C0h}A&aFfQjOEZfcebdf@gEAHOhrxk5szN+i9(lB zz<5f%;aHc7F*Q#M{&?5a%nuo7{Cc%i@$BkqD{$;G^zX0b+Vb5ky-1!8?hxB)utRgu zTrJZ2*J4%E)lU=J1sPG$6i3-e{n@Fa3pv9?DTulDKaHlQna0$#kKaMq#y4-|K47A# z@2;Z51(%kWmywq&Xy2Y1xPcG`V1)+4Ad*jNZZJ@Xx^>nUj<~eDf;QY;U2^qQt*#X` ztk=EbEKq&E*8IqVi)a|mLgM9DPNrtJN>4B0#^@RN$i?VVk&S9AVYDz??OFi5(su-& z^>4V4Fvz?_w+Ju4jVX=X2F2|vb|xt)2~$Jsm<9o<^)W(4NGlxVnw$2G$ft8ux9vb8 zO-V0KhBw4TF66*%P(dUS+r}8ziwF@ihA?K;YeBup z`}KG5xCG*%Qn(@$reb1}hJ?8wB|OrA0;NGpaWOw48J#LLGL0*-0#ar2@8n019?h~S z0d>AJv*fZR10R(XU+!+q|0zUfk9}*iXwPgK zKSzwW0g0C4N12K7!Fh4s$v=UoGTvyYR@&d+cnmEBo-+FdsJlDCkAj1Ki3urKeyQY|4!PekK)UL;tI|}72D3D z{7A(ZVO4oU)nW5XY1=c1xEVqsZu$u-ZPn18M=nS&Mg?BPx$d3(6{}n@;)1M;6^KvJ z&0yo>8FoMdC=TQ%& zyaDbIB^sJ+BrWo*niQEkuA5f`ky=O!I3hoW78)osMInc`o8t?c#)o)a2S=!@d&J+w ztiu(&WDWWWkm4DWnd2g1c2mRZRJqTY`EaBq4%ZHdVyB9O_VqHyVU&-8m~4Ab2{Vbuu*b5aFpM3&!~n8`;cX+-43@ z9ZMtxy14$~8ZaMSq!m4DJk!8>7OyQb!&V(9PL9e`VdjD1(#yPfWNeoRLZH?fIOK#t z6wIkd(WUYfxH*}Wr*Hax*5*Q9K#4}#=NQ@w^U%f&0H)}Dl>jP2B5a<8cm(?L7b_tS zF-X;BB}m1HUhlUVzqcP7u(wA05mO=|fb{MEflevI&3nXdOrZ0fSwMwBiEBcbhzW$i z_7WnE{BNt$zu^I>=zX945MIDT1CCq4ye6D)R}f@lKC>%bN^=#~6A^X~J)7xxpjepk zDYdJeawz*)GvO$TYCj{jI{BolY-ES>kM#iMNlv!aD8_N-q54bn|A!CBs18ZUK^aJE zrV~3BUa~)H9j3Z(O_mcfs&D&XyXWvl0Wv~o1;YQy+YZ!r-)^|-zSe8xI$)8#uD5W= zOfNSOSuGJ~iQo-9Nm$~zkjw1fnB7u(`yu-yEyz4zr69R?b%`jJ6(T70?nA3u7=VZ* zIx)P(Qhrl?;$d9D$9WmEc2=bCzeQue7Q*X~h4p4)G`=Eg18J{+N#TD)2Q~pv7 zp+isnzf?Cgm}{7?Hym8(jNYM7kep!^gpKu_th*fLIk zd7OoDoShL=)8j18BipZ)2ZEZ%Kb2s0*{}*)EM@%Ef7<1w&@R`wOl+6yFm4wd@H+a9 z577n<$>`;rruA40WLey9s|X@Y>DnvVp0$Oq#@Z9lvglS9oDf{%CzkIae}*zHzV|z4 zdpfQBFLhz-wC@yFDbGrtaqha4cvE)=mcx)6+WdE?7X=U*AqwdyF^&LmL{S1H76oY(495&IV%A~1DuGkmd zzG7C4&cWWYsVnBvv!ezFa9*;zEe@3YS6<4~1&olcN!|4=H99inDrVK%?X5kxf$|h{ zZ!Joo4rN0c)#72{b$bLv&Lqhc``6UZN`r<;hZr5LaC?uU_Q9z~8)UJ6M+CJPNz?I1 zR56yckA@DPiYzwC7}%Z%G}xJq!C+P&U9dw*k`dQS?WWAsql@wpP4@6SE2zCEncwH# zS6(_a{JLS<S}Cdy`EHEN9!-!Gx7-%Y5+Hx&Qi$77HsU_U8JJxKUzu_ZAg`2SN&4 z(d36~n+}lIkF(E^r1?&|(0gUakL1pJ0NmgXhXJNZW74 zXxFXy9uL1`?51<~1S*mmf%#q&&8NvZj|jUp3)$TC{;Zo|&6%Y-G;BBURM{o_)pG{a zJ7pa;mLy~L;5hR2$SFNb?fS;H=U3Q!>UvQqKVm`;!~9WiYn+%3xpsohLSS8)PcXqx zV%X$SJ*%$mI9FT)AbcWKDINipv$oRVbshJ=A~2?Sj~~;|sS~o1 zZu+|>mc+zh(6XQXv9ae>SGM$-Qoq?KPEUdSxXUKDSWx0B$P4Y2l2CpbvXsmGm7mtm zA2{i#`mG+A8&SF;T%FKP|{Y6Mm7)JR@8?I!w7)%aGbGhFkbS?clNcwdO3@TnG z#0}L?pV@8w?BK8+j9YmV)LJwydmPp*omy&(;h68`RG-H!sIOkSu57Xlt25bXuKrZr z6k+!s1}V9V_J_Poh^sAuihP}3bW)e!ZN2OIY4Y$$iDArN@-8ygy6%>as1xt-^SJJMc||^(4$NaAWKf%GSqPE%~Mwwu7ii8KPxc{2Z z`nK@m>pDn^qt3*ShaKVcU~KTr%)SvG_3mPe?u|Q3S}C@tN#b84t0%tX4EbQ0NcAs) zssZ_A?_rkH*$>fK)pZ^^l)}jd__8D78YTTh`c81?OOVKIJTIrYgQ%dj8BzNlEmkD(l`rBr7OiY5Z$8a9Bc}`-e z_}2(k5s$M|?L19Raow$1ncvOs+)?jIvTVW_t)LR~1#!yNj{AcR?Y_M4Yh0dG+~+*U zaNnWfH7t1)339;)y{q}P1GJq1>@ug09=)p*wSJ6UrsZVa{J8;%VZ*X*i4@dR2{_>1PS0RfH-}7aRaEy zU@bgFOHy_CvC1mFf1%Q75O5~#D%trL`qtF8NblWK%A_6UOGl$WqnZ1ZXs>os@grZ7 zYkh;ldqUck!x58%zj2@T8X>k-5ce<7%E~~AJ%yhhhtA(3Xt%gDI;IMYmmlA}vdvAf`s*x*eq%~N3fT+_i*;yLNhofB*H%kMUC(LbOi zxgB=hdeY1FJvT!!N#ygc{=2rNo5$mpUntDo#cTQUuXuvVk-FW#f84gGvBf~<$?E#x zE}3E7TbV=BwihQKpkAGMfo^K^o%H1oUK0yhq~Jw;eg9&b`tB|3we1HDor^9lr8K2} zq}~1sTetheQOgB%9jOW(p65Kpl(9QrlI0IkUJPp?>Jf~tG=&Q{+I8);Ycp>=zjDbt zjt_N0hToj;e%aB){sVU;V#I#ZY$kb#d9>2QL=iE@dynU2yjK4@WQZZdX+EP_l z+pNmN#AlSu{r&Ujf}X8>mlaJihZsUyABg!sabJM+2l419W$YWvY;5DB)$_>Q4$P=}KvlN$7lVWIqP&j>bqps#Kz8k5sNg1Xq8cdcYn%zQj6G^){F zI`PZjJu{($L5`%TN2iI4lM|Jo&eZ99>*tJW|CjT~$QQ%bPg%}P%h3sF@4ugdr!#juf5S zI!(*U&g2DFrri`vX$g}Dfl#-DNPVyI&p0C>TnCi?3H;#ZYfpwrC9$PL2Q$+*h#IigINI+2c zt4lJKgN%f#0*OAg)s^DW()!<{Wq0Ak@R~R$ZQ9NK@bh2ig`GaAsH)ak7WH3+w5f2& zH(|AUe8ySJ`ucDOX#sHuF41%@L3S=u=x z5>%u)Gmq!4Tig`LgCzCzVz22}>i7%I^T(ZFh4@c$b|ly2L^{3W?7O!7FexeL&@r<}@M zn_&ro#jlj(Ai)TREFhlZR22}j8-gu7C?bL-cl%-2gDl_!Z|ppT({bnmIqIE=XPA1a z!EAKPc)OpsQK`E_dil-W!=~Y(-?d5Ndu(dz7Mz+?K|5-Aps>_7^!+Rg29)vjp1aHR zngu3GF;7FN1?|&Ha@azorKE1~d2W)t8mD+F4Y~{89n_yo2zZwEg>6rbtHz3_tGWaU zyKX2>wVDlndke>+EWtKK29Q>YOg_zaL41%gdo2~m-og6QJ(X_dX< z`uh5yf&%UhP^vU-D=Ubo+S=O6%HhOzrW7XX-5{meq#z2B7FV|n4sP9>@K_6WjvkW@ zWa2!}Oe$z(7Y#4YE1aSkOd_4|fN7GVEkOKf!@n-o)zvM*hcw2$4L$^SKfwgyoY{1W6 zwRw@GxRPxFRQ$$%Q=|1K`J4K&yofld;aGAmkpdZW=dovBF1OVwoI;so|0a6j5t)PNM=3%d<-?8tKq?H% zWMcnzxZg;JYiGMJ9^Kfki7^u7yQCRg_UP5vN7?aLq^Qg99wT3x;s2HP)3JXXppdd@`61t>FNGu?+G@Sdv zZ@xKa&YAPiVaCxxhUeK|-1l|Yb+MQ@YD7DJ=NR7B4$EU~Q(N{;rit zMj1VcAGt?^I`+44!I7}rV;#5HYy87R|MpU=N=LP2mJ+V^VaoDM*q675P~LlSChCZE zSmnmLa3h^qVC$`<@odKm7Aw>vMmw;$DAW;5GmaWYcUCp0{I-J>*!Yn*e>=IS^>0sw z3x2V(wl%x<*5BN2uCBkb-@e)G9(uRr&2v}Fa+VMY)Th7cD%-E>{3g07k4c5oVc%qh z_*UqWTP&M!ufobpO4H{?=un+oe_zGLPRA#THd?}xuA87nlMOgliLCNOHA!jpp^u=R z5}5(TzVr7dMZXpc@bVUkagZ`iYir`A&dnc9Qg6vsBx}FBc#UkGsUC29rNGoW7f;ZR z@T9um&c$o%L|ZTh*p@jQq%Cm&!C`6~+viPh6IqF#x+hs7`rvkN(Tt-0=pm6CzMaTSv9+x86#Et4&}Oh! z{U2_|QzDGG4yrJJyGH6iQOYbgajtb{TD2>Q67IR#bb`+68m{V94`nPDS=DV;U0bwu z!k;~BrfL#LrpDygi`^SM*XLp!h}$VrVt9KYIp~qO_P1=b;#?v4*~M+y(vi!Gw#wvEk#)A?VSVSN+{ZE%|1-S0I`REV<9<}*-@2BB zeUwo7L%}XK?VUT>{dYRlChbMe(9uWCrn)`GN>BL{y3^lNpw6wux|bvzz3mgFQFhjz zG0Xp8{q~HsL%*reZCjrRyt?)0P!DF$GP&Ja-@ZjJ!dD zno>5UieGU^+fk*s!(eLvio3d&Ymikk3T3Okx6++svjy3UN8`2>vqr_-&Q#sBHOiD? z;+4OXvlN&Z6L*34B{IZRNSU+IOI|B~$oc-ZmP zy^lT`OK|uG=#)!;kxhLvXIS5a@9wLXjQTUiBayh-eA;NDpRcq}k6Vkn#sz0U7HoSq zNHn))JlX-M=u*tIvHiLxTn3K(=@h)CTBK*Ds&_n-`sBapj5wdlV{$+=`Dte_!nb|G zXX<#0hjKKb#jeMVY^=-0F`<>Ysw-1x;qLi6{jwm>keDQ|Nfm_VBYV9R$1TPUgv2e| zyY2a?3`tb_g8tenll|no$g(qLEVRy#xQ1eU$QZz0+LG+-Mjq~ow!B5WHYUv=k@+G z(v*R_OvFFkM?1z#HUGeR43cuV+*|S)62niiRy+Ow%l$%C&B&^Nzk8kP&KEUWoEsJr zMS9Ebpfxh)8-<>4axl(R4UhN)4{5xLoSNf(0)+5UBHs@aarbs^_r=^ve3dNz6YsaU zdsvb6)5li3-Ewig9A3j^`s%AyPwM+6$T`jxOLv{nt*pby4Mv19NlY)IzRVmk^1{d`?!1TA*Y*{m@E

        QCyI2qS%^nNk%RQj)~T9eeuY4_-#XCx@*i(ra4YnlRAt-y)IUdp-rT& zIOodYwSxzqs~>&Rzc0dxF)O~4SKNRYo>a{bPjLx>lJ_I)6ny=-`0K*Ttccb3m14XD zdMAidcm{7rl~-8-5m_-2SvbA;F{?~fyOWPkA@2qWhZjCoggig2#KGxtu+mIKDHhrb zK7#(flIwkL#Px44L-q_0YV=<@_+i_3uyNswxzkv!p_;^3)E+0|R5)yR*)R7?u{cf7 z0|t*;G)_f+sl-gH51H?K`>yr7heCAX~Wz-0uw zyxk^CUU4RFXl@3P)}L!jt|Yeb4RWwAKF zs;1jp=kBkwo}iCdUT2D75o*{RBT(hWCn~h6?Dl8fABKCJ=luNal?+a4t!#Z(u^!l$ zUN^)m94HWCfZx=}4!f$*3bCAvQ8bhFWSKw?(bvDdwx_kksq(e8vVmjy$3b23VFz5v z?nV-?MnAMoGn-D`#F}c~FX3 z4b{uTd9(&wPfpWo53C&E-9UFdi0MNw4_OtZ6|QU+reOyq`xnS&DSaD7!vQ8lxz~MjVtOAF(d%mWwmunQ_DSJbn;1AYlX_gU=X{}U5&iHG@3kjE zVNXKh9S%$45^r+a#@m{jgbU2YGR9BG;az8rL{Ye=qY|8=V?d`uJq~ zCjSw&<7)0`*=xaG$KQQcy&uN@1vg2nQT_CEk(K|1&;I!7_g_mwo_*rb{N!;UZt~a_ z^VPmvB|FppIuGxOjMWusy~Ul1_N!}nw)R+?hHOWnmrU1~;lU#(?8Q|VCiU&5Hq*=5EX zAa~2|Fh@X*ksmgpn}L(MV*R17Xvx0*P5ixvTjow@iyZpSO&_4s&F%Z(G+fc|fdn&L6^SwjJv4snw9 z(E~8Ke6px4`T%2k{3+jTodWhRPR*fS$A1o&JTP}URb-)r<4{heO8ucnw_=leYIJ1f zZdE@yz3KAQ_gy#h{+>re0<`r8wWt%~)keY6o4w2X?U1W1qR+UJU>4-37NgsN%cWr>6eXRT8D-8es}XT-H`DvbyzjoQK6Qm;9FU z-Sg@1BjhQ$wLWrCLYWyP^H$6$e{-NjhL29y9YsCbm|C5LY=D}!w$!fMKLF3$Q-OFC zcl4zsOc5$*CZP>7HRE(=*4vY0G^*FtlwE;(8Zq%;2CMmbdEe&e=TDqcAD@_bMVg8P z2G%v%BGUT$`abhCrER=OrI(nIp&^g7v@{3f!G9r5B5=1%fN!SLvKWZO7h#-Q!`j+f z)j?tH*)Q=E8uzUN(+1mB9qT@notaxvS=!3E5-g?FwNuWl_Mx~)D>dn@ozeqG?!*~} zzREQQX7l*^x*pY6QQL1kW!4$USDK#9r`*S?V%T9sc@rIKFaUw|7l)BgkBjep-Y>n> zDlW$np>6IgXgOwlyBHu`4n)R88e3(<`&J1SL4ZwCS% zIPee5IM7Y%e38auUQ+j-=I=m9d9D91vzyFM6R(fGU%Wckh^Kc7RCM!ao$&qNygI*1 zbNL-ExP6B)=OcYaBo)gnhs7UbmQW2k#&m)4>ehSUI%;y0tW^biUBw8)!|@>#)PS%5 z%M-`9UaI=F#}^y^=*#SES1nByEkD)n5o~X&^|R*snnd}k_-*QCGG$E0_7_WpZC%la zOP_O#ruARP%llVqLdz2!9i8Q;NBb6`b-$%ERVhQdE0sH5)9xqLaINkDsx#6Vw71%m zQJ>&l&&0@OL^AXol`<)+=;U|_Tz7?%5+_ifq)(&P80b)1I_lz^tmn%SZ;O0&x=X(s z{QFOo#MQqcFBpd_d*BUyIbFF<#UJpW~)trkx^WQiIui?h^3`vv-D)* zMWD9+V>FSK91u>@meC@TNSwmLI*zsL);YPkbR-;&!dOQPjFq~=3{e7qgtd(g;mjQq z4xq#-bgTM_HV;_)8SDyw5=Ns2tGr?$y|!=yb-ZiIlAT`q^7CK58FkJ{C7>h431cAn zn7fcT8VBmoY_H^f>_Y*;=YppE*1^uGLZeKZSTKw0i&p3@`Xeu3{F|i<#$jX;GJtYq z_CiqB38CteUz)F)m*?l_CtyL-tpLW;jN#QQdonc6?nW%mhT8Ry$1||^;QfzCkg|-)V++Xth<+o zywgg7KWYZy7)aF4Lh_D7o~RQtIve)Q6}&9N{4}&p(pA~n&364|1s<@jcg_7*q9ncM zO!x%_+pyC)SquwD_S*`LQoPohMG}S237b9KIV1}WMiWl;tX=~aoSd9Sd3TD+m}%fl zjO~Vgrg+{3%g_t{PqqUz@CZoS?EJfXa4+s_#fp3ur?^(+L;CQpUY7PszS32bqUyz0 zHgP~aN`4p!=GEHx>J~$A10N61f`IsgugCbs#Yud^!i>MnXcR2lV>X%$%*%mwuR{z; z3<6X5Jw!TtU-_xRrSZm>rwYI(Y~*i3!&o^;{(bIeOt~d-DbnumN8Nrtlepb@O2-hU zD;L)tu>`?#LugdA`*dReqqQ~GS}Dy*0;Eqn&=fq$uU8JHBJH=<{=8YdWwB;ctTH;p$k#!wP8(;nY*sY` zqwc*Wtw2a&GQ zR`0ErkE&oWQ~N05sAsvgZh9YU?;Ii*)@brfKCCU;Z+q+mRi>I97U&*9qIW*XU z!|zR&IwuJ~6->LM+QnaqQjqBOa-{29ZBghijiDV+Y+E%zz2WE$2%Zd{@?&}!_jO}i zhvy6p=)m8XN5PF*kj)y*@i6)Q_68f%f+U&M89ab|kxSK}H5q7vbkx-sjZ~V#r!%-I zR?7h}KP!KJ4*2>y{M4pk{wr-(7$q^Wt~$zRjB4%}#VLN0|4J==e38>LYa z!NWfE269QFHyi3VI^;zJ>=bs(_WXzdHsL`bnJ1kwZk z=|Im2*aJ_YJORKZV=r%3;{A+_3?szKCGT$8i`Ezj#Ohf81M zI<7tw`yfPg=67f6({&D7)SoRGKWMtlEU0AsDQ^x<#Dv?B^VZtjq*Cl_fX?g<)k3{< zS3>)|fU+^%HRwg;6$8x6g%Eby=gTuqZ*n!phxlIdGJORl(PQ&=rG;o zzj9wFg+`Z^y}`CU|BQ^`!Pf;OMBn>5@&65>p&q^Xn~?-)*Z4P`2snH6Zzie{lsN=x zX=!i$pn~Wk-yJibjK(MHOOqO~`Vafd1j$QxN06CXh+Q&j4NA_cSa-)8Hg~8iPyu51ia3QwM zvVt_=kXqNxq&3;XX+p}3OaT2b!9n`=z4>oJM3#Vef+C9b5Afk`q!EGecG)FOUO~aA z-JR9Cll(xd$#HqmJz{+eA&(`uAq%Sh+7ogw3QK744R{_~rNii%RZ ze*L)(T2!=a;DTD{XW%gs1WRFALzn|(y1Z;hw^zymw5FNu1qkCt70_QuXdFX0L$%WeckwTpTUL;}#o4|Uq{$;pJ{7H~7=Kfk4h>yl{*Y;0?=#<7zi z>Fdy&923J02Z76yh!dm#v%NY@0L4zoMX2{pwoyFy%1JQEEa?C(!UeC-Up4cb8<;Xu z@pZunXNAgdG?TQevh?0l@}S$hvR8Ic1)_(}cwOv3b+86@*xl%^k52^?TecE;dCh(H z`z6E7oi%j*|O={&?N>{iwV@Jf7b%Wi| zN!rPiJJj;JI1ebJy}?bI2*pfIjmfz$fJqF0OmjGXa%GLhwV7iPc%0YpI{j&Ki^vaR zSK)w3Fkm5_^N8ygQA0SY-?6H#o4fcw>zVhpFuWdX5y-5HNm&9+mf%aNN$2Whv4)9l?SQ3(;bxdaZgc5=kSkX@oj0B#Svc#tLHd;LHTpkSP);6dYy6Stu>I^(bezOoG)5fM=^ z3>()AjJp`*U7`u&i$>bXq;cfnCr?gxB%9By0|Yb%MghN?{<8id;D9X&fvEN_@HL7$ zkbyw0z=~T3_b~eC1l$P8rd2SnWx2Vzt!`j2633mdXl~XZM3UB~|D6*qEb(t*aeFNZ z*dk@Vw7tAM1Bl%0LdJo}z(3^Y@)W6U5h#4bNN8aIsR->uoM+YGZHQ+)<|-zQwX;Zk zyu6|vSAnG>a~mXOBuJMBoS*t6tx7#zpE2LHD`Wa?xF7ZCYtsVQ?ap*t#tZX#3qF0( zL}vB=a;KP!Ay?`(0|AoL8)vPeU%h(OiVnHD<4vN`$eMYlbgaT{j`hCiCTu}TsckO+x`<8C{cr} zjv=LbqFHWERYQA4%jw8+Uzw>gN06h?8bneg6FwBljOV{fN=n-BLo>B@p*b7hDZSeV zQK+|jUMT)F>#K2pNql|1qWG+O@JEb7n$l;yV`Q%I&Ely}K~}!Z>t&MoPLJOrpMwgK zLom_eYCNo}bdq&3tF*}7FwS)#IHqJ>LkzFPdEV0sp z>X-3zcyXN27PT$mM`WJ^Y!U-={Jud8n48%IAI5XtW%i=}td5xAS01IlfkDc!e+#LZ zNa|kx@v4gi4 z_lRIFX1I&RR?;dgXL{t}g^0jZdJ(Xd)J&Ix`i$hk`+enfQN51Dlg2J+Q&vhE1dBwRM#fn#>qD?Fp!3kvEi43~wxt6|) zt^rT=qs$>ehbLqHGqCw;zQ~?`GlcKlwu&+3LI$@wHYlF`lFi_VED>A)Caz)X!ALZyKrza_1y?wp9pbsAP}n|~#2!zzY>6u4r(w;+Kj zKJ(7EJmD9#H#%5Yv6=l_KqEJ8qTP^?;8^+XSWMO0=zsQYeIEHH6~qHxhlxV;n>*X{ zftS5~s@N;fUhccumZ`LX7peBLpmHb$#iDMlLMzsB6+ye5(7>$*KdD)a(?&dih`59x zN3t)(s5r4ZUds%!9=^<~&-q25^tc)P(-**injz2NlYG4qhQ-v?sp&V18NmGyvb&u@_ zz-LeYbSd+3T$zS13m9?15i#^Gj4DZTgkEKpvN0DGj=dNvOMDh=oSerY;ZE%Q-F4&q zijR)F>bqLutR&C)$qK+qNEgx6_zIAttS?6r%cjs0`Xmc~sREgCEqgsyz$FtO0=ETO znX@TShv~YegH*0u(CO;IW*EZ~E5g}Rsu&A9%Jnq4c!}3Hjn|BQKikT2vVQGJRXXeg zgoRp+=K_synjot1uAdK{Q`OZCpW+qwTXWXwh=Z1=gbi)xPrpTkt77y_+pqjOb}Dje zMiSK(rsAuNVHBX(T=vO$PV(4>;8n7r$-Rnvh|-hsrP1TaAmBM5JGW_#wFnx-bg(-7 zXKFZ*%og)4f|~#U#gVRhX5l*hBVbUpQjCV)92whwi0HB6)efVLFBid8uD6m>RGebW zusPKLwq1J+?!*l}Ad@s2B>e-IeOM3KtkNA-R!VPdRCdz@p|Lyjf4a@oBDl1~YKGm9 zWX{D<rdOtaWUS6_qFK{$vak@n~N5w$tLJ zpJ(%(6%~JY>u6;^{x%YNY5I%6Vsf7NSbrWe^`gGihZN>t6`b7MdkKqg+{q8+z~kR` zad9cQxB@bWhBiqa(NRfB4$#hI1j;0Z$Y9>m27KmC0iZlvHD*P-zh_|xj;nL|1!+v6 zu)`o5c-zh{*8}8E?jmg7Fh(bkZ1p5g#;ec+_QMb|yCp;-u@wz4?g6q(`}#KlF5Csq z9ti@d0}|0=VM_TRX&x`t54bfS@?dSPeNrreTYs*V*I6_inklTBD-O9bdW2tCxI|as`n)~?w^GkGjPeD`ZNJyOoKun1hAG!%Ayi_=nA0KtJioAhApLL5Crds+if_% za}Sp+?UvcGw7bz)mk;4-!h?+DB2b1j`qdO#F6A^dTQUGZF@Je^`O!QFqzzvm*w(@C z7X=W|C||HD0c4=0s$2-2P99~DnH3>f3wlC-(7V5lB^)yFm{#Wsh0>h(cnCZaQX|pF zbc6SUnf?8D>IMm0{+|OKc$ecY|Hr)M{}wl$#O$6|E6vi){h4|R38d7nYbzHj-h1*t E0I{1buK)l5 diff --git a/report/query_match_eql_cast_firstname_chart.png b/report/query_match_eql_cast_firstname_chart.png index baf2f15a51d3e027f0ec467129936b59f31748d6..fb0bb6cfb62c7822749749b60a8b6e400113c859 100644 GIT binary patch literal 45423 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 literal 45659 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

        >PNsw^?Oomk;M%2cGRQt7XsypLh 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 At^fc4 diff --git a/report/query_match_eql_cast_lastname_chart.png b/report/query_match_eql_cast_lastname_chart.png index 66595c80a162944c82d18257c544b9cde4a0b07e..81b155990e3e7aea670da879a9defb25a10fa47d 100644 GIT binary patch literal 45359 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

        nR#Sw4vb-*|Lve{87G1 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

        lN4qtBlsj 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 H5E5ZjNA9&LHaVg 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 literal 29903 zcmeFZcTkhj)-E1J1(aez5TuIqrbv;F6oF6$r56jmOBF&@nxNFsn0GkaLLxY{^5 z-r~P`ga0-!v$dO>v#Yp(fWtqJ;CFJd68K`|-U+Tk>a1+w3WHHTg8rR&FOzEngSknl zDBQXKENy=HT$bF6?Z)Di=4B3iBO>)P8v_-)y=l zvyCk~LRA~7oVB?Y<@U70qL5IE*pKQ;Ot$o}^02b9>gsH7$cSndlE80ES>-&z*N-mZ z74#DI--)O{C zIvA-aE8ifPJ{t=beE1o*wT3gRFIs6l*z4kbhn^Kj!Q*2+<_D4;PQYLXP#0`f^TS{y zm#n%n;)xlb$(s5seOF7w3jA5DTZt@p8kLs+xccL&lX-P!s#8P%hsCZM9=#%DZ=sP@ zHT`o@WWF{E{&}P;g#2pC`Cpfu8b@YV2OVoW2zWjb5nbuszw*^nDRx6S0wy*0y;rAM zay8PIKbbcA?Ws-AsxpHf-@iP$dDJIYqAoh@7Dt*T;xxj`2nkYdFAt3Xd6�=X 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≻4>nJp?=PSum#OR8&1qNI~Co zb_xn46r^iG7CoQt$b`=A4D>+cYNsRQudc>Ed!xxNT|cMyjz2Y%Bn~S7o!W(PXvoI$ zm9$Y`Q-&Ce-xbj{F64f7Z*N+GQ_!jtqqnvX^FPIEkmP>;tKgalTNFLw6{A0FVmbE@ z;l`c3M{NFWH>wxcr1SwbPE%<%^ViISf1=!KsyRqISM^ThkZAdK#Hf@Y&*{z@$lWLn zR*FbEn7HSE4G(?a&88C$n_LS@vAni>ep>JJ2k#Y~$c^BupWIGJfAGqc`X7jdP%DBY zd$Rox4*dV_Mi`O*)d2~8Mgt|VuRY>x5^P50IgHHA&>H6nE5KIME)lE-Kp2tW_L=mv zZTo)ZlB>4vP3 z&B?bQGbWBAE0s(t3BKbQf({A!NiZPFn*^?ZE1CWFiXsl^7U7S>PIqnd$wJiR(aE9(6~33%AB+~T2&~q(Z;}>w=w&(%yP~`MO|HJ7$nrW>+PNg3Dyb+OOQ~_ zKPR-)nS0bZ^Vw^=N6q0sU4zfaggn2^fdrXTtJ{d`ev zDt~7xL>eQd2Yd$I9|M7T!yQNukyiE50<{=2Cr?kq?yu)UUw#IRrAWeA84;yk#i?~2 zZS4aXPe;GO-S7)nZr=kWT!Ns(P#ciPlCk~-$Bzn6lWy?gmI3heB$&r*11HM6L;Q|P zU|^&C{zd&SRlowHcyRF+AVDqJAg-L}LtSGsqMN53wzYwk<3_o4d{dY;a^U^L=T^U4 zUX%j?nUjcZ@Poo-k8~qey&R=$9_zU-t~uy-Xs=X~x!Gk%7)h)4iJtWP9(!hB>yFRC z6ACE2ZwN@Mv(L$-VgR`UeM==+9@GU4HeFswXgu}p`=`VH?0%7K{!^lh9m^vX1TTs< za43w_d7z9kVq)$A5F9@hjPD)~0rn?lU>#D^AZRGVY00I4$jG9VIz0wGFCs>W|C2LM@`%k-){l1VzLE+}&AX+VEeoQQnsoL?iYaBE`lv>QZ|% zpyK@#=DGY+>ne@d3~YWfU@abar8MVy(jA6C?rkvf=oY+BBTN`W2*jOPzoiX$+9aHN zQv^G8Rg2BhX57uY7Qk~Ei^ZTi!D>bV!PF+5uo|CVAXSYSEVu3?e|su+L#`RK&8o?< z>VZ(}QT!XBuTkYPHCd$&j7&)T!GdxinZ~>Y!aQNSX2LehEh%Xle&r55rI~M*fb;lI z&M^=nfP!oYOnb9s&cOcH71T^E?%ieL*xue=va-Y!i{0hwe6>4#29ovl{}nqAgGis; zg~DC(2}(AwdAUzW1OZFtorJZKidF%&Xq>Q7VLMLlE)C6)f(wMa8bnR z!GLI)3D*YK6Z_&aWyj)RAwiJ$gYak_TOobdLi$(*NLtMSrQVQIM@HwbLe#quKja9chls4J; zOF2z8j(CRqpfHP6g7%ESausLnT&DmO{p7grQw!G2xguYXQurh@ z3BI!%V)5LjqpA&K=n(X!;-OM=9-Um(cdfJmssxXn#{|e~jUh~@zuIP=H2{2;T#4qv zb)2wDC7@sPl$9Ata{@Q7)FDpCZ~Yr(w`DY)G;PuPDSmwaK1>@}h_#5@-s`)d%asvBc2==0_9(>-rO&b-iGYud>mxFk!)fSsp=)3{od zHsrv~sMa+r2Z?M?;y-Ej4Ovk+Nz_peL(r(A!-(R{{&JbN_tAt~o z2}4hJo#8m62gQzTRr(+#y)+7QaH;{-K=f$~IXJK&0(+5miAmk#sDI1#e9-=6o>q1aU>8b$VOuWq;OqjM?fU3N*BUqf=dZrd z_D^VXK_BW9A`hEh0Rk9jzjy&3fhj;|?t^*;=RML+Pmy&Y3(^05&VOAWfD^y%5nB)O ze}0-7%QF$$)xb{!q7ENvZxfJgm}^omo_tM4>ZT^E*PpMK{5INItiQjxvjKos>f?^Y z%F4>|D6-Q-?`g_p=@QIrRl{a+30%em5XyM}{{3Bs(^)3dOrgmt=(B242d>zL6b4C4 z1dFMvs%rRFkK~TYHo@}`wr4k>K%D7Hb8}h$^KI@=cR438l>Au^IQ^8^j1@VkMHl$@ zDQL!`FGOuxod(1D|c_EOHavggU_03Z?jLg;P5#i;P54EGY(+pN&4el z4-Y;Ok?op9RQ!t#_wup^0DL~{2i#7Cjog=Y5QGXD+JBD!bCV1IVtw1DW`Pb$od6?4 zbN8^8r?DlJIs%wP24g|8Q3CPQ3Yh;0mgja5CisgIV`J$#3`!917!;vR{#!XJiQL-2 zO%jsvZ(PqSA*_uOq&WcKQ)AZ1;HR($RpwsO=D$JzKP{#1xy$AQQxM3cQMk1!b3zy!sf5QFWdK4C@O#b6qg5P9)2Ce* zG7rg+APe0iWXf^ZFQf!Jc_*;3TY<`At{Hgc+a`RbxZ+qeu5KHi-iR2DuNOAnN6`8! z1@Hd8XjJc+pXSjc8k>}~P|w56{HUa98@31RyH?}1Zl9?+PVV)!Z{?iIYHETNZ$pbf z8$~Cu9nUQEWnZVEnVd)vz(>A)8=sfQIxk1?k+y>x04W!7wH#P8uIvmK8yf(-YJB0- zlOHEunbdx)$U0jh|V zK0d$%4o(00!$^Kc!3eYxG=O<3H|aM|Q-MLOegs8Z`^#$#R_(D&b4907{ifCL$-BhF zv$o>zq4@!;b*%zoYlDS}2zI>=P7MD#JcLbcOCV+uSe8pJo<^$B1Ge{uDuo}+{AMYP zn*6KA-8;F!vZjQOR_5cDhBfp{OxS<{^zxC?$(YIf?4y?Pcm@h#t2#3fajbzAIO=WT zJqJ+yT)D$1-(p%~Uks~pc9PP3eTysh+iS{B1e?wbFuq=$1U`1Kv3~0B=Q6^NnI)rt zn|l=3Y<9fnX=VjQGET&81gt-`wR@zZf#e%w`)H2@rUY+#l0D}Tt% zT3=tMr4+w^y6i-=KVw3L(eX6OsOR^p__29L8I+%O3DHFx3C-RAo-1wcHK?bZ{fLy% zSO#g`cRt3j=Ps>-& zWB~z;(C!nx-jyjmC7}p~zFKngnCs#lwA-)!{`PKXfnK4>Sk=^XFqu-lCU&0VgGT`- zf}?Ymup{@jstz_fc}nmri`7V#L;^(bx-I6j>Ug%{<7Fgm;NORYj*^4@rBZj$(bOS0 zY{CFMkUO;td?!;VhF?sR=+KDhDyh!$tYQ>3Z@iB8 zy+7(-ZlsH$p1!_7`4ZvS9^nwhkEw+XD{jDW}FkOlS7r@KXV_Bh|Z^37PKXB8qqg+ zukh&{I)X5g$dcjPat=o5OzO&z91Am8CA9ZctYil7w_7nw25cihAoVZW9Cavd2Wfvv zYgPcX6V(B{)Gg&OSP<{IGCG)MR{|=F4Nw9ldwJ3=I;4XZliuN+C-G51p#24uC$Pbx=>kn=E3|EHZf8)>Eh zai0wI%jFeOq`-iP_i|FNCKR=S?P4n)?IU4yp$fCRZB5xIfnTm*UhZe-B6atC^DW;+vwKO@vTF+Y@0 z3&2E=QPt|q2l`)aaP@NzQcHwBd3wN|BRa>;$43D- z(y$02m(c}Nj(mZf2GFNeF`ldcvQGT?U=vA5C}PmUyh=3!7~xBkQ7_DP1a?0g@%qvO zPr_L@%(w)-7Ikkx;pQwW_?rdc>&=sQ*MewnWesfh zg7GEin(e<}z5jV&L&U}V&YhD%J)e%&S*SEXWLRsYrr=+l6DZG1B4=@+b!6e~`%L!0 z6PBSb2WLedzHx+ouJB#A*jp?tRprU+TDaK^5HhuNsnE}%$B#IwmLZC$G&ng@PZC;K zJ&u>hZra^&-^mYqDuq@<{lR+J6L}$0K(7Sm7m@I%z*w_5zvSfPfehAbrwSW91?q2S)bm(_YiH+3P(|Z6^I41Gh z(2!s(GI0jT*HU=p5rM|OMS4;=?uyr_%ov^Uq;Iz9m$Yr`{`blp-sJuEdGLY&he*4=wmP1E|RNQcB&L;Ecj4OCVIwAT>=};Yk@~%%e-wy+2 zU%?ia8nk|Rl68xiEqxV5p>~;)TVT+1)t23ptQ&XbmCv|agrB*W*oW{ZwrOtRMzl~+ zqrvG>-95mx4WDDQzrlYp7Ub0FcMW3U!s!k@ ztXJwDm;xk7UBYrQx!rYD6EWM0{bm|QY7g%U+9T@hzP-COZr79bBn2$Vb(ZX3T@)IU_N{abAXK?r&a{V`xjXx@tMKFxGOJ#f&6V=Z!LO6MJ8T5B?s<* zf)ODbQ5Q6e?c=Q}=j9^E=!6c-DoLOm4V5sJ0BH)wGg}BkTWsL&?}*QICtiMt%$WyI zTF&t+Xro9$XQ&CuhfsE;r&*rR-3E|&y90YbcHWo3XL#rRLxCvJC*_M9-B>NjAsr)H zs6`yh<-g{xZ!>X-D+buis@B{mr6;7To9*^L+#UiTEqvJfWGX;D^=TFWgndT({^{T3 zn%N$wukQ77AS;vWwqN>#9w{|BkEV1Q(~x}}R+OrXz+dH~GGf78NyX3y1IDSp*jRY@ zFlZn5ZrCiKdzu%pI~yazCoL3!iKB&bnKzq!$j)Yxl$;3D_BWP86^Rc9LN|X-{PxjcD~?G4jnQFW zA|!cvwZLVt5M8)J=sgPeS2{V~xnba8tafQT_^@+vXqN1Y96&bR zX--|bk`MF+HSXG9XED!M?%)4BF6=N=#Q7yZ?T3)mzJ!0Dn{J-wL%_=1&8Y#VdwoeUr$c^(E18QB80MJ)$#jm%k1ghpQ}n}gkTKJVq9S2}l=M;Jica=cQm zi#ur6+#|Q^1;Q+WF+ERMh+=?K-gA*Fj2h>NK8S5JCb1?2>>_o>wOedvY<3OiXmbP5 zCw)#G(6PduxOs5C9fZDlkk=B0oJNyo_a#k2hK8#FQLWQd2>{665q`~-MX>^nilP?P z1~t8P@X(K?A!C<#&?T=yDE$c-5I`153@=t{fFvKNZFMa?-De3}qsJe9(!%9=ao1m= z61%^iZ-9>Vls^bikS53F!`JM`K$FO9$T2?Cak9~f(Dp;9qA%6xf>oeuJp|}h_RF_8 zAF!C=K_?axKvO=y4XbF0hba2RP4LWto~>E}#&k3<{OU<9*3dawQXXJyP^hm4S~4m9 zaD9s1n}MKn+@>zvSxjgpySP^i9USCgY>t|M<^$4x1Ds$R5DV{_2W`az=FS+nRu@UG zrRS_QHA{;G7?7=JQcL#rwi4~*H!?nk3692 zx!#WJ9^R2RzYK(Jg1o2sdrkWu1J|=3Jae#bansO@pSO?oFD--%n(`XsP`+Ri;3YomJxp0eg)E z65UGK z(%q_()t`+SclUawkCWup` zh4e~nzPVIf$*%Ie&~5sA@*P7e>JgxaE|#eUsf{kR6KbavO(;hS;W-f%%b@1rkJnnA z`cm}=D#wOAGX@?b@x;s+Nat$ij>z~Yt9Zr^C-lhl;QSEpVmYBtG$>mS1|zjDMJ<_t zie}C>{mxLH76axFYeUd&$L)YMj<~JEoO8`rE$Jv2(wiL8P5}GgJRBP&AxPzRMSLDQJ`hylc zSt+iFk{}7qx;j@A4LoU)x#dCuqo!+}Xd5CB!54@1MPO%gcHjzH_ZkDp;CVL}+8Zh( z;xdTUKyT-nw-;>Ev7euJ+0bEndWN?yQeXV~Ro_fD{x8sszUy8ma zTs(WE!j?cC@fBt3P&K(YJontW$5t40osQ1snKbF)IFYmyH;^OdRe~w>{~2hAxk!0j}W6#PfY~@agbTJ|HALlJkwsjyr9%djRYaFVg6Zb z#X=;m%7H1~xi>Xjaldi@ATw|yvMXJDSfU0m)pwYMS@*0?+)mucZTe98xnAhO@S}NH zJW}WCl>ZV}d+9>dY1gF)o4!7yP^yriKe{CGB0$e(s$%gPy;R_77VuKI(@gr{rPfNG z{&b&7Ho$~GILs3$Y9}Sl!tDwC?5h~Y;vPz>qzm!Z^d6uvKLsB5+jAF(^=m?(qX^{T z7L})WLb$>x85A`QSBTXQ+RHX5HOnPYDGf?DS_QdGm@861wLk7Fc4T)PZ|-ozgS60- zB&TG$lfcu0p84oYs7f&v^O`6CZ*Z^p&2W5e8zMAztaTp*ljcD6o(zl65GW-I{ZWV+iliR% zQMK1FFLC@MXQ!?Ue0O%q@%cO4ogLwT^??11fc8@y*Ct0La!u?-n);J*@En#mAOpid zsdqm{cJ)EfsiyMj;tB;)=VF!Y;x|fjE4uS{-u9g0)xaN8x+7ka{rN$}R|pRhAZ-8b zyrO47^jG|Sdsnz84R$KA?9RN=>P6F?XIVA|a2@4dXq zuG_X84w8O_cnlAX)YeF~^iq_d7=hxo2A!~c0o#rq*x}O5E3^`Z+~@;$f|N5`-pSoL z`2OS^URv?;@@g08vW+wa)YO>*Ne8GeBwHWJ=i(Lf^YgFYy?b{klY$0yL3@8>sJAwF zh={`aeAc8r@G5Q0rMh$gsKG_3HJ&f_Wk-yAV$|Hhb4rv%l-1P}!otq!j8M?g@x0>% zfH{!(RAtzH{NF0W6mDr7tiah%Pl=Z4cenhMH8g~$*1m`$%Hi8O;AtqCmRrIBm!PcH znB$*dwbFvd;nnuHiVDg=5VmfMxzG3bQ|L!xbwZo<>Ms3xNL?!clrR`9B~8Tb*+iIQ zG!m%A@j$BxR|t-!NT*5Edx0PnHkh4p8Zl2Lsoh^hI&4*dzpYq)#ZeMNP+3VRxj6wD zTRskw)QL?Aq-=M*=gC;f-#pyNNM%!J70J>CAexbzn|oO<|8XR#z^o|{4laGT#cB9> z?z)h}kZOkC+#M`|_~tO^salOUFk=H|f{&`{V)6g6)I5#Q7PEB)&I0%EcWjd`%)=-K zfi|l;?9!hTnUj-qZsU|4g0w{d!>LXs(@d$!S_J^;ujtcLfSi9MBMI&mVGE53(*}hsp;cT75T7$Zbs;=opo4R& z#w8P=9xY(t8a5$4wZB3348T1D!IqBD5`O@GS{tQKLqKD|EAV5`Wf44$gCJJu05yzy z`M3nM?OAz4or3_uNw&V5CC(Z3qCqMjTwF*QsTj4nFV}o0$@>~gokC} zK@|iq$UEI7^!*EMLcswn47UDgeXY~=40#A*y{tV@Ad)8u93ST3pWa6dV->V&BPYmJ z5_>aoz;nOpV;9o7f}q_hU4%dO6G zMlmrMAhK;!(of}B$ivG>M7S1=VvE4clCTvcKoOll@TKJTiJqP-IZhL*R}71X`=9>p znv1%5`s$Z25=cm|UcKt@ZUPLKjL>QP2o2~&a5=nT34S`~j*#2qxdGg=o zZA41IJjRG> zKWXpjcoXgd;Xza6Q0xlelvKd8QF3g1Gk_&FSw`rTatJ+p4_wQMOnvF}kR)$Rwh#np z1v=h!v~_fz3)7!|FcTnp6?t^9sc}cZE=Cs=Dd15Ov*6)fF`%l>aC`W7sNo)WTKLwFUCC_c?RgCjZ6C-CzRX<>eJ=?oK}`-LErm{{*| zv{Rw4!C#Jjj%P-7g1ZeRL3s-VWfyBGDpx`(c-(N0Ui(G#;JvNgTlpvyVpuhFT*YxY z@oV)s)$LE{<=EEs0UwhO>G#lUb#!R~L^3)+YsrCO8slYS`7~hr9UKtGci8Jq^}!2RBQ=m!e|6(B?M~L%o6`-T(XD@xGb(ac zFn8OAc<@$oeIQj6&y2)EeU$_-BD@Zu^uCFS;#X_a%&%u}az}eO+A-rPAnet^Z$-3B zaX52SJOG~&;I~lq+ZGvK=wMe@+5Y?ut#^I=VcNh74MQ$*tk~GtE3XrCjRj?8WkoB0 zb)0VSlV5~MZ+iKA!p{YKV)xfw9bmEle`d~y-tfOkcicIug@OnL++tFoNv^1*R0Sqq zGK>OYHK^_nhYRY3yi|Ii3V9)zrTMLIzy9+JKG`Cl0>P~c(RYAdFyp-p>(U26e<*z6 z3#F_{H38^qxDPk0AXM?kFR*)Sq2c<2a8-%zGS5|Y0OVBMweK8h_;qS+Hr3qU6figo z!Ph>_QTq4Gzy6Gyik@29S-5K3xiIx%++I_`u?C?0@5Z ztx$ylx}G%P*Mn5Tt;CTk;>N_qbUQ;ulS~i-5fJHm)5%km9_u8YHrAvuhFAArY_|(@ zebS|6y@Y25Mu3R!P(OMxzcyi5rQrh=Lhh5Fi8BTxwL?E#d)*f9Fo1zu5=e7!eW1G- zuoS&L;?_Yj5KhrOwL=>Rh^ICQTmzu;KS%x*t$yE}R0{r4q`nX}lY%ibE$H7x0LEPP z#*PP!*#FJ_|Gz)B@;v^L_vio5PvL-I7^j5o zLx_XkCd1TBo?*+Mk%;%+rNbYNJ2am|#6;>?TU(ItuS=fItl}`1Q(g~Bm*(=7#l)OG zvmpt!9Z^KB`1nx;2=3^1MIfg-RSrO8QX4R#>O6q{L{b#zDzh=#wv5H_hW+dOBerX4 zS?2zi@+n~Y_X(^e6U|C|vaQIQk>#L?d!tge_mnNtZZwcDUrrkFrsdcXkQ3;EMGZ|r zW_UV=hJqZnti@Q~`j5j14p%?&%)*i~CFQwJT|EuKgm1?Y%`mu8=S>Cll2kd`fuc}B zCaWd-TbwWvGB3SR;cv0(Z-Hs$gV~A#XF+oRMg4X)MLkt-A)pU71G5Na%<5EuzXvuu z-dfR2w!ejht>NcOdl#gag8af!;6mMh$lG=fzxcUuyz5~7eSoN74Q!!FKrBANb+RAX zu2oc2oXa#Tk;nZ??D|eCLgEY-k?NQ{uW>U8GFTtBW`o(~)K7E{b3j?~jyCWy*3WGH z`QBQelm8;m`TyGKQq5YZ}`7~V`W+Yp9Bth{-a$X9%bX(fec~1XYwZKgEYxi90N9*|S=}MzqOav93X9?p0W@ zmb%ocfKj7}!}HQIUD*{_kGN>tsv)+hKk&ylDlyzB{S_mj{shfkO;FJZmo zB5YNn=cG(2O&?80yo{**%{{iv2F7gESZtAOiE!7820P?k1-=by!LEem7>!#eU0wOc->h@z_Su@^O{J6S3c{e2KGB zI1$X#d;Y>oXL`3?GK_!!z>7Cz|DRXcrANOEOf#n^LXNywv+Z@o5pW^}6K(Gw%#PGL zZ2YwMt&U9U!qg7=l;3x(pVDyK&Uf99)G!}??5q2^FWi@ZY&@T6ad-V`vt!R|j!yv< zMf%;rTsJlYS$Sy!Z>@w$jZC5&`)89Eahabdbe{}uD<$E|lwS?}@!k90Q=)wFXnd2w z&@-negJP|7 z^H|bSu8LUcy)d{OX{7g}ti_8F?%UlvyXWlutDWvnG>ISX=JC+uQx1rpkYcCEMRa6J z?pw+_F2s}zN@Cl8U5e{<>}E4os%_P%ROjk_Wy#xY_OZWbU){egBX)yXZT72JHqk6G zBiulrPtoJWoLSFeo?gydG*4Xqpz-pw=Z!}nt$fXB9*=~u9jv9#jQh!o)c3razVxIJUp)GiGNQRQOTEOE#UC5*5LsF7_edb?x^Iex6PZ_-W zsKKwk$(&CdpGI?AD?ZRu8v9gCi=nGK7~svewkfk*9p*~ZMKsr*IbY@aO> zz9q8cKH0TY*{Vw$iLwe`4ex&)7hOKA(6MGQvTR`&?_2RkR+_nt$$lzbl#4kT8Xjb{ z#*!$1%phQZ;~^=YJQLgfK6>$#Z}6*y{PT~$PGgCYzQt>)d4u_5g4MZK%*v|S*>Qkr1jjj8mu3K!ZA~u zeZ3M`dE;-${^g~DwxgIM3-*e8d~>Zk&G;-IDZA_yG~+e8$K4puam@33$o{m6gV!et z@q*W@hQ&%(Z*LeQv57ENY4TZWL&40pD%*Z_%mG*f-xKR6<9(k*z-iI18{p0+t)0cYAKiNMB|Dru*f&SJJ0ujxrnRR$q~HtNFNrOc2e(3P*pI1I~EX3G{&()@)> z7AV-;i*9p0o0QmHm?yrvs!F`csBg>L zJk+ob^XVuA+mB%gRlCi(3?=ucO+Tj)tm@@aTZIXH`Bww+e;Z(;@ipN4#8iASKpx4Fu+Ssp}&0oEP?wdWTok`Kx#y@3ILYydUfxovLJxPsj303 zVWi_A&9q)b9QH{-L{z~;&>C1WFSvj87bmUwJ;3eR2zYk6NLeS0#ddU>frR25`IkOp z`J?KZIZzKAI(k$C+8$rBOk7;rvp)`6flA3%Bp(T(@n7Dp0ze}2TypPuKr^6g9CLN^ zPwXP_r^BptogfG?LR{oiPCxw1Ow$``40-XNa8bZb-ouBLpl33v%&(VW0=dxrr=SY- z7N*jG^F2NH42&&fDu)=$!8yo10ovzK_Vhc*fa7)i4M^tq)9&&Ska`*Ht1m)_((T0N zH3r9I_dY$OZRT?7VN;b@UyB=?@7sN9Uz_cYb}ChmY`S;NRk$t&55Bf@I;U7CM-tC@ zmwY`|&$=qSiJ5;ZFa2~uXe^RC-w9i*4b8K9*OH(ON$%0c&`q?4emWvR8GK4CShtC@ zZ%Rxlc&FGdFVL24sJ?!jw`OeJ;oY>)WaasFl4a{F7dTZ8^v~QaKNYu6!3<~crl2Nk zrzXDjgK1)M_to7;$duytBP`QsxjW_lIhw&?)V-T~YqyXo7B13;wCXX>Z&OuXtTe&I z1L9%Y#xu=ty8fH-7oja3|gpZbSm}0V?yj*>n|6jVq5cV%#tf15|ZLFSX4&8_C zzNQ*fdG2@V_rbd%3G?L;kbK}jY{}ZcI;>BRVw-<2QI+=upymTtkjR6^7JNNPhG;sqF)Z3lCz>8YD#K+@47)jdku;AFpFyuhmD#c*~ z&npQG#VK$?+VdPE$yg90M4CX|s|}?v(!zo>fU1Lo!xJ+p%xz{H3HBHXhF{dRs{zC8 zFi;Z1femImSNtC92@*DKq{(Vx6+mlG+_6F%2D1}DTA4n`J;)@<>>D$)mfSUS5%;X4n1a8hq6yk?aO->(() zr*@S_aPk~~eE;g5dj#{Y-O3I=X*#0ofk-572KuK)fUKdxCgJ^4YkS*}&Gbb89&!K= zk{y8xI5*yZ$yuM)*B&r*~i8v)an*i&{1*M@i!ZfOdZfkFz zT6zOr)Qb=pa^ro51*q8|aWOVv$171!Fax!j%^&aU{ zpcRN3G=J-vPDLJKNV@uwOh()m_HU_cF@uD-`3Jf@vp}bN+iFyNJ&S{b z!)6h_uk7<9hU9t(rbd9jOtyIvxN&J98=AO)c{0dapTv^VWa}N*aCwjQEBpR|U7t=# z!Y$e2fiIa3%QlyF55wz^Kff$?j$DU8jw0B&xcn{%@~OZN_hvq|oHq*s>|mvbth&kx zQsLxU7l0;ZdE9;lX|fftD(jpU#C(=POeNFWxV;!!BSo!^jz`I?E^cp8AY7JI37_7m<|IuMQIkrHhHc^3}FB%JBgyZ~JG* zwE-5@j8hzGutRW}C7RBUdstlTyrN1Sv(s^Bu+Fymnq~vP{moZJHwcH@?GTH_GUB+{@@)9dHikIXnYGb{vD66EPH}A}(FYHqsW=j`fk; ziSq>`3S&=lip63HeZ+gr!_|#7Fm8zP7NC?84K`A)N#uA;iu3S>ZO8&u@w1cHA$(-m z7)z#4$zIHJ=${fZW>CSRpFjplTMUh9HN6CiYwxrKH>H{85GK~A#J-7-uw@*aM=mYx zwugBe@x^ACtHW(6)OmLEK?W^C)ZF=TWXG0wkrrIi9$d3dZ6ns6ChIUn8?V?6tvxZ` z9;{Z6X?I2k80@hC@dyPJZ_sBM!{2sb%-1IsLWsiT$t&@BTK9n394r-{VCEi)Ecsb1 zXfhRPo=73yj|Ki_9$1HryiU!S9MKK!nDYm;FS*ID%x|$)vQv6`B!v%JeGWj=?TmHE z2A;^kH~i}=xYCWm1N#^eBLWSzd}8#PfOArw!ztGqqz3nm)QFbl!n;@@>V9u?Vd-PP9~n5&b|=yktB;o;q67u>Dz_zo6;c9KL%YS!?`HMu+~%+ADr zpY!y#Hp3CH-;gZZ3mJ`5{U3#ZT+1vR+omdI0nueZfq_Q~qY?K|g3M&lT)@z}9~3pw zJeU?Uob?EppM|XjI8bN|l$*d*C%54$Xs&s8W-e!SdQeRVatZU6Z|8?o(?K_TJ#7kt zlp%mRSqL*jcX|Ej1H-N74(T-kwgk4@)5zn%mKd(;3krw>%K!-9gUKt}B!n&OtdVTgPikhKeN>9F&im?!3CMDQ7q z&mawOB4x-yziQVjuhs>OE<#8M0VzL#iR^FLF*iZ1DH{Tq;I?zCK2fK8{xkq)HNg4T zSfrT;I&gdZo`~s_e!+@gf;+0Je2d(^iNLUze_h{?d;iiM|C^ihj}qUlfrzaQxB7l> z2F!C%N2%)lH9+%vio~a2v@VYWK>o{$sej*nfP11oSCpa_HHZO{V7E3ElL5tRGri0L8z4KU=tF(hRu% zPcCv+boz{>Pr^bX*P1@iL}a@SY8sJTlWu_ciEq^CjYZ&bNYcnOzj->*22Kisi~%=knSNZ1Li>3G^* z;u~}A^0^s!8lQkZez}qgWPu!KxXDSEuMQ+4&IVxW)^P7^7l1Fthxq4ntZ-o?@#b=9 zEfOm_kSlW^TRPSOa>x-T;LSF3ll@3@{s~cU#VZ;k}t0K**t2McDQ z3y?Ftfd>HWdT;_^S>FeFSG7M=*vB1)z(?eQPvehIualryy(owBp`<4M|m3orF zsiE$Yx4^1uyX{lZ<$3YdJxKdBEz!J)t0u6``kpFtKSh+3?i*7Y)JdRrt+?{Q{!U)~ z3TS|Qifw?zD_>32(^eIFGfEHiXHDEQl5`tT&snUfP()q)^-;Onl{`p>iVRMmotZ>) zi;RyK0Wx|BV8c;a`asT~pB)!nm>u^@PtY?l?#~6HIQ7(+DzP@+9O=RKFq#H~2!w`Q zVi@D(EIov=%ajVdbukH?7BQE;1QP**k$6qG;qh8+tx$HLXbU4!^dIdxF5HRK5&JzA%WC7tJr1Y^Kv z=BxUuLUEPE-p1hKxv4?B1*{T6sc3ujUW>NqiqhAPr|M;LJ298G?qn8HE6h!05^d?xJlJM zgJ2PE+0~e!95W+61<&Z&BJG93I-wIMT7-Qe^-Y7UQ^LQJ8(GV4dSl)xvd7>~q>+%Zk^7cdht)%C78cGVnm|F9& zml9zo3@|~jK0=l3DtHRig8W8cqUZ!B7393sVaqEzM{Kiiskb8FY+ql80?X?4?JFHI z{NRiLWFd=u7xP?BWpf?gO^st&XtYuW{l4-27MOdOqMH(uQaEWB97hpMO3f_oIPO3V z7LVh!BV0^P0JL&k%sGznDtm8%W zmz(VB3f^x!RGyE#xW`Rt)@aQzb&POq36p#*3V0qVojPxvcS%s1SvWHTqsqRYMzy5; zS>h$q^G!~`8no>Q*SyvgaF%$}zK1{D^iS)il#5tB^_VM;mtW96+uvMrMq6N@*0rPO zoWl0FNn%N+yKz+4C<|C5Vl;~VwIclNgVN;A<4V*wjvsEXPgagFOFsWx1Tr%To!?Fz zn!0yaw&VFQ*q6cZ#4A|mxD9mN0J5xESlr{Kf5bVzM<|AIGO5>#h`V8ZExf~yTERL_%rMUjU6tVPRq^@9c(&T_1viq zq%yXvx0YP)5gdB}bK5SVl&T#6nL(KN23n z3`5^y8~w4D8g(AQXsBW$m^@|l2Wk>?PPlY;nvA27m_RJ4QP*h7>9g5Yu_i%WnHW!Z zbM7vds+l=njFjWG?xejg#bV`)MUP;EcdzjZe5h7l3QWR=@tLu^Lmiza3MXPT=}nd2 z8IRgQuyJDt@37;IVxr4H%`uQ;+2cth(80}*ba^PbMMtz`Iz;Mig724<24bM@ zo7D<%^~0by2t1E3!W6iu;N+%~(eD)ur9K=^y}@EogE$}%cWJPmDw)fvmTJecT*uR$ zOR2_lM(ewS)M_qPGcr1QSWJW~b@r4*Lg3TPcx7ze7_55ju}$@HYi+S2>8E^#Q;0V* z5@wg7=;Z60NNyS!l^C!|hD4oDrg_O^>GNk5g#<7wsqe)#3f!MBMa_&18)zB2A|0$C zNRZ}h60}vx$+XW}8pN6Q-0?8!F^!f)l^s(#Udu=0IA8SwDERf3DzNXK5ZzV7HA^UO zY=H*N_k>c}Y^;>Pp}~2U-|0rW-m#AJD#UAX*DCi+LKYgcVV6sXmdT^tV)DR#5&-K9 z@o;fSuHE(O!E&T$+KYlYOZ0BngCq#ZQtDdC1S&>RfipdbvO##0x;u$dNiSLiNm&ft zYQ7k|Hhq|4`we@C0UCRcM;<^ovh9e|XABvRR(|VtFGJ$fjN(bvrZ1*MQ3uR%7<0NK z8~Pl4Oaz8rK{&LokCoz{wbx3B1V;y>rSavZ^NivtO&wfvxEW^#eIcR7gEQ8Y zW8lHvb4aiK9Go&lX^Sa(D!>Fk+2Vp_(=m_K*C>H<-PXSw*rnVfj+hzX+CD2a#@1=k zmng?Hd8lA!MVJAVh-cG1^;se_jPjiUenuyo{>XdrR>RlEsk5+gdL3*C%R`EGi}3GU zXKj>3-tkHgWJ!WZRjEKhYlUk*9Y)}8B*5?br=h3_jDj%K+%fg)@@NH_a9uA*fnx9_67CdE8~dmLzz1_!lk<5NRGgJ&awmcrR#3n32i?ke9ddlR=eZYG}oCXQ&12S^5 z>Jo-Kw1_;3<^vA5WhJy5%+I}sG`H(AN{+hv9x5s;OB;T%V^A#$&6x7kXBuwiKTwY(zv98)K5w1-UryDR!f&A0KXu>v$3C%JiHmaD(}C}Jv)fmC?J7!|iW%}2H~$MXy29oF literal 32626 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 diff --git a/report/query_ore_range_highly_selective_gt_10_chart.png b/report/query_ore_range_highly_selective_gt_10_chart.png index 50ddfa304660f453b7782ee5cb48f79a2489f937..4db4dd056df2adeff98f38d4a4f9ab6cc75beb53 100644 GIT binary patch literal 47109 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 HJYp$OOQn!ms^49I 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 C0GX-) literal 33889 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%0AJN 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 z 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 diff --git a/report/query_ore_range_lt_hybrid_ordered_10_chart.png b/report/query_ore_range_lt_hybrid_ordered_10_chart.png index 5bcda2ece6a89628be77132f443d0f6f469f9f26..897c6b67c60ba1e6cd1d2bc8b750de06ec9bc1a9 100644 GIT binary patch literal 34775 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 SZmAx9_|;1)3IsWm`~MA!@^oha literal 33448 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 z zRO%+j;;~RK-l5Gv9d=DI0(@iG6tp~>5-w~{g-d_H8TLgqzy`@qHs%%sQd@E8kpkQr zO{8%FHs=MXZI!_|nq%9hjpl~76?wefor@?jIq)EohcXMf*j&bF#&GCyzBmamG7$=9 zLBMV<)3$>*ad+rOVXBeylTJ93wPDSo1R7g#DFD-b0)`<kB#&Gq zLl!UMy|f{hdjb(pHQc90j`z74b_Kh+RkJ&`PFdHiE! zf0+Z1o*4`cvpB@2O@O@}Y23rdT?d;#pYnuB5zdtFH7ckig~57S$V~Qduc$@MGnlkl z=CuS+uR(JeT+fqS?OpI8?%mZt9OGDVAd`Xe0}%fU(rWH~#xBp%W3jrY=!oz_L^yRsF@-Hic7uyyw^*dS}rIRzOw&s_)khZ7963ST;Vi((toN{3Yy zVdcZ7Z1r*y*omkt!{Wpv=a4lJM()KG!SzLxSHn{s(_kwEkF6G)ujQUl{hb3jk}O!U zvrR%=f`GJ#qTpP>^m})t&Bm_@mOVEPE;|VdvPxR;#^j6zY0xPRSU#7W#u*Sm)Z*Dp zdUJiId8BLoyJ;V_5UU1jpA&Id@iCG05=m28G9FCGcSoBBk6SE^t|WS7z`x7X zkLNmc(V(&k>7pCP<@4)Uk*%Gy~vIPFKfK)z-nODD`vf~_!;FfRqF>6ey5h&S1NAcNDXlsV4R zfoFu616{oppAli+<_;l_Ai?bIUN-8Md4#-dN-- z<2@2Ja{>#o#sbC#;UgWA85NDx-D*lMp2Nt|VS|s?zmA4_!jo&ko4GdPdU6hS09^9I zPug?i)sidPx?2ZRK-S-8+9~zzVy~oq%=y%gsSA9xVL~br6Hk4BiI%~scqg1ja{GXb z0;xX6we@lmvB-ENkx>9f0ddzCP)mka=2~M9R)z`UXr0uodBfc6yz(>erl;3pe5({t zN?X8VjdG__wsz!8$l;6mnY8AK#s*5sMcz_{&q+G@E@|NsZLJN8`9#Y4b>Gk$s0r!K zDSht8CDp6xi5tifDQufVH!qJw`RT$Kl_aR&w+hI-Mum1xE$~!v@$An>P2gM>71vVA zRs?Z z#%ElRvsqy(iIAQn*n}zuC?!NXz|qPOpSw=a=RGy@E%C2M`m$F32@FrLnoJm7i1M;= z4VHLDHT|VgnepWP^w-(=N%H!M>V=!LA);>GS|mz`WpTfv3efTO&? zO&a?Ey``Fe%GeWHPU9jBV(x{6m5HwdB; zpn0JI-F?zvBwoGNHJ}3>q0s0%$+8c-NOhngyCwE*+2vjtxYCk{$Rq;@Lh;{x&itu{ zEQOGXE0wG76)PflKb5X=A*W{+@KPrWo`7zzZoS)w$Esx|l3iY+-+M>=ezkWRDTzmE z3{Wb5k3MPZfGJ&T&k|VhZFvS+g zvm`3+*$>O?qv<@5ls7w3J+CVkGiv_eAhi#5D(YOS_fi5nC=9%I?}E zJ^MQ;M1PdhkQ2`bjcLD20c-~zk5wxNWi@=ngeF=hm6OTHE=>kaC*{3bC27xvK$!{u zdh@9{lnZ`OhUNm3e#&Khz#)6%qtZzIo=q$CRr-Upj;;9`*4~NPV6jJO--y4 z6}@xpni*I&;KNhBDLmox1v%D(5jSFmD<`2=oVjGOE(PW^R86%sS@~fD!~7fzXfWDd zHnbER`Dz>@vaz7%E-M5(Si9PlX1`I1k&xV5BZd?Xu!Nj_cC=s+4kUj^F#k6-?WbnI zVWJPmQ3h<5mo(+(5<`IXvxz}glLE*Nc?CkPD-eOw3SGIq9oS)B$zS`pKF}N{aeJpj z?XM4`o;@s{4KQYX z0C_^<9tjjwNkN-ND4{}?GeNF{L+lmW^C7c88_LV;EF5y3?H~cq?A!z#2heKmDGd#SPGiUedhCWC}&C z|F-rqP+@8$6{G=}vXccJ{h}6jx8Te>%7ijNG0ch3{8RYFOgAD&l^!Yz7;^EX_`0U93ebFvV^cuW9jLJEUvzdxl@BB9b<3Yaw diff --git a/report/query_ore_range_selective_gt_100_chart.png b/report/query_ore_range_selective_gt_100_chart.png index 3896bd8b0ad9c9bfcacc255249e04660db657c29..8f09b46352d23b94266557b8d60e8958e4889929 100644 GIT binary patch literal 53221 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 literal 51542 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 diff --git a/results/query/combo_metadata_10000.json b/results/query/combo_metadata_10000.json index 6cd9eda..7ebff3b 100644 --- a/results/query/combo_metadata_10000.json +++ b/results/query/combo_metadata_10000.json @@ -29,7 +29,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1033,461,1554,1393,91}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1789,10,1555,1603}'::smallint[])", "Index Name": "combo_encrypted_10000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -40,7 +40,7 @@ "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1033,461,1554,1393,91}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1789,10,1555,1603}'::smallint[])", "Relation Name": "combo_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.73 @@ -65,12 +65,12 @@ "parameters": [ { "bf": [ - 453, - 1033, - 461, - 1554, - 1393, - 91 + 1164, + 36, + 1789, + 10, + 1555, + 1603 ], "i": { "c": "name", @@ -80,7 +80,7 @@ } ], "query": "SELECT id FROM combo_encrypted_10000 WHERE name LIKE $1 ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10", - "rows_returned": 9 + "rows_returned": 0 }, { "explain": [ @@ -115,7 +115,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,453,91,1033,1554,461}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,36,1555,10,1164,1603}'::smallint[])", "Index Name": "combo_encrypted_10000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -126,7 +126,7 @@ "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,453,91,1033,1554,461}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,36,1555,10,1164,1603}'::smallint[])", "Relation Name": "combo_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.49 @@ -152,12 +152,12 @@ "parameters": [ { "bf": [ - 1393, - 453, - 91, - 1033, - 1554, - 461 + 1789, + 36, + 1555, + 10, + 1164, + 1603 ], "i": { "c": "name", @@ -167,7 +167,7 @@ } ], "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_10000 WHERE name LIKE $1 GROUP BY 1", - "rows_returned": 9 + "rows_returned": 0 }, { "explain": [ @@ -218,7 +218,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1033,1393,453,1554,91}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1603,10,36,1789,1164}'::smallint[])", "Index Name": "combo_encrypted_10000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -229,7 +229,7 @@ "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1033,1393,453,1554,91}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1603,10,36,1789,1164}'::smallint[])", "Relation Name": "combo_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.49 @@ -266,12 +266,12 @@ "parameters": [ { "bf": [ - 461, - 1033, - 1393, - 453, - 1554, - 91 + 1555, + 1603, + 10, + 36, + 1789, + 1164 ], "i": { "c": "name", @@ -281,7 +281,7 @@ } ], "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_10000 WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", - "rows_returned": 9 + "rows_returned": 0 } ], "target_rows": "10000" diff --git a/results/query/combo_metadata_100000.json b/results/query/combo_metadata_100000.json index 18d4377..4da5bab 100644 --- a/results/query/combo_metadata_100000.json +++ b/results/query/combo_metadata_100000.json @@ -29,7 +29,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,1033,1554,461,453,91}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1164,36,1603,10,1789}'::smallint[])", "Index Name": "combo_encrypted_100000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -40,7 +40,7 @@ "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1393,1033,1554,461,453,91}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1164,36,1603,10,1789}'::smallint[])", "Relation Name": "combo_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -65,12 +65,12 @@ "parameters": [ { "bf": [ - 1393, - 1033, - 1554, - 461, - 453, - 91 + 1555, + 1164, + 36, + 1603, + 10, + 1789 ], "i": { "c": "name", @@ -80,7 +80,7 @@ } ], "query": "SELECT id FROM combo_encrypted_100000 WHERE name LIKE $1 ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 }, { "explain": [ @@ -115,7 +115,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,10,1603,36,1164,1555}'::smallint[])", "Index Name": "combo_encrypted_100000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -126,7 +126,7 @@ "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,10,1603,36,1164,1555}'::smallint[])", "Relation Name": "combo_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.61 @@ -152,12 +152,12 @@ "parameters": [ { "bf": [ - 461, - 1554, - 1033, - 1393, - 453, - 91 + 1789, + 10, + 1603, + 36, + 1164, + 1555 ], "i": { "c": "name", @@ -167,7 +167,7 @@ } ], "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_100000 WHERE name LIKE $1 GROUP BY 1", - "rows_returned": 47 + "rows_returned": 0 }, { "explain": [ @@ -218,7 +218,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,461,1033,1393,1554,453}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1555,1164,10}'::smallint[])", "Index Name": "combo_encrypted_100000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -229,7 +229,7 @@ "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,461,1033,1393,1554,453}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1555,1164,10}'::smallint[])", "Relation Name": "combo_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.61 @@ -266,12 +266,12 @@ "parameters": [ { "bf": [ - 91, - 461, - 1033, - 1393, - 1554, - 453 + 36, + 1789, + 1603, + 1555, + 1164, + 10 ], "i": { "c": "name", @@ -281,7 +281,7 @@ } ], "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_100000 WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 } ], "target_rows": "100000" diff --git a/results/query/combo_metadata_1000000.json b/results/query/combo_metadata_1000000.json index 62fee2f..8925b66 100644 --- a/results/query/combo_metadata_1000000.json +++ b/results/query/combo_metadata_1000000.json @@ -29,7 +29,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,453,1033,1393,1554,461}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{10,36,1555,1164,1603,1789}'::smallint[])", "Index Name": "combo_encrypted_1000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -40,7 +40,7 @@ "Total Cost": 311.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{91,453,1033,1393,1554,461}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{10,36,1555,1164,1603,1789}'::smallint[])", "Relation Name": "combo_encrypted_1000000", "Startup Cost": 311.97, "Total Cost": 316.48 @@ -65,12 +65,12 @@ "parameters": [ { "bf": [ - 91, - 453, - 1033, - 1393, - 1554, - 461 + 10, + 36, + 1555, + 1164, + 1603, + 1789 ], "i": { "c": "name", @@ -80,7 +80,7 @@ } ], "query": "SELECT id FROM combo_encrypted_1000000 WHERE name LIKE $1 ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 }, { "explain": [ @@ -115,7 +115,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1554,1033,91,461,1393}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,1555,1603,1164,36,10}'::smallint[])", "Index Name": "combo_encrypted_1000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -126,7 +126,7 @@ "Total Cost": 311.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1554,1033,91,461,1393}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,1555,1603,1164,36,10}'::smallint[])", "Relation Name": "combo_encrypted_1000000", "Startup Cost": 311.97, "Total Cost": 316.24 @@ -152,12 +152,12 @@ "parameters": [ { "bf": [ - 453, - 1554, - 1033, - 91, - 461, - 1393 + 1789, + 1555, + 1603, + 1164, + 36, + 10 ], "i": { "c": "name", @@ -167,7 +167,7 @@ } ], "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_1000000 WHERE name LIKE $1 GROUP BY 1", - "rows_returned": 227 + "rows_returned": 0 }, { "explain": [ @@ -218,7 +218,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1554,461,1033,91,1393,453}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1555,10,1603,1789}'::smallint[])", "Index Name": "combo_encrypted_1000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -229,7 +229,7 @@ "Total Cost": 311.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1554,461,1033,91,1393,453}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1555,10,1603,1789}'::smallint[])", "Relation Name": "combo_encrypted_1000000", "Startup Cost": 311.97, "Total Cost": 316.24 @@ -266,12 +266,12 @@ "parameters": [ { "bf": [ - 1554, - 461, - 1033, - 91, - 1393, - 453 + 1164, + 36, + 1555, + 10, + 1603, + 1789 ], "i": { "c": "name", @@ -281,7 +281,7 @@ } ], "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_1000000 WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 } ], "target_rows": "1000000" diff --git a/results/query/combo_metadata_10000000.json b/results/query/combo_metadata_10000000.json index f1297d3..b7ea404 100644 --- a/results/query/combo_metadata_10000000.json +++ b/results/query/combo_metadata_10000000.json @@ -29,7 +29,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1033,91,1554,453,461,1393}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,1555,36,10,1603}'::smallint[])", "Index Name": "combo_encrypted_10000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -37,24 +37,24 @@ "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 2300.22 + "Total Cost": 2296.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1033,91,1554,453,461,1393}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,1555,36,10,1603}'::smallint[])", "Relation Name": "combo_encrypted_10000000", - "Startup Cost": 2300.22, - "Total Cost": 2304.73 + "Startup Cost": 2296.1, + "Total Cost": 2300.61 } ], "Sort Key": [ "(eql_v2.ore_block_u64_8_256(age))" ], - "Startup Cost": 2304.74, - "Total Cost": 2304.75 + "Startup Cost": 2300.62, + "Total Cost": 2300.62 } ], - "Startup Cost": 2304.74, - "Total Cost": 2304.75 + "Startup Cost": 2300.62, + "Total Cost": 2300.62 } } ], @@ -65,12 +65,12 @@ "parameters": [ { "bf": [ - 1033, - 91, - 1554, - 453, - 461, - 1393 + 1164, + 1789, + 1555, + 36, + 10, + 1603 ], "i": { "c": "name", @@ -115,7 +115,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1603,10,36,1555,1789}'::smallint[])", "Index Name": "combo_encrypted_10000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -123,25 +123,25 @@ "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 2300.22 + "Total Cost": 2296.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{461,1554,1033,1393,453,91}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1603,10,36,1555,1789}'::smallint[])", "Relation Name": "combo_encrypted_10000000", - "Startup Cost": 2300.22, - "Total Cost": 2304.49 + "Startup Cost": 2296.1, + "Total Cost": 2300.36 } ], "Sort Key": [ "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" ], - "Startup Cost": 2304.5, - "Total Cost": 2304.5 + "Startup Cost": 2300.37, + "Total Cost": 2300.38 } ], - "Startup Cost": 2304.5, + "Startup Cost": 2300.37, "Strategy": "Sorted", - "Total Cost": 2304.52 + "Total Cost": 2300.39 } } ], @@ -152,12 +152,12 @@ "parameters": [ { "bf": [ - 461, - 1554, - 1033, - 1393, - 453, - 91 + 1164, + 1603, + 10, + 36, + 1555, + 1789 ], "i": { "c": "name", @@ -218,7 +218,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1393,1033,461,91,1554}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,10,1789,1555,1603,36}'::smallint[])", "Index Name": "combo_encrypted_10000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -226,36 +226,36 @@ "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 2300.22 + "Total Cost": 2296.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{453,1393,1033,461,91,1554}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,10,1789,1555,1603,36}'::smallint[])", "Relation Name": "combo_encrypted_10000000", - "Startup Cost": 2300.22, - "Total Cost": 2304.49 + "Startup Cost": 2296.1, + "Total Cost": 2300.36 } ], "Sort Key": [ "((((category).data ->> 'hm'::text))::eql_v2.hmac_256)" ], - "Startup Cost": 2304.5, - "Total Cost": 2304.5 + "Startup Cost": 2300.37, + "Total Cost": 2300.38 } ], - "Startup Cost": 2304.5, + "Startup Cost": 2300.37, "Strategy": "Sorted", - "Total Cost": 2304.52 + "Total Cost": 2300.39 } ], "Sort Key": [ "(count(*)) DESC" ], - "Startup Cost": 2304.53, - "Total Cost": 2304.53 + "Startup Cost": 2300.4, + "Total Cost": 2300.41 } ], - "Startup Cost": 2304.53, - "Total Cost": 2304.53 + "Startup Cost": 2300.4, + "Total Cost": 2300.41 } } ], @@ -266,12 +266,12 @@ "parameters": [ { "bf": [ - 453, - 1393, - 1033, - 461, - 91, - 1554 + 1164, + 10, + 1789, + 1555, + 1603, + 36 ], "i": { "c": "name", diff --git a/results/query/combo_rows_10000.json b/results/query/combo_rows_10000.json index 65f67a5..90774d1 100644 --- a/results/query/combo_rows_10000.json +++ b/results/query/combo_rows_10000.json @@ -1,4 +1,4 @@ -{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_10000","iteration_count":[88,176,264,352,440,528,616,704,792,880],"measured_values":[92550792.0,179572000.0,269682792.0,357177333.0,446365750.0,542954583.0,629453459.0,734103292.0,837608417.0,930884666.0],"unit":"ns","throughput":[],"typical":{"estimate":1042070.0032467532,"lower_bound":1023562.0478603604,"upper_bound":1051854.247583045,"unit":"ns"},"mean":{"estimate":1033104.4005149711,"lower_bound":1023130.7170815294,"upper_bound":1043796.0121732954,"unit":"ns"},"median":{"estimate":1025081.5523538961,"lower_bound":1018117.0298295454,"upper_bound":1051713.5454545454,"unit":"ns"},"median_abs_dev":{"estimate":15557.780457032775,"lower_bound":1144.9943898995061,"upper_bound":27431.963960428428,"unit":"ns"},"slope":{"estimate":1042070.0032467532,"lower_bound":1023562.0478603604,"upper_bound":1051854.247583045,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_10000","iteration_count":[149,298,447,596,745,894,1043,1192,1341,1490],"measured_values":[88101292.0,181406125.0,334345542.0,385312000.0,439771500.0,517845959.0,614660959.0,730173708.0,825736708.0,895946167.0],"unit":"ns","throughput":[],"typical":{"estimate":607273.4217902903,"lower_bound":595979.8902011118,"upper_bound":622665.2385114036,"unit":"ns"},"mean":{"estimate":618299.5906530308,"lower_bound":595538.7259231383,"upper_bound":650800.7258282732,"unit":"ns"},"median":{"estimate":605025.7691275168,"lower_bound":590297.3154362416,"upper_bound":629529.2399328859,"unit":"ns"},"median_abs_dev":{"estimate":21105.09520490704,"lower_bound":2179.9948163306954,"upper_bound":46443.955631428216,"unit":"ns"},"slope":{"estimate":607273.4217902903,"lower_bound":595979.8902011118,"upper_bound":622665.2385114036,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_10000","iteration_count":[149,298,447,596,745,894,1043,1192,1341,1490],"measured_values":[90665584.0,178459375.0,262269333.0,359088500.0,401004500.0,499208833.0,675186750.0,747368208.0,826868833.0,920068000.0],"unit":"ns","throughput":[],"typical":{"estimate":610455.4038525233,"lower_bound":584710.5116398149,"upper_bound":625653.6790577241,"unit":"ns"},"mean":{"estimate":600167.966741238,"lower_bound":580287.6336316183,"upper_bound":618203.528265287,"unit":"ns"},"median":{"estimate":605495.667785235,"lower_bound":578628.052572707,"upper_bound":621796.4455630127,"unit":"ns"},"median_abs_dev":{"estimate":22804.621445472654,"lower_bound":6672.774517776181,"upper_bound":52063.557795150184,"unit":"ns"},"slope":{"estimate":610455.4038525233,"lower_bound":584710.5116398149,"upper_bound":625653.6790577241,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_10000","iteration_count":[160,320,480,640,800,960,1120,1280,1440,1600],"measured_values":[146417959.0,206098125.0,270088834.0,381511125.0,439131416.0,527801167.0,668827375.0,767082542.0,791853167.0,878831750.0],"unit":"ns","throughput":[],"typical":{"estimate":568033.0723538961,"lower_bound":553055.7739319025,"upper_bound":590997.9708040277,"unit":"ns"},"mean":{"estimate":611229.0651746031,"lower_bound":563545.1071481523,"upper_bound":684635.1901190476,"unit":"ns"},"median":{"estimate":579398.1018229167,"lower_bound":549583.9381944444,"upper_bound":620611.9698660714,"unit":"ns"},"median_abs_dev":{"estimate":43814.749746768044,"lower_bound":543.6243660779318,"upper_bound":72193.58153221395,"unit":"ns"},"slope":{"estimate":568033.0723538961,"lower_bound":553055.7739319025,"upper_bound":590997.9708040277,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_10000","iteration_count":[135,270,405,540,675,810,945,1080,1215,1350],"measured_values":[94778958.0,209857250.0,275710209.0,347717500.0,484739958.0,547366292.0,613569416.0,692999167.0,752440208.0,811897333.0],"unit":"ns","throughput":[],"typical":{"estimate":638197.3271188071,"lower_bound":618936.808557261,"upper_bound":672346.6746328914,"unit":"ns"},"mean":{"estimate":670954.0284282775,"lower_bound":642090.0214566726,"upper_bound":703153.995667982,"unit":"ns"},"median":{"estimate":662520.3298059965,"lower_bound":631606.8242798354,"upper_bound":702066.3555555556,"unit":"ns"},"median_abs_dev":{"estimate":44774.86034036511,"lower_bound":7316.120000668477,"upper_bound":86634.96017250855,"unit":"ns"},"slope":{"estimate":638197.3271188071,"lower_bound":618936.808557261,"upper_bound":672346.6746328914,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_10000","iteration_count":[146,292,438,584,730,876,1022,1168,1314,1460],"measured_values":[90269708.0,165228166.0,246806042.0,327458125.0,446367208.0,496945625.0,619194375.0,732895042.0,832469292.0,904509084.0],"unit":"ns","throughput":[],"typical":{"estimate":612334.4935954456,"lower_bound":590503.0214177407,"upper_bound":623587.3718320127,"unit":"ns"},"mean":{"estimate":597349.6104696672,"lower_bound":579862.6177382176,"upper_bound":614282.9098091975,"unit":"ns"},"median":{"estimate":608663.6331702544,"lower_bound":565386.8202054794,"upper_bound":622882.1515410959,"unit":"ns"},"median_abs_dev":{"estimate":32387.129172582,"lower_bound":3507.4896596474346,"upper_bound":41423.75237917034,"unit":"ns"},"slope":{"estimate":612334.4935954456,"lower_bound":590503.0214177407,"upper_bound":623587.3718320127,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"COMBO","benchmarks":["COMBO/combo/bloom_ore_order_limit/10000","COMBO/combo/filtered_group_by/10000","COMBO/combo/top_n_filtered_group_by/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO"} diff --git a/results/query/combo_rows_100000.json b/results/query/combo_rows_100000.json index 1e852c0..509315f 100644 --- a/results/query/combo_rows_100000.json +++ b/results/query/combo_rows_100000.json @@ -1,4 +1,4 @@ -{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_100000","iteration_count":[27,54,81,108,135,162,189,216,243,270],"measured_values":[92001500.0,182097625.0,268584041.0,372380250.0,461805792.0,584717416.0,634530042.0,748404125.0,839657334.0,925775500.0],"unit":"ns","throughput":[],"typical":{"estimate":3445158.021067821,"lower_bound":3403723.141675728,"upper_bound":3493242.73464318,"unit":"ns"},"mean":{"estimate":3427992.3094400354,"lower_bound":3385784.423086419,"upper_bound":3478635.099074074,"unit":"ns"},"median":{"estimate":3424790.8962962963,"lower_bound":3372178.2407407407,"upper_bound":3456399.5949074076,"unit":"ns"},"median_abs_dev":{"estimate":52359.57091089452,"lower_bound":12504.718354385466,"upper_bound":119646.92067399062,"unit":"ns"},"slope":{"estimate":3445158.021067821,"lower_bound":3403723.141675728,"upper_bound":3493242.73464318,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_100000","iteration_count":[89,178,267,356,445,534,623,712,801,890],"measured_values":[95008584.0,189390334.0,265563500.0,341859041.0,433600917.0,525078625.0,687456625.0,688278459.0,772895792.0,952252000.0],"unit":"ns","throughput":[],"typical":{"estimate":1014253.5656208959,"lower_bound":969992.7502142004,"upper_bound":1057869.6197531582,"unit":"ns"},"mean":{"estimate":1014908.2835576066,"lower_bound":983800.4630848048,"upper_bound":1048003.5839343679,"unit":"ns"},"median":{"estimate":988956.5777153558,"lower_bound":966683.2289325843,"upper_bound":1067512.1797752809,"unit":"ns"},"median_abs_dev":{"estimate":39082.33781953929,"lower_bound":4414.757931734702,"upper_bound":83140.86755049937,"unit":"ns"},"slope":{"estimate":1014253.5656208959,"lower_bound":969992.7502142004,"upper_bound":1057869.6197531582,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_100000","iteration_count":[93,186,279,372,465,558,651,744,837,930],"measured_values":[87004250.0,196497042.0,273342291.0,373657417.0,492288708.0,557070042.0,610474959.0,731211250.0,827860958.0,878674959.0],"unit":"ns","throughput":[],"typical":{"estimate":976372.897416562,"lower_bound":956350.5225861841,"upper_bound":1004584.6220911571,"unit":"ns"},"mean":{"estimate":988761.4325994195,"lower_bound":964114.1654361237,"upper_bound":1015264.9522226915,"unit":"ns"},"median":{"estimate":985946.0061230585,"lower_bound":944811.7838709677,"upper_bound":1027384.5591397849,"unit":"ns"},"median_abs_dev":{"estimate":44213.82819198313,"lower_bound":4648.227022943454,"upper_bound":83271.91218566037,"unit":"ns"},"slope":{"estimate":976372.897416562,"lower_bound":956350.5225861841,"upper_bound":1004584.6220911571,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_100000","iteration_count":[102,204,306,408,510,612,714,816,918,1020],"measured_values":[81692000.0,168270250.0,286616000.0,394058500.0,441431709.0,578398083.0,611154708.0,697627375.0,847460209.0,903977125.0],"unit":"ns","throughput":[],"typical":{"estimate":892739.4099821746,"lower_bound":868883.1437278176,"upper_bound":919251.7500684905,"unit":"ns"},"mean":{"estimate":885919.2492300809,"lower_bound":853711.6870296451,"upper_bound":917859.000428338,"unit":"ns"},"median":{"estimate":875902.2269607843,"lower_bound":840406.5707282913,"upper_bound":936653.5947712419,"unit":"ns"},"median_abs_dev":{"estimate":72873.57111277143,"lower_bound":8628.97515724624,"upper_bound":90622.41212430038,"unit":"ns"},"slope":{"estimate":892739.4099821746,"lower_bound":868883.1437278176,"upper_bound":919251.7500684905,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_100000","iteration_count":[94,188,282,376,470,564,658,752,846,940],"measured_values":[84322667.0,162365375.0,280871042.0,383382917.0,428982791.0,581765666.0,574045166.0,656666209.0,708494584.0,970898708.0],"unit":"ns","throughput":[],"typical":{"estimate":933345.961094225,"lower_bound":868538.7294319943,"upper_bound":1004365.7648076456,"unit":"ns"},"mean":{"estimate":933652.645324637,"lower_bound":889309.9013268321,"upper_bound":980029.017254306,"unit":"ns"},"median":{"estimate":904889.4957446809,"lower_bound":868435.9767287234,"upper_bound":1019635.4175531915,"unit":"ns"},"median_abs_dev":{"estimate":80556.57475646613,"lower_bound":7708.040924591133,"upper_bound":116395.94874441004,"unit":"ns"},"slope":{"estimate":933345.961094225,"lower_bound":868538.7294319943,"upper_bound":1004365.7648076456,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_100000","iteration_count":[98,196,294,392,490,588,686,784,882,980],"measured_values":[103889500.0,227002459.0,355665875.0,433149708.0,524839250.0,649535834.0,746227667.0,710565500.0,750023750.0,885476875.0],"unit":"ns","throughput":[],"typical":{"estimate":964537.5642194541,"lower_bound":906148.8123223974,"upper_bound":1091322.9167593631,"unit":"ns"},"mean":{"estimate":1045679.1532150956,"lower_bound":973429.889843902,"upper_bound":1112214.7494721818,"unit":"ns"},"median":{"estimate":1079447.9715743442,"lower_bound":906333.5459183673,"upper_bound":1131414.2950680272,"unit":"ns"},"median_abs_dev":{"estimate":77283.20192539762,"lower_bound":12734.282424941699,"upper_bound":201339.57948367126,"unit":"ns"},"slope":{"estimate":964537.5642194541,"lower_bound":906148.8123223974,"upper_bound":1091322.9167593631,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"COMBO","benchmarks":["COMBO/combo/bloom_ore_order_limit/100000","COMBO/combo/filtered_group_by/100000","COMBO/combo/top_n_filtered_group_by/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO"} diff --git a/results/query/combo_rows_1000000.json b/results/query/combo_rows_1000000.json index e960287..bf69d5e 100644 --- a/results/query/combo_rows_1000000.json +++ b/results/query/combo_rows_1000000.json @@ -1,4 +1,4 @@ -{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[90401833.0,181637458.0,279291750.0,371332834.0,465936750.0,564202375.0,673588125.0,745065541.0,836147250.0,973201042.0],"unit":"ns","throughput":[],"typical":{"estimate":23652440.394805193,"lower_bound":23251680.639280543,"upper_bound":24037225.300781425,"unit":"ns"},"mean":{"estimate":23348938.03729167,"lower_bound":23051272.95638542,"upper_bound":23671420.955625005,"unit":"ns"},"median":{"estimate":23278805.328125,"lower_bound":22965497.375,"upper_bound":23676778.125,"unit":"ns"},"median_abs_dev":{"estimate":222486.48860007618,"lower_bound":16697.782203555107,"upper_bound":979781.4203147739,"unit":"ns"},"slope":{"estimate":23652440.394805193,"lower_bound":23251680.639280543,"upper_bound":24037225.300781425,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_1000000","iteration_count":[16,32,48,64,80,96,112,128,144,160],"measured_values":[89658334.0,181272500.0,275752292.0,360466417.0,452679125.0,556956083.0,639289167.0,724964958.0,807077208.0,900252625.0],"unit":"ns","throughput":[],"typical":{"estimate":5660295.934415584,"lower_bound":5627872.654214643,"upper_bound":5714829.7340651555,"unit":"ns"},"mean":{"estimate":5670866.3074404765,"lower_bound":5636418.413790923,"upper_bound":5710692.062648809,"unit":"ns"},"median":{"estimate":5661138.8984375,"lower_bound":5618495.299479166,"upper_bound":5707938.991071428,"unit":"ns"},"median_abs_dev":{"estimate":60312.22980736858,"lower_bound":4652.815698646009,"upper_bound":102178.66280940338,"unit":"ns"},"slope":{"estimate":5660295.934415584,"lower_bound":5627872.654214643,"upper_bound":5714829.7340651555,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_1000000","iteration_count":[17,34,51,68,85,102,119,136,153,170],"measured_values":[97190250.0,189747750.0,290589584.0,358950167.0,456754917.0,542800625.0,633108042.0,751645500.0,828744250.0,922502958.0],"unit":"ns","throughput":[],"typical":{"estimate":5416880.310007639,"lower_bound":5360342.869813756,"upper_bound":5472231.729356531,"unit":"ns"},"mean":{"estimate":5465972.349379085,"lower_bound":5377074.29493464,"upper_bound":5562066.597254901,"unit":"ns"},"median":{"estimate":5421558.536601307,"lower_bound":5321574.7549019605,"upper_bound":5612320.06372549,"unit":"ns"},"median_abs_dev":{"estimate":153129.96763139963,"lower_bound":31798.67705163778,"upper_bound":264624.7972764806,"unit":"ns"},"slope":{"estimate":5416880.310007639,"lower_bound":5360342.869813756,"upper_bound":5472231.729356531,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_1000000","iteration_count":[24,48,72,96,120,144,168,192,216,240],"measured_values":[89788500.0,177893250.0,259239000.0,353130417.0,445761958.0,526935792.0,619411042.0,763300084.0,845923750.0,978290208.0],"unit":"ns","throughput":[],"typical":{"estimate":3881464.502813853,"lower_bound":3688621.232432209,"upper_bound":3983511.534024745,"unit":"ns"},"mean":{"estimate":3775525.4318419313,"lower_bound":3690623.2442692625,"upper_bound":3872973.9261574075,"unit":"ns"},"median":{"estimate":3710396.1791666667,"lower_bound":3673123.4107142854,"upper_bound":3916313.657407407,"unit":"ns"},"median_abs_dev":{"estimate":61582.889467310095,"lower_bound":20509.940551500767,"upper_bound":237061.12723910206,"unit":"ns"},"slope":{"estimate":3881464.502813853,"lower_bound":3688621.232432209,"upper_bound":3983511.534024745,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_1000000","iteration_count":[23,46,69,92,115,138,161,184,207,230],"measured_values":[88459333.0,180779000.0,276735125.0,334886917.0,423262083.0,512034250.0,599376709.0,672848250.0,755510333.0,837561417.0],"unit":"ns","throughput":[],"typical":{"estimate":3677235.0560135515,"lower_bound":3654627.9488250227,"upper_bound":3725156.938484906,"unit":"ns"},"mean":{"estimate":3748869.8775293306,"lower_bound":3677348.1392684607,"upper_bound":3831802.7621852146,"unit":"ns"},"median":{"estimate":3695466.4840579713,"lower_bound":3649177.672826087,"upper_bound":3846057.9565217393,"unit":"ns"},"median_abs_dev":{"estimate":73798.79910009961,"lower_bound":9224.430079712387,"upper_bound":212937.00929635152,"unit":"ns"},"slope":{"estimate":3677235.0560135515,"lower_bound":3654627.9488250227,"upper_bound":3725156.938484906,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_1000000","iteration_count":[24,48,72,96,120,144,168,192,216,240],"measured_values":[87076958.0,191752250.0,275891125.0,360484500.0,438056125.0,546512875.0,639772125.0,737577750.0,806952375.0,893461250.0],"unit":"ns","throughput":[],"typical":{"estimate":3764692.7984848483,"lower_bound":3729178.667925056,"upper_bound":3812254.0507990867,"unit":"ns"},"mean":{"estimate":3776397.321279762,"lower_bound":3717162.0494047618,"upper_bound":3840590.2584015373,"unit":"ns"},"median":{"estimate":3775137.5868055555,"lower_bound":3693179.166666667,"upper_bound":3831821.1805555555,"unit":"ns"},"median_abs_dev":{"estimate":80850.60377294803,"lower_bound":19474.56840425707,"upper_bound":177757.55934417236,"unit":"ns"},"slope":{"estimate":3764692.7984848483,"lower_bound":3729178.667925056,"upper_bound":3812254.0507990867,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"COMBO","benchmarks":["COMBO/combo/bloom_ore_order_limit/1000000","COMBO/combo/filtered_group_by/1000000","COMBO/combo/top_n_filtered_group_by/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO"} diff --git a/results/query/combo_rows_10000000.json b/results/query/combo_rows_10000000.json index da8a30d..bc7906b 100644 --- a/results/query/combo_rows_10000000.json +++ b/results/query/combo_rows_10000000.json @@ -1,4 +1,4 @@ -{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[649984750.0,648895042.0,649629125.0,653918875.0,649060084.0,664816667.0,652125084.0,655012500.0,646932583.0,647489500.0],"unit":"ns","throughput":[],"typical":{"estimate":217262140.33333334,"lower_bound":216385838.9333333,"upper_bound":218428729.3,"unit":"ns"},"mean":{"estimate":217262140.33333334,"lower_bound":216385838.9333333,"upper_bound":218428729.3,"unit":"ns"},"median":{"estimate":216602312.5,"lower_bound":216091597.33333334,"upper_bound":217972958.33333334,"unit":"ns"},"median_abs_dev":{"estimate":1145452.7860641405,"lower_bound":181391.9060796352,"upper_bound":2247024.5665073544,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[99108708.0,213147875.0,308711042.0,404438042.0,516952250.0,600426541.0,724009000.0,803765125.0,897597750.0,991460750.0],"unit":"ns","throughput":[],"typical":{"estimate":50321794.15324675,"lower_bound":49875276.862068966,"upper_bound":51140612.10671521,"unit":"ns"},"mean":{"estimate":50796851.6467262,"lower_bound":50136839.30372024,"upper_bound":51540105.50595238,"unit":"ns"},"median":{"estimate":50395037.78125,"lower_bound":49804291.29166667,"upper_bound":51695225.0,"unit":"ns"},"median_abs_dev":{"estimate":1232547.6736491546,"lower_bound":195027.30743757368,"upper_bound":2262186.9465569034,"unit":"ns"},"slope":{"estimate":50321794.15324675,"lower_bound":49875276.862068966,"upper_bound":51140612.10671521,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[98263708.0,199682416.0,296962125.0,398100000.0,508582792.0,596864416.0,728030166.0,815482708.0,882407625.0,988066584.0],"unit":"ns","throughput":[],"typical":{"estimate":50061587.872727275,"lower_bound":49379373.86739038,"upper_bound":51026998.055954784,"unit":"ns"},"mean":{"estimate":50030142.50309523,"lower_bound":49516839.25666667,"upper_bound":50624540.21784524,"unit":"ns"},"median":{"estimate":49750600.66666667,"lower_bound":49312770.75,"upper_bound":50858279.2,"unit":"ns"},"median_abs_dev":{"estimate":716109.2295265249,"lower_bound":134844.44440603073,"upper_bound":1596272.173870506,"unit":"ns"},"slope":{"estimate":50061587.872727275,"lower_bound":49379373.86739038,"upper_bound":51026998.055954784,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[626326542.0,633927959.0,631995333.0,628628625.0,621896333.0,627993541.0,633978500.0,645376625.0,627172375.0,614016166.0],"unit":"ns","throughput":[],"typical":{"estimate":209710399.96666664,"lower_bound":208106764.5208333,"upper_bound":211340422.23333335,"unit":"ns"},"mean":{"estimate":209710399.96666664,"lower_bound":208106764.5208333,"upper_bound":211340422.23333335,"unit":"ns"},"median":{"estimate":209437027.6666667,"lower_bound":208178118.0,"upper_bound":211309319.66666666,"unit":"ns"},"median_abs_dev":{"estimate":2298308.1937968363,"lower_bound":359839.3686115668,"upper_bound":4707275.425729148,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[131402583.0,260607875.0,397579042.0,539936125.0,661189083.0,780457542.0,971929167.0,1055383459.0,1292750500.0,1404550417.0],"unit":"ns","throughput":[],"typical":{"estimate":45818719.5991342,"lower_bound":44119294.933814086,"upper_bound":46880506.603140615,"unit":"ns"},"mean":{"estimate":44879830.50199737,"lower_bound":44023724.25654861,"upper_bound":45856430.13701256,"unit":"ns"},"median":{"estimate":44127360.65555556,"lower_bound":43704478.3125,"upper_bound":46282341.28571428,"unit":"ns"},"median_abs_dev":{"estimate":1083278.8277446276,"lower_bound":149103.83355704692,"upper_bound":2446814.988168678,"unit":"ns"},"slope":{"estimate":45818719.5991342,"lower_bound":44119294.933814086,"upper_bound":46880506.603140615,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[90244542.0,179547667.0,265855083.0,350190250.0,431286042.0,542338083.0,623397208.0,717961958.0,835194334.0,915013583.0],"unit":"ns","throughput":[],"typical":{"estimate":45236994.53116883,"lower_bound":44346796.180207655,"upper_bound":45793236.84199584,"unit":"ns"},"mean":{"estimate":44796695.269722216,"lower_bound":44239516.305,"upper_bound":45340110.76916666,"unit":"ns"},"median":{"estimate":44879769.5625,"lower_bound":44151076.625,"upper_bound":45436475.075,"unit":"ns"},"median_abs_dev":{"estimate":683468.6729785055,"lower_bound":185064.52242694795,"upper_bound":1549691.1230708174,"unit":"ns"},"slope":{"estimate":45236994.53116883,"lower_bound":44346796.180207655,"upper_bound":45793236.84199584,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"COMBO","benchmarks":["COMBO/combo/bloom_ore_order_limit/10000000","COMBO/combo/filtered_group_by/10000000","COMBO/combo/top_n_filtered_group_by/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO"} diff --git a/results/query/exact_metadata_10000.json b/results/query/exact_metadata_10000.json index 1d2f8d1..c7e362b 100644 --- a/results/query/exact_metadata_10000.json +++ b/results/query/exact_metadata_10000.json @@ -13,7 +13,7 @@ { "Alias": "string_encrypted_10000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_10000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -37,7 +37,7 @@ ], "parameters": [ { - "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", "i": { "c": "value", "t": "string_encrypted_10000" @@ -61,7 +61,7 @@ { "Alias": "string_encrypted_10000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_10000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -85,7 +85,7 @@ ], "parameters": [ { - "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", "i": { "c": "value", "t": "string_encrypted_10000" diff --git a/results/query/exact_metadata_100000.json b/results/query/exact_metadata_100000.json index 2f7b959..1078a12 100644 --- a/results/query/exact_metadata_100000.json +++ b/results/query/exact_metadata_100000.json @@ -13,7 +13,7 @@ { "Alias": "string_encrypted_100000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_100000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -37,7 +37,7 @@ ], "parameters": [ { - "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", "i": { "c": "value", "t": "string_encrypted_100000" @@ -61,7 +61,7 @@ { "Alias": "string_encrypted_100000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_100000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -85,7 +85,7 @@ ], "parameters": [ { - "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", "i": { "c": "value", "t": "string_encrypted_100000" diff --git a/results/query/exact_metadata_1000000.json b/results/query/exact_metadata_1000000.json index edc68e3..71b27e3 100644 --- a/results/query/exact_metadata_1000000.json +++ b/results/query/exact_metadata_1000000.json @@ -13,7 +13,7 @@ { "Alias": "string_encrypted_1000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_1000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -37,7 +37,7 @@ ], "parameters": [ { - "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", "i": { "c": "value", "t": "string_encrypted_1000000" @@ -61,7 +61,7 @@ { "Alias": "string_encrypted_1000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_1000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -85,7 +85,7 @@ ], "parameters": [ { - "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", "i": { "c": "value", "t": "string_encrypted_1000000" diff --git a/results/query/exact_metadata_10000000.json b/results/query/exact_metadata_10000000.json index c33d4d2..77d6c38 100644 --- a/results/query/exact_metadata_10000000.json +++ b/results/query/exact_metadata_10000000.json @@ -13,7 +13,7 @@ { "Alias": "string_encrypted_10000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_10000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -37,7 +37,7 @@ ], "parameters": [ { - "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", "i": { "c": "value", "t": "string_encrypted_10000000" @@ -61,7 +61,7 @@ { "Alias": "string_encrypted_10000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = '9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", "Index Name": "string_encrypted_10000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -85,7 +85,7 @@ ], "parameters": [ { - "hm": "9b50b28ba1880a29710f2713a7afa5fb67d3f44d65357495b1f65bf5bdabb02e", + "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", "i": { "c": "value", "t": "string_encrypted_10000000" diff --git a/results/query/exact_rows_10000.json b/results/query/exact_rows_10000.json index 2442797..a0057df 100644 --- a/results/query/exact_rows_10000.json +++ b/results/query/exact_rows_10000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[232,464,696,928,1160,1392,1624,1856,2088,2320],"measured_values":[92524084.0,199190375.0,284292250.0,396918458.0,471357084.0,570828083.0,665370542.0,768893042.0,930015208.0,995304125.0],"unit":"ns","throughput":[],"typical":{"estimate":423702.70472458575,"lower_bound":411301.89672299614,"upper_bound":434101.6702295012,"unit":"ns"},"mean":{"estimate":417910.51741345105,"lower_bound":409895.22881362896,"upper_bound":426634.7063885468,"unit":"ns"},"median":{"estimate":412175.9570761494,"lower_bound":408026.6193349754,"upper_bound":429010.3987068966,"unit":"ns"},"median_abs_dev":{"estimate":14232.139471186767,"lower_bound":1168.1002590034661,"upper_bound":25274.556660913375,"unit":"ns"},"slope":{"estimate":423702.70472458575,"lower_bound":411301.89672299614,"upper_bound":434101.6702295012,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[215,430,645,860,1075,1290,1505,1720,1935,2150],"measured_values":[91968459.0,171158625.0,242525209.0,360008666.0,446551625.0,544930875.0,631445417.0,698510959.0,795119375.0,906277583.0],"unit":"ns","throughput":[],"typical":{"estimate":414754.39650860766,"lower_bound":408570.1262620533,"upper_bound":419653.78977668023,"unit":"ns"},"mean":{"estimate":411636.52342949435,"lower_bound":401805.3376508629,"upper_bound":419441.6986129568,"unit":"ns"},"median":{"estimate":417005.7941860465,"lower_bound":404478.8598191214,"upper_bound":421524.45720930235,"unit":"ns"},"median_abs_dev":{"estimate":8534.31187367945,"lower_bound":2156.9822935198595,"upper_bound":21399.457347595355,"unit":"ns"},"slope":{"estimate":414754.39650860766,"lower_bound":408570.1262620533,"upper_bound":419653.78977668023,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[225,450,675,900,1125,1350,1575,1800,2025,2250],"measured_values":[90771208.0,189210834.0,296256583.0,392725750.0,482572834.0,566137500.0,635971208.0,716442042.0,809485792.0,850372916.0],"unit":"ns","throughput":[],"typical":{"estimate":400704.07936507935,"lower_bound":389507.9722770325,"upper_bound":417867.32057159155,"unit":"ns"},"mean":{"estimate":412697.5626557319,"lower_bound":401204.2014246913,"upper_bound":423803.5837055556,"unit":"ns"},"median":{"estimate":411576.1771428571,"lower_bound":399746.07012345677,"upper_bound":428953.63022222224,"unit":"ns"},"median_abs_dev":{"estimate":18816.363818424197,"lower_bound":2998.6867295774823,"upper_bound":34254.28144307977,"unit":"ns"},"slope":{"estimate":400704.07936507935,"lower_bound":389507.9722770325,"upper_bound":417867.32057159155,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[229,458,687,916,1145,1374,1603,1832,2061,2290],"measured_values":[92126667.0,177964417.0,282923875.0,356934375.0,426738875.0,546572875.0,644437042.0,752050584.0,799650208.0,904543541.0],"unit":"ns","throughput":[],"typical":{"estimate":395933.16507684457,"lower_bound":388941.7334551979,"upper_bound":403272.67910055927,"unit":"ns"},"mean":{"estimate":395837.0377871352,"lower_bound":388703.3442281832,"upper_bound":402542.2672194496,"unit":"ns"},"median":{"estimate":396397.01586608443,"lower_bound":388568.596069869,"upper_bound":406263.662819713,"unit":"ns"},"median_abs_dev":{"estimate":10792.651304702196,"lower_bound":1241.6633605252455,"upper_bound":21005.83687758129,"unit":"ns"},"slope":{"estimate":395933.16507684457,"lower_bound":388941.7334551979,"upper_bound":403272.67910055927,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[198,396,594,792,990,1188,1386,1584,1782,1980],"measured_values":[71512458.0,141498083.0,216657166.0,308509750.0,454837792.0,538419792.0,640361708.0,698709458.0,930403459.0,934956459.0],"unit":"ns","throughput":[],"typical":{"estimate":466202.67840745114,"lower_bound":434888.3454106513,"upper_bound":490632.12576489535,"unit":"ns"},"mean":{"estimate":428285.31161335576,"lower_bound":395545.96582702023,"upper_bound":460930.9101683502,"unit":"ns"},"median":{"estimate":447159.88446969696,"lower_bound":364742.7037037037,"upper_bound":465816.17247474747,"unit":"ns"},"median_abs_dev":{"estimate":61281.57914900419,"lower_bound":6527.977538650689,"upper_bound":98281.12024615458,"unit":"ns"},"slope":{"estimate":466202.67840745114,"lower_bound":434888.3454106513,"upper_bound":490632.12576489535,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[201,402,603,804,1005,1206,1407,1608,1809,2010],"measured_values":[86041750.0,166495083.0,254637834.0,355712792.0,439380709.0,531887125.0,618092833.0,725005916.0,794543083.0,892925334.0],"unit":"ns","throughput":[],"typical":{"estimate":441957.2414162952,"lower_bound":437514.74253731343,"upper_bound":445469.89465919614,"unit":"ns"},"mean":{"estimate":435880.88422253804,"lower_bound":428993.6466548212,"upper_bound":442005.6899715707,"unit":"ns"},"median":{"estimate":439257.5644791913,"lower_bound":428068.407960199,"upper_bound":442637.78001658374,"unit":"ns"},"median_abs_dev":{"estimate":6045.4322426887065,"lower_bound":1347.2090506262507,"upper_bound":17162.484040081083,"unit":"ns"},"slope":{"estimate":441957.2414162952,"lower_bound":437514.74253731343,"upper_bound":445469.89465919614,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[68325792.0,142823291.0,279628125.0,383402958.0,456567750.0,548634250.0,649210625.0,764523542.0,855832250.0,927099959.0],"unit":"ns","throughput":[],"typical":{"estimate":424265.2347343566,"lower_bound":416853.6070134333,"upper_bound":429614.6236661699,"unit":"ns"},"mean":{"estimate":403482.9225176767,"lower_bound":372411.2975550505,"upper_bound":426812.9215872475,"unit":"ns"},"median":{"estimate":421487.20659090905,"lower_bound":370115.1981060606,"upper_bound":432238.5101010101,"unit":"ns"},"median_abs_dev":{"estimate":12733.249970909334,"lower_bound":1682.6805466264693,"upper_bound":67483.22052170613,"unit":"ns"},"slope":{"estimate":424265.2347343566,"lower_bound":416853.6070134333,"upper_bound":429614.6236661699,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[190,380,570,760,950,1140,1330,1520,1710,1900],"measured_values":[77627125.0,161380333.0,244385625.0,324247792.0,398446041.0,462832416.0,564957292.0,637447417.0,742243541.0,804344709.0],"unit":"ns","throughput":[],"typical":{"estimate":423481.61140123033,"lower_bound":417013.81576650415,"upper_bound":428937.16146485094,"unit":"ns"},"mean":{"estimate":421560.0767642022,"lower_bound":416212.05220924184,"upper_bound":426381.3104985746,"unit":"ns"},"median":{"estimate":424012.20368421054,"lower_bound":413990.3505263158,"upper_bound":426763.3146616541,"unit":"ns"},"median_abs_dev":{"estimate":6845.328237405358,"lower_bound":1067.9154790933337,"upper_bound":14897.678416811577,"unit":"ns"},"slope":{"estimate":423481.61140123033,"lower_bound":417013.81576650415,"upper_bound":428937.16146485094,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000","EXACT/exact_decrypt/eql_cast/10000","EXACT/exact/eql_hash/10000","EXACT/exact_decrypt/eql_hash/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_100000.json b/results/query/exact_rows_100000.json index 34df84f..4a7e6f2 100644 --- a/results/query/exact_rows_100000.json +++ b/results/query/exact_rows_100000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[221,442,663,884,1105,1326,1547,1768,1989,2210],"measured_values":[91236416.0,184138333.0,240973875.0,298498083.0,400083250.0,556461708.0,662228833.0,734762375.0,808062167.0,927314417.0],"unit":"ns","throughput":[],"typical":{"estimate":408709.15015572665,"lower_bound":390548.97545188654,"upper_bound":418127.9730788243,"unit":"ns"},"mean":{"estimate":398181.2393878834,"lower_bound":378504.5483218012,"upper_bound":415217.49781548517,"unit":"ns"},"median":{"estimate":414212.02007918555,"lower_bound":363459.8416289593,"upper_bound":419599.28371040727,"unit":"ns"},"median_abs_dev":{"estimate":9925.144023642633,"lower_bound":2262.311710740901,"upper_bound":45442.501604365534,"unit":"ns"},"slope":{"estimate":408709.15015572665,"lower_bound":390548.97545188654,"upper_bound":418127.9730788243,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[223,446,669,892,1115,1338,1561,1784,2007,2230],"measured_values":[100768583.0,194520042.0,259086417.0,358158958.0,487859542.0,542797792.0,629904083.0,689932084.0,850448041.0,940988541.0],"unit":"ns","throughput":[],"typical":{"estimate":412189.054149438,"lower_bound":398448.7256314695,"upper_bound":422050.1834364726,"unit":"ns"},"mean":{"estimate":415600.70785465155,"lower_bound":402720.26237413695,"upper_bound":428752.6760958076,"unit":"ns"},"median":{"estimate":413823.21248131536,"lower_bound":395400.0819987188,"upper_bound":436143.59192825115,"unit":"ns"},"median_abs_dev":{"estimate":25663.87701500292,"lower_bound":2968.910246394452,"upper_bound":37263.68568919964,"unit":"ns"},"slope":{"estimate":412189.054149438,"lower_bound":398448.7256314695,"upper_bound":422050.1834364726,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[229,458,687,916,1145,1374,1603,1832,2061,2290],"measured_values":[95615834.0,180508833.0,272625208.0,350748667.0,465321833.0,550379708.0,686327833.0,807632750.0,844246625.0,894776000.0],"unit":"ns","throughput":[],"typical":{"estimate":409660.60977712244,"lower_bound":395700.88000057795,"upper_bound":425486.67942375486,"unit":"ns"},"mean":{"estimate":406773.149392112,"lower_bound":396779.35918243567,"upper_bound":417726.60312071984,"unit":"ns"},"median":{"estimate":403481.04352256184,"lower_bound":393783.1208151383,"upper_bound":418890.85991543636,"unit":"ns"},"median_abs_dev":{"estimate":16387.26631400233,"lower_bound":4776.480142056393,"upper_bound":29859.561578998982,"unit":"ns"},"slope":{"estimate":409660.60977712244,"lower_bound":395700.88000057795,"upper_bound":425486.67942375486,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[236,472,708,944,1180,1416,1652,1888,2124,2360],"measured_values":[96855167.0,180184417.0,272346875.0,392776958.0,459204417.0,566575958.0,664614875.0,752658542.0,871782541.0,962316708.0],"unit":"ns","throughput":[],"typical":{"estimate":403737.9782192384,"lower_bound":397614.60790060274,"upper_bound":407517.00503087963,"unit":"ns"},"mean":{"estimate":400134.6668943368,"lower_bound":393094.9724835553,"upper_bound":406786.52943657513,"unit":"ns"},"median":{"estimate":401216.75524616626,"lower_bound":389156.2855932203,"upper_bound":410403.25,"unit":"ns"},"median_abs_dev":{"estimate":13649.925113880068,"lower_bound":2018.521403118789,"upper_bound":19116.093530197762,"unit":"ns"},"slope":{"estimate":403737.9782192384,"lower_bound":397614.60790060274,"upper_bound":407517.00503087963,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[188,376,564,752,940,1128,1316,1504,1692,1880],"measured_values":[93366000.0,182205542.0,344652459.0,338281583.0,387788333.0,472617833.0,534928084.0,606405959.0,702502750.0,771316084.0],"unit":"ns","throughput":[],"typical":{"estimate":417946.1081237911,"lower_bound":409900.81639505056,"upper_bound":438692.735,"unit":"ns"},"mean":{"estimate":450881.45600198413,"lower_bound":418551.09557792975,"upper_bound":493382.11531345,"unit":"ns"},"median":{"estimate":417089.09559692675,"lower_bound":409510.54338905774,"upper_bound":484589.2074468085,"unit":"ns"},"median_abs_dev":{"estimate":18163.65306784546,"lower_bound":3644.4070350151947,"upper_bound":89771.2976929696,"unit":"ns"},"slope":{"estimate":417946.1081237911,"lower_bound":409900.81639505056,"upper_bound":438692.735,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[91153750.0,178714875.0,279080083.0,368932792.0,497818375.0,545853208.0,547540625.0,707920792.0,825983375.0,903759875.0],"unit":"ns","throughput":[],"typical":{"estimate":407241.62781582057,"lower_bound":388958.55429924245,"upper_bound":421707.8277736038,"unit":"ns"},"mean":{"estimate":411441.99810966814,"lower_bound":396199.5535209235,"upper_bound":424513.31396590907,"unit":"ns"},"median":{"estimate":413930.19242424244,"lower_bound":406170.17045454547,"upper_bound":420005.9656565656,"unit":"ns"},"median_abs_dev":{"estimate":9690.005549104359,"lower_bound":2620.7060500640955,"upper_bound":34390.38056558507,"unit":"ns"},"slope":{"estimate":407241.62781582057,"lower_bound":388958.55429924245,"upper_bound":421707.8277736038,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[233,466,699,932,1165,1398,1631,1864,2097,2330],"measured_values":[89358083.0,180525250.0,277494959.0,390343584.0,486179875.0,603144459.0,646676667.0,774669708.0,852040000.0,917469834.0],"unit":"ns","throughput":[],"typical":{"estimate":406456.56984560506,"lower_bound":398542.9299837191,"upper_bound":417376.2644745446,"unit":"ns"},"mean":{"estimate":404763.5897758703,"lower_bound":395828.45712923224,"upper_bound":414048.1598712446,"unit":"ns"},"median":{"estimate":401651.13900810684,"lower_bound":391942.0729613734,"upper_bound":417321.7811158798,"unit":"ns"},"median_abs_dev":{"estimate":20906.213813604456,"lower_bound":2390.410148463029,"upper_bound":24745.17168277408,"unit":"ns"},"slope":{"estimate":406456.56984560506,"lower_bound":398542.9299837191,"upper_bound":417376.2644745446,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[228,456,684,912,1140,1368,1596,1824,2052,2280],"measured_values":[109518083.0,190642583.0,234206042.0,341604625.0,466639000.0,539989583.0,856091583.0,774185792.0,826181000.0,927713709.0],"unit":"ns","throughput":[],"typical":{"estimate":421871.3360674413,"lower_bound":397429.98134659295,"upper_bound":462015.7702658495,"unit":"ns"},"mean":{"estimate":418980.94588171813,"lower_bound":389509.29672758287,"upper_bound":453062.71814688615,"unit":"ns"},"median":{"estimate":408112.2168859649,"lower_bound":388594.39723440545,"upper_bound":449209.15460526315,"unit":"ns"},"median_abs_dev":{"estimate":22027.53457187166,"lower_bound":4974.224063736717,"upper_bound":87595.8121099951,"unit":"ns"},"slope":{"estimate":421871.3360674413,"lower_bound":397429.98134659295,"upper_bound":462015.7702658495,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/100000","EXACT/exact_decrypt/eql_cast/100000","EXACT/exact/eql_hash/100000","EXACT/exact_decrypt/eql_hash/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_1000000.json b/results/query/exact_rows_1000000.json index d20caaf..5ed537d 100644 --- a/results/query/exact_rows_1000000.json +++ b/results/query/exact_rows_1000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[231,462,693,924,1155,1386,1617,1848,2079,2310],"measured_values":[233538875.0,268447458.0,354170000.0,455469959.0,572276583.0,578973042.0,687390084.0,752631791.0,860848583.0,994050750.0],"unit":"ns","throughput":[],"typical":{"estimate":433023.83152864454,"lower_bound":420495.4120474208,"upper_bound":459659.5060119945,"unit":"ns"},"mean":{"estimate":518601.7570890882,"lower_bound":438680.62707208144,"upper_bound":639122.2496544269,"unit":"ns"},"median":{"estimate":461628.92803030304,"lower_bound":417729.4675324675,"upper_bound":538266.3324675325,"unit":"ns"},"median_abs_dev":{"estimate":67799.15301122345,"lower_bound":7754.874345278008,"upper_bound":129540.19497313118,"unit":"ns"},"slope":{"estimate":433023.83152864454,"lower_bound":420495.4120474208,"upper_bound":459659.5060119945,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[89423375.0,178358459.0,271821792.0,406891750.0,458456167.0,550849833.0,642878916.0,746420083.0,803958500.0,759116000.0],"unit":"ns","throughput":[],"typical":{"estimate":400698.00246693945,"lower_bound":372911.0622240308,"upper_bound":426895.9950482865,"unit":"ns"},"mean":{"estimate":413157.5445845111,"lower_bound":394692.3853059315,"upper_bound":429268.64659491193,"unit":"ns"},"median":{"estimate":416206.6150684932,"lower_bound":407768.5034246575,"upper_bound":422627.4335045662,"unit":"ns"},"median_abs_dev":{"estimate":12004.321484536773,"lower_bound":503.04056175422386,"upper_bound":41953.56905159842,"unit":"ns"},"slope":{"estimate":400698.00246693945,"lower_bound":372911.0622240308,"upper_bound":426895.9950482865,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[224,448,672,896,1120,1344,1568,1792,2016,2240],"measured_values":[87620708.0,222337542.0,255972750.0,358152250.0,455438833.0,531239542.0,655842042.0,671830583.0,722003375.0,883652334.0],"unit":"ns","throughput":[],"typical":{"estimate":388422.39253246755,"lower_bound":373155.00342013297,"upper_bound":406395.05099410895,"unit":"ns"},"mean":{"estimate":401579.39979893,"lower_bound":383159.82986359124,"upper_bound":426076.65614093945,"unit":"ns"},"median":{"estimate":394877.58273809525,"lower_bound":380911.83035714284,"upper_bound":408995.05086096935,"unit":"ns"},"median_abs_dev":{"estimate":19073.63740950027,"lower_bound":3303.215642918683,"upper_bound":41923.76852961061,"unit":"ns"},"slope":{"estimate":388422.39253246755,"lower_bound":373155.00342013297,"upper_bound":406395.05099410895,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[226,452,678,904,1130,1356,1582,1808,2034,2260],"measured_values":[90531083.0,181401583.0,272371458.0,362449166.0,389214584.0,531564375.0,643960875.0,741945875.0,859617542.0,895820917.0],"unit":"ns","throughput":[],"typical":{"estimate":402180.95195954485,"lower_bound":386847.2008472981,"upper_bound":413245.24854336056,"unit":"ns"},"mean":{"estimate":397745.32226172916,"lower_bound":384151.5432806575,"upper_bound":407682.6587913506,"unit":"ns"},"median":{"estimate":401135.139380531,"lower_bound":396294.56969026546,"upper_bound":407054.914664981,"unit":"ns"},"median_abs_dev":{"estimate":7912.619705938829,"lower_bound":556.6588885686979,"upper_bound":20608.428073655283,"unit":"ns"},"slope":{"estimate":402180.95195954485,"lower_bound":386847.2008472981,"upper_bound":413245.24854336056,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[211,422,633,844,1055,1266,1477,1688,1899,2110],"measured_values":[91634833.0,173143959.0,250143709.0,372888416.0,475567000.0,522383209.0,609983167.0,638784916.0,755315750.0,868157875.0],"unit":"ns","throughput":[],"typical":{"estimate":406864.3293284914,"lower_bound":394613.27258125285,"upper_bound":421823.44775445724,"unit":"ns"},"mean":{"estimate":414557.22637478367,"lower_bound":401736.3713984804,"upper_bound":427712.3521897803,"unit":"ns"},"median":{"estimate":412037.09873617697,"lower_bound":397743.94418114796,"upper_bound":434288.30805687205,"unit":"ns"},"median_abs_dev":{"estimate":23097.808326740807,"lower_bound":1140.6355795126829,"upper_bound":39670.48044539221,"unit":"ns"},"slope":{"estimate":406864.3293284914,"lower_bound":394613.27258125285,"upper_bound":421823.44775445724,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[206,412,618,824,1030,1236,1442,1648,1854,2060],"measured_values":[108305083.0,165342833.0,253347209.0,339703792.0,429666792.0,532694584.0,620666250.0,644561750.0,758502250.0,834618916.0],"unit":"ns","throughput":[],"typical":{"estimate":410745.3810112218,"lower_bound":402154.10064292647,"upper_bound":423005.94922257325,"unit":"ns"},"mean":{"estimate":423322.3550990137,"lower_bound":406400.9248678533,"upper_bound":448427.9279045307,"unit":"ns"},"median":{"estimate":411104.41181229777,"lower_bound":405154.813592233,"upper_bound":430420.42302357836,"unit":"ns"},"median_abs_dev":{"estimate":11738.240230779356,"lower_bound":2331.5691854672623,"upper_bound":29670.21541564313,"unit":"ns"},"slope":{"estimate":410745.3810112218,"lower_bound":402154.10064292647,"upper_bound":423005.94922257325,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[235,470,705,940,1175,1410,1645,1880,2115,2350],"measured_values":[86695708.0,180949625.0,280568291.0,381990042.0,550605625.0,594632125.0,649014542.0,768371500.0,868793042.0,960433250.0],"unit":"ns","throughput":[],"typical":{"estimate":411744.95215252833,"lower_bound":403773.76684182114,"upper_bound":424360.99521615397,"unit":"ns"},"mean":{"estimate":407130.19561634585,"lower_bound":393139.6166517224,"upper_bound":423930.1953664303,"unit":"ns"},"median":{"estimate":407533.69255319145,"lower_bound":391484.2046099291,"upper_bound":415216.5780141844,"unit":"ns"},"median_abs_dev":{"estimate":16724.07056372663,"lower_bound":1553.0951489518604,"upper_bound":37457.42567967859,"unit":"ns"},"slope":{"estimate":411744.95215252833,"lower_bound":403773.76684182114,"upper_bound":424360.99521615397,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[227,454,681,908,1135,1362,1589,1816,2043,2270],"measured_values":[79840709.0,149346416.0,218238458.0,292993458.0,451726334.0,577208208.0,680581667.0,836782667.0,836718250.0,956531542.0],"unit":"ns","throughput":[],"typical":{"estimate":417429.10166485497,"lower_bound":393055.580539134,"upper_bound":434177.3087087189,"unit":"ns"},"mean":{"estimate":386564.1865262919,"lower_bound":356017.8250122369,"upper_bound":415914.9790830755,"unit":"ns"},"median":{"estimate":403775.24503181595,"lower_bound":328956.86343612336,"upper_bound":424843.8471994966,"unit":"ns"},"median_abs_dev":{"estimate":56773.92389778826,"lower_bound":5136.190775950958,"upper_bound":80847.82367121706,"unit":"ns"},"slope":{"estimate":417429.10166485497,"lower_bound":393055.580539134,"upper_bound":434177.3087087189,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/1000000","EXACT/exact_decrypt/eql_cast/1000000","EXACT/exact/eql_hash/1000000","EXACT/exact_decrypt/eql_hash/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_10000000.json b/results/query/exact_rows_10000000.json index 492ccfb..6556a69 100644 --- a/results/query/exact_rows_10000000.json +++ b/results/query/exact_rows_10000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000000","iteration_count":[211,422,633,844,1055,1266,1477,1688,1899,2110],"measured_values":[89523417.0,186615834.0,264127250.0,366372458.0,465060125.0,522610125.0,661578291.0,747794959.0,799003792.0,865728416.0],"unit":"ns","throughput":[],"typical":{"estimate":426457.9804148458,"lower_bound":416211.2764080185,"upper_bound":440338.1922800971,"unit":"ns"},"mean":{"estimate":429344.6316025352,"lower_bound":421272.09231569245,"upper_bound":437510.03145076364,"unit":"ns"},"median":{"estimate":429186.0936018957,"lower_bound":416776.9824907846,"upper_bound":442217.6161137441,"unit":"ns"},"median_abs_dev":{"estimate":18499.124776314227,"lower_bound":2209.136321325007,"upper_bound":21938.686645028603,"unit":"ns"},"slope":{"estimate":426457.9804148458,"lower_bound":416211.2764080185,"upper_bound":440338.1922800971,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000000","iteration_count":[216,432,648,864,1080,1296,1512,1728,1944,2160],"measured_values":[92492167.0,186405084.0,269472916.0,359640666.0,450802625.0,542836333.0,665479292.0,715317166.0,842049958.0,916624417.0],"unit":"ns","throughput":[],"typical":{"estimate":425070.96000481,"lower_bound":417661.768341479,"upper_bound":431564.0273297491,"unit":"ns"},"mean":{"estimate":423967.172305629,"lower_bound":418987.9525396825,"upper_bound":429397.3318320106,"unit":"ns"},"median":{"estimate":421609.1756172839,"lower_bound":416250.7708333333,"upper_bound":431493.25,"unit":"ns"},"median_abs_dev":{"estimate":9155.952862912309,"lower_bound":1448.5579453477694,"upper_bound":15245.49169183841,"unit":"ns"},"slope":{"estimate":425070.96000481,"lower_bound":417661.768341479,"upper_bound":431564.0273297491,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000000","iteration_count":[226,452,678,904,1130,1356,1582,1808,2034,2260],"measured_values":[90859708.0,181022250.0,268543958.0,379396333.0,415378708.0,543766375.0,624230291.0,698989333.0,756318250.0,759807917.0],"unit":"ns","throughput":[],"typical":{"estimate":373314.3699000115,"lower_bound":354226.79345361167,"upper_bound":395269.929996632,"unit":"ns"},"mean":{"estimate":387612.21901618905,"lower_bound":372794.2149033616,"upper_bound":400249.9469623543,"unit":"ns"},"median":{"estimate":395332.7622208175,"lower_bound":371837.88102261553,"upper_bound":401262.90486725664,"unit":"ns"},"median_abs_dev":{"estimate":11434.524006233363,"lower_bound":1521.8221778495017,"upper_bound":37981.14710867923,"unit":"ns"},"slope":{"estimate":373314.3699000115,"lower_bound":354226.79345361167,"upper_bound":395269.929996632,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000000","iteration_count":[242,484,726,968,1210,1452,1694,1936,2178,2420],"measured_values":[95751125.0,192381916.0,286515167.0,388328875.0,482562958.0,585015583.0,689912875.0,750932500.0,899269292.0,957777000.0],"unit":"ns","throughput":[],"typical":{"estimate":400604.5722764839,"lower_bound":393720.6352000858,"upper_bound":408030.8082885926,"unit":"ns"},"mean":{"estimate":399449.00869769126,"lower_bound":395459.3956821626,"upper_bound":403697.32080581796,"unit":"ns"},"median":{"estimate":398147.8297520661,"lower_bound":395212.3050964187,"upper_bound":404217.357216647,"unit":"ns"},"median_abs_dev":{"estimate":4831.202367431505,"lower_bound":985.2354687895823,"upper_bound":11605.995000068133,"unit":"ns"},"slope":{"estimate":400604.5722764839,"lower_bound":393720.6352000858,"upper_bound":408030.8082885926,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000000","iteration_count":[227,454,681,908,1135,1362,1589,1816,2043,2270],"measured_values":[91835750.0,184594542.0,284729500.0,368900333.0,464166375.0,569422959.0,613883291.0,719495917.0,894980250.0,950960791.0],"unit":"ns","throughput":[],"typical":{"estimate":413590.76409405575,"lower_bound":398154.11068175564,"upper_bound":426557.980471688,"unit":"ns"},"mean":{"estimate":410210.5598274596,"lower_bound":402012.7795851689,"upper_bound":418658.7905873715,"unit":"ns"},"median":{"estimate":407776.5330396476,"lower_bound":401238.0459801762,"upper_bound":418501.9947136564,"unit":"ns"},"median_abs_dev":{"estimate":15293.357810647156,"lower_bound":647.4436798271373,"upper_bound":23568.659104810544,"unit":"ns"},"slope":{"estimate":413590.76409405575,"lower_bound":398154.11068175564,"upper_bound":426557.980471688,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000000","iteration_count":[218,436,654,872,1090,1308,1526,1744,1962,2180],"measured_values":[92050500.0,179539750.0,256964459.0,347411333.0,458492042.0,536267625.0,686394833.0,771073125.0,807880167.0,945175416.0],"unit":"ns","throughput":[],"typical":{"estimate":426757.5260693435,"lower_bound":412275.6875033712,"upper_bound":437127.16722408496,"unit":"ns"},"mean":{"estimate":419324.2769522717,"lower_bound":408837.4988597642,"upper_bound":430272.3676965924,"unit":"ns"},"median":{"estimate":416211.6591743119,"lower_bound":405085.5418577982,"upper_bound":433566.70458715595,"unit":"ns"},"median_abs_dev":{"estimate":17477.01124628064,"lower_bound":1351.1705464247182,"upper_bound":31667.526411986324,"unit":"ns"},"slope":{"estimate":426757.5260693435,"lower_bound":412275.6875033712,"upper_bound":437127.16722408496,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000000","iteration_count":[225,450,675,900,1125,1350,1575,1800,2025,2250],"measured_values":[91673916.0,178183416.0,282165750.0,341845959.0,463483208.0,528920459.0,620579000.0,712809875.0,864823750.0,768659375.0],"unit":"ns","throughput":[],"typical":{"estimate":388679.94375757576,"lower_bound":362070.59159062424,"upper_bound":414704.14528428094,"unit":"ns"},"mean":{"estimate":396375.6700858907,"lower_bound":381196.4527923281,"upper_bound":408988.03249655204,"unit":"ns"},"median":{"estimate":395984.31638888887,"lower_bound":386923.628015873,"upper_bound":412731.48,"unit":"ns"},"median_abs_dev":{"estimate":20353.1825999588,"lower_bound":1504.4037242914965,"upper_bound":34907.74061208229,"unit":"ns"},"slope":{"estimate":388679.94375757576,"lower_bound":362070.59159062424,"upper_bound":414704.14528428094,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000000","iteration_count":[209,418,627,836,1045,1254,1463,1672,1881,2090],"measured_values":[81315792.0,180539208.0,261114083.0,341729042.0,401789833.0,495999042.0,591945417.0,679239208.0,756699500.0,827866167.0],"unit":"ns","throughput":[],"typical":{"estimate":400721.8641024048,"lower_bound":396543.48163860536,"upper_bound":405367.58597353334,"unit":"ns"},"mean":{"estimate":403546.9036788942,"lower_bound":395903.23007203615,"upper_bound":412016.89280303026,"unit":"ns"},"median":{"estimate":403448.21345029236,"lower_bound":392589.4944976077,"upper_bound":411346.7192982456,"unit":"ns"},"median_abs_dev":{"estimate":11308.299056765385,"lower_bound":2933.9120434469505,"upper_bound":22924.09084564763,"unit":"ns"},"slope":{"estimate":400721.8641024048,"lower_bound":396543.48163860536,"upper_bound":405367.58597353334,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000000","EXACT/exact_decrypt/eql_cast/10000000","EXACT/exact/eql_hash/10000000","EXACT/exact_decrypt/eql_hash/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/group_by_metadata_10000000.json b/results/query/group_by_metadata_10000000.json index 4d6a644..e82a72c 100644 --- a/results/query/group_by_metadata_10000000.json +++ b/results/query/group_by_metadata_10000000.json @@ -66,37 +66,37 @@ "Node Type": "Seq Scan", "Parallel Aware": true, "Parent Relationship": "Outer", - "Plan Rows": 4166672, + "Plan Rows": 4166667, "Plan Width": 32, "Relation Name": "category_encrypted_10000000", "Startup Cost": 0.0, - "Total Cost": 506629.4 + "Total Cost": 506629.33 } ], - "Startup Cost": 517046.08, + "Startup Cost": 517046.0, "Strategy": "Hashed", - "Total Cost": 517049.2 + "Total Cost": 517049.13 } ], "Sort Key": [ "((((category_encrypted_10000000.value).data ->> 'hm'::text))::eql_v2.hmac_256)" ], - "Startup Cost": 517059.16, - "Total Cost": 517059.78 + "Startup Cost": 517059.08, + "Total Cost": 517059.71 } ], - "Startup Cost": 518059.18, - "Total Cost": 518117.52, + "Startup Cost": 518059.11, + "Total Cost": 518117.45, "Workers Planned": 2 } ], - "Startup Cost": 518059.18, - "Total Cost": 518119.4 + "Startup Cost": 518059.11, + "Total Cost": 518119.32 } ], - "Startup Cost": 518122.52, + "Startup Cost": 518122.45, "Strategy": "Plain", - "Total Cost": 518122.53 + "Total Cost": 518122.46 } } ], @@ -109,6 +109,15 @@ { "explain": [ { + "JIT": { + "Functions": 7, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": false, + "Optimization": false + } + }, "Plan": { "Async Capable": false, "Node Type": "Aggregate", @@ -125,24 +134,24 @@ "Node Type": "Group", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 200, - "Plan Width": 36, + "Plan Rows": 250, + "Plan Width": 12, "Plans": [ { "Async Capable": false, "Node Type": "Gather Merge", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 400, - "Plan Width": 32, + "Plan Rows": 500, + "Plan Width": 8, "Plans": [ { "Async Capable": false, "Node Type": "Sort", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 200, - "Plan Width": 32, + "Plan Rows": 250, + "Plan Width": 8, "Plans": [ { "Async Capable": false, @@ -153,8 +162,8 @@ "Parallel Aware": false, "Parent Relationship": "Outer", "Partial Mode": "Partial", - "Plan Rows": 200, - "Plan Width": 32, + "Plan Rows": 250, + "Plan Width": 8, "Planned Partitions": 0, "Plans": [ { @@ -163,37 +172,37 @@ "Node Type": "Seq Scan", "Parallel Aware": true, "Parent Relationship": "Outer", - "Plan Rows": 2860410, - "Plan Width": 32, + "Plan Rows": 4166608, + "Plan Width": 8, "Relation Name": "category_plaintext_10000000", "Startup Cost": 0.0, - "Total Cost": 82659.1 + "Total Cost": 95721.08 } ], - "Startup Cost": 89810.13, + "Startup Cost": 106137.6, "Strategy": "Hashed", - "Total Cost": 89812.13 + "Total Cost": 106140.1 } ], "Sort Key": [ "category_plaintext_10000000.value" ], - "Startup Cost": 89819.77, - "Total Cost": 89820.27 + "Startup Cost": 106150.06, + "Total Cost": 106150.69 } ], - "Startup Cost": 90819.8, - "Total Cost": 90866.47, + "Startup Cost": 107150.08, + "Total Cost": 107208.42, "Workers Planned": 2 } ], - "Startup Cost": 90819.8, - "Total Cost": 90867.47 + "Startup Cost": 107150.08, + "Total Cost": 107209.67 } ], - "Startup Cost": 90869.97, + "Startup Cost": 107212.8, "Strategy": "Plain", - "Total Cost": 90869.98 + "Total Cost": 107212.81 } } ], @@ -277,44 +286,44 @@ "Node Type": "Seq Scan", "Parallel Aware": true, "Parent Relationship": "Outer", - "Plan Rows": 4166672, + "Plan Rows": 4166667, "Plan Width": 32, "Relation Name": "category_encrypted_10000000", "Startup Cost": 0.0, - "Total Cost": 506629.4 + "Total Cost": 506629.33 } ], - "Startup Cost": 527462.76, + "Startup Cost": 527462.67, "Strategy": "Hashed", - "Total Cost": 527465.88 + "Total Cost": 527465.79 } ], "Sort Key": [ "((((value).data ->> 'hm'::text))::eql_v2.hmac_256)" ], - "Startup Cost": 527475.84, - "Total Cost": 527476.46 + "Startup Cost": 527475.75, + "Total Cost": 527476.38 } ], - "Startup Cost": 528475.86, - "Total Cost": 528534.2, + "Startup Cost": 528475.78, + "Total Cost": 528534.11, "Workers Planned": 2 } ], - "Startup Cost": 528475.86, + "Startup Cost": 528475.78, "Strategy": "Sorted", - "Total Cost": 528539.83 + "Total Cost": 528539.74 } ], "Sort Key": [ "(count(*)) DESC" ], - "Startup Cost": 528545.23, - "Total Cost": 528545.85 + "Startup Cost": 528545.14, + "Total Cost": 528545.76 } ], - "Startup Cost": 528545.23, - "Total Cost": 528545.25 + "Startup Cost": 528545.14, + "Total Cost": 528545.16 } } ], @@ -341,15 +350,15 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 10, - "Plan Width": 40, + "Plan Width": 16, "Plans": [ { "Async Capable": false, "Node Type": "Sort", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 200, - "Plan Width": 40, + "Plan Rows": 250, + "Plan Width": 16, "Plans": [ { "Async Capable": false, @@ -360,24 +369,24 @@ "Parallel Aware": false, "Parent Relationship": "Outer", "Partial Mode": "Finalize", - "Plan Rows": 200, - "Plan Width": 40, + "Plan Rows": 250, + "Plan Width": 16, "Plans": [ { "Async Capable": false, "Node Type": "Gather Merge", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 400, - "Plan Width": 40, + "Plan Rows": 500, + "Plan Width": 16, "Plans": [ { "Async Capable": false, "Node Type": "Sort", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 200, - "Plan Width": 40, + "Plan Rows": 250, + "Plan Width": 16, "Plans": [ { "Async Capable": false, @@ -388,8 +397,8 @@ "Parallel Aware": false, "Parent Relationship": "Outer", "Partial Mode": "Partial", - "Plan Rows": 200, - "Plan Width": 40, + "Plan Rows": 250, + "Plan Width": 16, "Planned Partitions": 0, "Plans": [ { @@ -398,44 +407,44 @@ "Node Type": "Seq Scan", "Parallel Aware": true, "Parent Relationship": "Outer", - "Plan Rows": 4166667, - "Plan Width": 32, + "Plan Rows": 4166608, + "Plan Width": 8, "Relation Name": "category_plaintext_10000000", "Startup Cost": 0.0, - "Total Cost": 95721.67 + "Total Cost": 95721.08 } ], - "Startup Cost": 116555.0, + "Startup Cost": 116554.12, "Strategy": "Hashed", - "Total Cost": 116557.0 + "Total Cost": 116556.62 } ], "Sort Key": [ "value" ], - "Startup Cost": 116564.65, - "Total Cost": 116565.15 + "Startup Cost": 116566.58, + "Total Cost": 116567.21 } ], - "Startup Cost": 117564.67, - "Total Cost": 117611.34, + "Startup Cost": 117566.6, + "Total Cost": 117624.94, "Workers Planned": 2 } ], - "Startup Cost": 117564.67, + "Startup Cost": 117566.6, "Strategy": "Sorted", - "Total Cost": 117615.34 + "Total Cost": 117629.94 } ], "Sort Key": [ "(count(*)) DESC" ], - "Startup Cost": 117619.66, - "Total Cost": 117620.16 + "Startup Cost": 117635.34, + "Total Cost": 117635.97 } ], - "Startup Cost": 117619.66, - "Total Cost": 117619.69 + "Startup Cost": 117635.34, + "Total Cost": 117635.37 } } ], diff --git a/results/query/group_by_rows_10000.json b/results/query/group_by_rows_10000.json index 52913e2..75527f7 100644 --- a/results/query/group_by_rows_10000.json +++ b/results/query/group_by_rows_10000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_10000","iteration_count":[34,68,102,136,170,204,238,272,306,340],"measured_values":[88408375.0,181767458.0,276129042.0,345991125.0,454142000.0,508215209.0,624330166.0,689692834.0,926153250.0,899301792.0],"unit":"ns","throughput":[],"typical":{"estimate":2689117.4312452255,"lower_bound":2558893.3012778144,"upper_bound":2853913.494603601,"unit":"ns"},"mean":{"estimate":2651769.287983193,"lower_bound":2578097.5547899157,"upper_bound":2750167.129460083,"unit":"ns"},"median":{"estimate":2634120.631092437,"lower_bound":2544052.3897058824,"upper_bound":2689285.5,"unit":"ns"},"median_abs_dev":{"estimate":82993.76810127166,"lower_bound":20790.189829135456,"upper_bound":176702.42855437528,"unit":"ns"},"slope":{"estimate":2689117.4312452255,"lower_bound":2558893.3012778144,"upper_bound":2853913.494603601,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_10000","iteration_count":[63,126,189,252,315,378,441,504,567,630],"measured_values":[88162083.0,204850917.0,283378459.0,362539333.0,453259542.0,550115709.0,672172791.0,761671875.0,842234000.0,898080583.0],"unit":"ns","throughput":[],"typical":{"estimate":1472877.5492475778,"lower_bound":1442969.8955223882,"upper_bound":1503998.6103050595,"unit":"ns"},"mean":{"estimate":1480385.7200673975,"lower_bound":1445512.8607188053,"upper_bound":1521613.092187815,"unit":"ns"},"median":{"estimate":1470377.0401234566,"lower_bound":1432221.9579365079,"upper_bound":1511779.1330309901,"unit":"ns"},"median_abs_dev":{"estimate":53822.510615292624,"lower_bound":10130.220261819148,"upper_bound":102068.87254998831,"unit":"ns"},"slope":{"estimate":1472877.5492475778,"lower_bound":1442969.8955223882,"upper_bound":1503998.6103050595,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_10000","iteration_count":[34,68,102,136,170,204,238,272,306,340],"measured_values":[89196708.0,183386000.0,263707625.0,361328958.0,469388542.0,560112542.0,676563000.0,723711375.0,787913667.0,875313708.0],"unit":"ns","throughput":[],"typical":{"estimate":2656227.4606569903,"lower_bound":2598211.6482147444,"upper_bound":2753930.412117647,"unit":"ns"},"mean":{"estimate":2672198.2374054617,"lower_bound":2622086.7471580883,"upper_bound":2727194.865515406,"unit":"ns"},"median":{"estimate":2658767.0790441176,"lower_bound":2585368.8725490198,"upper_bound":2745649.7156862747,"unit":"ns"},"median_abs_dev":{"estimate":116594.64257378108,"lower_bound":8410.769301267062,"upper_bound":145162.26170403077,"unit":"ns"},"slope":{"estimate":2656227.4606569903,"lower_bound":2598211.6482147444,"upper_bound":2753930.412117647,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_10000","iteration_count":[59,118,177,236,295,354,413,472,531,590],"measured_values":[97256500.0,185950500.0,265707292.0,418304625.0,438530250.0,542017458.0,632430416.0,821509334.0,809711375.0,963904625.0],"unit":"ns","throughput":[],"typical":{"estimate":1598493.950385208,"lower_bound":1528091.2040759074,"upper_bound":1666500.9541260502,"unit":"ns"},"mean":{"estimate":1594599.2519908526,"lower_bound":1539133.6372117973,"upper_bound":1656658.2447951979,"unit":"ns"},"median":{"estimate":1553580.1041162228,"lower_bound":1516146.951977401,"upper_bound":1687111.2648305085,"unit":"ns"},"median_abs_dev":{"estimate":88545.20455004238,"lower_bound":4903.021134422854,"upper_bound":169473.6879992916,"unit":"ns"},"slope":{"estimate":1598493.950385208,"lower_bound":1528091.2040759074,"upper_bound":1666500.9541260502,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_10000","iteration_count":[36,72,108,144,180,216,252,288,324,360],"measured_values":[91988458.0,195456625.0,268968584.0,401485083.0,466407542.0,554994708.0,658303708.0,722662625.0,905021875.0,900919625.0],"unit":"ns","throughput":[],"typical":{"estimate":2604731.1566378064,"lower_bound":2526196.759729272,"upper_bound":2713124.618955801,"unit":"ns"},"mean":{"estimate":2612641.7386386683,"lower_bound":2549709.74794957,"upper_bound":2682058.418896605,"unit":"ns"},"median":{"estimate":2580286.4777777777,"lower_bound":2509245.2256944445,"upper_bound":2714675.347222222,"unit":"ns"},"median_abs_dev":{"estimate":110285.58304224761,"lower_bound":17946.371617499735,"upper_bound":188569.36825477044,"unit":"ns"},"slope":{"estimate":2604731.1566378064,"lower_bound":2526196.759729272,"upper_bound":2713124.618955801,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_10000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[85361083.0,204149625.0,269259250.0,343580709.0,438174209.0,510711917.0,633174000.0,737631750.0,775936458.0,874722792.0],"unit":"ns","throughput":[],"typical":{"estimate":1424165.5428571429,"lower_bound":1397850.1880379696,"upper_bound":1458381.4691629957,"unit":"ns"},"mean":{"estimate":1439004.0149001537,"lower_bound":1398727.2186465056,"upper_bound":1492951.1726385367,"unit":"ns"},"median":{"estimate":1412154.2016129033,"lower_bound":1383679.3951612904,"upper_bound":1467395.5813172045,"unit":"ns"},"median_abs_dev":{"estimate":52512.738537067395,"lower_bound":9284.476449280523,"upper_bound":96801.49487780103,"unit":"ns"},"slope":{"estimate":1424165.5428571429,"lower_bound":1397850.1880379696,"upper_bound":1458381.4691629957,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_10000","iteration_count":[33,66,99,132,165,198,231,264,297,330],"measured_values":[99136083.0,181717041.0,271579250.0,347354709.0,425327375.0,550124084.0,608875709.0,696998667.0,789057375.0,920706500.0],"unit":"ns","throughput":[],"typical":{"estimate":2695065.6280204644,"lower_bound":2638354.7555903867,"upper_bound":2752993.8873430877,"unit":"ns"},"mean":{"estimate":2721100.875559163,"lower_bound":2655990.2787157292,"upper_bound":2798608.429267676,"unit":"ns"},"median":{"estimate":2699991.7929292927,"lower_bound":2635810.7670454546,"upper_bound":2778404.4646464647,"unit":"ns"},"median_abs_dev":{"estimate":98357.85988940451,"lower_bound":7460.25961452413,"upper_bound":192666.55379198492,"unit":"ns"},"slope":{"estimate":2695065.6280204644,"lower_bound":2638354.7555903867,"upper_bound":2752993.8873430877,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_10000","iteration_count":[59,118,177,236,295,354,413,472,531,590],"measured_values":[93392375.0,181769417.0,266154167.0,345692459.0,427384375.0,518270208.0,677911875.0,701348417.0,930560708.0,877597666.0],"unit":"ns","throughput":[],"typical":{"estimate":1558084.9730134273,"lower_bound":1476328.885478699,"upper_bound":1657456.0115979556,"unit":"ns"},"mean":{"estimate":1537189.8363310464,"lower_bound":1486487.0023833232,"upper_bound":1598698.7693818938,"unit":"ns"},"median":{"estimate":1495574.7649717513,"lower_bound":1464798.5550847459,"upper_bound":1590925.9497578694,"unit":"ns"},"median_abs_dev":{"estimate":56619.494124464094,"lower_bound":12451.157278100494,"upper_bound":144125.58343723376,"unit":"ns"},"slope":{"estimate":1558084.9730134273,"lower_bound":1476328.885478699,"upper_bound":1657456.0115979556,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/low_cardinality_groups_encrypted/10000","GROUP_BY/group_by/low_cardinality_groups_plaintext/10000","GROUP_BY/group_by/top_n_groups_encrypted/10000","GROUP_BY/group_by/top_n_groups_plaintext/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_100000.json b/results/query/group_by_rows_100000.json index 632c71e..8e10535 100644 --- a/results/query/group_by_rows_100000.json +++ b/results/query/group_by_rows_100000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114647209.0,231219209.0,340932542.0,461350125.0,573027500.0,692180750.0,804687875.0,911892000.0,1075452916.0,1136314292.0],"unit":"ns","throughput":[],"typical":{"estimate":28853036.39090909,"lower_bound":28495999.96430528,"upper_bound":29383002.012575783,"unit":"ns"},"mean":{"estimate":28781889.80271826,"lower_bound":28576699.019583337,"upper_bound":29065213.031190477,"unit":"ns"},"median":{"estimate":28700327.464285716,"lower_bound":28496625.0,"upper_bound":28868391.96875,"unit":"ns"},"median_abs_dev":{"estimate":253977.36652849632,"lower_bound":50421.974161081016,"upper_bound":488370.57403968845,"unit":"ns"},"slope":{"estimate":28853036.39090909,"lower_bound":28495999.96430528,"upper_bound":29383002.012575783,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_100000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[96402750.0,194903208.0,290676333.0,404464333.0,503683042.0,597970958.0,693547209.0,783382375.0,879896000.0,971030416.0],"unit":"ns","throughput":[],"typical":{"estimate":9826907.552727273,"lower_bound":9760865.891369352,"upper_bound":9942034.786484558,"unit":"ns"},"mean":{"estimate":9841312.163948413,"lower_bound":9748730.2350249,"upper_bound":9941198.604642857,"unit":"ns"},"median":{"estimate":9784450.954861112,"lower_bound":9710304.16,"upper_bound":9990739.055714287,"unit":"ns"},"median_abs_dev":{"estimate":162052.75200298926,"lower_bound":34929.527203626654,"upper_bound":269356.3021019709,"unit":"ns"},"slope":{"estimate":9826907.552727273,"lower_bound":9760865.891369352,"upper_bound":9942034.786484558,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[122797042.0,242222792.0,380083166.0,484474583.0,606909291.0,719773916.0,838029666.0,1072286084.0,1125072917.0,1216005875.0],"unit":"ns","throughput":[],"typical":{"estimate":31018695.937662337,"lower_bound":30196944.529805962,"upper_bound":32090529.42907563,"unit":"ns"},"mean":{"estimate":30835715.58882937,"lower_bound":30296694.039229162,"upper_bound":31547384.42243452,"unit":"ns"},"median":{"estimate":30372805.7125,"lower_bound":30135120.635416664,"upper_bound":31252025.472222224,"unit":"ns"},"median_abs_dev":{"estimate":525344.9688732633,"lower_bound":50123.40632513221,"upper_bound":1352311.039052099,"unit":"ns"},"slope":{"estimate":31018695.937662337,"lower_bound":30196944.529805962,"upper_bound":32090529.42907563,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_100000","iteration_count":[9,18,27,36,45,54,63,72,81,90],"measured_values":[94096250.0,186803625.0,281869959.0,374115292.0,476145334.0,555391375.0,651754709.0,743473125.0,845353667.0,948257875.0],"unit":"ns","throughput":[],"typical":{"estimate":10425304.236940837,"lower_bound":10343771.402424464,"upper_bound":10495569.930320151,"unit":"ns"},"mean":{"estimate":10417486.259836862,"lower_bound":10364803.78025463,"upper_bound":10472899.944126984,"unit":"ns"},"median":{"estimate":10414278.234567901,"lower_bound":10345312.841269841,"upper_bound":10487913.361111112,"unit":"ns"},"median_abs_dev":{"estimate":81414.047654611,"lower_bound":16187.731205202643,"upper_bound":155808.6448380109,"unit":"ns"},"slope":{"estimate":10425304.236940837,"lower_bound":10343771.402424464,"upper_bound":10495569.930320151,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[113679333.0,229558917.0,346893083.0,453830916.0,560018833.0,702506292.0,867565083.0,945768750.0,1110376083.0,1177259917.0],"unit":"ns","throughput":[],"typical":{"estimate":29772091.87987013,"lower_bound":29051233.65140643,"upper_bound":30392888.14090909,"unit":"ns"},"mean":{"estimate":29247394.28875,"lower_bound":28693175.679166667,"upper_bound":29866961.90083333,"unit":"ns"},"median":{"estimate":29089426.208333336,"lower_bound":28419833.25,"upper_bound":30137639.004166666,"unit":"ns"},"median_abs_dev":{"estimate":841701.796050556,"lower_bound":208582.78959691708,"upper_bound":1796871.7556491485,"unit":"ns"},"slope":{"estimate":29772091.87987013,"lower_bound":29051233.65140643,"upper_bound":30392888.14090909,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_100000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[97312042.0,198201959.0,300188417.0,416788000.0,502233500.0,576191125.0,714113417.0,815159209.0,879460542.0,970984084.0],"unit":"ns","throughput":[],"typical":{"estimate":9915532.667532468,"lower_bound":9761307.980727956,"upper_bound":10143085.461699184,"unit":"ns"},"mean":{"estimate":9958787.312869048,"lower_bound":9808270.872952381,"upper_bound":10114145.672321428,"unit":"ns"},"median":{"estimate":9958189.258333333,"lower_bound":9731204.2,"upper_bound":10189490.1125,"unit":"ns"},"median_abs_dev":{"estimate":339727.34090488515,"lower_bound":45918.315432787604,"upper_bound":448664.3206383655,"unit":"ns"},"slope":{"estimate":9915532.667532468,"lower_bound":9761307.980727956,"upper_bound":10143085.461699184,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[110845917.0,227097458.0,345157292.0,469219833.0,633803750.0,709241791.0,820501166.0,929714667.0,1036978500.0,1139476084.0],"unit":"ns","throughput":[],"typical":{"estimate":29097827.516233765,"lower_bound":28727454.809322033,"upper_bound":29797244.221098267,"unit":"ns"},"mean":{"estimate":29107899.436934523,"lower_bound":28562223.044937503,"upper_bound":29797116.552537944,"unit":"ns"},"median":{"estimate":28929270.838541664,"lower_bound":28486902.1,"upper_bound":29427677.18154762,"unit":"ns"},"median_abs_dev":{"estimate":622200.8499049757,"lower_bound":183937.44639696163,"upper_bound":1354393.0799347155,"unit":"ns"},"slope":{"estimate":29097827.516233765,"lower_bound":28727454.809322033,"upper_bound":29797244.221098267,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_100000","iteration_count":[9,18,27,36,45,54,63,72,81,90],"measured_values":[92935875.0,192073542.0,273620458.0,376508500.0,479038000.0,561697500.0,638258916.0,762104250.0,835612667.0,910486250.0],"unit":"ns","throughput":[],"typical":{"estimate":10320166.305339105,"lower_bound":10191206.142504409,"upper_bound":10497505.140296979,"unit":"ns"},"mean":{"estimate":10378531.04016755,"lower_bound":10254394.339467593,"upper_bound":10503585.855864197,"unit":"ns"},"median":{"estimate":10364006.944444444,"lower_bound":10134091.037037037,"upper_bound":10584781.25,"unit":"ns"},"median_abs_dev":{"estimate":334096.64893804304,"lower_bound":15251.713807006689,"upper_bound":377759.25901935936,"unit":"ns"},"slope":{"estimate":10320166.305339105,"lower_bound":10191206.142504409,"upper_bound":10497505.140296979,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/low_cardinality_groups_encrypted/100000","GROUP_BY/group_by/low_cardinality_groups_plaintext/100000","GROUP_BY/group_by/top_n_groups_encrypted/100000","GROUP_BY/group_by/top_n_groups_plaintext/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_1000000.json b/results/query/group_by_rows_1000000.json index 9ca4b56..7bc520d 100644 --- a/results/query/group_by_rows_1000000.json +++ b/results/query/group_by_rows_1000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_1000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[97285375.0,187136459.0,281655709.0,369882167.0,461039666.0,558541250.0,657346125.0,730197917.0,838316875.0,914212417.0],"unit":"ns","throughput":[],"typical":{"estimate":92422031.62077922,"lower_bound":91713217.43025261,"upper_bound":93346258.56955342,"unit":"ns"},"mean":{"estimate":93225641.41718253,"lower_bound":92336442.83440875,"upper_bound":94307605.28544246,"unit":"ns"},"median":{"estimate":93118263.8888889,"lower_bound":92207933.2,"upper_bound":93885236.33333333,"unit":"ns"},"median_abs_dev":{"estimate":1152942.2692645013,"lower_bound":250826.1046969449,"upper_bound":2504693.805532809,"unit":"ns"},"slope":{"estimate":92422031.62077922,"lower_bound":91713217.43025261,"upper_bound":93346258.56955342,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[104043042.0,211974833.0,330034875.0,420787208.0,545895167.0,629364542.0,733435666.0,943604834.0,948801792.0,1050020625.0],"unit":"ns","throughput":[],"typical":{"estimate":35869454.51428571,"lower_bound":35037711.10671171,"upper_bound":37418877.89849184,"unit":"ns"},"mean":{"estimate":35748787.36769841,"lower_bound":35063424.774940476,"upper_bound":36680156.46428572,"unit":"ns"},"median":{"estimate":35103203.88888889,"lower_bound":34963097.702380955,"upper_bound":36393011.13333333,"unit":"ns"},"median_abs_dev":{"estimate":299211.60203793534,"lower_bound":58101.42210182707,"upper_bound":1820778.013054726,"unit":"ns"},"slope":{"estimate":35869454.51428571,"lower_bound":35037711.10671171,"upper_bound":37418877.89849184,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_1000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[95740625.0,182119708.0,281056375.0,369563709.0,460258542.0,557301208.0,645675625.0,734645084.0,837533541.0,923105708.0],"unit":"ns","throughput":[],"typical":{"estimate":92447410.27532467,"lower_bound":92109668.6150119,"upper_bound":92828983.12590799,"unit":"ns"},"mean":{"estimate":92725197.12833333,"lower_bound":92057495.740375,"upper_bound":93550932.95024998,"unit":"ns"},"median":{"estimate":92350749.025,"lower_bound":92035005.25,"upper_bound":93284496.5,"unit":"ns"},"median_abs_dev":{"estimate":780514.1383931078,"lower_bound":119136.47065490927,"upper_bound":1801535.2491563647,"unit":"ns"},"slope":{"estimate":92447410.27532467,"lower_bound":92109668.6150119,"upper_bound":92828983.12590799,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[111631208.0,223926042.0,338640708.0,452082875.0,567223958.0,677574166.0,790135709.0,887600917.0,1001754041.0,1108130625.0],"unit":"ns","throughput":[],"typical":{"estimate":37241689.71428572,"lower_bound":37056701.651741296,"upper_bound":37621754.369327076,"unit":"ns"},"mean":{"estimate":37393823.81847884,"lower_bound":37203069.88458995,"upper_bound":37577096.7843244,"unit":"ns"},"median":{"estimate":37473258.47619048,"lower_bound":37096887.104166664,"upper_bound":37650159.125,"unit":"ns"},"median_abs_dev":{"estimate":343348.1002293527,"lower_bound":13887.99638677097,"upper_bound":505647.1950429575,"unit":"ns"},"slope":{"estimate":37241689.71428572,"lower_bound":37056701.651741296,"upper_bound":37621754.369327076,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_1000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[93405292.0,189117208.0,280829542.0,373702625.0,460283541.0,557063417.0,658897917.0,755014875.0,834733666.0,930283250.0],"unit":"ns","throughput":[],"typical":{"estimate":93300199.88051948,"lower_bound":92822606.07234727,"upper_bound":93906599.81767084,"unit":"ns"},"mean":{"estimate":93418165.39599207,"lower_bound":92952403.40944445,"upper_bound":93872214.04916666,"unit":"ns"},"median":{"estimate":93415474.125,"lower_bound":92843902.83333333,"upper_bound":94128273.85714285,"unit":"ns"},"median_abs_dev":{"estimate":918367.1282040662,"lower_bound":151636.8659079038,"upper_bound":1351338.514508936,"unit":"ns"},"slope":{"estimate":93300199.88051948,"lower_bound":92822606.07234727,"upper_bound":93906599.81767084,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[108842583.0,217438458.0,319358917.0,427207792.0,525743750.0,654958916.0,791166041.0,858827375.0,965721041.0,1083424459.0],"unit":"ns","throughput":[],"typical":{"estimate":36107025.896103896,"lower_bound":35689502.91479938,"upper_bound":36668647.71442495,"unit":"ns"},"mean":{"estimate":36038240.915780425,"lower_bound":35656725.94435185,"upper_bound":36486797.59068387,"unit":"ns"},"median":{"estimate":35949311.295833334,"lower_bound":35600649.333333336,"upper_bound":36313174.722222224,"unit":"ns"},"median_abs_dev":{"estimate":504240.89954793267,"lower_bound":108869.86943384257,"upper_bound":1008481.7990958653,"unit":"ns"},"slope":{"estimate":36107025.896103896,"lower_bound":35689502.91479938,"upper_bound":36668647.71442495,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_1000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[93738167.0,191265541.0,284848167.0,380612708.0,470314250.0,575247166.0,667095292.0,752894209.0,841390458.0,932468125.0],"unit":"ns","throughput":[],"typical":{"estimate":94146324.45714286,"lower_bound":93601674.27976191,"upper_bound":95086951.82918149,"unit":"ns"},"mean":{"estimate":94555662.58869047,"lower_bound":94008724.1475,"upper_bound":95106161.31520833,"unit":"ns"},"median":{"estimate":94530582.5625,"lower_bound":93738167.0,"upper_bound":95392973.75,"unit":"ns"},"median_abs_dev":{"estimate":1157288.2051540304,"lower_bound":259409.35249456653,"upper_bound":1521529.2895374584,"unit":"ns"},"slope":{"estimate":94146324.45714286,"lower_bound":93601674.27976191,"upper_bound":95086951.82918149,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[113915167.0,222917042.0,333246500.0,451843542.0,555447792.0,666167250.0,800078833.0,892618709.0,998159209.0,1110697375.0],"unit":"ns","throughput":[],"typical":{"estimate":37206072.3056277,"lower_bound":37018206.686286084,"upper_bound":37569397.98837079,"unit":"ns"},"mean":{"estimate":37312826.82041005,"lower_bound":37080131.3550926,"upper_bound":37582832.80734126,"unit":"ns"},"median":{"estimate":37091346.56666666,"lower_bound":37018340.277777776,"upper_bound":37653628.5,"unit":"ns"},"median_abs_dev":{"estimate":135772.4593270607,"lower_bound":6142.494057610688,"upper_bound":660295.9839773987,"unit":"ns"},"slope":{"estimate":37206072.3056277,"lower_bound":37018206.686286084,"upper_bound":37569397.98837079,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/low_cardinality_groups_encrypted/1000000","GROUP_BY/group_by/low_cardinality_groups_plaintext/1000000","GROUP_BY/group_by/top_n_groups_encrypted/1000000","GROUP_BY/group_by/top_n_groups_plaintext/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_10000000.json b/results/query/group_by_rows_10000000.json index 22daadf..011ac07 100644 --- a/results/query/group_by_rows_10000000.json +++ b/results/query/group_by_rows_10000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1729221292.0,1573000375.0,1641893291.0,1512912167.0,1566985250.0,1558926417.0,1469335041.0,1552615000.0,1490557917.0,1769750167.0],"unit":"ns","throughput":[],"typical":{"estimate":1586519691.7,"lower_bound":1532414954.1,"upper_bound":1646350333.4,"unit":"ns"},"mean":{"estimate":1586519691.7,"lower_bound":1532414954.1,"upper_bound":1646350333.4,"unit":"ns"},"median":{"estimate":1562955833.5,"lower_bound":1512912167.0,"upper_bound":1651110833.5,"unit":"ns"},"median_abs_dev":{"estimate":90765943.86648238,"lower_bound":10433024.880176783,"upper_bound":160962296.439448,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_10000000","iteration_count":[2,2,2,2,2,2,2,2,2,2],"measured_values":[915113875.0,995869750.0,965954250.0,902538959.0,886525292.0,899172083.0,885181208.0,947293500.0,928734584.0,912454417.0],"unit":"ns","throughput":[],"typical":{"estimate":461941895.9,"lower_bound":452059277.15,"upper_bound":473189725.05,"unit":"ns"},"mean":{"estimate":461941895.9,"lower_bound":452059277.15,"upper_bound":473189725.05,"unit":"ns"},"median":{"estimate":456892073.0,"lower_bound":447266062.75,"upper_bound":473672208.5,"unit":"ns"},"median_abs_dev":{"estimate":15644873.802047968,"lower_bound":4660892.5326526165,"upper_bound":29440342.760029435,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1541035166.0,1537349250.0,1392980000.0,1412398042.0,1446087041.0,1471600500.0,1406124083.0,1399530958.0,1439569417.0,1447675750.0],"unit":"ns","throughput":[],"typical":{"estimate":1449435020.7,"lower_bound":1420230583.1,"upper_bound":1482748623.0175,"unit":"ns"},"mean":{"estimate":1449435020.7,"lower_bound":1420230583.1,"upper_bound":1482748623.0175,"unit":"ns"},"median":{"estimate":1442828229.0,"lower_bound":1405964500.0,"upper_bound":1492512500.0,"unit":"ns"},"median_abs_dev":{"estimate":49766680.16936481,"lower_bound":6009224.546214938,"upper_bound":92424448.39663804,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_10000000","iteration_count":[2,2,2,2,2,2,2,2,2,2],"measured_values":[930299750.0,931321500.0,918958125.0,922620084.0,918138000.0,925419583.0,923402292.0,928099375.0,948204833.0,943182125.0],"unit":"ns","throughput":[],"typical":{"estimate":464482283.35,"lower_bound":461797727.1,"upper_bound":467570801.2525,"unit":"ns"},"mean":{"estimate":464482283.35,"lower_bound":461797727.1,"upper_bound":467570801.2525,"unit":"ns"},"median":{"estimate":463379739.5,"lower_bound":460590104.25,"upper_bound":468370468.75,"unit":"ns"},"median_abs_dev":{"estimate":3225179.783141613,"lower_bound":993264.8871660233,"upper_bound":8445352.762565017,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[2282320333.0,2223679875.0,2135665333.0,2108067625.0,1447996125.0,1264820667.0,1297686417.0,1382452833.0,1284177042.0,1266832833.0],"unit":"ns","throughput":[],"typical":{"estimate":1669369908.3,"lower_bound":1406129304.1,"upper_bound":1940243458.2,"unit":"ns"},"mean":{"estimate":1669369908.3,"lower_bound":1406129304.1,"upper_bound":1940243458.2,"unit":"ns"},"median":{"estimate":1415224479.0,"lower_bound":1282259625.0,"upper_bound":2165873750.0,"unit":"ns"},"median_abs_dev":{"estimate":221497069.08304095,"lower_bound":20028999.019414186,"upper_bound":709304954.5669198,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[536556959.0,725182792.0,543144959.0,556719041.0,535736125.0,546697000.0,534537416.0,540182292.0,525512333.0,534422959.0],"unit":"ns","throughput":[],"typical":{"estimate":557869187.6,"lower_bound":535490400.0,"upper_bound":596728984.3475,"unit":"ns"},"mean":{"estimate":557869187.6,"lower_bound":535490400.0,"upper_bound":596728984.3475,"unit":"ns"},"median":{"estimate":538369625.5,"lower_bound":534537416.0,"upper_bound":549932000.0,"unit":"ns"},"median_abs_dev":{"estimate":6465618.485212326,"lower_bound":1058296.911111474,"upper_bound":20797478.770270944,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1308763750.0,1338264708.0,1299100750.0,1352410291.0,1407803625.0,1422844584.0,1401692417.0,1322723125.0,1379087667.0,1288296334.0],"unit":"ns","throughput":[],"typical":{"estimate":1352098725.1,"lower_bound":1324117151.9775,"upper_bound":1380946968.4975,"unit":"ns"},"mean":{"estimate":1352098725.1,"lower_bound":1324117151.9775,"upper_bound":1380946968.4975,"unit":"ns"},"median":{"estimate":1345337499.5,"lower_bound":1308763750.0,"upper_bound":1401692417.0,"unit":"ns"},"median_abs_dev":{"estimate":61387421.818855405,"lower_bound":15172495.211434364,"upper_bound":79036724.08341765,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[568703916.0,573948709.0,589475250.0,644714750.0,555414459.0,769295916.0,586040667.0,584806500.0,569942958.0,562132834.0],"unit":"ns","throughput":[],"typical":{"estimate":600447595.9,"lower_bound":571101882.1,"upper_bound":643323703.6875,"unit":"ns"},"mean":{"estimate":600447595.9,"lower_bound":571101882.1,"upper_bound":643323703.6875,"unit":"ns"},"median":{"estimate":579377604.5,"lower_bound":566037896.0,"upper_bound":615377708.5,"unit":"ns"},"median_abs_dev":{"estimate":15397789.620834589,"lower_bound":3460944.313555956,"upper_bound":52458865.26196897,"unit":"ns"},"slope":null,"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/low_cardinality_groups_encrypted/10000000","GROUP_BY/group_by/low_cardinality_groups_plaintext/10000000","GROUP_BY/group_by/top_n_groups_encrypted/10000000","GROUP_BY/group_by/top_n_groups_plaintext/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/match_metadata_10000.json b/results/query/match_metadata_10000.json index e1db01e..4e2da23 100644 --- a/results/query/match_metadata_10000.json +++ b/results/query/match_metadata_10000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,461,453,1393,1554}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1164,1603,1555,36,10}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,91,461,453,1393,1554}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1164,1603,1555,36,10}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.73 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 1033, - 91, - 461, - 453, - 1393, - 1554 + 1789, + 1164, + 1603, + 1555, + 36, + 10 ], "i": { "c": "value", @@ -65,7 +65,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 4 + "rows_returned": 0 }, { "explain": [ @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1109,1596,895,61,1143,1845,1057,865,710,830,1496,582,1068,792,1751,1574,1500,682,2028,1031,1200,587,421,1637,1735,1760,1183,1453,998,1018}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,523,2024,1098,835,1967,1665,1196,242,461,518,574,513,1987,1846,702,543,1381,1061,1609,44,1988,820,1185,765,450,97,1659,1715}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -99,7 +99,7 @@ "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1109,1596,895,61,1143,1845,1057,865,710,830,1496,582,1068,792,1751,1574,1500,682,2028,1031,1200,587,421,1637,1735,1760,1183,1453,998,1018}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,523,2024,1098,835,1967,1665,1196,242,461,518,574,513,1987,1846,702,543,1381,1061,1609,44,1988,820,1185,765,450,97,1659,1715}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ - 1109, - 1596, - 895, - 61, - 1143, - 1845, - 1057, - 865, - 710, - 830, - 1496, - 582, - 1068, - 792, - 1751, - 1574, - 1500, - 682, - 2028, - 1031, - 1200, - 587, - 421, - 1637, - 1735, - 1760, - 1183, - 1453, - 998, - 1018 + 290, + 237, + 523, + 2024, + 1098, + 835, + 1967, + 1665, + 1196, + 242, + 461, + 518, + 574, + 513, + 1987, + 1846, + 702, + 543, + 1381, + 1061, + 1609, + 44, + 1988, + 820, + 1185, + 765, + 450, + 97, + 1659, + 1715 ], "i": { "c": "value", @@ -156,7 +156,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 }, { "explain": [ @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,682,1057,1760,1496,1183,1453,998,1143,1200,792,1109,1596,865,1845,710,1735,61,582,1574,587,1751,1637,830,2028,1068,895,421,1018,1500}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1967,1061,1185,97,242,237,702,820,1987,1659,1098,2024,1665,44,523,1715,461,1196,450,835,765,543,1846,1988,518,290,1381,574,1609,513}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -190,7 +190,7 @@ "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,682,1057,1760,1496,1183,1453,998,1143,1200,792,1109,1596,865,1845,710,1735,61,582,1574,587,1751,1637,830,2028,1068,895,421,1018,1500}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1967,1061,1185,97,242,237,702,820,1987,1659,1098,2024,1665,44,523,1715,461,1196,450,835,765,543,1846,1988,518,290,1381,574,1609,513}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -208,36 +208,36 @@ "parameters": [ { "bf": [ - 1031, - 682, - 1057, - 1760, - 1496, - 1183, - 1453, - 998, - 1143, - 1200, - 792, - 1109, - 1596, - 865, - 1845, - 710, - 1735, - 61, - 582, - 1574, - 587, - 1751, - 1637, - 830, - 2028, - 1068, - 895, - 421, - 1018, - 1500 + 1967, + 1061, + 1185, + 97, + 242, + 237, + 702, + 820, + 1987, + 1659, + 1098, + 2024, + 1665, + 44, + 523, + 1715, + 461, + 1196, + 450, + 835, + 765, + 543, + 1846, + 1988, + 518, + 290, + 1381, + 574, + 1609, + 513 ], "i": { "c": "value", @@ -247,7 +247,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 } ], "target_rows": "10000" diff --git a/results/query/match_metadata_100000.json b/results/query/match_metadata_100000.json index d52bbe9..0e0184f 100644 --- a/results/query/match_metadata_100000.json +++ b/results/query/match_metadata_100000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,453,91,1033,1393,461}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1603,10,1789,1555,1164,36}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1554,453,91,1033,1393,461}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1603,10,1789,1555,1164,36}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 1554, - 453, - 91, - 1033, - 1393, - 461 + 1603, + 10, + 1789, + 1555, + 1164, + 36 ], "i": { "c": "value", @@ -65,7 +65,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 }, { "explain": [ @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1496,1500,1735,1183,895,1143,1845,1109,421,830,1751,682,1574,792,1637,1760,1068,61,865,2028,582,1018,587,1453,998,1200,1031,710,1596,1057}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{513,1967,574,523,97,1987,820,242,765,290,1098,1196,450,543,835,1988,44,1846,518,237,1659,1609,1381,1061,1665,1185,702,2024,1715,461}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -99,7 +99,7 @@ "Total Cost": 454.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1496,1500,1735,1183,895,1143,1845,1109,421,830,1751,682,1574,792,1637,1760,1068,61,865,2028,582,1018,587,1453,998,1200,1031,710,1596,1057}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{513,1967,574,523,97,1987,820,242,765,290,1098,1196,450,543,835,1988,44,1846,518,237,1659,1609,1381,1061,1665,1185,702,2024,1715,461}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 454.35, "Total Cost": 458.86 @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ - 1496, - 1500, - 1735, - 1183, - 895, - 1143, - 1845, - 1109, - 421, - 830, - 1751, - 682, - 1574, - 792, - 1637, - 1760, - 1068, - 61, - 865, - 2028, - 582, - 1018, - 587, - 1453, - 998, - 1200, - 1031, - 710, - 1596, - 1057 + 513, + 1967, + 574, + 523, + 97, + 1987, + 820, + 242, + 765, + 290, + 1098, + 1196, + 450, + 543, + 835, + 1988, + 44, + 1846, + 518, + 237, + 1659, + 1609, + 1381, + 1061, + 1665, + 1185, + 702, + 2024, + 1715, + 461 ], "i": { "c": "value", @@ -156,7 +156,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 }, { "explain": [ @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1183,792,865,1500,1057,1751,830,1596,710,587,61,1574,582,1143,1018,895,1200,421,1453,2028,682,1068,1735,1760,998,1845,1496,1637,1109}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{44,1098,1381,290,237,461,1609,242,1665,1715,1967,1988,2024,1196,1846,1659,1061,1987,450,1185,97,820,523,765,543,513,702,518,574,835}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -190,7 +190,7 @@ "Total Cost": 454.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1031,1183,792,865,1500,1057,1751,830,1596,710,587,61,1574,582,1143,1018,895,1200,421,1453,2028,682,1068,1735,1760,998,1845,1496,1637,1109}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{44,1098,1381,290,237,461,1609,242,1665,1715,1967,1988,2024,1196,1846,1659,1061,1987,450,1185,97,820,523,765,543,513,702,518,574,835}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 454.35, "Total Cost": 458.86 @@ -208,36 +208,36 @@ "parameters": [ { "bf": [ - 1031, - 1183, - 792, - 865, - 1500, - 1057, - 1751, - 830, - 1596, - 710, - 587, - 61, - 1574, - 582, - 1143, - 1018, - 895, - 1200, - 421, - 1453, - 2028, - 682, - 1068, - 1735, - 1760, - 998, - 1845, - 1496, - 1637, - 1109 + 44, + 1098, + 1381, + 290, + 237, + 461, + 1609, + 242, + 1665, + 1715, + 1967, + 1988, + 2024, + 1196, + 1846, + 1659, + 1061, + 1987, + 450, + 1185, + 97, + 820, + 523, + 765, + 543, + 513, + 702, + 518, + 574, + 835 ], "i": { "c": "value", @@ -247,7 +247,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 } ], "target_rows": "100000" diff --git a/results/query/match_metadata_1000000.json b/results/query/match_metadata_1000000.json index 1e649e1..67499fe 100644 --- a/results/query/match_metadata_1000000.json +++ b/results/query/match_metadata_1000000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,461,91,453,1393}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,1789,1603,36,1555,10}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 307.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1033,1554,461,91,453,1393}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,1789,1603,36,1555,10}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 307.85, "Total Cost": 312.36 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 1033, - 1554, - 461, - 91, - 453, - 1393 + 1164, + 1789, + 1603, + 36, + 1555, + 10 ], "i": { "c": "value", @@ -65,7 +65,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 }, { "explain": [ @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{830,421,1735,1574,1751,1200,1143,710,895,1031,792,1068,2028,1018,61,1845,1596,682,1109,1637,1496,865,1500,582,587,1183,1760,1453,1057,998}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,702,461,543,1098,44,523,1665,518,450,2024,1987,242,1609,1185,1967,1196,1381,835,765,1846,1659,1061,820,1988,574,513,97,1715}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -99,7 +99,7 @@ "Total Cost": 1530.98 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{830,421,1735,1574,1751,1200,1143,710,895,1031,792,1068,2028,1018,61,1845,1596,682,1109,1637,1496,865,1500,582,587,1183,1760,1453,1057,998}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,702,461,543,1098,44,523,1665,518,450,2024,1987,242,1609,1185,1967,1196,1381,835,765,1846,1659,1061,820,1988,574,513,97,1715}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1530.98, "Total Cost": 1535.49 @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ - 830, - 421, - 1735, - 1574, - 1751, - 1200, - 1143, - 710, - 895, - 1031, - 792, - 1068, - 2028, - 1018, - 61, - 1845, - 1596, - 682, - 1109, - 1637, - 1496, - 865, - 1500, - 582, - 587, - 1183, - 1760, - 1453, - 1057, - 998 + 290, + 237, + 702, + 461, + 543, + 1098, + 44, + 523, + 1665, + 518, + 450, + 2024, + 1987, + 242, + 1609, + 1185, + 1967, + 1196, + 1381, + 835, + 765, + 1846, + 1659, + 1061, + 820, + 1988, + 574, + 513, + 97, + 1715 ], "i": { "c": "value", @@ -156,7 +156,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 }, { "explain": [ @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1637,61,830,682,1109,1068,1031,1735,1596,1751,1845,1496,998,792,582,1183,1143,2028,865,1574,1018,587,1500,1760,895,421,1057,1200,1453,710}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1381,1846,450,1185,765,1609,574,543,1665,702,513,1659,1715,1988,1098,835,97,242,290,461,237,44,820,1987,2024,1061,1196,1967,518}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -190,7 +190,7 @@ "Total Cost": 1530.98 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1637,61,830,682,1109,1068,1031,1735,1596,1751,1845,1496,998,792,582,1183,1143,2028,865,1574,1018,587,1500,1760,895,421,1057,1200,1453,710}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1381,1846,450,1185,765,1609,574,543,1665,702,513,1659,1715,1988,1098,835,97,242,290,461,237,44,820,1987,2024,1061,1196,1967,518}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1530.98, "Total Cost": 1535.49 @@ -208,36 +208,36 @@ "parameters": [ { "bf": [ - 1637, - 61, - 830, - 682, - 1109, - 1068, - 1031, - 1735, - 1596, - 1751, - 1845, - 1496, - 998, - 792, - 582, - 1183, - 1143, - 2028, - 865, - 1574, - 1018, - 587, - 1500, - 1760, - 895, - 421, - 1057, - 1200, - 1453, - 710 + 523, + 1381, + 1846, + 450, + 1185, + 765, + 1609, + 574, + 543, + 1665, + 702, + 513, + 1659, + 1715, + 1988, + 1098, + 835, + 97, + 242, + 290, + 461, + 237, + 44, + 820, + 1987, + 2024, + 1061, + 1196, + 1967, + 518 ], "i": { "c": "value", @@ -247,7 +247,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 } ], "target_rows": "1000000" diff --git a/results/query/match_metadata_10000000.json b/results/query/match_metadata_10000000.json index 8f95d08..d173c0c 100644 --- a/results/query/match_metadata_10000000.json +++ b/results/query/match_metadata_10000000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,1393,453,1554,1033,461}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1555,1603,36,10,1164}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 2258.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{91,1393,453,1554,1033,461}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1555,1603,36,10,1164}'::smallint[])", "Relation Name": "string_encrypted_10000000", "Startup Cost": 2258.97, "Total Cost": 2263.48 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 91, - 1393, - 453, - 1554, - 1033, - 461 + 1789, + 1555, + 1603, + 36, + 10, + 1164 ], "i": { "c": "value", @@ -65,7 +65,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 }, { "explain": [ @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,710,1109,1200,421,1637,587,61,1143,2028,865,1574,998,682,582,1751,1845,1453,1183,1057,1031,1500,1596,1068,1496,1018,830,895,1735}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{702,1381,835,97,765,450,1988,44,1061,523,242,461,1609,1846,1196,237,1715,2024,290,1659,543,1987,820,513,574,1098,1967,1185,1665,518}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -99,7 +99,7 @@ "Total Cost": 11294.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{792,1760,710,1109,1200,421,1637,587,61,1143,2028,865,1574,998,682,582,1751,1845,1453,1183,1057,1031,1500,1596,1068,1496,1018,830,895,1735}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{702,1381,835,97,765,450,1988,44,1061,523,242,461,1609,1846,1196,237,1715,2024,290,1659,543,1987,820,513,574,1098,1967,1185,1665,518}'::smallint[])", "Relation Name": "string_encrypted_10000000", "Startup Cost": 11294.85, "Total Cost": 11299.36 @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ - 792, - 1760, - 710, - 1109, - 1200, - 421, - 1637, - 587, - 61, - 1143, - 2028, - 865, - 1574, - 998, - 682, - 582, - 1751, - 1845, - 1453, - 1183, - 1057, - 1031, - 1500, - 1596, - 1068, - 1496, - 1018, - 830, - 895, - 1735 + 702, + 1381, + 835, + 97, + 765, + 450, + 1988, + 44, + 1061, + 523, + 242, + 461, + 1609, + 1846, + 1196, + 237, + 1715, + 2024, + 290, + 1659, + 543, + 1987, + 820, + 513, + 574, + 1098, + 1967, + 1185, + 1665, + 518 ], "i": { "c": "value", @@ -156,7 +156,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 }, { "explain": [ @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1735,2028,1845,830,710,1183,61,587,792,1596,895,1018,1751,421,865,1637,1031,998,1574,1143,1453,1496,1068,682,582,1760,1500,1109,1057,1200}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,237,1987,1846,1196,44,1659,1098,1381,513,835,1665,1715,2024,461,518,765,1967,702,1988,290,574,543,450,97,1061,1185,242,1609,523}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -190,7 +190,7 @@ "Total Cost": 11294.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1735,2028,1845,830,710,1183,61,587,792,1596,895,1018,1751,421,865,1637,1031,998,1574,1143,1453,1496,1068,682,582,1760,1500,1109,1057,1200}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,237,1987,1846,1196,44,1659,1098,1381,513,835,1665,1715,2024,461,518,765,1967,702,1988,290,574,543,450,97,1061,1185,242,1609,523}'::smallint[])", "Relation Name": "string_encrypted_10000000", "Startup Cost": 11294.85, "Total Cost": 11299.36 @@ -208,36 +208,36 @@ "parameters": [ { "bf": [ - 1735, - 2028, - 1845, - 830, - 710, - 1183, - 61, - 587, - 792, - 1596, - 895, - 1018, - 1751, - 421, - 865, - 1637, - 1031, - 998, - 1574, - 1143, - 1453, - 1496, - 1068, - 682, - 582, - 1760, - 1500, - 1109, - 1057, - 1200 + 820, + 237, + 1987, + 1846, + 1196, + 44, + 1659, + 1098, + 1381, + 513, + 835, + 1665, + 1715, + 2024, + 461, + 518, + 765, + 1967, + 702, + 1988, + 290, + 574, + 543, + 450, + 97, + 1061, + 1185, + 242, + 1609, + 523 ], "i": { "c": "value", @@ -247,7 +247,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10", - "rows_returned": 10 + "rows_returned": 0 } ], "target_rows": "10000000" diff --git a/results/query/match_rows_10000.json b/results/query/match_rows_10000.json index b8fc82b..4f47328 100644 --- a/results/query/match_rows_10000.json +++ b/results/query/match_rows_10000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[143,286,429,572,715,858,1001,1144,1287,1430],"measured_values":[86528166.0,179315750.0,278116458.0,383753125.0,469210625.0,501319000.0,576440083.0,662555416.0,790569875.0,915790625.0],"unit":"ns","throughput":[],"typical":{"estimate":613514.6253564617,"lower_bound":590509.6142453053,"upper_bound":635928.9211575658,"unit":"ns"},"mean":{"estimate":620149.1398074147,"lower_bound":600270.1360855812,"upper_bound":640090.7193196386,"unit":"ns"},"median":{"estimate":620625.777000777,"lower_bound":584287.8787878788,"upper_bound":648325.8304195805,"unit":"ns"},"median_abs_dev":{"estimate":46907.383264896554,"lower_bound":8685.273312239286,"upper_bound":56945.46166220955,"unit":"ns"},"slope":{"estimate":613514.6253564617,"lower_bound":590509.6142453053,"upper_bound":635928.9211575658,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[79149334.0,163464708.0,246110500.0,317035167.0,396469875.0,492383709.0,560295417.0,639450208.0,713004250.0,798289958.0],"unit":"ns","throughput":[],"typical":{"estimate":26655246.71861472,"lower_bound":26511077.402010936,"upper_bound":26893575.533613447,"unit":"ns"},"mean":{"estimate":26752013.608544968,"lower_bound":26531809.187962964,"upper_bound":26998484.759384256,"unit":"ns"},"median":{"estimate":26626711.96666667,"lower_bound":26419444.907407407,"upper_bound":27244118.0,"unit":"ns"},"median_abs_dev":{"estimate":315987.9175228748,"lower_bound":17839.288088846926,"upper_bound":602220.9486251045,"unit":"ns"},"slope":{"estimate":26655246.71861472,"lower_bound":26511077.402010936,"upper_bound":26893575.533613447,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[101,202,303,404,505,606,707,808,909,1010],"measured_values":[93227584.0,177024042.0,288983542.0,401163458.0,495142000.0,614643875.0,696473417.0,786742042.0,835187375.0,981238583.0],"unit":"ns","throughput":[],"typical":{"estimate":966459.4531567442,"lower_bound":943041.7908900419,"upper_bound":988245.3712228365,"unit":"ns"},"mean":{"estimate":958998.7879875846,"lower_bound":933509.4930642974,"upper_bound":981895.9813059876,"unit":"ns"},"median":{"estimate":972606.9977722772,"lower_bound":923045.3861386139,"upper_bound":986729.0321782178,"unit":"ns"},"median_abs_dev":{"estimate":29086.975975187084,"lower_bound":6638.977725797956,"upper_bound":67620.22391880793,"unit":"ns"},"slope":{"estimate":966459.4531567442,"lower_bound":943041.7908900419,"upper_bound":988245.3712228365,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[104943750.0,234518959.0,352569584.0,474884833.0,549209583.0,700403958.0,767393041.0,913441375.0,1021216625.0,1111368542.0],"unit":"ns","throughput":[],"typical":{"estimate":28223129.056493506,"lower_bound":27842680.922339115,"upper_bound":28734699.84712838,"unit":"ns"},"mean":{"estimate":28335916.48165675,"lower_bound":27660750.253001485,"upper_bound":28956041.512406997,"unit":"ns"},"median":{"estimate":28456085.720486112,"lower_bound":27460479.15,"upper_bound":29314869.875,"unit":"ns"},"median_abs_dev":{"estimate":1322106.3772727111,"lower_bound":146258.79627838824,"upper_bound":1945332.4955090706,"unit":"ns"},"slope":{"estimate":28223129.056493506,"lower_bound":27842680.922339115,"upper_bound":28734699.84712838,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[102,204,306,408,510,612,714,816,918,1020],"measured_values":[91556833.0,180803208.0,289868792.0,354296917.0,448313792.0,617015791.0,795204458.0,778227750.0,802231583.0,898167333.0],"unit":"ns","throughput":[],"typical":{"estimate":933986.0397759103,"lower_bound":884065.2558791463,"upper_bound":1010403.7906353798,"unit":"ns"},"mean":{"estimate":930869.6097510116,"lower_bound":890547.942542756,"upper_bound":981919.7749323063,"unit":"ns"},"median":{"estimate":891953.1225490195,"lower_bound":877223.4110566449,"upper_bound":977739.6854575163,"unit":"ns"},"median_abs_dev":{"estimate":30868.35061513071,"lower_bound":5369.668956434011,"upper_bound":109079.19474438863,"unit":"ns"},"slope":{"estimate":933986.0397759103,"lower_bound":884065.2558791463,"upper_bound":1010403.7906353798,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[130113625.0,221571417.0,334337417.0,485540666.0,553209500.0,688770792.0,772243875.0,881627417.0,1033309334.0,1168025333.0],"unit":"ns","throughput":[],"typical":{"estimate":28477835.988961037,"lower_bound":27838915.2394958,"upper_bound":28999449.05138121,"unit":"ns"},"mean":{"estimate":28782649.99713294,"lower_bound":27964848.588454362,"upper_bound":29802400.66157738,"unit":"ns"},"median":{"estimate":28280117.208333336,"lower_bound":27638282.75892857,"upper_bound":29524664.340277776,"unit":"ns"},"median_abs_dev":{"estimate":978235.0475828607,"lower_bound":86204.83560705902,"upper_bound":2077090.5523488545,"unit":"ns"},"slope":{"estimate":28477835.988961037,"lower_bound":27838915.2394958,"upper_bound":28999449.05138121,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[186,372,558,744,930,1116,1302,1488,1674,1860],"measured_values":[96156416.0,200133375.0,287863750.0,367963959.0,496185750.0,651821917.0,710938709.0,794994833.0,946918333.0,1008257250.0],"unit":"ns","throughput":[],"typical":{"estimate":546922.1844435135,"lower_bound":532899.3622828784,"upper_bound":559830.3080035473,"unit":"ns"},"mean":{"estimate":537106.8347851596,"lower_bound":522612.60490591393,"upper_bound":552392.5032578085,"unit":"ns"},"median":{"estimate":536131.8323252688,"lower_bound":516969.9784946237,"upper_bound":553867.9384707287,"unit":"ns"},"median_abs_dev":{"estimate":21546.548554569057,"lower_bound":3306.1082679177457,"upper_bound":43781.55423842545,"unit":"ns"},"slope":{"estimate":546922.1844435135,"lower_bound":532899.3622828784,"upper_bound":559830.3080035473,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[190,380,570,760,950,1140,1330,1520,1710,1900],"measured_values":[80470625.0,161462167.0,255442583.0,327427792.0,418534042.0,725839333.0,667327292.0,723167083.0,796085833.0,986949667.0],"unit":"ns","throughput":[],"typical":{"estimate":497854.2304716336,"lower_bound":463362.49564076395,"upper_bound":537002.5200523238,"unit":"ns"},"mean":{"estimate":476717.6413360484,"lower_bound":444176.8966650741,"upper_bound":519214.97060026624,"unit":"ns"},"median":{"estimate":456846.07660818717,"lower_bound":430826.04210526316,"upper_bound":501749.84360902256,"unit":"ns"},"median_abs_dev":{"estimate":42969.95162195546,"lower_bound":7217.376264076476,"upper_bound":85095.79385440557,"unit":"ns"},"slope":{"estimate":497854.2304716336,"lower_bound":463362.49564076395,"upper_bound":537002.5200523238,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[148,296,444,592,740,888,1036,1184,1332,1480],"measured_values":[92991625.0,198976583.0,287640208.0,462257542.0,619157917.0,691900625.0,680737125.0,786934084.0,884663709.0,950002500.0],"unit":"ns","throughput":[],"typical":{"estimate":683971.9172692173,"lower_bound":656172.5531142653,"upper_bound":739451.9944489099,"unit":"ns"},"mean":{"estimate":697286.3948970399,"lower_bound":657834.4464285715,"upper_bound":743202.8489285713,"unit":"ns"},"median":{"estimate":664401.1086711711,"lower_bound":647838.3063063063,"upper_bound":779167.3704954955,"unit":"ns"},"median_abs_dev":{"estimate":28962.835081414967,"lower_bound":5602.824367759667,"upper_bound":102962.57364014833,"unit":"ns"},"slope":{"estimate":683971.9172692173,"lower_bound":656172.5531142653,"upper_bound":739451.9944489099,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[151,302,453,604,755,906,1057,1208,1359,1510],"measured_values":[100486833.0,190426541.0,333700791.0,450230125.0,473185292.0,541488750.0,611939541.0,797851250.0,859114583.0,1003776917.0],"unit":"ns","throughput":[],"typical":{"estimate":642201.9257246065,"lower_bound":614281.8416242257,"upper_bound":667205.4834462149,"unit":"ns"},"mean":{"estimate":653882.5320645433,"lower_bound":623837.7359907496,"upper_bound":686637.336240618,"unit":"ns"},"median":{"estimate":646319.8084069169,"lower_bound":614110.5811258279,"upper_bound":700699.6314569537,"unit":"ns"},"median_abs_dev":{"estimate":28718.13135094602,"lower_bound":3708.5949657818283,"upper_bound":103023.37826103563,"unit":"ns"},"slope":{"estimate":642201.9257246065,"lower_bound":614281.8416242257,"upper_bound":667205.4834462149,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[151,302,453,604,755,906,1057,1208,1359,1510],"measured_values":[100905167.0,175870334.0,284923542.0,345379375.0,433485459.0,500393375.0,638360417.0,747961083.0,699806250.0,882334166.0],"unit":"ns","throughput":[],"typical":{"estimate":575084.3897652017,"lower_bound":543705.272594527,"upper_bound":603351.7037203513,"unit":"ns"},"mean":{"estimate":590023.0640026805,"lower_bound":565021.307406181,"upper_bound":615432.536268882,"unit":"ns"},"median":{"estimate":583339.6807947019,"lower_bound":563231.7471302429,"upper_bound":619173.0819536424,"unit":"ns"},"median_abs_dev":{"estimate":38269.977327525645,"lower_bound":7542.235457091854,"upper_bound":73299.15509978904,"unit":"ns"},"slope":{"estimate":575084.3897652017,"lower_bound":543705.272594527,"upper_bound":603351.7037203513,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[161,322,483,644,805,966,1127,1288,1449,1610],"measured_values":[93222166.0,226374792.0,301143750.0,438270417.0,519979625.0,640907916.0,718565417.0,779664791.0,787736333.0,951799083.0],"unit":"ns","throughput":[],"typical":{"estimate":605351.6877147697,"lower_bound":577866.925795053,"upper_bound":646373.4370243851,"unit":"ns"},"mean":{"estimate":627322.2335874494,"lower_bound":598372.0399294404,"upper_bound":655658.4493414487,"unit":"ns"},"median":{"estimate":630538.6721384206,"lower_bound":591179.5546583851,"upper_bound":663465.7515527951,"unit":"ns"},"median_abs_dev":{"estimate":53585.756806488745,"lower_bound":16643.220682784602,"upper_bound":82912.73537278727,"unit":"ns"},"slope":{"estimate":605351.6877147697,"lower_bound":577866.925795053,"upper_bound":646373.4370243851,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000","MATCH/match_decrypt/eql_cast_firstname/10000","MATCH/match/eql_cast_lastname/10000","MATCH/match_decrypt/eql_cast_lastname/10000","MATCH/match/eql_bloom/10000","MATCH/match_decrypt/eql_bloom/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_100000.json b/results/query/match_rows_100000.json index b137dde..0128407 100644 --- a/results/query/match_rows_100000.json +++ b/results/query/match_rows_100000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[71,142,213,284,355,426,497,568,639,710],"measured_values":[75818959.0,145975875.0,232709583.0,291887417.0,435101209.0,584232250.0,704053125.0,792398542.0,864493834.0,984729834.0],"unit":"ns","throughput":[],"typical":{"estimate":1346612.4648984817,"lower_bound":1268809.3415799143,"upper_bound":1380326.2869472322,"unit":"ns"},"mean":{"estimate":1236475.4713637377,"lower_bound":1137378.3869919516,"upper_bound":1332026.4591851106,"unit":"ns"},"median":{"estimate":1289261.353834116,"lower_bound":1060266.1866197183,"upper_bound":1386943.4281690142,"unit":"ns"},"median_abs_dev":{"estimate":172834.8579001358,"lower_bound":17517.399837947603,"upper_bound":255538.6768207932,"unit":"ns"},"slope":{"estimate":1346612.4648984817,"lower_bound":1268809.3415799143,"upper_bound":1380326.2869472322,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[123516583.0,223632625.0,339216875.0,503036500.0,569955375.0,704350292.0,762868209.0,914285958.0,1001152375.0,1095899125.0],"unit":"ns","throughput":[],"typical":{"estimate":28117003.14090909,"lower_bound":27639405.74095607,"upper_bound":28948899.829279512,"unit":"ns"},"mean":{"estimate":28741077.13105159,"lower_bound":27975705.712008927,"upper_bound":29628670.182725694,"unit":"ns"},"median":{"estimate":28382920.833333336,"lower_bound":27675778.125,"upper_bound":29725290.96875,"unit":"ns"},"median_abs_dev":{"estimate":1140223.6353653166,"lower_bound":224883.18867627438,"upper_bound":2275314.7155384226,"unit":"ns"},"slope":{"estimate":28117003.14090909,"lower_bound":27639405.74095607,"upper_bound":28948899.829279512,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[35,70,105,140,175,210,245,280,315,350],"measured_values":[101663542.0,192080291.0,273260542.0,390895750.0,473684250.0,567388833.0,658047917.0,733761292.0,841177625.0,925293666.0],"unit":"ns","throughput":[],"typical":{"estimate":2667302.7115398888,"lower_bound":2646385.308964388,"upper_bound":2701069.85437788,"unit":"ns"},"mean":{"estimate":2707247.6622131513,"lower_bound":2659233.8719563494,"upper_bound":2763564.4338321993,"unit":"ns"},"median":{"estimate":2693880.725510204,"lower_bound":2643696.1885714284,"upper_bound":2749439.8214285714,"unit":"ns"},"median_abs_dev":{"estimate":74358.29578187644,"lower_bound":15461.499574075006,"upper_bound":138251.75707754082,"unit":"ns"},"slope":{"estimate":2667302.7115398888,"lower_bound":2646385.308964388,"upper_bound":2701069.85437788,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[84376083.0,189697917.0,284669958.0,350356000.0,468534042.0,529400917.0,601002541.0,765637375.0,786014083.0,885138667.0],"unit":"ns","throughput":[],"typical":{"estimate":29866590.222510822,"lower_bound":29186057.481875714,"upper_bound":30911732.72442239,"unit":"ns"},"mean":{"estimate":30035175.486997355,"lower_bound":29232505.826309524,"upper_bound":30877943.378223542,"unit":"ns"},"median":{"estimate":29457892.144444443,"lower_bound":28907750.976190478,"upper_bound":31616319.5,"unit":"ns"},"median_abs_dev":{"estimate":1609551.058178088,"lower_bound":211446.7712085731,"upper_bound":2059073.2118966454,"unit":"ns"},"slope":{"estimate":29866590.222510822,"lower_bound":29186057.481875714,"upper_bound":30911732.72442239,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[35,70,105,140,175,210,245,280,315,350],"measured_values":[91970625.0,180430667.0,280207959.0,363596875.0,437600834.0,596459333.0,693508709.0,767382667.0,801553541.0,919093583.0],"unit":"ns","throughput":[],"typical":{"estimate":2665168.348942486,"lower_bound":2586974.2465733793,"upper_bound":2760428.490523338,"unit":"ns"},"mean":{"estimate":2655383.5852233563,"lower_bound":2590449.168746032,"upper_bound":2725473.0815430833,"unit":"ns"},"median":{"estimate":2626856.904285714,"lower_bound":2570867.475793651,"upper_bound":2749647.5102040814,"unit":"ns"},"median_abs_dev":{"estimate":97494.61454645747,"lower_bound":22692.383972129406,"upper_bound":188392.27101786822,"unit":"ns"},"slope":{"estimate":2665168.348942486,"lower_bound":2586974.2465733793,"upper_bound":2760428.490523338,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[117248500.0,271347625.0,351883208.0,449214375.0,643868250.0,694936042.0,785304833.0,951262291.0,1079163458.0,1135039875.0],"unit":"ns","throughput":[],"typical":{"estimate":29267214.55,"lower_bound":28576028.773346305,"upper_bound":30160248.636683334,"unit":"ns"},"mean":{"estimate":29790546.5515377,"lower_bound":28803030.347912945,"upper_bound":30987321.04424603,"unit":"ns"},"median":{"estimate":29317862.833333336,"lower_bound":28375996.875,"upper_bound":30960179.546875,"unit":"ns"},"median_abs_dev":{"estimate":1186647.7014786266,"lower_bound":265899.08308559685,"upper_bound":2654750.7034052126,"unit":"ns"},"slope":{"estimate":29267214.55,"lower_bound":28576028.773346305,"upper_bound":30160248.636683334,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[102,204,306,408,510,612,714,816,918,1020],"measured_values":[85870666.0,169186000.0,366713500.0,506636625.0,519994417.0,579638375.0,665843833.0,777235875.0,964516375.0,1167021042.0],"unit":"ns","throughput":[],"typical":{"estimate":1040447.7623376623,"lower_bound":966494.5243212669,"upper_bound":1107891.1264975439,"unit":"ns"},"mean":{"estimate":1015795.6441903984,"lower_bound":934648.0344956134,"upper_bound":1101430.2969607846,"unit":"ns"},"median":{"estimate":986045.9204656864,"lower_bound":894495.4011437909,"upper_bound":1144138.2764705883,"unit":"ns"},"median_abs_dev":{"estimate":154785.0369418855,"lower_bound":18571.250764412165,"upper_bound":242072.94355933936,"unit":"ns"},"slope":{"estimate":1040447.7623376623,"lower_bound":966494.5243212669,"upper_bound":1107891.1264975439,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[107,214,321,428,535,642,749,856,963,1070],"measured_values":[80976291.0,171906292.0,297691000.0,348354167.0,479176042.0,569649625.0,582572958.0,682846042.0,875720333.0,845937084.0],"unit":"ns","throughput":[],"typical":{"estimate":835215.1810171137,"lower_bound":797725.1378815706,"upper_bound":885521.9314491611,"unit":"ns"},"mean":{"estimate":835982.7624373238,"lower_bound":800430.2493971407,"upper_bound":873012.3895684988,"unit":"ns"},"median":{"estimate":808606.0175233645,"lower_bound":787759.1754005341,"upper_bound":898335.8102284528,"unit":"ns"},"median_abs_dev":{"estimate":61248.61908621782,"lower_bound":9418.234345690233,"upper_bound":94981.78545688256,"unit":"ns"},"slope":{"estimate":835215.1810171137,"lower_bound":797725.1378815706,"upper_bound":885521.9314491611,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[124501500.0,198601833.0,276745458.0,403362459.0,464522542.0,574118917.0,682784542.0,764193583.0,789162417.0,927965542.0],"unit":"ns","throughput":[],"typical":{"estimate":1508499.1713028906,"lower_bound":1465410.9270733525,"upper_bound":1559343.4803292744,"unit":"ns"},"mean":{"estimate":1579078.4286271122,"lower_bound":1503156.3295850616,"upper_bound":1686797.3305222732,"unit":"ns"},"median":{"estimate":1542021.6454973118,"lower_bound":1493169.3096774193,"upper_bound":1601627.685483871,"unit":"ns"},"median_abs_dev":{"estimate":73719.22094650446,"lower_bound":9134.449089121536,"upper_bound":154851.90078949885,"unit":"ns"},"slope":{"estimate":1508499.1713028906,"lower_bound":1465410.9270733525,"upper_bound":1559343.4803292744,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[88759375.0,179045084.0,281794375.0,397242708.0,460299750.0,587296541.0,701652917.0,764773083.0,936305500.0,962286250.0],"unit":"ns","throughput":[],"typical":{"estimate":1582984.8587767072,"lower_bound":1539353.6057334007,"upper_bound":1631337.871035511,"unit":"ns"},"mean":{"estimate":1544454.9919130825,"lower_bound":1498500.6749714378,"upper_bound":1589863.3756474012,"unit":"ns"},"median":{"estimate":1546977.90625,"lower_bound":1479467.744623656,"upper_bound":1601785.1129032257,"unit":"ns"},"median_abs_dev":{"estimate":86692.96499476302,"lower_bound":22130.29154904437,"upper_bound":130853.41629966963,"unit":"ns"},"slope":{"estimate":1582984.8587767072,"lower_bound":1539353.6057334007,"upper_bound":1631337.871035511,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[67,134,201,268,335,402,469,536,603,670],"measured_values":[100477750.0,178903709.0,312792625.0,367492416.0,520031875.0,526958208.0,630936916.0,831624417.0,783777416.0,897947583.0],"unit":"ns","throughput":[],"typical":{"estimate":1385212.9347547975,"lower_bound":1327199.109416944,"upper_bound":1477588.9724933028,"unit":"ns"},"mean":{"estimate":1416220.4402339493,"lower_bound":1353379.859530917,"upper_bound":1482116.6996808369,"unit":"ns"},"median":{"estimate":1358260.814498934,"lower_bound":1325530.7932835822,"upper_bound":1551538.0914179105,"unit":"ns"},"median_abs_dev":{"estimate":78491.51557167126,"lower_bound":4032.6617862416538,"upper_bound":173286.01938325964,"unit":"ns"},"slope":{"estimate":1385212.9347547975,"lower_bound":1327199.109416944,"upper_bound":1477588.9724933028,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[63,126,189,252,315,378,441,504,567,630],"measured_values":[93472250.0,196729125.0,281274708.0,357047292.0,466036750.0,618969667.0,641437542.0,695609959.0,795013542.0,970039333.0],"unit":"ns","throughput":[],"typical":{"estimate":1472414.0679447537,"lower_bound":1412393.427324206,"upper_bound":1537762.2384024577,"unit":"ns"},"mean":{"estimate":1484364.7355763416,"lower_bound":1440270.1731577378,"upper_bound":1532162.6414886147,"unit":"ns"},"median":{"estimate":1481584.1269841269,"lower_bound":1416854.3333333333,"upper_bound":1539744.973015873,"unit":"ns"},"median_abs_dev":{"estimate":91098.82957933919,"lower_bound":6730.20374718172,"upper_bound":128900.61325377894,"unit":"ns"},"slope":{"estimate":1472414.0679447537,"lower_bound":1412393.427324206,"upper_bound":1537762.2384024577,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/100000","MATCH/match_decrypt/eql_cast_firstname/100000","MATCH/match/eql_cast_lastname/100000","MATCH/match_decrypt/eql_cast_lastname/100000","MATCH/match/eql_bloom/100000","MATCH/match_decrypt/eql_bloom/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_1000000.json b/results/query/match_rows_1000000.json index 2d3435b..558f309 100644 --- a/results/query/match_rows_1000000.json +++ b/results/query/match_rows_1000000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[80611542.0,175420708.0,282734709.0,359375250.0,468721500.0,527399584.0,641039666.0,707922500.0,799192833.0,915779250.0],"unit":"ns","throughput":[],"typical":{"estimate":5011017.135353535,"lower_bound":4938518.915307189,"upper_bound":5086175.727886841,"unit":"ns"},"mean":{"estimate":4969440.991534391,"lower_bound":4834949.059920634,"upper_bound":5086410.732407408,"unit":"ns"},"median":{"estimate":4962306.00462963,"lower_bound":4883329.481481481,"upper_bound":5147816.531746032,"unit":"ns"},"median_abs_dev":{"estimate":159245.28657283104,"lower_bound":32121.290321399923,"upper_bound":334141.26519558433,"unit":"ns"},"slope":{"estimate":5011017.135353535,"lower_bound":4938518.915307189,"upper_bound":5086175.727886841,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[98870625.0,199818334.0,315841875.0,391809833.0,465770875.0,534447084.0,628600000.0,770837750.0,941907375.0,1018918292.0],"unit":"ns","throughput":[],"typical":{"estimate":32711740.626839828,"lower_bound":30872605.87177786,"upper_bound":33954743.82024223,"unit":"ns"},"mean":{"estimate":32564816.240000002,"lower_bound":31430424.96333333,"upper_bound":33649482.74670833,"unit":"ns"},"median":{"estimate":32803847.208333336,"lower_bound":31025786.458333332,"upper_bound":34094257.0,"unit":"ns"},"median_abs_dev":{"estimate":2159074.3144887704,"lower_bound":453757.9997941833,"upper_bound":3394700.9436570033,"unit":"ns"},"slope":{"estimate":32711740.626839828,"lower_bound":30872605.87177786,"upper_bound":33954743.82024223,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[102115042.0,204828416.0,307197917.0,408185542.0,523214125.0,619269875.0,723708791.0,832540375.0,930495208.0,1031492583.0],"unit":"ns","throughput":[],"typical":{"estimate":17235266.193506494,"lower_bound":17179357.845051736,"upper_bound":17296742.886751574,"unit":"ns"},"mean":{"estimate":17180359.06270503,"lower_bound":17099198.72351852,"upper_bound":17266011.14326058,"unit":"ns"},"median":{"estimate":17196742.01111111,"lower_bound":17044104.166666668,"upper_bound":17287876.41815476,"unit":"ns"},"median_abs_dev":{"estimate":191180.08876254002,"lower_bound":16965.020848810673,"upper_bound":249803.36546343687,"unit":"ns"},"slope":{"estimate":17235266.193506494,"lower_bound":17179357.845051736,"upper_bound":17296742.886751574,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[123792208.0,248740083.0,383148625.0,512186292.0,661221583.0,772977750.0,948945875.0,1076259375.0,1203259000.0,1443474792.0],"unit":"ns","throughput":[],"typical":{"estimate":45264253.57316017,"lower_bound":43691323.2220954,"upper_bound":46689638.73704695,"unit":"ns"},"mean":{"estimate":43771267.14604497,"lower_bound":42644685.671704695,"upper_bound":45043984.90898148,"unit":"ns"},"median":{"estimate":43512323.6,"lower_bound":42069435.75,"upper_bound":44876523.47883598,"unit":"ns"},"median_abs_dev":{"estimate":1767734.766791155,"lower_bound":275125.2534488886,"upper_bound":3506650.9900389444,"unit":"ns"},"slope":{"estimate":45264253.57316017,"lower_bound":43691323.2220954,"upper_bound":46689638.73704695,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[103537708.0,210388167.0,310509792.0,422167708.0,518356167.0,620593458.0,721339250.0,832582083.0,942300875.0,1071602167.0],"unit":"ns","throughput":[],"typical":{"estimate":17474725.883982684,"lower_bound":17266850.477198698,"upper_bound":17677528.213352583,"unit":"ns"},"mean":{"estimate":17397699.958048947,"lower_bound":17284008.14200215,"upper_bound":17532568.791620366,"unit":"ns"},"median":{"estimate":17311999.48125,"lower_bound":17247495.916666668,"upper_bound":17532347.25,"unit":"ns"},"median_abs_dev":{"estimate":156079.0429802904,"lower_bound":17285.756643117395,"upper_bound":356769.48749662936,"unit":"ns"},"slope":{"estimate":17474725.883982684,"lower_bound":17266850.477198698,"upper_bound":17677528.213352583,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[127277500.0,256201125.0,384963291.0,527293916.0,635696417.0,865253791.0,953621125.0,1059275333.0,1162622208.0,1286486792.0],"unit":"ns","throughput":[],"typical":{"estimate":43940925.06406926,"lower_bound":43035835.22448358,"upper_bound":45380647.55449367,"unit":"ns"},"mean":{"estimate":43778027.250357136,"lower_bound":42885233.914895825,"upper_bound":44939418.25333333,"unit":"ns"},"median":{"estimate":42971487.42222223,"lower_bound":42599766.16666667,"upper_bound":44675844.71428572,"unit":"ns"},"median_abs_dev":{"estimate":843140.0590779438,"lower_bound":135439.63416546842,"upper_bound":2212555.423219287,"unit":"ns"},"slope":{"estimate":43940925.06406926,"lower_bound":43035835.22448358,"upper_bound":45380647.55449367,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[23,46,69,92,115,138,161,184,207,230],"measured_values":[103641125.0,192639708.0,335739667.0,397969584.0,507285000.0,560008125.0,680220833.0,795782125.0,865994167.0,956323209.0],"unit":"ns","throughput":[],"typical":{"estimate":4231448.227216262,"lower_bound":4170588.240380916,"upper_bound":4331901.9524959745,"unit":"ns"},"mean":{"estimate":4324605.870364045,"lower_bound":4203879.888956264,"upper_bound":4471839.3953662,"unit":"ns"},"median":{"estimate":4274938.485636646,"lower_bound":4172873.367391304,"upper_bound":4415946.108695652,"unit":"ns"},"median_abs_dev":{"estimate":154489.3451170846,"lower_bound":25327.093840064008,"upper_bound":322221.37175768916,"unit":"ns"},"slope":{"estimate":4231448.227216262,"lower_bound":4170588.240380916,"upper_bound":4331901.9524959745,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[23,46,69,92,115,138,161,184,207,230],"measured_values":[91423208.0,180469166.0,269897625.0,409295042.0,483743167.0,603061084.0,756654667.0,861702125.0,887234375.0,963096625.0],"unit":"ns","throughput":[],"typical":{"estimate":4375222.15878035,"lower_bound":4221496.983363624,"upper_bound":4562267.380687563,"unit":"ns"},"mean":{"estimate":4269146.9120479645,"lower_bound":4103375.3124637688,"upper_bound":4440455.955603865,"unit":"ns"},"median":{"estimate":4246309.361352657,"lower_bound":3974922.086956522,"upper_bound":4526585.788949275,"unit":"ns"},"median_abs_dev":{"estimate":351329.5402083059,"lower_bound":55631.050894960266,"upper_bound":527068.7174928769,"unit":"ns"},"slope":{"estimate":4375222.15878035,"lower_bound":4221496.983363624,"upper_bound":4562267.380687563,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[9,18,27,36,45,54,63,72,81,90],"measured_values":[87827500.0,177983625.0,274500625.0,368310750.0,438913083.0,540083458.0,649228917.0,742227958.0,812659750.0,810248708.0],"unit":"ns","throughput":[],"typical":{"estimate":9833898.037806638,"lower_bound":9385333.484447984,"upper_bound":10220734.354166666,"unit":"ns"},"mean":{"estimate":9944884.623007055,"lower_bound":9694285.176902121,"upper_bound":10145805.642910052,"unit":"ns"},"median":{"estimate":10017190.969135802,"lower_bound":9758611.111111112,"upper_bound":10235955.35978836,"unit":"ns"},"median_abs_dev":{"estimate":350073.77086828044,"lower_bound":57723.1561335423,"upper_bound":556612.9858448099,"unit":"ns"},"slope":{"estimate":9833898.037806638,"lower_bound":9385333.484447984,"upper_bound":10220734.354166666,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[130014042.0,193642917.0,268809334.0,377929250.0,454683958.0,559050833.0,673769500.0,739060000.0,827960208.0,924109542.0],"unit":"ns","throughput":[],"typical":{"estimate":9294746.352727273,"lower_bound":9214873.85917603,"upper_bound":9438330.316097561,"unit":"ns"},"mean":{"estimate":9680746.73347619,"lower_bound":9209543.269666666,"upper_bound":10466048.94233095,"unit":"ns"},"median":{"estimate":9279304.651666667,"lower_bound":9165964.58,"upper_bound":9625278.57142857,"unit":"ns"},"median_abs_dev":{"estimate":262829.4596508442,"lower_bound":32901.097547888276,"upper_bound":567475.5265972933,"unit":"ns"},"slope":{"estimate":9294746.352727273,"lower_bound":9214873.85917603,"upper_bound":9438330.316097561,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[102971791.0,193223292.0,300590000.0,369000208.0,451371041.0,543249167.0,634583375.0,716801375.0,817880500.0,924021625.0],"unit":"ns","throughput":[],"typical":{"estimate":9132772.672467532,"lower_bound":9043286.765201464,"upper_bound":9243875.939634874,"unit":"ns"},"mean":{"estimate":9363786.050432539,"lower_bound":9114860.536003968,"upper_bound":9657428.008015873,"unit":"ns"},"median":{"estimate":9156283.155555556,"lower_bound":9046448.802857142,"upper_bound":9661164.6,"unit":"ns"},"median_abs_dev":{"estimate":171234.89123563957,"lower_bound":24765.592941990206,"upper_bound":707340.946192189,"unit":"ns"},"slope":{"estimate":9132772.672467532,"lower_bound":9043286.765201464,"upper_bound":9243875.939634874,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[88148583.0,177398167.0,299744875.0,377560625.0,452373917.0,544394417.0,639412334.0,718610583.0,842165875.0,914883042.0],"unit":"ns","throughput":[],"typical":{"estimate":9177598.032727273,"lower_bound":9069820.208286885,"upper_bound":9304128.40691203,"unit":"ns"},"mean":{"estimate":9185931.996456351,"lower_bound":9008808.464718057,"upper_bound":9404731.736320835,"unit":"ns"},"median":{"estimate":9103851.098809524,"lower_bound":8958693.344999999,"upper_bound":9357398.611111112,"unit":"ns"},"median_abs_dev":{"estimate":263281.25984207337,"lower_bound":56034.967316180504,"upper_bound":462687.8168081487,"unit":"ns"},"slope":{"estimate":9177598.032727273,"lower_bound":9069820.208286885,"upper_bound":9304128.40691203,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/1000000","MATCH/match_decrypt/eql_cast_firstname/1000000","MATCH/match/eql_cast_lastname/1000000","MATCH/match_decrypt/eql_cast_lastname/1000000","MATCH/match/eql_bloom/1000000","MATCH/match_decrypt/eql_bloom/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_10000000.json b/results/query/match_rows_10000000.json index 129a32b..24b960d 100644 --- a/results/query/match_rows_10000000.json +++ b/results/query/match_rows_10000000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[121939917.0,240735125.0,356027625.0,477838042.0,593258334.0,700628125.0,901989250.0,966096125.0,1046338167.0,1196068666.0],"unit":"ns","throughput":[],"typical":{"estimate":39976908.6952381,"lower_bound":39149621.736415245,"upper_bound":41122146.58636788,"unit":"ns"},"mean":{"estimate":40045005.722261906,"lower_bound":39451781.87700694,"upper_bound":40808908.11834127,"unit":"ns"},"median":{"estimate":39844396.18333334,"lower_bound":39241204.86111111,"upper_bound":40384579.91666667,"unit":"ns"},"median_abs_dev":{"estimate":521467.1853996076,"lower_bound":194938.7309141457,"upper_bound":1403557.791815199,"unit":"ns"},"slope":{"estimate":39976908.6952381,"lower_bound":39149621.736415245,"upper_bound":41122146.58636788,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[132055250.0,279493250.0,383963292.0,526243666.0,635570916.0,810254209.0,909632583.0,1076937208.0,1172384583.0,1302363583.0],"unit":"ns","throughput":[],"typical":{"estimate":65643258.37142857,"lower_bound":64913663.09926892,"upper_bound":66609700.41022399,"unit":"ns"},"mean":{"estimate":65928654.08452381,"lower_bound":64900858.129523806,"upper_bound":67094768.72054166,"unit":"ns"},"median":{"estimate":65456467.54166667,"lower_bound":64556030.575,"upper_bound":67308575.5,"unit":"ns"},"median_abs_dev":{"estimate":1507613.6591345072,"lower_bound":128258.67707796046,"upper_bound":3095378.3555969875,"unit":"ns"},"slope":{"estimate":65643258.37142857,"lower_bound":64913663.09926892,"upper_bound":66609700.41022399,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[168509291.0,336638959.0,508969125.0,669813583.0,802896792.0,968070958.0,1121471750.0,1309826625.0,1466986416.0,1623771833.0],"unit":"ns","throughput":[],"typical":{"estimate":162702259.6051948,"lower_bound":161697471.9732393,"upper_bound":163956235.87782806,"unit":"ns"},"mean":{"estimate":164517731.14083332,"lower_bound":162461625.64739585,"upper_bound":166647291.64497918,"unit":"ns"},"median":{"estimate":163363409.3958333,"lower_bound":161345159.66666666,"upper_bound":168319479.5,"unit":"ns"},"median_abs_dev":{"estimate":4401253.985204589,"lower_bound":782735.1349286735,"upper_bound":5396064.711410693,"unit":"ns"},"slope":{"estimate":162702259.6051948,"lower_bound":161697471.9732393,"upper_bound":163956235.87782806,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[553277916.0,561466042.0,578220625.0,567133500.0,567096291.0,568247709.0,561489000.0,569806458.0,566369250.0,554325958.0],"unit":"ns","throughput":[],"typical":{"estimate":188247758.3,"lower_bound":186794348.92749998,"upper_bound":189701766.66666666,"unit":"ns"},"mean":{"estimate":188247758.3,"lower_bound":186794348.92749998,"upper_bound":189701766.66666666,"unit":"ns"},"median":{"estimate":188910923.5,"lower_bound":185969159.6666667,"upper_bound":189489993.0,"unit":"ns"},"median_abs_dev":{"estimate":2055243.835312128,"lower_bound":188846.17164731026,"upper_bound":4140057.3857992887,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[167090625.0,332500333.0,485399291.0,635446500.0,851494958.0,968149750.0,1170110042.0,1295010666.0,1462549208.0,1689298583.0],"unit":"ns","throughput":[],"typical":{"estimate":164943461.76103896,"lower_bound":162158792.00130022,"upper_bound":167565673.5613079,"unit":"ns"},"mean":{"estimate":164612969.996746,"lower_bound":162409642.4261905,"upper_bound":166850981.25738093,"unit":"ns"},"median":{"estimate":164377817.0277778,"lower_bound":161617312.4583333,"upper_bound":168010241.65,"unit":"ns"},"median_abs_dev":{"estimate":4072382.1626174143,"lower_bound":440785.25002451224,"upper_bound":5777339.271578389,"unit":"ns"},"slope":{"estimate":164943461.76103896,"lower_bound":162158792.00130022,"upper_bound":167565673.5613079,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[570977958.0,578695875.0,553997416.0,599768666.0,564343166.0,563273625.0,557343167.0,563725958.0,571024375.0,569131709.0],"unit":"ns","throughput":[],"typical":{"estimate":189742730.5,"lower_bound":187522231.735,"upper_bound":192480740.23333335,"unit":"ns"},"mean":{"estimate":189742730.5,"lower_bound":187522231.735,"upper_bound":192480740.23333335,"unit":"ns"},"median":{"estimate":188912479.16666666,"lower_bound":186844854.16666666,"upper_bound":191612305.5,"unit":"ns"},"median_abs_dev":{"estimate":2107134.8343909006,"lower_bound":264283.5764080212,"upper_bound":5714578.55784595,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[124097875.0,236426167.0,361916875.0,478391500.0,595362083.0,731539709.0,854324500.0,947012667.0,1106542042.0,1212078958.0],"unit":"ns","throughput":[],"typical":{"estimate":30258672.92012987,"lower_bound":29891270.39475498,"upper_bound":30532332.267785426,"unit":"ns"},"mean":{"estimate":30203086.13405754,"lower_bound":29918070.675416667,"upper_bound":30496598.037361108,"unit":"ns"},"median":{"estimate":30230856.766666666,"lower_bound":29746807.296875,"upper_bound":30609050.076388888,"unit":"ns"},"median_abs_dev":{"estimate":588696.4410385486,"lower_bound":155387.84560631603,"upper_bound":847404.5525003532,"unit":"ns"},"slope":{"estimate":30258672.92012987,"lower_bound":29891270.39475498,"upper_bound":30532332.267785426,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[90496125.0,183152000.0,271275541.0,405159208.0,452089875.0,558390416.0,629241292.0,740589333.0,817321916.0,901127792.0],"unit":"ns","throughput":[],"typical":{"estimate":30475008.071861472,"lower_bound":30139101.941920955,"upper_bound":31075633.389917694,"unit":"ns"},"mean":{"estimate":30688725.2285582,"lower_bound":30190244.242817134,"upper_bound":31448764.115,"unit":"ns"},"median":{"estimate":30218278.537037037,"lower_bound":30089659.92222222,"upper_bound":30857888.875,"unit":"ns"},"median_abs_dev":{"estimate":322534.4053649807,"lower_bound":21091.30249221997,"upper_bound":947102.9382563919,"unit":"ns"},"slope":{"estimate":30475008.071861472,"lower_bound":30139101.941920955,"upper_bound":31075633.389917694,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[159201083.0,335282208.0,504965125.0,669141583.0,826664208.0,1005075167.0,1139666500.0,1309618958.0,1452983042.0,1643179458.0],"unit":"ns","throughput":[],"typical":{"estimate":82010725.15584415,"lower_bound":81390042.6916835,"upper_bound":82865477.08205467,"unit":"ns"},"mean":{"estimate":82378351.81444445,"lower_bound":81466528.94222224,"upper_bound":83228418.37083332,"unit":"ns"},"median":{"estimate":82412696.85,"lower_bound":81286232.49305555,"upper_bound":83756263.91666667,"unit":"ns"},"median_abs_dev":{"estimate":1907785.9924825407,"lower_bound":179500.01585072296,"upper_bound":2674919.4746106863,"unit":"ns"},"slope":{"estimate":82010725.15584415,"lower_bound":81390042.6916835,"upper_bound":82865477.08205467,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[166090125.0,322616167.0,492160083.0,658604416.0,806752625.0,968308792.0,1178159334.0,1347459750.0,1480635375.0,1629558625.0],"unit":"ns","throughput":[],"typical":{"estimate":82355758.71688312,"lower_bound":81401384.0867347,"upper_bound":83404036.92377351,"unit":"ns"},"mean":{"estimate":82152492.31845239,"lower_bound":81393851.85997023,"upper_bound":82965254.4630506,"unit":"ns"},"median":{"estimate":82142100.66666666,"lower_bound":80692399.33333333,"upper_bound":83239895.07142857,"unit":"ns"},"median_abs_dev":{"estimate":1744029.1744872965,"lower_bound":41138.01034464696,"upper_bound":2399315.0736786313,"unit":"ns"},"slope":{"estimate":82355758.71688312,"lower_bound":81401384.0867347,"upper_bound":83404036.92377351,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[162843209.0,348708084.0,503287750.0,709332292.0,842617000.0,970002792.0,1140293667.0,1325774708.0,1462071375.0,1623471000.0],"unit":"ns","throughput":[],"typical":{"estimate":82106700.33116883,"lower_bound":81397617.8600599,"upper_bound":83576462.01081875,"unit":"ns"},"mean":{"estimate":83295192.40595238,"lower_bound":81818746.00595239,"upper_bound":85012164.21014881,"unit":"ns"},"median":{"estimate":82155233.44642857,"lower_bound":81226187.5,"upper_bound":85529156.33333334,"unit":"ns"},"median_abs_dev":{"estimate":1707473.9865612707,"lower_bound":165576.87096042765,"upper_bound":4369483.060026169,"unit":"ns"},"slope":{"estimate":82106700.33116883,"lower_bound":81397617.8600599,"upper_bound":83576462.01081875,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[165465208.0,324199125.0,489651583.0,651964917.0,813501542.0,972908500.0,1127946041.0,1302071208.0,1552942375.0,1666645458.0],"unit":"ns","throughput":[],"typical":{"estimate":82793200.63766234,"lower_bound":81044929.03536977,"upper_bound":84411322.58880308,"unit":"ns"},"mean":{"estimate":82086633.37210318,"lower_bound":81254194.63975297,"upper_bound":83190581.05443452,"unit":"ns"},"median":{"estimate":81437532.5625,"lower_bound":81075708.33333333,"upper_bound":82732604.0,"unit":"ns"},"median_abs_dev":{"estimate":555660.3391725607,"lower_bound":107829.81113813596,"upper_bound":2027902.6902875283,"unit":"ns"},"slope":{"estimate":82793200.63766234,"lower_bound":81044929.03536977,"upper_bound":84411322.58880308,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000000","MATCH/match_decrypt/eql_cast_firstname/10000000","MATCH/match/eql_cast_lastname/10000000","MATCH/match_decrypt/eql_cast_lastname/10000000","MATCH/match/eql_bloom/10000000","MATCH/match_decrypt/eql_bloom/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/ore_metadata_10000.json b/results/query/ore_metadata_10000.json index ba029d1..d8af5e3 100644 --- a/results/query/ore_metadata_10000.json +++ b/results/query/ore_metadata_10000.json @@ -13,19 +13,19 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d496a9cf2c12027027412bf84aa0661d4ff672bdd9481d3e1bc741dd39dbcdcdf706eb49e05c4c2a1ed0db3e091609b0ceaff07d1e6d3b67aee279ea47a7ea305a245a95c10cf561ea235c94bea029b1c3b7d19123d492e5a44e7659579bfd61012a8dea1d103bd60d4fe7d7b5b85fd1bc7b07b5cb8d44b0d67b56888b01a63439be4cb376c98c458a79693fe8687e5f6c20cc8f825cae1f2abe210a1f8fa7a970a79620b0f48e407d3f8d2ffc6fdcf1f223085e3a20e5a9208abfd5f0203b2693ce032139861f65a6fbcbe0be1acd7b7022e2bfcc302815c513588c5c60fad1efa9d0edf1d14d7730e22fb846d431690c2db0be33ad1893b50473b68f14d3c6a2aba04a1be63944366e489be1953701\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcb371609a9d6c573eed7e891d65e32763a0777fe30e584652309016ccaf8c0b4e4101f904e3cbeedebd563ec8f9bba67000d22aecbe5b547dd4e291e7a913ab7de63374518292d0046f8248fbf7c2abe5e8d96c0c07f4006b44f6b28fc569cee4c70913e19a951f1b30c21047b44bc16ea55ffaef4d32b98f01a0e0b24286638e29b77706c07bd44000b951b5976af1bbc9665f7e342ada753179ccd9003f14119b0199d54835f99e140f5e4431a7524fff57064614978f575978d4ba7c81a776ecd4f632e402d63d7fa4be00559e25b737cae53bb7ebd547de3bf796fa7823a3aebb321a191d501068035259eeec5cb805e3cf3d651f159698f511a3394b871299d5275978baf403a46ae93a636b33cd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 5050, + "Plan Rows": 4950, "Plan Width": 36, "Relation Name": "integer_encrypted_10000", "Startup Cost": 0.0, - "Total Cost": 7791.5 + "Total Cost": 7766.5 } ], "Startup Cost": 0.0, - "Total Cost": 15.43 + "Total Cost": 15.69 } } ], @@ -38,7 +38,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d496a9cf2c12027027412bf84aa0661d4ff672bdd9481d3e1bc741dd39dbcdcdf706eb49e05c4c2a1ed0db3e091609b0ceaff07d1e6d3b67aee279ea47a7ea305a245a95c10cf561ea235c94bea029b1c3b7d19123d492e5a44e7659579bfd61012a8dea1d103bd60d4fe7d7b5b85fd1bc7b07b5cb8d44b0d67b56888b01a63439be4cb376c98c458a79693fe8687e5f6c20cc8f825cae1f2abe210a1f8fa7a970a79620b0f48e407d3f8d2ffc6fdcf1f223085e3a20e5a9208abfd5f0203b2693ce032139861f65a6fbcbe0be1acd7b7022e2bfcc302815c513588c5c60fad1efa9d0edf1d14d7730e22fb846d431690c2db0be33ad1893b50473b68f14d3c6a2aba04a1be63944366e489be1953701" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcb371609a9d6c573eed7e891d65e32763a0777fe30e584652309016ccaf8c0b4e4101f904e3cbeedebd563ec8f9bba67000d22aecbe5b547dd4e291e7a913ab7de63374518292d0046f8248fbf7c2abe5e8d96c0c07f4006b44f6b28fc569cee4c70913e19a951f1b30c21047b44bc16ea55ffaef4d32b98f01a0e0b24286638e29b77706c07bd44000b951b5976af1bbc9665f7e342ada753179ccd9003f14119b0199d54835f99e140f5e4431a7524fff57064614978f575978d4ba7c81a776ecd4f632e402d63d7fa4be00559e25b737cae53bb7ebd547de3bf796fa7823a3aebb321a191d501068035259eeec5cb805e3cf3d651f159698f511a3394b871299d5275978baf403a46ae93a636b33cd" ], "v": 2 } @@ -59,19 +59,19 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288385f5e7dfa655b2dd4f453733a186c66eb453e1f46b5225f3d440c512c9badd37536b892db1eae6fa6ec72f6548ec3f29436aa5d59de334e6ba86d8ed69e8b91af923d95f965bed5bd84a5f714deb58fe502e63bb8c2a58c4c7e8bd61e53cdc81c6881d91bdb9e98782e0430e6c727844f22bfd798ab931e62980cba256e80538b3813db73be32603a8aa3142664dba1dbc09c7029f81b21f64624ae9e646e22166b68e6d4c5d52a6da0688640cb2ac07c1404de8e86e8e1aa664369a305493e00a01567f48a6e2c34aa90a08c681771601bf864e94bdd23689234fb86c6d6d603bea30e999a6622403405f4de053474de09080f2df7366b0d007e84910347a907bb352f323018c5600dd4d500b59fe\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc846ca961e9c7d073e4b69bb55d2d389f16d58a6d5fbea545a848998537d5026fe275212f67f28a6157e1747db9eb445488d3e56ab96df32df2090cf3a11c95bf0beb228000a33380009da004dd79117bd926f4a8ac0d7c82898a8a3b73e31c229035b21f79d827929aabc6b37077d26b88a1edd8c4e6d5e0681558d1cbebd09ffec80d242137bd9f745ffc6b89fde4a526a0239da0cb97d29db6b2f95e9e0d3ce1ec8d22cc092c95b9453b291a802142c9b0e2162ddc7d9ae4eb3e27081699918005f53afdb84d5dbe2916b02c1dbb14f838f2811d0ec550f07e0ab51a3595556cea1ae203c1c9066cac83d049092fef5912a7d22dc6a89818a0581d00bc975f4870d3f0412c3d9c7fad7d138855e56c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 5050, + "Plan Rows": 4950, "Plan Width": 36, "Relation Name": "integer_encrypted_10000", "Startup Cost": 0.0, - "Total Cost": 7791.5 + "Total Cost": 7766.5 } ], "Startup Cost": 0.0, - "Total Cost": 154.29 + "Total Cost": 156.9 } } ], @@ -84,7 +84,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288385f5e7dfa655b2dd4f453733a186c66eb453e1f46b5225f3d440c512c9badd37536b892db1eae6fa6ec72f6548ec3f29436aa5d59de334e6ba86d8ed69e8b91af923d95f965bed5bd84a5f714deb58fe502e63bb8c2a58c4c7e8bd61e53cdc81c6881d91bdb9e98782e0430e6c727844f22bfd798ab931e62980cba256e80538b3813db73be32603a8aa3142664dba1dbc09c7029f81b21f64624ae9e646e22166b68e6d4c5d52a6da0688640cb2ac07c1404de8e86e8e1aa664369a305493e00a01567f48a6e2c34aa90a08c681771601bf864e94bdd23689234fb86c6d6d603bea30e999a6622403405f4de053474de09080f2df7366b0d007e84910347a907bb352f323018c5600dd4d500b59fe" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc846ca961e9c7d073e4b69bb55d2d389f16d58a6d5fbea545a848998537d5026fe275212f67f28a6157e1747db9eb445488d3e56ab96df32df2090cf3a11c95bf0beb228000a33380009da004dd79117bd926f4a8ac0d7c82898a8a3b73e31c229035b21f79d827929aabc6b37077d26b88a1edd8c4e6d5e0681558d1cbebd09ffec80d242137bd9f745ffc6b89fde4a526a0239da0cb97d29db6b2f95e9e0d3ce1ec8d22cc092c95b9453b291a802142c9b0e2162ddc7d9ae4eb3e27081699918005f53afdb84d5dbe2916b02c1dbb14f838f2811d0ec550f07e0ab51a3595556cea1ae203c1c9066cac83d049092fef5912a7d22dc6a89818a0581d00bc975f4870d3f0412c3d9c7fad7d138855e56c" ], "v": 2 } @@ -105,19 +105,19 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28af0b28a7adb73b651daebf5951ac82dbe77560df3f76a23f1924bccf00064b7e9bec34a2dca21271dddd4659c9cb13047e9794461f65c7dd4fd8159329c09980bd29a99adcf6c919998d7a748922682bdaa1ad4f6e6a33a2670f0a9cfa53615bad5b286fdf19b57c6460973f3eade7ec118f5a8a9c89df97563f1550ed0088090079264d6ed8d809426c4987bc2c803ff0947663a02f7270d9b1090a46c333ab65d4b72ed6897e63035357c169081f98cea9584f89b83bd356cc969f94ea9ec2310ba21e9bfb111b50f9c62643e2d9a5d9af90cc2fdf437955cf703faa9f4b8033d153f446e2b17d4004a69b2f5eb6f04e5d101063649636e0f70a1e748a39064934ea89984dc00903461dec76cf095c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc57f85ffccf8e70b0898a351a513249073689e3f752ccf5980e9a9f53238814cf822bfd393e5a011182187e00da33bb8e6816d22227c1bea13e524cbd9a9a680a44d56bcedb7f86701ed51a92e89385df2b1c75b0f37f923eb260624b5d284a0ffc7ea45fde7e851f983f4b08643d36fb7fcb1bf05d594a5a4ae8f78d65fa246681c47ea1923a30a28600082254cfb4a371204ff38164bfcb55e812a6827ed264429a54cb049ca7b40bd569a3ef78dedb9eca1ec189311e985499160fecd9b7a91388def686639bf0ab60f9ae38f5a6243f7ba78a20e0a12b482c5e4d2820140406f08d55a5d121fcbcb0e4b1ce0cb777e218d05d46ccbcf520504b84d2cf59a25e57c4dbeb6178d720ec23120460764d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 4949, + "Plan Rows": 5049, "Plan Width": 36, "Relation Name": "integer_encrypted_10000", "Startup Cost": 0.0, - "Total Cost": 7766.25 + "Total Cost": 7791.25 } ], "Startup Cost": 0.0, - "Total Cost": 15.69 + "Total Cost": 15.43 } } ], @@ -130,7 +130,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28af0b28a7adb73b651daebf5951ac82dbe77560df3f76a23f1924bccf00064b7e9bec34a2dca21271dddd4659c9cb13047e9794461f65c7dd4fd8159329c09980bd29a99adcf6c919998d7a748922682bdaa1ad4f6e6a33a2670f0a9cfa53615bad5b286fdf19b57c6460973f3eade7ec118f5a8a9c89df97563f1550ed0088090079264d6ed8d809426c4987bc2c803ff0947663a02f7270d9b1090a46c333ab65d4b72ed6897e63035357c169081f98cea9584f89b83bd356cc969f94ea9ec2310ba21e9bfb111b50f9c62643e2d9a5d9af90cc2fdf437955cf703faa9f4b8033d153f446e2b17d4004a69b2f5eb6f04e5d101063649636e0f70a1e748a39064934ea89984dc00903461dec76cf095c" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc57f85ffccf8e70b0898a351a513249073689e3f752ccf5980e9a9f53238814cf822bfd393e5a011182187e00da33bb8e6816d22227c1bea13e524cbd9a9a680a44d56bcedb7f86701ed51a92e89385df2b1c75b0f37f923eb260624b5d284a0ffc7ea45fde7e851f983f4b08643d36fb7fcb1bf05d594a5a4ae8f78d65fa246681c47ea1923a30a28600082254cfb4a371204ff38164bfcb55e812a6827ed264429a54cb049ca7b40bd569a3ef78dedb9eca1ec189311e985499160fecd9b7a91388def686639bf0ab60f9ae38f5a6243f7ba78a20e0a12b482c5e4d2820140406f08d55a5d121fcbcb0e4b1ce0cb777e218d05d46ccbcf520504b84d2cf59a25e57c4dbeb6178d720ec23120460764d" ], "v": 2 } @@ -151,19 +151,19 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb285c978dec1b963bc7f60328f5e80987d0fd5c266ddfe367bc45ae9d35c78b62216a88578fd6b7f3353b0fa522a49300f909b7e4eb8a4cb21b595928c4cec39ada57da373fe98b35da780b9543a776ed4ded7c12bd4a235469aa7cb73060b1daca38770c691ab287a26ff3442951680b464c65d98e856871c6f8ea6ad100dd170f6a0a40e79ea5e8e88453b49b22c9c4b3984e3f2f9cbc7de39942eecebe0a2ddf50064dc5444858a4d3d68ab497f985e186087a7e693f55ee9cd0b152defb4771292c472ce71e3e041fc2ed819ef9c64a216f2efd24ae8f5ad84bca30d962e3db6e9a4ec9e6769502cbe0ca2ab0c4bb8d4594051a872ae5146ac98dd993b43be39dfcdf2acf50f8d4cf930295704f8606\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce5c3c861e0d404bee8c16e5ebce826e0d8e85dd403f45a75081065aefadf5fc7c59b86264a4847de423f3625a82374ebf02cb1fb0b4b0001fc8d58ae7cf9a3fc6041ad3d2d4fdd03e1a6c86f9b23525ad50aa6911b529a79e5578e20381b28f95691a92f787294ee30604140fffe39a8cb6075aba4c7a2811c54806fadc353a79e9a9a6252965bcfbe5faa4ece57440ba74f2e58b7b6c49adc3e8cfffe43b1d3b0268747f275d14e68ffb3eca6a6590aea2bf07f64018b090e4944355fda0616d6e296e8042fcd4579f5568c5deeb407ac9a78f485a653c609e0a7d010933314ad2fdbc047a4b0057d99c082e15983941f75332acb480a95b683749cfebf77eb6503281f91e69eab8462513b6bc21ee2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 4949, + "Plan Rows": 5049, "Plan Width": 36, "Relation Name": "integer_encrypted_10000", "Startup Cost": 0.0, - "Total Cost": 7766.25 + "Total Cost": 7791.25 } ], "Startup Cost": 0.0, - "Total Cost": 156.93 + "Total Cost": 154.31 } } ], @@ -176,7 +176,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb285c978dec1b963bc7f60328f5e80987d0fd5c266ddfe367bc45ae9d35c78b62216a88578fd6b7f3353b0fa522a49300f909b7e4eb8a4cb21b595928c4cec39ada57da373fe98b35da780b9543a776ed4ded7c12bd4a235469aa7cb73060b1daca38770c691ab287a26ff3442951680b464c65d98e856871c6f8ea6ad100dd170f6a0a40e79ea5e8e88453b49b22c9c4b3984e3f2f9cbc7de39942eecebe0a2ddf50064dc5444858a4d3d68ab497f985e186087a7e693f55ee9cd0b152defb4771292c472ce71e3e041fc2ed819ef9c64a216f2efd24ae8f5ad84bca30d962e3db6e9a4ec9e6769502cbe0ca2ab0c4bb8d4594051a872ae5146ac98dd993b43be39dfcdf2acf50f8d4cf930295704f8606" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce5c3c861e0d404bee8c16e5ebce826e0d8e85dd403f45a75081065aefadf5fc7c59b86264a4847de423f3625a82374ebf02cb1fb0b4b0001fc8d58ae7cf9a3fc6041ad3d2d4fdd03e1a6c86f9b23525ad50aa6911b529a79e5578e20381b28f95691a92f787294ee30604140fffe39a8cb6075aba4c7a2811c54806fadc353a79e9a9a6252965bcfbe5faa4ece57440ba74f2e58b7b6c49adc3e8cfffe43b1d3b0268747f275d14e68ffb3eca6a6590aea2bf07f64018b090e4944355fda0616d6e296e8042fcd4579f5568c5deeb407ac9a78f485a653c609e0a7d010933314ad2fdbc047a4b0057d99c082e15983941f75332acb480a95b683749cfebf77eb6503281f91e69eab8462513b6bc21ee2" ], "v": 2 } @@ -205,7 +205,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bd14cf178b5b2bc249907e3fd3c316685c21da18b9799bb2019a55b33a03ec10016e5df6f52463e42a5f7c65bc262835c7f386cbcbe1cce4365354aeb256ed6ba39c5fd8fdfdce54ff35ffa6c805b8f29bb0d735259363a817e90f37bdf77bf3b497030fbd74c204989269243cebd42fa6c3df44bbbbed0343baad9c36c62c757cec82ad28ce60ebe091a0d770f6af73a76548b89eaeaaa72f67207dbb325dc491512e93e9088472e63df942e3d9e7f620b53c4d28c1c3e814d03d73c1a2a38096f6548a6c9c8cab0bcb4976ac8371db29f1db84adb4ed0b046e345c67a22d5a8ea0b95c4b7b7940d63d4764f178f0779012f34475326cad8355ddfa988277344bfe76f3e73b78e0581a852eb5a69c899\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b97e769d90c4aa9a8664f6041d91455ab95f38d16a8d06669d4393487ea6b1fde1e9532e3d075810c7cb75e2312c1ccba071e065a23c2c3d3a795fb836994b62dd2cba44bf078dcbe8ede1f0da70b421fcb6a55bdd32f285afe0a8220222afee937aedbb92a2b194a84788b6d45abcff27fa4549e99bcb6c1455f529609f6140fb5cbc35040f21dfd54508018a0a25bd0c4c9d35e526b7ad0843121738b0feee112e30d6cb8d6a50f1dd5c5bb7c50353132130126f16db97a124be86b4b499375ac323ae8f3b4262a34287177780d745228248f4271ef33e241274647edd2e7bb9ddcedb3a20db9a682cba094412acfce00bdc7d690e9502058a1b91da23040b9c8851684336236c699500b7d827d84454\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -216,7 +216,7 @@ "Total Cost": 16.91 } ], - "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bd14cf178b5b2bc249907e3fd3c316685c21da18b9799bb2019a55b33a03ec10016e5df6f52463e42a5f7c65bc262835c7f386cbcbe1cce4365354aeb256ed6ba39c5fd8fdfdce54ff35ffa6c805b8f29bb0d735259363a817e90f37bdf77bf3b497030fbd74c204989269243cebd42fa6c3df44bbbbed0343baad9c36c62c757cec82ad28ce60ebe091a0d770f6af73a76548b89eaeaaa72f67207dbb325dc491512e93e9088472e63df942e3d9e7f620b53c4d28c1c3e814d03d73c1a2a38096f6548a6c9c8cab0bcb4976ac8371db29f1db84adb4ed0b046e345c67a22d5a8ea0b95c4b7b7940d63d4764f178f0779012f34475326cad8355ddfa988277344bfe76f3e73b78e0581a852eb5a69c899\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b97e769d90c4aa9a8664f6041d91455ab95f38d16a8d06669d4393487ea6b1fde1e9532e3d075810c7cb75e2312c1ccba071e065a23c2c3d3a795fb836994b62dd2cba44bf078dcbe8ede1f0da70b421fcb6a55bdd32f285afe0a8220222afee937aedbb92a2b194a84788b6d45abcff27fa4549e99bcb6c1455f529609f6140fb5cbc35040f21dfd54508018a0a25bd0c4c9d35e526b7ad0843121738b0feee112e30d6cb8d6a50f1dd5c5bb7c50353132130126f16db97a124be86b4b499375ac323ae8f3b4262a34287177780d745228248f4271ef33e241274647edd2e7bb9ddcedb3a20db9a682cba094412acfce00bdc7d690e9502058a1b91da23040b9c8851684336236c699500b7d827d84454\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Relation Name": "integer_encrypted_10000", "Startup Cost": 16.92, "Total Cost": 226.86 @@ -238,13 +238,13 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bd14cf178b5b2bc249907e3fd3c316685c21da18b9799bb2019a55b33a03ec10016e5df6f52463e42a5f7c65bc262835c7f386cbcbe1cce4365354aeb256ed6ba39c5fd8fdfdce54ff35ffa6c805b8f29bb0d735259363a817e90f37bdf77bf3b497030fbd74c204989269243cebd42fa6c3df44bbbbed0343baad9c36c62c757cec82ad28ce60ebe091a0d770f6af73a76548b89eaeaaa72f67207dbb325dc491512e93e9088472e63df942e3d9e7f620b53c4d28c1c3e814d03d73c1a2a38096f6548a6c9c8cab0bcb4976ac8371db29f1db84adb4ed0b046e345c67a22d5a8ea0b95c4b7b7940d63d4764f178f0779012f34475326cad8355ddfa988277344bfe76f3e73b78e0581a852eb5a69c899" + "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b97e769d90c4aa9a8664f6041d91455ab95f38d16a8d06669d4393487ea6b1fde1e9532e3d075810c7cb75e2312c1ccba071e065a23c2c3d3a795fb836994b62dd2cba44bf078dcbe8ede1f0da70b421fcb6a55bdd32f285afe0a8220222afee937aedbb92a2b194a84788b6d45abcff27fa4549e99bcb6c1455f529609f6140fb5cbc35040f21dfd54508018a0a25bd0c4c9d35e526b7ad0843121738b0feee112e30d6cb8d6a50f1dd5c5bb7c50353132130126f16db97a124be86b4b499375ac323ae8f3b4262a34287177780d745228248f4271ef33e241274647edd2e7bb9ddcedb3a20db9a682cba094412acfce00bdc7d690e9502058a1b91da23040b9c8851684336236c699500b7d827d84454" ], "v": 2 } ], "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value > $1 LIMIT 100", - "rows_returned": 16 + "rows_returned": 21 }, { "explain": [ @@ -259,7 +259,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6aa980fdc390f88b2c4f8ba1ce48984b408d7786b85d6952020359294210bb89a853960740e38339a5d089ee4643523719c74de8b1da34690e5b508103853d5ce147f0016c2a396da1b28b45fd0075aa52f85e4d7e4a96bc4f0b0066e40092445c39e0c2fa7fca297e0abfb2ec341c09b3320bd6f394cbbe694143a5072fac5bd988993e7080c71951767ab3743b896dcbdc1649c5965f7ebc3f9a920352a81a53640edd035c20ef76feeef51c8279004359d05e7daf293813099ea14506303240b16ed5707ef6f8b32c987ec547a47a44c143fcb8f8a1e4eabe8eefe3d489870390a5c95bc0b106ef490f6b2cbc7c8fe35cc151a9269608fac38392eb51478459851be6fdcac086fbc4ca4d687c5de2ae\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e365e1efa586a135a120a71549033398f2cbce5b88891afc9d3a622967aa8d8dc53b113eaf91f7e0fe64b07e4809682e3b02d669a9ea612ff80f029011631431896c4512ad6391d90c7827c6faa85e075cb13d2b5674e86d899e6f3bd910ba29df139ba69d18cbf9ae9dfe04592c10d1fcad9a67ab809095c71f799a08037dfd15c2849c19a43d11c03a535751da2c46b581f8a33a8feb983049bf6468551c1f7de504a324f2655f7405b318fd2f8284c5d43ad52934069c2e69a7c9d0aa2e0116866002104f3fedf883ea021aafd8440838f441c1246ad022cfe7f46c402f36d88bc44059f55ecaf8b83a1166da49675be7aadb67a15af6ec4fa71ddfef80fb72c9e167c4f075207100662462a5ccaae1c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -269,7 +269,7 @@ "Relation Name": "integer_encrypted_10000", "Scan Direction": "Forward", "Startup Cost": 0.54, - "Total Cost": 229.91 + "Total Cost": 229.9 } ], "Startup Cost": 0.54, @@ -288,13 +288,13 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6aa980fdc390f88b2c4f8ba1ce48984b408d7786b85d6952020359294210bb89a853960740e38339a5d089ee4643523719c74de8b1da34690e5b508103853d5ce147f0016c2a396da1b28b45fd0075aa52f85e4d7e4a96bc4f0b0066e40092445c39e0c2fa7fca297e0abfb2ec341c09b3320bd6f394cbbe694143a5072fac5bd988993e7080c71951767ab3743b896dcbdc1649c5965f7ebc3f9a920352a81a53640edd035c20ef76feeef51c8279004359d05e7daf293813099ea14506303240b16ed5707ef6f8b32c987ec547a47a44c143fcb8f8a1e4eabe8eefe3d489870390a5c95bc0b106ef490f6b2cbc7c8fe35cc151a9269608fac38392eb51478459851be6fdcac086fbc4ca4d687c5de2ae" + "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e365e1efa586a135a120a71549033398f2cbce5b88891afc9d3a622967aa8d8dc53b113eaf91f7e0fe64b07e4809682e3b02d669a9ea612ff80f029011631431896c4512ad6391d90c7827c6faa85e075cb13d2b5674e86d899e6f3bd910ba29df139ba69d18cbf9ae9dfe04592c10d1fcad9a67ab809095c71f799a08037dfd15c2849c19a43d11c03a535751da2c46b581f8a33a8feb983049bf6468551c1f7de504a324f2655f7405b318fd2f8284c5d43ad52934069c2e69a7c9d0aa2e0116866002104f3fedf883ea021aafd8440838f441c1246ad022cfe7f46c402f36d88bc44059f55ecaf8b83a1166da49675be7aadb67a15af6ec4fa71ddfef80fb72c9e167c4f075207100662462a5ccaae1c" ], "v": 2 } ], "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value > $1 LIMIT 10", - "rows_returned": 1 + "rows_returned": 3 }, { "explain": [ @@ -309,21 +309,21 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fa597283f14cd500b5ab76d12edda4cfb5911b350739fe2b2c4d928845173ae80d26eeb1ea64d99536a10252d25c51df841f74f2fc79cf2593a72d5c75a95b69fd9edbec2f2acacc2e9d83f03596f9baa07863b79d4c889d29c4045e2da13f8deef2feecd03d2f703b7387dc39b18d25faf252483c93855ff52f66be2628b280fbdc0fc46169a63baabe59d0cfbe0efef4498a79eb5b971b5e4094fb83ebe2e3f0e7ab4d5ab80cab21547e41c23597d709a3b8c1d4d80ec742793a09b32ed2bc310afa37260a09ca4e9def5f1c032463bc9287295ad8f8328e8d523ef28bee2a55350ee1b499b0d080a17d999648e50e9426706dcde1fabb05e335cd73a95799e005ca08ed6f0a3f12ad7dec97354bf9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bca312a3e2e91346fccfa7e1e73602090d983d69dadc05e5db49676b273551a87fc355b31dc329804542f93d17c67a463498b75ff7ec9503249fac50bc3a8029b9440d50832ebf92d5c23ef249c4f08a7fccf67d8e82bc15a9ad391669869dba89b8a6c082544bc8a5a3095186eccf71494a2beec0115605b56a0603d26e2c5e2bd4de6f8c3e1b9f07bd4bb6ba6f972899977547dc254b31f019886c76ce8ac1aea86f7d397773651ea1a24c8ba34bf18d1ff9df0ae42bedee88abb323942e6b7b266dba24babd21e6f757dfa02ff5b88be00f15909ff72a17c74ced3f6b2376ff8ca7c50958342bead3f9a2dcaee0e108f1f465fc354acc8f5cd4a09902cc52707da38f7311e51ef77d82ea93de2537ed\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 4949, + "Plan Rows": 5049, "Plan Width": 68, "Relation Name": "integer_encrypted_10000", "Scan Direction": "Forward", "Startup Cost": 0.54, - "Total Cost": 9829.55 + "Total Cost": 9909.19 } ], "Startup Cost": 0.54, - "Total Cost": 20.4 + "Total Cost": 20.16 } } ], @@ -338,7 +338,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fa597283f14cd500b5ab76d12edda4cfb5911b350739fe2b2c4d928845173ae80d26eeb1ea64d99536a10252d25c51df841f74f2fc79cf2593a72d5c75a95b69fd9edbec2f2acacc2e9d83f03596f9baa07863b79d4c889d29c4045e2da13f8deef2feecd03d2f703b7387dc39b18d25faf252483c93855ff52f66be2628b280fbdc0fc46169a63baabe59d0cfbe0efef4498a79eb5b971b5e4094fb83ebe2e3f0e7ab4d5ab80cab21547e41c23597d709a3b8c1d4d80ec742793a09b32ed2bc310afa37260a09ca4e9def5f1c032463bc9287295ad8f8328e8d523ef28bee2a55350ee1b499b0d080a17d999648e50e9426706dcde1fabb05e335cd73a95799e005ca08ed6f0a3f12ad7dec97354bf9" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bca312a3e2e91346fccfa7e1e73602090d983d69dadc05e5db49676b273551a87fc355b31dc329804542f93d17c67a463498b75ff7ec9503249fac50bc3a8029b9440d50832ebf92d5c23ef249c4f08a7fccf67d8e82bc15a9ad391669869dba89b8a6c082544bc8a5a3095186eccf71494a2beec0115605b56a0603d26e2c5e2bd4de6f8c3e1b9f07bd4bb6ba6f972899977547dc254b31f019886c76ce8ac1aea86f7d397773651ea1a24c8ba34bf18d1ff9df0ae42bedee88abb323942e6b7b266dba24babd21e6f757dfa02ff5b88be00f15909ff72a17c74ced3f6b2376ff8ca7c50958342bead3f9a2dcaee0e108f1f465fc354acc8f5cd4a09902cc52707da38f7311e51ef77d82ea93de2537ed" ], "v": 2 } diff --git a/results/query/ore_metadata_100000.json b/results/query/ore_metadata_100000.json index 759ca1a..b21a516 100644 --- a/results/query/ore_metadata_100000.json +++ b/results/query/ore_metadata_100000.json @@ -13,19 +13,19 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2887fa79ab6922a3fbece8a25bdef4c17916b4ddfc1858724d76eead689d241f6e289df0b37556748c0d9d2aca977f4513470000b8168f3308fd72025f31fd023d43b06dc4fc81a5e223cc54557451bc5ba4c7f7cf19e3c28ec4065c02461424ac2b0fe449e08bda47ab9ebc150527d82dbce68fa6e13a9b5bfc245afb84f357ca18d7a1a7fb8fa5501638611357c7b5828612addf3441169a9d5e29c78d6019bf186518cc170fc9b1253993f028cb937403b4ba1f0083b37ae2193bb308de175d80442984b6c4c1745d127047b76b381b6f190cb0e7e726deb6d772c9d46104cdf8014c4bc8f69b4f329ec172d2f626259c9854b69f670c2af6b923de020c1e43ba946dcc5e76b5c04b649179b5e078b5\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bca47ad7534549731c44e6f8ae43f935528296fe8d3533fe139de063f95576d9b55dbdda14c67c41e5fba98e168b989ff6d69ab07c4facafffc88a9c07d08b03a392cd10c4eddcc204656c32fe8322644e9d1668a79977496654e3679ea13c53bc94a0d230f1011e831d43ddf27a31c39e12508fbd608bb1dc684c649dd97bf573aeb0a5078fe6e72c00230490ed497305581711594898b52e4ad8ad040692f613b8594678f4c2ae77b9b2e64f691626ed188e9045730c0df6031ffdd36fd3ca6d212874284261cc54a165fc2d832ebf4c5e66a2387dc40e05f258034a674550b1b9e9ed526c8cdc80ae6883d36a103a05a3ced71df03b5a404a40f752d0524e97eb2e09f5399b6d4fad3034fcdefcef8d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 50500, "Plan Width": 36, "Relation Name": "integer_encrypted_100000", "Startup Cost": 0.0, - "Total Cost": 73619.25 + "Total Cost": 77911.0 } ], "Startup Cost": 0.0, - "Total Cost": 22.09 + "Total Cost": 15.43 } } ], @@ -38,7 +38,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2887fa79ab6922a3fbece8a25bdef4c17916b4ddfc1858724d76eead689d241f6e289df0b37556748c0d9d2aca977f4513470000b8168f3308fd72025f31fd023d43b06dc4fc81a5e223cc54557451bc5ba4c7f7cf19e3c28ec4065c02461424ac2b0fe449e08bda47ab9ebc150527d82dbce68fa6e13a9b5bfc245afb84f357ca18d7a1a7fb8fa5501638611357c7b5828612addf3441169a9d5e29c78d6019bf186518cc170fc9b1253993f028cb937403b4ba1f0083b37ae2193bb308de175d80442984b6c4c1745d127047b76b381b6f190cb0e7e726deb6d772c9d46104cdf8014c4bc8f69b4f329ec172d2f626259c9854b69f670c2af6b923de020c1e43ba946dcc5e76b5c04b649179b5e078b5" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bca47ad7534549731c44e6f8ae43f935528296fe8d3533fe139de063f95576d9b55dbdda14c67c41e5fba98e168b989ff6d69ab07c4facafffc88a9c07d08b03a392cd10c4eddcc204656c32fe8322644e9d1668a79977496654e3679ea13c53bc94a0d230f1011e831d43ddf27a31c39e12508fbd608bb1dc684c649dd97bf573aeb0a5078fe6e72c00230490ed497305581711594898b52e4ad8ad040692f613b8594678f4c2ae77b9b2e64f691626ed188e9045730c0df6031ffdd36fd3ca6d212874284261cc54a165fc2d832ebf4c5e66a2387dc40e05f258034a674550b1b9e9ed526c8cdc80ae6883d36a103a05a3ced71df03b5a404a40f752d0524e97eb2e09f5399b6d4fad3034fcdefcef8d" ], "v": 2 } @@ -59,19 +59,19 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28de69a9ae665f6b140b5ae556a1bbfc214537ac7b4624f8f12be09e19c2f06490769a9e19355bb8d959d556d0fe5becf2aa7664874299016671fcf332a5dac73c584a66dec6ae50bbe29d9dbda833ee0487a3c7dd125ec2a35de08e5e134a1469cdf9a8259c72d5efb04b11d73eaa4f4052636c3532a562b47e6741dfb89f15440de4fb7f5628d89455e3621d46914ed72158a86590ea0f048991bbfa9b229ee7fd07f985078ebbbdcba8ae35f3748c2743d6aa369c04126f691babd6b457a5fec7ef29cfcb9e0c04b6a2a7ea16965b95c7247f5391463d4c748aa98039b82a27b364291101ee56eb753d20e4a78bd89a36c90155e29b3212a9148c82e31720d49da083aed5ddc5479caa9c6b1f8aea01\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcc8d0e399915c1409fbe0693675ccdf11458ba4640908d8197d60f34cf19ad8ae8795552ae5ac3976d25075691f279e335e9abcff0102d9d2ace321522e17591b35726bca2c1efa066d734337789854fd221d52799ebc7842fd15d7fc500f27027ce0cf3cd9273fa6a217ffc95881800ab06d6c75adf5b21cbf8b7ba6f8e962d79ae0b9fda4729a8f027c1b0f0651935bc5639fc10d3c3b5230824c6178cc45fecd0bbf22dbd5268049788ab40b3b5a334d6e81d475617b8cf23046eb1068fe3e115047cef9ef39f4e34278fd33f05b6cb875bdd160d57a0061bd8ebaacf429f9a96fafcd18d2a901ab3b987a57147a3bd39d0e5c3a9bb87a75e24ef2ad1c006eb08af175e138160fad88f898f057d696\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 50500, "Plan Width": 36, "Relation Name": "integer_encrypted_100000", "Startup Cost": 0.0, - "Total Cost": 73619.25 + "Total Cost": 77911.0 } ], "Startup Cost": 0.0, - "Total Cost": 220.86 + "Total Cost": 154.28 } } ], @@ -84,7 +84,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28de69a9ae665f6b140b5ae556a1bbfc214537ac7b4624f8f12be09e19c2f06490769a9e19355bb8d959d556d0fe5becf2aa7664874299016671fcf332a5dac73c584a66dec6ae50bbe29d9dbda833ee0487a3c7dd125ec2a35de08e5e134a1469cdf9a8259c72d5efb04b11d73eaa4f4052636c3532a562b47e6741dfb89f15440de4fb7f5628d89455e3621d46914ed72158a86590ea0f048991bbfa9b229ee7fd07f985078ebbbdcba8ae35f3748c2743d6aa369c04126f691babd6b457a5fec7ef29cfcb9e0c04b6a2a7ea16965b95c7247f5391463d4c748aa98039b82a27b364291101ee56eb753d20e4a78bd89a36c90155e29b3212a9148c82e31720d49da083aed5ddc5479caa9c6b1f8aea01" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcc8d0e399915c1409fbe0693675ccdf11458ba4640908d8197d60f34cf19ad8ae8795552ae5ac3976d25075691f279e335e9abcff0102d9d2ace321522e17591b35726bca2c1efa066d734337789854fd221d52799ebc7842fd15d7fc500f27027ce0cf3cd9273fa6a217ffc95881800ab06d6c75adf5b21cbf8b7ba6f8e962d79ae0b9fda4729a8f027c1b0f0651935bc5639fc10d3c3b5230824c6178cc45fecd0bbf22dbd5268049788ab40b3b5a334d6e81d475617b8cf23046eb1068fe3e115047cef9ef39f4e34278fd33f05b6cb875bdd160d57a0061bd8ebaacf429f9a96fafcd18d2a901ab3b987a57147a3bd39d0e5c3a9bb87a75e24ef2ad1c006eb08af175e138160fad88f898f057d696" ], "v": 2 } @@ -105,19 +105,19 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28b2c5ac0a2da469ce95406da3e10b08a23f33dc21e4b4939b1b0138b627bc085fa2d8895e011f487226b5957f55c2e0a0039d8417243c881975f41308ffbb19a656cb32c787e3ba41587fa9e43f32d8b30cb06eb5f410a25bb22c796d354461d479a5231ee4ab0421dfb711e595731bfdc6ba468abbadcb2a7b5b5d930eba74359974a3c92ca8f26ffaad6cc48e643853f3a5dfd8d7ba9c04e5b3a7d5838f2e39d45e2ec9c20df33424f4cc99449d67a4792b403b67167f998327b0d5e9f38392232307449b2c240347932c141da4f50672c6b791ae8c511190ff51ec18efee11b76d26a7a0b1ec0eafaaa4da17c7b22e394e4b2fe4a6bd7fd0d810d483e16a5d6ec157ff8f57711777b135f1a41fa3bc\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcdcffe978b21683de0de0c34696ae1e7af3620b38927983ed81e4f0a065da02e5df334f1bd8a45773dcd6cde85981d31d68e57fbfd5ed1fe323c0d7927ddae1fec43c67f1613027cdff914a690c2a2ec1aab26220e32cfc55846614b8e3e400035ac430c1fedd962fc35c40bc56a064e9a5584fba907c54662db4c092da217fee9ea90c53009a4cdbdabcee3ecf0314f9b11a0dc17ec276ca15c9c5b605ad14b4e6ef140b436ec03c1f4e21131f1bf4ccef35cadbd3e34054ae2dab502bcec0c14ab401f134c0fad17bc2db1c36840e4a81a3140bd0ff75feee8a040f7bb6f48cb75154629e7ab32688a47b460cae90074ecc9740fde20a9ce14882b427996dfa631adde672809609a140b1d657de6213\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 49499, "Plan Width": 36, "Relation Name": "integer_encrypted_100000", "Startup Cost": 0.0, - "Total Cost": 73619.25 + "Total Cost": 77660.75 } ], "Startup Cost": 0.0, - "Total Cost": 22.09 + "Total Cost": 15.69 } } ], @@ -130,7 +130,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28b2c5ac0a2da469ce95406da3e10b08a23f33dc21e4b4939b1b0138b627bc085fa2d8895e011f487226b5957f55c2e0a0039d8417243c881975f41308ffbb19a656cb32c787e3ba41587fa9e43f32d8b30cb06eb5f410a25bb22c796d354461d479a5231ee4ab0421dfb711e595731bfdc6ba468abbadcb2a7b5b5d930eba74359974a3c92ca8f26ffaad6cc48e643853f3a5dfd8d7ba9c04e5b3a7d5838f2e39d45e2ec9c20df33424f4cc99449d67a4792b403b67167f998327b0d5e9f38392232307449b2c240347932c141da4f50672c6b791ae8c511190ff51ec18efee11b76d26a7a0b1ec0eafaaa4da17c7b22e394e4b2fe4a6bd7fd0d810d483e16a5d6ec157ff8f57711777b135f1a41fa3bc" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcdcffe978b21683de0de0c34696ae1e7af3620b38927983ed81e4f0a065da02e5df334f1bd8a45773dcd6cde85981d31d68e57fbfd5ed1fe323c0d7927ddae1fec43c67f1613027cdff914a690c2a2ec1aab26220e32cfc55846614b8e3e400035ac430c1fedd962fc35c40bc56a064e9a5584fba907c54662db4c092da217fee9ea90c53009a4cdbdabcee3ecf0314f9b11a0dc17ec276ca15c9c5b605ad14b4e6ef140b436ec03c1f4e21131f1bf4ccef35cadbd3e34054ae2dab502bcec0c14ab401f134c0fad17bc2db1c36840e4a81a3140bd0ff75feee8a040f7bb6f48cb75154629e7ab32688a47b460cae90074ecc9740fde20a9ce14882b427996dfa631adde672809609a140b1d657de6213" ], "v": 2 } @@ -151,19 +151,19 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fd6c2742e900b23d5877101beff1a03dd83ded73210dfcb0cc15acc98c37cfbd7d27c306f2c86e7c37d59dfdc35a00f966cfed157e45508526ea26b733710176aa28b533cee713aca07d458ccf470f946a823f0d57ecfff013ab9a059f0e0dd954a4fc89398c2673bd656bbc49a27a156b257130230c80e61029665b6e7d6ae3d29a20b928abb6c7b0d4a9d67165308591e5288e303f8fd36f5470f822a77449182dee99899d16e9a65b62ab17714cb794da8af30e2411ca7b59e1776a37d6ca89bd5eb0d18fdaabc6b0ae968c437d2a501c4fe385896194bd680a255cdd6df77f8d454e955b474773dac0f4448d51724113022490b497034284b75b1fe0d24092fee0207405b57af5158aa9e7a08cd9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc0fc2aba22d9169f6b28d24ca48b501dca3db2a5e16d50e4f7f14473c2138ce0768831cfe327fb1b6cf7f233d3073a6f71fcc86a1cea7478f892fc2039d2f98a4b3fde24cd6792d1d8379215fbeb931c41780d00691592a0d7b1b921b9a04101c70140d87534627f2a92c7fa32d36be3ea3da049bc5e5cf203af86eacf599a7b85e328dbb7d03c22a60556c07ab23547da67943a66e7c5211bce92361f2d2add82ccfb15e6113160936f5c77efd2ad3ad91a585ac53c9bd1d7ed93d359ab6bcaebca1c92b97ce6a9ab37ad67ca277d41c137b8a0cbc08dba59590bf723a804be8fa60762c91b8e9c035ef15484204d84d052e1340c9da3d002839f93015b48c3e50816eebc7f77825d62b76d5ed31fa3e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 49499, "Plan Width": 36, "Relation Name": "integer_encrypted_100000", "Startup Cost": 0.0, - "Total Cost": 73619.25 + "Total Cost": 77660.75 } ], "Startup Cost": 0.0, - "Total Cost": 220.86 + "Total Cost": 156.89 } } ], @@ -176,7 +176,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28fd6c2742e900b23d5877101beff1a03dd83ded73210dfcb0cc15acc98c37cfbd7d27c306f2c86e7c37d59dfdc35a00f966cfed157e45508526ea26b733710176aa28b533cee713aca07d458ccf470f946a823f0d57ecfff013ab9a059f0e0dd954a4fc89398c2673bd656bbc49a27a156b257130230c80e61029665b6e7d6ae3d29a20b928abb6c7b0d4a9d67165308591e5288e303f8fd36f5470f822a77449182dee99899d16e9a65b62ab17714cb794da8af30e2411ca7b59e1776a37d6ca89bd5eb0d18fdaabc6b0ae968c437d2a501c4fe385896194bd680a255cdd6df77f8d454e955b474773dac0f4448d51724113022490b497034284b75b1fe0d24092fee0207405b57af5158aa9e7a08cd9" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc0fc2aba22d9169f6b28d24ca48b501dca3db2a5e16d50e4f7f14473c2138ce0768831cfe327fb1b6cf7f233d3073a6f71fcc86a1cea7478f892fc2039d2f98a4b3fde24cd6792d1d8379215fbeb931c41780d00691592a0d7b1b921b9a04101c70140d87534627f2a92c7fa32d36be3ea3da049bc5e5cf203af86eacf599a7b85e328dbb7d03c22a60556c07ab23547da67943a66e7c5211bce92361f2d2add82ccfb15e6113160936f5c77efd2ad3ad91a585ac53c9bd1d7ed93d359ab6bcaebca1c92b97ce6a9ab37ad67ca277d41c137b8a0cbc08dba59590bf723a804be8fa60762c91b8e9c035ef15484204d84d052e1340c9da3d002839f93015b48c3e50816eebc7f77825d62b76d5ed31fa3e" ], "v": 2 } @@ -197,24 +197,28 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bbb7b8e94bc9493304a6a2ffc7d98bf729ed1f9df61ecaa947365a8db06c5606e67c0690c9b2ece73c34a469b21e9fdae0da5ee9cf7ca0450f8ae0891c55b9eb19cfcdaa5c4dab13167f727789b59bfb5714b926ee4715ca0b728030903b03c62115448572bd33dbc08be3cc5520c3ccc56468970c77985aafe1bdce865f6667b0bdc83cb2ae1214a1bd62b173349080fb6dbe9ac51ca1278e75f58eafec4632b832e75266f26c0358edcf68e4a6e17a0f24eb36d88634f0c996b16e0b39f71178f8f18a66a3e98efb16b9bcdd586870297fdbf30d654966cc2f2c30b35b7ecacd1ac767381b330a3332394a52f14b5e6a526e967a3fad744764f660c744e46c00dcfffc91b843bef8aa0de06ba91beb1\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b953531b3b060ae34090ce80ad8482fc3f7762b9c33883b4da2c2f076642d3ed31a6aeff2b3575f09ff7f6310123141304841cc74996d88850fc4ed1f989f4a1693019e01ac64f4c7f46a67c7a1aa6e5e810b697da0815820d5c58f730940200e6676e103c4bd6746b27e374fef5fc76de8f5efe5f547f0c42e8fc48d4a0ce0dfb5f299cb6b36b9d5b76aeb113732d9b8d2acfe5afb7d9e6d59c140578ab4a9d48f298ceddf20a7bf028c04ce603ea91f30a2c09e03e7b20561ab94b23f0dd629b98cfeafbf8400e34f14ab8272b5a00358d9b060a0844768cc814e8a764148f29f3063d95818f26c5b7fae5e61e5d954045faa5cf50958bf6b96b5850afae14f3ab58ea7120338014aa91e85a496c5b13\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_100000_ore_index", + "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 500, "Plan Width": 36, "Relation Name": "integer_encrypted_100000", - "Startup Cost": 0.0, - "Total Cost": 73619.25 + "Scan Direction": "Forward", + "Startup Cost": 0.67, + "Total Cost": 2258.41 } ], - "Startup Cost": 0.0, - "Total Cost": 220.86 + "Startup Cost": 0.67, + "Total Cost": 452.22 } } ], "id": "ORE/ore/range_selective_gt_100/100000", - "indexes_used": [], + "indexes_used": [ + "integer_encrypted_100000_ore_index" + ], "parameters": [ { "i": { @@ -222,7 +226,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bbb7b8e94bc9493304a6a2ffc7d98bf729ed1f9df61ecaa947365a8db06c5606e67c0690c9b2ece73c34a469b21e9fdae0da5ee9cf7ca0450f8ae0891c55b9eb19cfcdaa5c4dab13167f727789b59bfb5714b926ee4715ca0b728030903b03c62115448572bd33dbc08be3cc5520c3ccc56468970c77985aafe1bdce865f6667b0bdc83cb2ae1214a1bd62b173349080fb6dbe9ac51ca1278e75f58eafec4632b832e75266f26c0358edcf68e4a6e17a0f24eb36d88634f0c996b16e0b39f71178f8f18a66a3e98efb16b9bcdd586870297fdbf30d654966cc2f2c30b35b7ecacd1ac767381b330a3332394a52f14b5e6a526e967a3fad744764f660c744e46c00dcfffc91b843bef8aa0de06ba91beb1" + "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b953531b3b060ae34090ce80ad8482fc3f7762b9c33883b4da2c2f076642d3ed31a6aeff2b3575f09ff7f6310123141304841cc74996d88850fc4ed1f989f4a1693019e01ac64f4c7f46a67c7a1aa6e5e810b697da0815820d5c58f730940200e6676e103c4bd6746b27e374fef5fc76de8f5efe5f547f0c42e8fc48d4a0ce0dfb5f299cb6b36b9d5b76aeb113732d9b8d2acfe5afb7d9e6d59c140578ab4a9d48f298ceddf20a7bf028c04ce603ea91f30a2c09e03e7b20561ab94b23f0dd629b98cfeafbf8400e34f14ab8272b5a00358d9b060a0844768cc814e8a764148f29f3063d95818f26c5b7fae5e61e5d954045faa5cf50958bf6b96b5850afae14f3ab58ea7120338014aa91e85a496c5b13" ], "v": 2 } @@ -243,24 +247,28 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6a00f6966051d014749ba52eaa1bb230ce41a9faada4aee59be57cf4ec741a7fb258b9f7815ccdea099dbc335b6390db8717b18e2b055cd6e57d723d01082a67c113226b78e83bd5456ddbb1ac3e8dff0f0c2c1b4c53720f9e9f81dd34dcfec28164deca3ce89a9917dd7a0714fe52c2b56ace4760b061260b94a47e640cb4ba566adf27a929056cf9dbc86adfd3e0d902d0b077f97282f92e9329bba2982e9f8a833dcccf6ae7a41bd55921185805ff395812de5f12cbb828df155f3511c7cd7afd89ba51ea0713bd13fe3d8fdb8a72dd2f4415685ce582109778d90a5eb7ec29091c11eba3fce250007838c5f55a4f385f154163ab80723451c8e9e51c710a294af896e1bea184210ac5667e575a7982\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36d31ebf310f4f64f5edf80e48d5106acd24e0a932f1899d44451ec171617bf9462f3b3defdb109a9c8fdd011ecf6056ff152dea945a72395abcb7c3047ebecd7025b972bba9cac08526c182538e90b3968303422a68b4cfc5275cc59708420f3998c08e8a04db9784be0462bfac2daa18038c49e66523aa3300cc1adce2c2d6d5c9c658a3f5447ad97739ddde9a0fc196dd572f73ff74a4fb2774f1613afbf0665b8832dfbdd46f4cea035ad86dfae1bd64becab39499529c7281a1579080976002a94cc889e36c17232a74ee3b43fa84665959170b38495e31073f45698dcb54e08daddec7cf516627647098be4ffd4a52bc80d28b3d570fab7b6b2e4513c448e2b2513c966a52abd60cef02d033dd26\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_100000_ore_index", + "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 500, "Plan Width": 36, "Relation Name": "integer_encrypted_100000", - "Startup Cost": 0.0, - "Total Cost": 73619.25 + "Scan Direction": "Forward", + "Startup Cost": 0.67, + "Total Cost": 2258.41 } ], - "Startup Cost": 0.0, - "Total Cost": 22.09 + "Startup Cost": 0.67, + "Total Cost": 45.82 } } ], "id": "ORE/ore/range_highly_selective_gt_10/100000", - "indexes_used": [], + "indexes_used": [ + "integer_encrypted_100000_ore_index" + ], "parameters": [ { "i": { @@ -268,13 +276,13 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6a00f6966051d014749ba52eaa1bb230ce41a9faada4aee59be57cf4ec741a7fb258b9f7815ccdea099dbc335b6390db8717b18e2b055cd6e57d723d01082a67c113226b78e83bd5456ddbb1ac3e8dff0f0c2c1b4c53720f9e9f81dd34dcfec28164deca3ce89a9917dd7a0714fe52c2b56ace4760b061260b94a47e640cb4ba566adf27a929056cf9dbc86adfd3e0d902d0b077f97282f92e9329bba2982e9f8a833dcccf6ae7a41bd55921185805ff395812de5f12cbb828df155f3511c7cd7afd89ba51ea0713bd13fe3d8fdb8a72dd2f4415685ce582109778d90a5eb7ec29091c11eba3fce250007838c5f55a4f385f154163ab80723451c8e9e51c710a294af896e1bea184210ac5667e575a7982" + "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36d31ebf310f4f64f5edf80e48d5106acd24e0a932f1899d44451ec171617bf9462f3b3defdb109a9c8fdd011ecf6056ff152dea945a72395abcb7c3047ebecd7025b972bba9cac08526c182538e90b3968303422a68b4cfc5275cc59708420f3998c08e8a04db9784be0462bfac2daa18038c49e66523aa3300cc1adce2c2d6d5c9c658a3f5447ad97739ddde9a0fc196dd572f73ff74a4fb2774f1613afbf0665b8832dfbdd46f4cea035ad86dfae1bd64becab39499529c7281a1579080976002a94cc889e36c17232a74ee3b43fa84665959170b38495e31073f45698dcb54e08daddec7cf516627647098be4ffd4a52bc80d28b3d570fab7b6b2e4513c448e2b2513c966a52abd60cef02d033dd26" ], "v": 2 } ], "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value > $1 LIMIT 10", - "rows_returned": 10 + "rows_returned": 8 }, { "explain": [ @@ -289,21 +297,21 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2830e3a6812683faa41ab7d28d6fb1186f9ad804728320ad991542e5a17bbcdead50e95733f8c9c9b32a5ce4f729ae4f44ae3300cfce0d573dcdf1642fb8ac849d6b9c49baf5f27908edc7f95674333be35f085c5f037bb42c990fe4f5ccba9235f42a34426ad223b73cdf0eb1e0e23fe755a1e74604981f9ee7d97f475d9854d9e823e05f5222bbf6491c9d6065a90fb8aac1bf5c6e019136aa14f19ef67feac356150483810f55f5d672d78128df5be7768157811644bd9bc3a9bec0351f3ede9258d24c0727a48687712722d0b30ef007dfc98244b2009bd159628040d89e912e63915fc261c20d99022ad227b073adc891acde0072ab8958d17bac41e0a5f0c05ec87080960d07eb896418141083c2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc32fb06f4dc0ab36ab1c28b25ebd021e08aab8952a40ba32ffb2c8a1e417cd771d03133c8160da2c0efaa4a739ea7f4457b87052666b3f7e18d82b85be132e368d47a2da4af0dab2a70887fafb9b37924f239ce2639d8de1171faf4fd661c3501a4d1d9cc66f9a8767d019a189870d99127441e4956b25e60f159e5e50d6c363943d096aa7e476ce737393d8344b703a0aee037c9718fe7fa9ec646833b65f67102290d0cd8c6d444b823fe27f4edc44652fb3f3c3f42e88acf5c01ffdbb8b38a1c91da2b65db407f6337d5ed460fa8a76499f883082b0c7dff04b17443c3c257734e1c7b26e782b6e3c7b8effac4da10fa0996ecf03f1aaa2bd2663ebf2814cbf57504215241512f4c07c27e1044c377\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_100000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 33333, + "Plan Rows": 49499, "Plan Width": 68, "Relation Name": "integer_encrypted_100000", "Scan Direction": "Forward", "Startup Cost": 0.67, - "Total Cost": 84790.49 + "Total Cost": 98196.07 } ], "Startup Cost": 0.67, - "Total Cost": 26.1 + "Total Cost": 20.51 } } ], @@ -318,7 +326,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2830e3a6812683faa41ab7d28d6fb1186f9ad804728320ad991542e5a17bbcdead50e95733f8c9c9b32a5ce4f729ae4f44ae3300cfce0d573dcdf1642fb8ac849d6b9c49baf5f27908edc7f95674333be35f085c5f037bb42c990fe4f5ccba9235f42a34426ad223b73cdf0eb1e0e23fe755a1e74604981f9ee7d97f475d9854d9e823e05f5222bbf6491c9d6065a90fb8aac1bf5c6e019136aa14f19ef67feac356150483810f55f5d672d78128df5be7768157811644bd9bc3a9bec0351f3ede9258d24c0727a48687712722d0b30ef007dfc98244b2009bd159628040d89e912e63915fc261c20d99022ad227b073adc891acde0072ab8958d17bac41e0a5f0c05ec87080960d07eb896418141083c2" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc32fb06f4dc0ab36ab1c28b25ebd021e08aab8952a40ba32ffb2c8a1e417cd771d03133c8160da2c0efaa4a739ea7f4457b87052666b3f7e18d82b85be132e368d47a2da4af0dab2a70887fafb9b37924f239ce2639d8de1171faf4fd661c3501a4d1d9cc66f9a8767d019a189870d99127441e4956b25e60f159e5e50d6c363943d096aa7e476ce737393d8344b703a0aee037c9718fe7fa9ec646833b65f67102290d0cd8c6d444b823fe27f4edc44652fb3f3c3f42e88acf5c01ffdbb8b38a1c91da2b65db407f6337d5ed460fa8a76499f883082b0c7dff04b17443c3c257734e1c7b26e782b6e3c7b8effac4da10fa0996ecf03f1aaa2bd2663ebf2814cbf57504215241512f4c07c27e1044c377" ], "v": 2 } diff --git a/results/query/ore_metadata_1000000.json b/results/query/ore_metadata_1000000.json index 8578aa8..cf5e865 100644 --- a/results/query/ore_metadata_1000000.json +++ b/results/query/ore_metadata_1000000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283ae2aff336287192432a7a2a377d1f6a4d3c1217b0cb2638ad900f3f27e5bd813df25230001866af892842d19eb70bc54e9a722854dac3537bbf78d6d9577f56077c86790b50d198ba195c234772d6581e4dbdf105d9af044a02ffffe87bb4bb904ddada19566bbac3132fc899ee9ab1f352323041bd8ca62814d8208b458e5c860e1bee8c63ab16351b7b8f4442d125a94d38158bf3baae8a17d53ca6b9180a2c4a0609e86999c1a930e2a77de2a04ff19096d427e1bd7ca94e9b1f04aeb145a9c8d064406f2146548e3df866a132fc1dca2b2fd1adc28d67ee24aec7415f5df7174fcc67f5e4bf2923e6f3dd029529fb855159aa232016865cfcf102e1639d5efc4a4d279cf0354c38071b894b999a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc035addeee789fb2e823f5127d1ea3eb2abec3e929c3f195e7794ec84783ac99293e9193130a55e1b1410f10b6329d3c464483505f17295f734aefb6e1337d2b9c98fdaf8a235d84ef4ff1960efc83ff09e1bd8f63dd6faaab9b80ccd1384130d8cf4ac09c2fa90bb31be4e1ddebe36774abd33f2d9c2e51eeaed60f34c42a440d7aa1747824c7baa7b9e8b070ad454113251385cf58966ca6a198532ac2cb83f883562dbd945ba80181f5ab2bddbdfdc35957e867f11ba1f413f9d34594bd08be25ec5a8691863d709c0b1bd322e54fa37a4aa7b1397ccbb7e83bfd3fcc86581a771819df23434b5fd4d43ec3b5d7199c5b80d404129c2e570861640f43ed28a0c970002f9a35e1369df809d1309d87e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283ae2aff336287192432a7a2a377d1f6a4d3c1217b0cb2638ad900f3f27e5bd813df25230001866af892842d19eb70bc54e9a722854dac3537bbf78d6d9577f56077c86790b50d198ba195c234772d6581e4dbdf105d9af044a02ffffe87bb4bb904ddada19566bbac3132fc899ee9ab1f352323041bd8ca62814d8208b458e5c860e1bee8c63ab16351b7b8f4442d125a94d38158bf3baae8a17d53ca6b9180a2c4a0609e86999c1a930e2a77de2a04ff19096d427e1bd7ca94e9b1f04aeb145a9c8d064406f2146548e3df866a132fc1dca2b2fd1adc28d67ee24aec7415f5df7174fcc67f5e4bf2923e6f3dd029529fb855159aa232016865cfcf102e1639d5efc4a4d279cf0354c38071b894b999a" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc035addeee789fb2e823f5127d1ea3eb2abec3e929c3f195e7794ec84783ac99293e9193130a55e1b1410f10b6329d3c464483505f17295f734aefb6e1337d2b9c98fdaf8a235d84ef4ff1960efc83ff09e1bd8f63dd6faaab9b80ccd1384130d8cf4ac09c2fa90bb31be4e1ddebe36774abd33f2d9c2e51eeaed60f34c42a440d7aa1747824c7baa7b9e8b070ad454113251385cf58966ca6a198532ac2cb83f883562dbd945ba80181f5ab2bddbdfdc35957e867f11ba1f413f9d34594bd08be25ec5a8691863d709c0b1bd322e54fa37a4aa7b1397ccbb7e83bfd3fcc86581a771819df23434b5fd4d43ec3b5d7199c5b80d404129c2e570861640f43ed28a0c970002f9a35e1369df809d1309d87e" ], "v": 2 } @@ -59,7 +59,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb287f55c1e235f0f2c4954872c6effcdb6edd6a2940b22e632067473197cf10c783e2c93c17d9a82492f0260804fc091c241b25cbc45693d49bb8364dd1e135ac5ff25400f46370d4fdbe89b63f53c2fc0ca05e29208f2fb04f52a33ba87df85488ef74ae5af4add7dd00e389c4d0066a565fa2fda6978c3330b22fa5dc8915eb8ed9fad6c1db12384a5aab884f4f6eff88ffb6a4d64c184311dbf1a44e37273df568f410499f666747a94dd20781a1b5e212ffee6e2fca807cbd3530d8c5a71e30eb9ce9331b3d758d7d224e0e628b5fed0b9a24d3303e2b024c7e92430d23bca54ffabb77607f2beb7c2bf63b80bbf3c58116d7ae7ceb24a747621f603465de861b8fa5ee75e972d9d1398704cc76e397\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcabf433c453472e46375cfb9e11c18e0e3f87e0245b92ddf5108247cb9915ec904903ad62305a9920d42b6890aaebccbc85fc49a32976d85be76bd6c90134b27d4444f4a53289bc92fecfdff9804d948dabc7c704e9f45fe89c47b81710a4fc20f6f274a24618cb01bc9fc89ab94fb800c232512f1fe71f2b607e83af896d4addbbea739c4552e5b465ac7792a211caae25294f851a90ac7aca8391001d9c65b8fb3853c2942b7ec27cd30f5731b657d56e7061d0fd71ad3348733ad44cb48607536f1f9c8fe94a540c405bcc1abfbe88f58171c51a06f1a8e6917a7a5087b5eba87d49f194bb76656a9fde0bce63c2d40df25f1eb5fade7feddbd8c04ebd7776e92ec8e7a769ffe9a5c80e4e63a81412\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -84,7 +84,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb287f55c1e235f0f2c4954872c6effcdb6edd6a2940b22e632067473197cf10c783e2c93c17d9a82492f0260804fc091c241b25cbc45693d49bb8364dd1e135ac5ff25400f46370d4fdbe89b63f53c2fc0ca05e29208f2fb04f52a33ba87df85488ef74ae5af4add7dd00e389c4d0066a565fa2fda6978c3330b22fa5dc8915eb8ed9fad6c1db12384a5aab884f4f6eff88ffb6a4d64c184311dbf1a44e37273df568f410499f666747a94dd20781a1b5e212ffee6e2fca807cbd3530d8c5a71e30eb9ce9331b3d758d7d224e0e628b5fed0b9a24d3303e2b024c7e92430d23bca54ffabb77607f2beb7c2bf63b80bbf3c58116d7ae7ceb24a747621f603465de861b8fa5ee75e972d9d1398704cc76e397" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcabf433c453472e46375cfb9e11c18e0e3f87e0245b92ddf5108247cb9915ec904903ad62305a9920d42b6890aaebccbc85fc49a32976d85be76bd6c90134b27d4444f4a53289bc92fecfdff9804d948dabc7c704e9f45fe89c47b81710a4fc20f6f274a24618cb01bc9fc89ab94fb800c232512f1fe71f2b607e83af896d4addbbea739c4552e5b465ac7792a211caae25294f851a90ac7aca8391001d9c65b8fb3853c2942b7ec27cd30f5731b657d56e7061d0fd71ad3348733ad44cb48607536f1f9c8fe94a540c405bcc1abfbe88f58171c51a06f1a8e6917a7a5087b5eba87d49f194bb76656a9fde0bce63c2d40df25f1eb5fade7feddbd8c04ebd7776e92ec8e7a769ffe9a5c80e4e63a81412" ], "v": 2 } @@ -105,7 +105,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288713e20e778acc2e1c6e33c100e3ec2a420e1952508a3c48723395329058e990c9913ad85b9b7b250b5cee55946a3e4a56ebae9b3c01e8d7f969b8b823b22bfc9fb64f4abb9b041294aee6abb0739b7b4fb64bbbdeceacf6fbbd0b21078a2d72e5230f3e7f4c4b693ef50ebc41946630b79e338845dc760513eeba3de49404d8b41bcec3801093ebee9a8ea495dd40204e38d6af32b68d64fe34b5fd94f48ec43722f4613c9b2f9c2950514ab42c80b4acb0e95be1951aeaf547499131698e83edb71239ba11bd4231171348e5375f35f9d5c8e69182b38e09aef99f76ebf3efc872a36c5ff269615a449d665a99c5b24e554df192c56a9c70cb362fef91daeaf2df04c02f32c5856bafd2aefbbf4032\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcfb185e1980702303c643f954653b34c7357713c723e207ed0348fa34b10abd7c02e289d963ba377b5c7efc4b21dc7c1b7c1461a37ac1123462fd512b9ffde212ffeb78136ed8e1145ea64fc75bf8d9b117ea36c05c23168c3c84a2df2149c38ba0e2faafd9aa349783678d28df4ecc90c977513fb33fe57dcdc8ad323fe71810665a52896d94d088912715b9fbf1d4fa0255f24c6bafd8ce9ec470b4284988eccef7f419e59d1dbc7f68f68a4fb28d0ee70c02726f6923f6196c8adb4d7cc881f926e5600d0cb867a2d852a558659762521e9b97aef8283ed807060737357bb04aff873a5830ca19431eb2304d736d1c12c4fbd453db24e5a381f3eb2dffd7ba3cd7dd444d7bb5319153602a5803220f\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -130,7 +130,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288713e20e778acc2e1c6e33c100e3ec2a420e1952508a3c48723395329058e990c9913ad85b9b7b250b5cee55946a3e4a56ebae9b3c01e8d7f969b8b823b22bfc9fb64f4abb9b041294aee6abb0739b7b4fb64bbbdeceacf6fbbd0b21078a2d72e5230f3e7f4c4b693ef50ebc41946630b79e338845dc760513eeba3de49404d8b41bcec3801093ebee9a8ea495dd40204e38d6af32b68d64fe34b5fd94f48ec43722f4613c9b2f9c2950514ab42c80b4acb0e95be1951aeaf547499131698e83edb71239ba11bd4231171348e5375f35f9d5c8e69182b38e09aef99f76ebf3efc872a36c5ff269615a449d665a99c5b24e554df192c56a9c70cb362fef91daeaf2df04c02f32c5856bafd2aefbbf4032" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcfb185e1980702303c643f954653b34c7357713c723e207ed0348fa34b10abd7c02e289d963ba377b5c7efc4b21dc7c1b7c1461a37ac1123462fd512b9ffde212ffeb78136ed8e1145ea64fc75bf8d9b117ea36c05c23168c3c84a2df2149c38ba0e2faafd9aa349783678d28df4ecc90c977513fb33fe57dcdc8ad323fe71810665a52896d94d088912715b9fbf1d4fa0255f24c6bafd8ce9ec470b4284988eccef7f419e59d1dbc7f68f68a4fb28d0ee70c02726f6923f6196c8adb4d7cc881f926e5600d0cb867a2d852a558659762521e9b97aef8283ed807060737357bb04aff873a5830ca19431eb2304d736d1c12c4fbd453db24e5a381f3eb2dffd7ba3cd7dd444d7bb5319153602a5803220f" ], "v": 2 } @@ -151,7 +151,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d67163957f50c5d31ccbced07f36cd7e222bc9f071eccedaf37ba38c38b0b793f97cb988458441e003cbb82497bd85fe8cd223c31cb2e856ee7dd39fd1a8e0221eb112adffb09704e33243abaebd016238a7a72b0499b9b4d4137f2a5e220910a4c46b35318ef4d1c521ca6d3461921b51012547f79d165a5e3adf0fca0c1ce04683702c75f5019d866e2bd2832a16f3e795cc15536227ae743fc3170851a729301a9e94efcb2542428943889e4a21c4f3c04113109ab8bd5520da702db1422e217efb5eae238ab89e5902ffecd312b934a1b03dd5e3ae61fe9c33c051c7bc0cc23603aef10e6f5082132a0d346f0b97ae7f6fd089b840b0afb6fb01919fc5e12da6e245a9114f0d622ae017fd540630\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcf28f42cb49ccd75fa7e54ba418fcd991111d5f4129246ac88a77e5214e642a4d8e97c073f3af5c652c1a165ef4225398c7c94f18c903c437dd465304087d70187cd10a0cbb348a4edc9d7f90a724c418ac57d9cf92471feb1eebac3c604ec5da99a479e9795e1ac97c63e3403b53d8d2400bbdc1639920baa792384076900dbbabc7b6b325ec56694fed33e9cb5c7f3b40a91d4cf56964e266614447f25d4d0796485905d4b0879b044001bf16ba3a55ced53a94b0e00c756aa3dbbc5b260b64c1ce599612c69183dade17ea9fdd5ac44d7d5a4fee1348e425d2e7cae3460949f89f43ae5a195ecae00794c045006bd1bed6b3d094b0b25e3b5694af78aba0032c8554291e77e1860458e907cc5c2687\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -176,7 +176,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28d67163957f50c5d31ccbced07f36cd7e222bc9f071eccedaf37ba38c38b0b793f97cb988458441e003cbb82497bd85fe8cd223c31cb2e856ee7dd39fd1a8e0221eb112adffb09704e33243abaebd016238a7a72b0499b9b4d4137f2a5e220910a4c46b35318ef4d1c521ca6d3461921b51012547f79d165a5e3adf0fca0c1ce04683702c75f5019d866e2bd2832a16f3e795cc15536227ae743fc3170851a729301a9e94efcb2542428943889e4a21c4f3c04113109ab8bd5520da702db1422e217efb5eae238ab89e5902ffecd312b934a1b03dd5e3ae61fe9c33c051c7bc0cc23603aef10e6f5082132a0d346f0b97ae7f6fd089b840b0afb6fb01919fc5e12da6e245a9114f0d622ae017fd540630" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcf28f42cb49ccd75fa7e54ba418fcd991111d5f4129246ac88a77e5214e642a4d8e97c073f3af5c652c1a165ef4225398c7c94f18c903c437dd465304087d70187cd10a0cbb348a4edc9d7f90a724c418ac57d9cf92471feb1eebac3c604ec5da99a479e9795e1ac97c63e3403b53d8d2400bbdc1639920baa792384076900dbbabc7b6b325ec56694fed33e9cb5c7f3b40a91d4cf56964e266614447f25d4d0796485905d4b0879b044001bf16ba3a55ced53a94b0e00c756aa3dbbc5b260b64c1ce599612c69183dade17ea9fdd5ac44d7d5a4fee1348e425d2e7cae3460949f89f43ae5a195ecae00794c045006bd1bed6b3d094b0b25e3b5694af78aba0032c8554291e77e1860458e907cc5c2687" ], "v": 2 } @@ -197,7 +197,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bb3912de219c31a9599c80779fba57c1cfe168b393d1ff9334196da7f199fb25173eccfbb9a27f0a7e8706ac80c12f11187e9935c4c04ce1ad5096ca88f082bbb4aa082a56ed7abe712ba1559c603be9c9572932184c0c614e78cdbd7230db76ff9f7102838284c7d2fb4cc48bf15a4e02f6bf374dff6833e300b7509ae00855cc22eb7587e09aae068b2f82a8e1ee51b630b495b90b825b9fb6fab5ed7acb991c43dcf7a962d718663b42f6bb0e221172772adfa9304b40533c9fab3011175acc78c177835fd00a174c86551b2c2c9f280f3238beb03a8882083024212bcef9d6556ee7daae0877924005ae62de0a1ff7e909f8eddf537234089f49747427273701c7be291d64db45132955f80358b5d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b973c9cba3bed1de176e1e0c737f3e06a87d24c01f532180c5c6077db31a11b5db39e39761370cfda38eade049692bb691af812eb7057175beb7df44a1e4280960b53b78b78d98b66568e00c60af82a8f01eeb4ca38ddb63ccee9b03ed6cf2aee3bc1c9ff7c05c1ae8754ef48c774f9c062b25b984fe11a69cec39ee6752ecd2595afb793db146724c17eb97d35c60e41ced6ebd7927cf90b486116e1968e7f6a4cac146ca749ef16bb38375c397df01f3df43ac1126fadc672d1709aa748f3b7d085f49723bde2c9e9e142f3b7084bb70b8f036275265f3f5ccb89805e1cf4308fce7df350e57c3355a25e958fe8ff0923307e5aa76c1a2ec1f8cfbe9b781402a8d8650468262388a0b9a78afedcf53ed\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -222,7 +222,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1bb3912de219c31a9599c80779fba57c1cfe168b393d1ff9334196da7f199fb25173eccfbb9a27f0a7e8706ac80c12f11187e9935c4c04ce1ad5096ca88f082bbb4aa082a56ed7abe712ba1559c603be9c9572932184c0c614e78cdbd7230db76ff9f7102838284c7d2fb4cc48bf15a4e02f6bf374dff6833e300b7509ae00855cc22eb7587e09aae068b2f82a8e1ee51b630b495b90b825b9fb6fab5ed7acb991c43dcf7a962d718663b42f6bb0e221172772adfa9304b40533c9fab3011175acc78c177835fd00a174c86551b2c2c9f280f3238beb03a8882083024212bcef9d6556ee7daae0877924005ae62de0a1ff7e909f8eddf537234089f49747427273701c7be291d64db45132955f80358b5d" + "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b973c9cba3bed1de176e1e0c737f3e06a87d24c01f532180c5c6077db31a11b5db39e39761370cfda38eade049692bb691af812eb7057175beb7df44a1e4280960b53b78b78d98b66568e00c60af82a8f01eeb4ca38ddb63ccee9b03ed6cf2aee3bc1c9ff7c05c1ae8754ef48c774f9c062b25b984fe11a69cec39ee6752ecd2595afb793db146724c17eb97d35c60e41ced6ebd7927cf90b486116e1968e7f6a4cac146ca749ef16bb38375c397df01f3df43ac1126fadc672d1709aa748f3b7d085f49723bde2c9e9e142f3b7084bb70b8f036275265f3f5ccb89805e1cf4308fce7df350e57c3355a25e958fe8ff0923307e5aa76c1a2ec1f8cfbe9b781402a8d8650468262388a0b9a78afedcf53ed" ], "v": 2 } @@ -243,7 +243,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6aefac50f0f74635b3881a4cdfdf8bb62df6f62e8c586a8c1173af02b38f225da4d7c2030abba38883489be56b9fdf0805e14951eb9c6e25c1f9a453195eaf90e3bf2e4fa805365cd3c818b9b0b6395027877f48f5a25b15887fc87f2f7b257a2fb06dd9cb56d97e294e5cb337697938de8d572fa825483e33060f78e474229c2a7f224463984dc23337a7dd22b354f29519595665b72c009aaab90f1425dfe2068722c1726dd38a2132c5637b970dd1388f4e1234586addb836434e22a209df6affacc64fa4082f00dd51427a2a6894ff2e4e15eefb24c0498a5603e7afe1007aa1dd032e284ffc9f070c7d93d54a55e0d0ff48146e119bad6ebcd1527b3bd6f38865fe4474dd6451c836d671e9c5ac09\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e362e90356e07af380dcec26319c745d1f2fed64b395086551b2c70af35183d7f698b2d5da79484f9e665ef27d45f2673fe0241c2e74a550eacd6cad81f62657082ec6c0ecb99acbb0b2594f42efca5e9d12d0a59e968716bc97bce90740302854fc4e5c4a509f1dfadeab14f35ceae0f198453666e9b5e2b4ecaceda7d074369b16e0a01b920fae9a8c4a0c4d743cf34e087a2d8f67f7f35d0ce89ee60290ce36132112bb3fb0162ecf5c2bebdc7c6adfb7bdb44d3afd4087837f34e699596e816e7cdefcfbb415f5d49044f7783a2b04e78994d0ffb764389ea1ed6e1c0f9fd615fd7683bc907f5782ceb86426df1600e840e931f4650a1564a11bf0d6376d3605a1380581345c978a908c837b71af201\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -268,7 +268,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6aefac50f0f74635b3881a4cdfdf8bb62df6f62e8c586a8c1173af02b38f225da4d7c2030abba38883489be56b9fdf0805e14951eb9c6e25c1f9a453195eaf90e3bf2e4fa805365cd3c818b9b0b6395027877f48f5a25b15887fc87f2f7b257a2fb06dd9cb56d97e294e5cb337697938de8d572fa825483e33060f78e474229c2a7f224463984dc23337a7dd22b354f29519595665b72c009aaab90f1425dfe2068722c1726dd38a2132c5637b970dd1388f4e1234586addb836434e22a209df6affacc64fa4082f00dd51427a2a6894ff2e4e15eefb24c0498a5603e7afe1007aa1dd032e284ffc9f070c7d93d54a55e0d0ff48146e119bad6ebcd1527b3bd6f38865fe4474dd6451c836d671e9c5ac09" + "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e362e90356e07af380dcec26319c745d1f2fed64b395086551b2c70af35183d7f698b2d5da79484f9e665ef27d45f2673fe0241c2e74a550eacd6cad81f62657082ec6c0ecb99acbb0b2594f42efca5e9d12d0a59e968716bc97bce90740302854fc4e5c4a509f1dfadeab14f35ceae0f198453666e9b5e2b4ecaceda7d074369b16e0a01b920fae9a8c4a0c4d743cf34e087a2d8f67f7f35d0ce89ee60290ce36132112bb3fb0162ecf5c2bebdc7c6adfb7bdb44d3afd4087837f34e699596e816e7cdefcfbb415f5d49044f7783a2b04e78994d0ffb764389ea1ed6e1c0f9fd615fd7683bc907f5782ceb86426df1600e840e931f4650a1564a11bf0d6376d3605a1380581345c978a908c837b71af201" ], "v": 2 } @@ -289,7 +289,7 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c3ff1d9bc42d48ea059867df14ce571a087c08dff7a5a4254c4cae26485e56566aab51653fb7638745706735e8ad9c2717ebaf590e12ce0086569000c709b77ddb914b56100a549f758c76f804638f17eb646e31fa597d422a9c3ea7caa87e2b83a729026f7b4a2e5042569818380945ce023ec705d9e9ab4ae5251fa22f90812d8f200c02790c55365eca4ff72850cc572445911aa8907b9a7a7341b4d5f1b2b61f25c5fc526851f24381195169656d5ffc0d5f7c34ff5f80b97adadba7d49b4ef92f363bc0b2fee139218129068a32d29f6c3d507842ffbfd3c06a52071bbffab7ce1abd8a3181b9d06459d15bfc978e2096516087f348f35c8813a4fb1dc579b622ff040262e46bfa2b18fa8e231b\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcfe25aa74c45f540ea9869d814b87456326344ecaddb887948106a4a8afd92807632d2dc6494c7ca7dcf2b8f88ca9266b8fc24c8a69d516e89e3d19f4d0cd8fc3f7b4c2919ee8fab6e47b4940e53e2d087adfbe796bfe69d06957aa10be28e290d167b5bcca6c632090aa425874ecf5a30de441cb145253360f9bc3b5b4b7d71d17e635c5e3ae729975e9a85f8ecf3d8a6969eb441f44b90e9aa3082190734dc9276fdaf7f7b31d220226c3d4d8187a3f7a76394691dceeee7ba0c1d94337413f495037588a28d454f595705a1c7b3ac3b2e86e94617b0c2549599ae518cb3ba46dd8bacd2a0a66a31962fff3557cf93fb56c476e2adbdc0f49ee7ebdf01a741bfecd7038cc43e48a35b3e1dfce63417a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_1000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -318,7 +318,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb28c3ff1d9bc42d48ea059867df14ce571a087c08dff7a5a4254c4cae26485e56566aab51653fb7638745706735e8ad9c2717ebaf590e12ce0086569000c709b77ddb914b56100a549f758c76f804638f17eb646e31fa597d422a9c3ea7caa87e2b83a729026f7b4a2e5042569818380945ce023ec705d9e9ab4ae5251fa22f90812d8f200c02790c55365eca4ff72850cc572445911aa8907b9a7a7341b4d5f1b2b61f25c5fc526851f24381195169656d5ffc0d5f7c34ff5f80b97adadba7d49b4ef92f363bc0b2fee139218129068a32d29f6c3d507842ffbfd3c06a52071bbffab7ce1abd8a3181b9d06459d15bfc978e2096516087f348f35c8813a4fb1dc579b622ff040262e46bfa2b18fa8e231b" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcfe25aa74c45f540ea9869d814b87456326344ecaddb887948106a4a8afd92807632d2dc6494c7ca7dcf2b8f88ca9266b8fc24c8a69d516e89e3d19f4d0cd8fc3f7b4c2919ee8fab6e47b4940e53e2d087adfbe796bfe69d06957aa10be28e290d167b5bcca6c632090aa425874ecf5a30de441cb145253360f9bc3b5b4b7d71d17e635c5e3ae729975e9a85f8ecf3d8a6969eb441f44b90e9aa3082190734dc9276fdaf7f7b31d220226c3d4d8187a3f7a76394691dceeee7ba0c1d94337413f495037588a28d454f595705a1c7b3ac3b2e86e94617b0c2549599ae518cb3ba46dd8bacd2a0a66a31962fff3557cf93fb56c476e2adbdc0f49ee7ebdf01a741bfecd7038cc43e48a35b3e1dfce63417a" ], "v": 2 } diff --git a/results/query/ore_metadata_10000000.json b/results/query/ore_metadata_10000000.json index c32ae53..df779cf 100644 --- a/results/query/ore_metadata_10000000.json +++ b/results/query/ore_metadata_10000000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2890435d5297329edc86d5e7c41670b53c4278d42a4da24b36bc86c2fb88b9a5e51b82dfe94100c4073f909fa4b7755c9ad7420468585422afd102a59717c6dc849cc3ba8edc447958ef581c58b04035ae667cbae950f7e0878af278e28195a2d99db1a2905138ad4fe4abb06598472ceac188b6201a4f1709319be5be7f1e8aeaede760dc7df172ee60c51f32d4cafab3e51ef680e42bfa539e102accab7a612b1c3892f9f4f154e42a7404ecb964484e10caa6d8eec74eba1c698a1a8e78a5c6c9313f56367882d814868aca14ec4cff7f183b394a6ef5f40ba235247a81c9302c948a0e21ed3be1df7c42f17410d0f39e8194dfd022565a6005364dfff93f3315149e0adf66683b3432cd1ee883078d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce9f7ed622e356cf9c68940a09e4fa6c7f53e37fd1a20685f2a2a72ae6d7919eab25bcf13844f317689fd847005d206ec1816218ec9a2dcb8e446dcf2a0eaed8de0d485642d9c06eaf1387f6430753d5d0435e7f068d641d168118ba14c382047edb764caa4062c1d3d353c202f15b1f45d74b553b3a74b49d2d75ed36d6f31c1f349913841fe6a723724c9efb37675e297f1ad661829c03080963461a8413f5a45b1e535f4bcb9ee04e9863c1917c32e5122fa229ac0fd79e87119c2d386d6b82903c0afb914c6826c542f72db96910f3f52f5d7dd5cb377b9802a473b2d60c753b5ed34ead5511b8551bbcb77c7b69d4c46f685f891bf30c1880f3355a9ac89335779f285fc8a4d2730540f91cf1da7\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2890435d5297329edc86d5e7c41670b53c4278d42a4da24b36bc86c2fb88b9a5e51b82dfe94100c4073f909fa4b7755c9ad7420468585422afd102a59717c6dc849cc3ba8edc447958ef581c58b04035ae667cbae950f7e0878af278e28195a2d99db1a2905138ad4fe4abb06598472ceac188b6201a4f1709319be5be7f1e8aeaede760dc7df172ee60c51f32d4cafab3e51ef680e42bfa539e102accab7a612b1c3892f9f4f154e42a7404ecb964484e10caa6d8eec74eba1c698a1a8e78a5c6c9313f56367882d814868aca14ec4cff7f183b394a6ef5f40ba235247a81c9302c948a0e21ed3be1df7c42f17410d0f39e8194dfd022565a6005364dfff93f3315149e0adf66683b3432cd1ee883078d" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce9f7ed622e356cf9c68940a09e4fa6c7f53e37fd1a20685f2a2a72ae6d7919eab25bcf13844f317689fd847005d206ec1816218ec9a2dcb8e446dcf2a0eaed8de0d485642d9c06eaf1387f6430753d5d0435e7f068d641d168118ba14c382047edb764caa4062c1d3d353c202f15b1f45d74b553b3a74b49d2d75ed36d6f31c1f349913841fe6a723724c9efb37675e297f1ad661829c03080963461a8413f5a45b1e535f4bcb9ee04e9863c1917c32e5122fa229ac0fd79e87119c2d386d6b82903c0afb914c6826c542f72db96910f3f52f5d7dd5cb377b9802a473b2d60c753b5ed34ead5511b8551bbcb77c7b69d4c46f685f891bf30c1880f3355a9ac89335779f285fc8a4d2730540f91cf1da7" ], "v": 2 } @@ -59,7 +59,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb286fc7afee084401523cecb4d81e10569a8f9fee17361a1accb02196423076ff98b90453c77c7cdc92c397985defaa9e17f2b614b6253eec43052d40d6f0dc58aa2a15cad39fbe16decbe07921bc15da6cfa68d23f783aec815c9132e545f09e7d975cb8d8a4bc3e63cec57f7b9c8fdbb90188736a8e1bae34e8af038f77c6c6f4c302d6c0aa2ea37f3a54ee49034c4ba7792f39b92219c791f0bcea669a7e8570709add80217cc0ae3d3ad58b6d348d96e9dc1ccac1ee177438942d12c563d269ce7880789a03e6f82247cc72d8993ca1b03f3bb006feb36265c2d6add3c48ae270f7f361c17820ded8c40188ede8bb1c3bf216c9db901c52ffb46600826796c9037a7224a75ba002f049befea4207916\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcaa4cb850266e2f346f8fea794a1917aa7ea9eee7fede9bb46574390fb91029c306c2863f3160b1d50a1c22209038b95afeceab30c37721d6be0b1a58a93bcb76bcbe32bb1aefd0644c058db25ca04e297e4d068a0b8154770a4df0950b96dd0b7c15c69de74428d561f73ebb11c691418b8751e55d5e175eeddc212dfd1565fee086c748f11988efad13c1cb0847b010da5b7306c8541003e226ff21554299470f0d33e560263c005d1086470860a48208c87ad25db365bcc4f196b76bb5b392c6745177154bd309c0f9dbf69da7910ab86af23d190a66afe6e5d6c184df20b7c5f4d03ba7c948fa47e31377be3fe4bfe46ac3932a492ae9eed49d131b605e5da48d3390054fd79722aff6a220503c14\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -84,7 +84,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb286fc7afee084401523cecb4d81e10569a8f9fee17361a1accb02196423076ff98b90453c77c7cdc92c397985defaa9e17f2b614b6253eec43052d40d6f0dc58aa2a15cad39fbe16decbe07921bc15da6cfa68d23f783aec815c9132e545f09e7d975cb8d8a4bc3e63cec57f7b9c8fdbb90188736a8e1bae34e8af038f77c6c6f4c302d6c0aa2ea37f3a54ee49034c4ba7792f39b92219c791f0bcea669a7e8570709add80217cc0ae3d3ad58b6d348d96e9dc1ccac1ee177438942d12c563d269ce7880789a03e6f82247cc72d8993ca1b03f3bb006feb36265c2d6add3c48ae270f7f361c17820ded8c40188ede8bb1c3bf216c9db901c52ffb46600826796c9037a7224a75ba002f049befea4207916" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcaa4cb850266e2f346f8fea794a1917aa7ea9eee7fede9bb46574390fb91029c306c2863f3160b1d50a1c22209038b95afeceab30c37721d6be0b1a58a93bcb76bcbe32bb1aefd0644c058db25ca04e297e4d068a0b8154770a4df0950b96dd0b7c15c69de74428d561f73ebb11c691418b8751e55d5e175eeddc212dfd1565fee086c748f11988efad13c1cb0847b010da5b7306c8541003e226ff21554299470f0d33e560263c005d1086470860a48208c87ad25db365bcc4f196b76bb5b392c6745177154bd309c0f9dbf69da7910ab86af23d190a66afe6e5d6c184df20b7c5f4d03ba7c948fa47e31377be3fe4bfe46ac3932a492ae9eed49d131b605e5da48d3390054fd79722aff6a220503c14" ], "v": 2 } @@ -105,7 +105,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2845d75a224f5206768695f8e66fce45e9a9a8c7458bfa511468ecbdbe92bfc8ac59c0a8f658ca9497da56c37234dc809295b7c3ca69a29761c072d10570571746a24abeda8d6f8b4b835c2c6d5ae63d6372a7005b6ca4e8ffca128ef1ee97b22582ef4260c29418a2295f82629c10386d031c48f71416044308f414e1740c4e3859dd97b6e8ad126d25047af0254f9253d1c7ee6a6123c2bef8fcdc24a396896b6ef0ad75832ace6c2517f6f99718db08e8d79a6826d72cfdf07800865d40640abeca43f0463688d60a5fa0e4f9f7b09831d61322131173c6da5030e8d0a7f0074e2e51b6c7361747b55b6ebf98d53e59be0e8c2c20f34c98a2e71da01de019eed0146350a7fbc77aba6dc5138a99414d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc8132d7923212529301fdc6ac7b34477530d11b3d7ec96fbb24491111827ba4a3c088470e675b26d0b3aa505dd61edb45c65b90ff960e05ebff9737d17c88cbb558c31143c25512d0b1377d41fa5efe8a134c4440068d78d886e67309efe82ea5e601688cc40ba279889879468b0c723cf3120005de8478891920aaf9d8def79d932a8304099244e4f99115dec9f0dfda776b98a8846acaa601597928cc375d2753118e357b12b8a445214de7611c1508a3cbaa2383db1c89b44e1f63133eefe866d93bdfdac4036b45f79dcef01cc656810b3b8ac238854d972f1893d8c1e0da2700f76f7255948f7293c67d933361fb089969df4efcef5339159b540a434b03bc923e2088967a68b93ce0958da998e6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -130,7 +130,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb2845d75a224f5206768695f8e66fce45e9a9a8c7458bfa511468ecbdbe92bfc8ac59c0a8f658ca9497da56c37234dc809295b7c3ca69a29761c072d10570571746a24abeda8d6f8b4b835c2c6d5ae63d6372a7005b6ca4e8ffca128ef1ee97b22582ef4260c29418a2295f82629c10386d031c48f71416044308f414e1740c4e3859dd97b6e8ad126d25047af0254f9253d1c7ee6a6123c2bef8fcdc24a396896b6ef0ad75832ace6c2517f6f99718db08e8d79a6826d72cfdf07800865d40640abeca43f0463688d60a5fa0e4f9f7b09831d61322131173c6da5030e8d0a7f0074e2e51b6c7361747b55b6ebf98d53e59be0e8c2c20f34c98a2e71da01de019eed0146350a7fbc77aba6dc5138a99414d" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc8132d7923212529301fdc6ac7b34477530d11b3d7ec96fbb24491111827ba4a3c088470e675b26d0b3aa505dd61edb45c65b90ff960e05ebff9737d17c88cbb558c31143c25512d0b1377d41fa5efe8a134c4440068d78d886e67309efe82ea5e601688cc40ba279889879468b0c723cf3120005de8478891920aaf9d8def79d932a8304099244e4f99115dec9f0dfda776b98a8846acaa601597928cc375d2753118e357b12b8a445214de7611c1508a3cbaa2383db1c89b44e1f63133eefe866d93bdfdac4036b45f79dcef01cc656810b3b8ac238854d972f1893d8c1e0da2700f76f7255948f7293c67d933361fb089969df4efcef5339159b540a434b03bc923e2088967a68b93ce0958da998e6" ], "v": 2 } @@ -151,7 +151,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288bc855279c7f8173154bffd191b24d8ad6b8ed1b0107dbe327ca21d59767580d87bb3dfd4c5c08ee085a44201d3f73f9ff12ccdb2b795d42fa590bad9f9c8bb5390e2bdb936bb213f915428fcc22863abdd304f25005fa25d22fb67e03b1dfada9e4c14c445468acc43155da1b0cdea8892d7046952c5a4c9b8c6a62de9848de2cb4a38e4c2d21539337cb0beab59d03ba4a7de9f88633af14539ec908857bda4f2b239efdc96aee483f65b313b624e62b1112425958726ec94f8fac74e8fa4daaacc4eaff24565c37fdb6a353365042dfad11d5bc812d0f16ba53ef2b37dbc8b75fe170b95caf47ff58cf61ad1147f8a7a87393fe2f950d60997d7ab07fb5bbb2f0fcdded8f1998b46d498293409e88\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcb7119eb60232106d51c55cf33e10845b9cab118f2dbd69bd1f8a51a71e69c708eb9ce74d7dc21d89173cc27449d218a91a171d8fd58eda154a787dd1bfa2a724778bf424e2c12e1114db4554bbb670d5fb7891bbde0ed2c974313108074d538713145b575cc0c169dc3a98e0f851c70b8326dc7ba511d564f54639564a2ff6e0f44baeacdfa25bc448f723529a07b966a0a301c32bb00f8c1e1295573f1cabff2137451e37ab5672bf0a862111155910682b8456ee9a9b9cfd6958353b73b6208e17dd215d207a796afb8790e07cdd9c5f92da803eac86a083bb3654de1638eab39c210ba3d70e2aea44bba80a2e4d33a82da6ba938116cefa072c21cad029eda93f4a7dc3d1daf7f4681a89a0ac7c44\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -176,7 +176,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb288bc855279c7f8173154bffd191b24d8ad6b8ed1b0107dbe327ca21d59767580d87bb3dfd4c5c08ee085a44201d3f73f9ff12ccdb2b795d42fa590bad9f9c8bb5390e2bdb936bb213f915428fcc22863abdd304f25005fa25d22fb67e03b1dfada9e4c14c445468acc43155da1b0cdea8892d7046952c5a4c9b8c6a62de9848de2cb4a38e4c2d21539337cb0beab59d03ba4a7de9f88633af14539ec908857bda4f2b239efdc96aee483f65b313b624e62b1112425958726ec94f8fac74e8fa4daaacc4eaff24565c37fdb6a353365042dfad11d5bc812d0f16ba53ef2b37dbc8b75fe170b95caf47ff58cf61ad1147f8a7a87393fe2f950d60997d7ab07fb5bbb2f0fcdded8f1998b46d498293409e88" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcb7119eb60232106d51c55cf33e10845b9cab118f2dbd69bd1f8a51a71e69c708eb9ce74d7dc21d89173cc27449d218a91a171d8fd58eda154a787dd1bfa2a724778bf424e2c12e1114db4554bbb670d5fb7891bbde0ed2c974313108074d538713145b575cc0c169dc3a98e0f851c70b8326dc7ba511d564f54639564a2ff6e0f44baeacdfa25bc448f723529a07b966a0a301c32bb00f8c1e1295573f1cabff2137451e37ab5672bf0a862111155910682b8456ee9a9b9cfd6958353b73b6208e17dd215d207a796afb8790e07cdd9c5f92da803eac86a083bb3654de1638eab39c210ba3d70e2aea44bba80a2e4d33a82da6ba938116cefa072c21cad029eda93f4a7dc3d1daf7f4681a89a0ac7c44" ], "v": 2 } @@ -197,7 +197,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1b06bee8d036bcc3d921ba65ad066669be107aaeda5b7930d617d169a5d50ccd575c046d4ab111a575be6c2f7972dc38ef4949889519da256e1174cbc3cd362d9a093333d16245b611f6ccea14f8de6268f7772fd4dae66c7b8980d481b1dc492ec09e84cf602770cf2fc011fbf3371a74ac3b7a99597ec167f5f9eb6f02456e71f1841147d862cddbbfd1ccc7242e35a87fbb5a2fa37b1c0a5230ef4f326d825c7db7e97204948e6ab11220e15fcae1e1680d06d6ae93047551aa3549a13f9961b114e33920b25eab36f02d7304487f7fac9284cf46ac56e8fdc895d127e379a22b49dab3bbbd195f564a1380f725ecb9f8ac67ff676a7ec6970a5b06c9a5897e12674cdc4ba22adab3656e02f582ba76\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b90a6e72435955f17eca00bb5f24313355ddd769245e20eb3cf26894ef43403ef5ba9310bcb83c432fa5351944383f549d9f8f0b826c16146da7220bfb64a1fb262f2b0495330e0bd235b375daddc8c3f0bb7c0e0744c137e356ad043adcd0cbe7047298e4b5a14084aa7e52acbf28531f78b25828bdde1af75b0089afef8c1e1c70d8cce9adfac3f687fe207d7b779e3aad4631976390402c9123618ca76ae8d5fe52ddf11d8ad8f27c860cb5b864516351a6f5c65e2ed17e8cf28f9fb9998b51f4e924d5de50227a42d29284139555cfb259e673df19abdb2a6bd8a2e262c8ef98668b023d9add2135c159f4a0980e7a207ad001f0d74b0a7e02c5b159f12b35ab41f1e7454438c7be1d02bd5a0bd7ba\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -222,7 +222,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4af3965ab3800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78839e5375b93148d2c7258c7c5b10da6baaf6161425134bf7a220b78fc411dc6f7124f9da3212acff12515e2eed9100ed1b06bee8d036bcc3d921ba65ad066669be107aaeda5b7930d617d169a5d50ccd575c046d4ab111a575be6c2f7972dc38ef4949889519da256e1174cbc3cd362d9a093333d16245b611f6ccea14f8de6268f7772fd4dae66c7b8980d481b1dc492ec09e84cf602770cf2fc011fbf3371a74ac3b7a99597ec167f5f9eb6f02456e71f1841147d862cddbbfd1ccc7242e35a87fbb5a2fa37b1c0a5230ef4f326d825c7db7e97204948e6ab11220e15fcae1e1680d06d6ae93047551aa3549a13f9961b114e33920b25eab36f02d7304487f7fac9284cf46ac56e8fdc895d127e379a22b49dab3bbbd195f564a1380f725ecb9f8ac67ff676a7ec6970a5b06c9a5897e12674cdc4ba22adab3656e02f582ba76" + "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b90a6e72435955f17eca00bb5f24313355ddd769245e20eb3cf26894ef43403ef5ba9310bcb83c432fa5351944383f549d9f8f0b826c16146da7220bfb64a1fb262f2b0495330e0bd235b375daddc8c3f0bb7c0e0744c137e356ad043adcd0cbe7047298e4b5a14084aa7e52acbf28531f78b25828bdde1af75b0089afef8c1e1c70d8cce9adfac3f687fe207d7b779e3aad4631976390402c9123618ca76ae8d5fe52ddf11d8ad8f27c860cb5b864516351a6f5c65e2ed17e8cf28f9fb9998b51f4e924d5de50227a42d29284139555cfb259e673df19abdb2a6bd8a2e262c8ef98668b023d9add2135c159f4a0980e7a207ad001f0d74b0a7e02c5b159f12b35ab41f1e7454438c7be1d02bd5a0bd7ba" ], "v": 2 } @@ -243,7 +243,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6a4ef19f8523420e65a1a7df8c684dbe8a33d50f7dade962583576499a00d171564d7b5b7704d2855c0e1b5ef7bfab4a460881932be411843599c2f9b1afee75c9b2584c9da8d21493d18972699f847f11a0653e2e20769c12b8af9e554b4dd04d40f4e2fbbc0dec2ecdb4aaa6f6ed54d3fcd4fac2e0471dbe0a00bb21911917c02d50394068a7597c922cc91d7dadb9b72ff2848652c8340707589cb2949a4b592fff3fa91279accf1f32f3d57994065050162c5e29ccc1513714628e08622ef73901e55aeb29f389c517ef8bb63f2f5983b9bfb125a3449208641cbff5b019fd5e743c3fff5c357a620a0ffbc64a2aecde5faeb4ce11578dffd4db267c7d77351593ab9a598c28e41ea538e16f3d5364\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e362d7a510fc7d46008fe6067002171f9642fae8a000509fee2c127df0e97786422914d978ab9a267c42d6802b197cedd4559d1eb60928041eb30f70beeadee64deec4637be4a8efb1694de349958bec1bb971eae1fa61b8dc6e310804b3081824d4bcb368e19a464a5ea9e42bc2ea057960076d3adf73a65b2d3c9e9e85647a60642cb99df28a65ba53b4161aecb75493963c82402757169b0472e51253b8b505d7d10ba32c7ce5e036e8c3c794313cb63963d4d2ed31503d5ff23821e0a6df22caa1283805c306ba89e0bfee044ed2c9a274c230000dc215364beb1f904b2c4d11a096bd5c272f875742ebb122a8627346963f9f5fdb330379f6957e5b995ab947459e8bdd5b96d0fcc5df978bbd25b91\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -268,7 +268,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4af391252a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7009e9d384e0a1948ba24bd23106f78832bb9ab1c62d6173375d24578f37a3a1894af5fffa9bb07282f385b6a950f871d007ea7bab7ad6a555492b307b4323b6a4ef19f8523420e65a1a7df8c684dbe8a33d50f7dade962583576499a00d171564d7b5b7704d2855c0e1b5ef7bfab4a460881932be411843599c2f9b1afee75c9b2584c9da8d21493d18972699f847f11a0653e2e20769c12b8af9e554b4dd04d40f4e2fbbc0dec2ecdb4aaa6f6ed54d3fcd4fac2e0471dbe0a00bb21911917c02d50394068a7597c922cc91d7dadb9b72ff2848652c8340707589cb2949a4b592fff3fa91279accf1f32f3d57994065050162c5e29ccc1513714628e08622ef73901e55aeb29f389c517ef8bb63f2f5983b9bfb125a3449208641cbff5b019fd5e743c3fff5c357a620a0ffbc64a2aecde5faeb4ce11578dffd4db267c7d77351593ab9a598c28e41ea538e16f3d5364" + "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e362d7a510fc7d46008fe6067002171f9642fae8a000509fee2c127df0e97786422914d978ab9a267c42d6802b197cedd4559d1eb60928041eb30f70beeadee64deec4637be4a8efb1694de349958bec1bb971eae1fa61b8dc6e310804b3081824d4bcb368e19a464a5ea9e42bc2ea057960076d3adf73a65b2d3c9e9e85647a60642cb99df28a65ba53b4161aecb75493963c82402757169b0472e51253b8b505d7d10ba32c7ce5e036e8c3c794313cb63963d4d2ed31503d5ff23821e0a6df22caa1283805c306ba89e0bfee044ed2c9a274c230000dc215364beb1f904b2c4d11a096bd5c272f875742ebb122a8627346963f9f5fdb330379f6957e5b995ab947459e8bdd5b96d0fcc5df978bbd25b91" ], "v": 2 } @@ -289,7 +289,7 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283f81157123a8bcc98fadb7f09f77317799059f03f13dfea2bf0628e2b7a8bfdb0bcb6e0640bd29a9078309d8b087dffb0551480bc90ce1c75013b19d14c5f4cf0532741eee644facf53eade4d6867fda0cab4cda3da19f173838cf53eb88f897d5bf8c97449dac3326e0e85b91875c2548e134111454290899a54f8657ff198b0f8d083352004d329c18e6730ffb7156d9b79c9b19fc43d9dbacbe51f6d8657e35e848a53552ee182f700db8fcd2ca08f5f8f889293d745dcc49427244c7c5425df832c3e85d5cb5f091e0c1f415cf5c89c2a55a42f418c956a85b0eb3617aaa7ec69ae94574e817b7c2efec608410a8643aef102c5b1576133b4c3c20252a0e51416eed619477be302a2c96fc350b2a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc289c53daf516e8568c88adb4f2d3b23cbbf7a042fdcd1d6cbad70010a62ee830bc54df044bb9e29efe363cab6fc4ee4c3e39d2f8a9ee67cc65c649dee782e170148ef852e50bceb66186e0fea1be6e01145a88d33344152b04143be84e12a338d80e1915b300915d044bfb40037e18ccbfb0519ec06bcdecfe08e4f3e501109828f3c1421d805f26c94939e3a42cba0d0f1b60be9525c804f26323400d823355c5c05a6d8c6f6a275b307e44243dbee6725d69b0cd9a7c34a92203edaec1cc29b595f8e360f7b3c46a996626e1e734f75be6d272d3bdf86dea2c60209b0d4cf1f744cee86267dc086ca4d62f8f45d0c1a753db67911a34e7dd5545b580597778307a13ab6d7bca8c3f6edcd759b75d54\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -318,7 +318,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "4a4a4a4a7b75d35a800cfa2ff43dcd1b62771a15e33d22e69fda6d34f8e7f8be158e580893b02f753ecf7644fb8c1aba4adf0b01dd621fb107b51a023311e9484b76a975afea7fd7f7d3e6c4a96effd0ce52df7af438bca65a7cbad28e493fef601c3bf913156337fff25712e92fcecde5fdf2c4c33b0dcf6407e8b578be07e00aad33c3a870cb283f81157123a8bcc98fadb7f09f77317799059f03f13dfea2bf0628e2b7a8bfdb0bcb6e0640bd29a9078309d8b087dffb0551480bc90ce1c75013b19d14c5f4cf0532741eee644facf53eade4d6867fda0cab4cda3da19f173838cf53eb88f897d5bf8c97449dac3326e0e85b91875c2548e134111454290899a54f8657ff198b0f8d083352004d329c18e6730ffb7156d9b79c9b19fc43d9dbacbe51f6d8657e35e848a53552ee182f700db8fcd2ca08f5f8f889293d745dcc49427244c7c5425df832c3e85d5cb5f091e0c1f415cf5c89c2a55a42f418c956a85b0eb3617aaa7ec69ae94574e817b7c2efec608410a8643aef102c5b1576133b4c3c20252a0e51416eed619477be302a2c96fc350b2a" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc289c53daf516e8568c88adb4f2d3b23cbbf7a042fdcd1d6cbad70010a62ee830bc54df044bb9e29efe363cab6fc4ee4c3e39d2f8a9ee67cc65c649dee782e170148ef852e50bceb66186e0fea1be6e01145a88d33344152b04143be84e12a338d80e1915b300915d044bfb40037e18ccbfb0519ec06bcdecfe08e4f3e501109828f3c1421d805f26c94939e3a42cba0d0f1b60be9525c804f26323400d823355c5c05a6d8c6f6a275b307e44243dbee6725d69b0cd9a7c34a92203edaec1cc29b595f8e360f7b3c46a996626e1e734f75be6d272d3bdf86dea2c60209b0d4cf1f744cee86267dc086ca4d62f8f45d0c1a753db67911a34e7dd5545b580597778307a13ab6d7bca8c3f6edcd759b75d54" ], "v": 2 } diff --git a/results/query/ore_rows_10000.json b/results/query/ore_rows_10000.json index 779c10e..4d800c5 100644 --- a/results/query/ore_rows_10000.json +++ b/results/query/ore_rows_10000.json @@ -1,15 +1,15 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[82,164,246,328,410,492,574,656,738,820],"measured_values":[90483750.0,168410042.0,288967083.0,427702541.0,444457750.0,557713625.0,614258833.0,767316583.0,874200792.0,920633542.0],"unit":"ns","throughput":[],"typical":{"estimate":1143049.502375673,"lower_bound":1108616.5901618302,"upper_bound":1177927.006302521,"unit":"ns"},"mean":{"estimate":1137369.754083914,"lower_bound":1094944.5643873403,"upper_bound":1185221.4216869918,"unit":"ns"},"median":{"estimate":1128144.055081301,"lower_bound":1084043.2926829269,"upper_bound":1177121.9159044717,"unit":"ns"},"median_abs_dev":{"estimate":67176.34264030827,"lower_bound":14393.876085921082,"upper_bound":122894.2838520317,"unit":"ns"},"slope":{"estimate":1143049.502375673,"lower_bound":1108616.5901618302,"upper_bound":1177927.006302521,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[113353083.0,226082542.0,325551000.0,461117458.0,544071292.0,713962833.0,816882625.0,963532125.0,1257450959.0,1238742542.0],"unit":"ns","throughput":[],"typical":{"estimate":30858242.78116883,"lower_bound":28883458.590598777,"upper_bound":32651598.622754343,"unit":"ns"},"mean":{"estimate":29468221.082609124,"lower_bound":28306138.523515623,"upper_bound":30934982.549601935,"unit":"ns"},"median":{"estimate":28997110.29464286,"lower_bound":27770917.675,"upper_bound":30358507.4625,"unit":"ns"},"median_abs_dev":{"estimate":1382235.1401135442,"lower_bound":414774.6705237776,"upper_bound":2977019.4779173355,"unit":"ns"},"slope":{"estimate":30858242.78116883,"lower_bound":28883458.590598777,"upper_bound":32651598.622754343,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[15,30,45,60,75,90,105,120,135,150],"measured_values":[93573666.0,188793833.0,283055125.0,384679208.0,482121333.0,575166750.0,685497458.0,767627416.0,905023708.0,968794208.0],"unit":"ns","throughput":[],"typical":{"estimate":6492347.6519480515,"lower_bound":6400182.200712783,"upper_bound":6592477.324050001,"unit":"ns"},"mean":{"estimate":6413978.201978836,"lower_bound":6340527.187333332,"upper_bound":6496731.01118836,"unit":"ns"},"median":{"estimate":6404107.633333334,"lower_bound":6293127.766666667,"upper_bound":6478415.829523809,"unit":"ns"},"median_abs_dev":{"estimate":122685.36032789978,"lower_bound":15254.817069172952,"upper_bound":212535.547739407,"unit":"ns"},"slope":{"estimate":6492347.6519480515,"lower_bound":6400182.200712783,"upper_bound":6592477.324050001,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[128801416.0,233740375.0,374162417.0,522613208.0,678556750.0,783797792.0,871800958.0,1008207875.0,1196361917.0,1330190625.0],"unit":"ns","throughput":[],"typical":{"estimate":43413182.64935065,"lower_bound":42280589.56352201,"upper_bound":44205809.02266577,"unit":"ns"},"mean":{"estimate":42796905.64212962,"lower_bound":41661775.56076389,"upper_bound":43810427.95694445,"unit":"ns"},"median":{"estimate":43239063.55555555,"lower_bound":41573601.88888889,"upper_bound":44309700.62962963,"unit":"ns"},"median_abs_dev":{"estimate":1727989.5740095507,"lower_bound":366446.9151567668,"upper_bound":3171680.1253400277,"unit":"ns"},"slope":{"estimate":43413182.64935065,"lower_bound":42280589.56352201,"upper_bound":44205809.02266577,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[70,140,210,280,350,420,490,560,630,700],"measured_values":[87259250.0,184534167.0,307088042.0,369112125.0,452180667.0,551280958.0,620996042.0,796629542.0,783514333.0,867877584.0],"unit":"ns","throughput":[],"typical":{"estimate":1293990.4549165121,"lower_bound":1253886.8434462445,"upper_bound":1363008.5494522338,"unit":"ns"},"mean":{"estimate":1312315.2257573693,"lower_bound":1271761.903735601,"upper_bound":1359871.8344444442,"unit":"ns"},"median":{"estimate":1302259.2361904762,"lower_bound":1246560.7142857143,"upper_bound":1370326.9732142857,"unit":"ns"},"median_abs_dev":{"estimate":67175.78705767715,"lower_bound":4213.459992696266,"upper_bound":113199.26656764447,"unit":"ns"},"slope":{"estimate":1293990.4549165121,"lower_bound":1253886.8434462445,"upper_bound":1363008.5494522338,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[110708625.0,235886250.0,349780750.0,435579334.0,539106209.0,696925666.0,771592875.0,963742666.0,1043067834.0,1129232167.0],"unit":"ns","throughput":[],"typical":{"estimate":28598863.234415583,"lower_bound":27879078.15916955,"upper_bound":29294703.62157534,"unit":"ns"},"mean":{"estimate":28440767.895535715,"lower_bound":27822633.249785706,"upper_bound":29064407.482349705,"unit":"ns"},"median":{"estimate":28602455.3375,"lower_bound":27450432.3125,"upper_bound":29262175.333333336,"unit":"ns"},"median_abs_dev":{"estimate":1340733.688697219,"lower_bound":162828.64245921004,"upper_bound":1694392.0671310276,"unit":"ns"},"slope":{"estimate":28598863.234415583,"lower_bound":27879078.15916955,"upper_bound":29294703.62157534,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[90794167.0,178728458.0,271563000.0,361194041.0,477884250.0,573763916.0,630437500.0,716916667.0,813859416.0,925836250.0],"unit":"ns","throughput":[],"typical":{"estimate":6543824.503339518,"lower_bound":6445467.746801706,"upper_bound":6657959.5485129,"unit":"ns"},"mean":{"estimate":6534797.199702382,"lower_bound":6445522.02857143,"upper_bound":6639673.803750001,"unit":"ns"},"median":{"estimate":6462493.714285715,"lower_bound":6425467.629464285,"upper_bound":6656107.75,"unit":"ns"},"median_abs_dev":{"estimate":67391.61489730977,"lower_bound":11780.832053348422,"upper_bound":258587.76265914977,"unit":"ns"},"slope":{"estimate":6543824.503339518,"lower_bound":6445467.746801706,"upper_bound":6657959.5485129,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[131541125.0,330261416.0,586409000.0,603757750.0,1067581375.0,897628416.0,904340667.0,1068260750.0,1199106625.0,1303945459.0],"unit":"ns","throughput":[],"typical":{"estimate":47097735.24848485,"lower_bound":44329657.00054377,"upper_bound":53873587.77599363,"unit":"ns"},"mean":{"estimate":51085156.03727513,"lower_bound":45783194.07072222,"upper_bound":57268258.9898148,"unit":"ns"},"median":{"estimate":47189554.958333336,"lower_bound":43847041.666666664,"upper_bound":57734850.69444445,"unit":"ns"},"median_abs_dev":{"estimate":5238929.808825409,"lower_bound":492091.9193886257,"upper_bound":15378415.800589655,"unit":"ns"},"slope":{"estimate":47097735.24848485,"lower_bound":44329657.00054377,"upper_bound":53873587.77599363,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_10000","iteration_count":[88,176,264,352,440,528,616,704,792,880],"measured_values":[93431417.0,168270000.0,259509917.0,354351792.0,461086375.0,543030916.0,671730709.0,713979500.0,805827459.0,918234500.0],"unit":"ns","throughput":[],"typical":{"estimate":1034187.390820543,"lower_bound":1015662.2668766136,"upper_bound":1054523.0317840055,"unit":"ns"},"mean":{"estimate":1024941.9318452379,"lower_bound":1002012.6427083332,"upper_bound":1047443.799512987,"unit":"ns"},"median":{"estimate":1022963.2784090908,"lower_bound":998583.7679924243,"upper_bound":1052584.4715909092,"unit":"ns"},"median_abs_dev":{"estimate":33688.61377008949,"lower_bound":7989.498197930825,"upper_bound":65450.80789483411,"unit":"ns"},"slope":{"estimate":1034187.390820543,"lower_bound":1015662.2668766136,"upper_bound":1054523.0317840055,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107843583.0,222243750.0,343821125.0,478857125.0,561963792.0,678553583.0,841025250.0,945106584.0,1078282958.0,1128436334.0],"unit":"ns","throughput":[],"typical":{"estimate":29102144.675324675,"lower_bound":28429170.930959083,"upper_bound":29730603.4943662,"unit":"ns"},"mean":{"estimate":28742736.034781747,"lower_bound":28118958.481510915,"upper_bound":29360659.10757391,"unit":"ns"},"median":{"estimate":28462413.1875,"lower_bound":27995688.55,"upper_bound":29928570.3125,"unit":"ns"},"median_abs_dev":{"estimate":1300323.2025146484,"lower_bound":97688.39018651671,"upper_bound":1907872.6566284895,"unit":"ns"},"slope":{"estimate":29102144.675324675,"lower_bound":28429170.930959083,"upper_bound":29730603.4943662,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_10000","iteration_count":[132,264,396,528,660,792,924,1056,1188,1320],"measured_values":[166149500.0,172259375.0,259026208.0,343417917.0,424797667.0,513291000.0,587328709.0,679623791.0,769253042.0,847501708.0],"unit":"ns","throughput":[],"typical":{"estimate":645646.1752459662,"lower_bound":641881.6811688312,"upper_bound":653257.86796875,"unit":"ns"},"mean":{"estimate":707623.9209592954,"lower_bound":643824.1621164021,"upper_bound":831277.6963236531,"unit":"ns"},"median":{"estimate":647807.0462962963,"lower_bound":642839.7886363636,"upper_bound":652497.6325757576,"unit":"ns"},"median_abs_dev":{"estimate":6608.316626713042,"lower_bound":1192.717047385764,"upper_bound":13638.534186235322,"unit":"ns"},"slope":{"estimate":645646.1752459662,"lower_bound":641881.6811688312,"upper_bound":653257.86796875,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103108041.0,192167125.0,301699666.0,423563167.0,513662292.0,623179625.0,691367375.0,822097708.0,916785458.0,1002907625.0],"unit":"ns","throughput":[],"typical":{"estimate":25383559.62857143,"lower_bound":25094213.139989797,"upper_bound":25736824.842784785,"unit":"ns"},"mean":{"estimate":25398236.864067458,"lower_bound":24974549.66730159,"upper_bound":25788736.52459722,"unit":"ns"},"median":{"estimate":25574688.661111113,"lower_bound":24916665.398809522,"upper_bound":25828185.541666664,"unit":"ns"},"median_abs_dev":{"estimate":610963.7891907245,"lower_bound":75119.20791886526,"upper_bound":1170636.2353945503,"unit":"ns"},"slope":{"estimate":25383559.62857143,"lower_bound":25094213.139989797,"upper_bound":25736824.842784785,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[79,158,237,316,395,474,553,632,711,790],"measured_values":[85816709.0,182491250.0,254955791.0,350805000.0,446447042.0,522749500.0,596868000.0,697981834.0,781836000.0,890867709.0],"unit":"ns","throughput":[],"typical":{"estimate":1107833.3241492684,"lower_bound":1094200.7011159228,"upper_bound":1120482.007576427,"unit":"ns"},"mean":{"estimate":1107133.1603707052,"lower_bound":1093248.4614767933,"upper_bound":1122251.7813321277,"unit":"ns"},"median":{"estimate":1103624.3412447257,"lower_bound":1086287.4556962026,"upper_bound":1127680.6443037975,"unit":"ns"},"median_abs_dev":{"estimate":30684.770170046555,"lower_bound":3538.1833931972824,"upper_bound":40388.13207815711,"unit":"ns"},"slope":{"estimate":1107833.3241492684,"lower_bound":1094200.7011159228,"upper_bound":1120482.007576427,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[106824125.0,213833125.0,359582584.0,577376500.0,634938792.0,678911167.0,781983500.0,906117416.0,995777584.0,1081554042.0],"unit":"ns","throughput":[],"typical":{"estimate":28357965.96948052,"lower_bound":27575426.844040968,"upper_bound":30031796.134010524,"unit":"ns"},"mean":{"estimate":29046481.423730157,"lower_bound":27574920.41915774,"upper_bound":30955599.454465274,"unit":"ns"},"median":{"estimate":28107973.717261903,"lower_bound":27038851.05,"upper_bound":30031554.425,"unit":"ns"},"median_abs_dev":{"estimate":1814669.5723181718,"lower_bound":263850.2927432187,"upper_bound":3609628.396291282,"unit":"ns"},"slope":{"estimate":28357965.96948052,"lower_bound":27575426.844040968,"upper_bound":30031796.134010524,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[78,156,234,312,390,468,546,624,702,780],"measured_values":[92258542.0,218875041.0,283341458.0,408968625.0,499860750.0,587835709.0,650305500.0,741827041.0,790681500.0,936459833.0],"unit":"ns","throughput":[],"typical":{"estimate":1199124.614052614,"lower_bound":1166634.4635679636,"upper_bound":1245364.2250577228,"unit":"ns"},"mean":{"estimate":1235203.5752854089,"lower_bound":1192168.7463324175,"upper_bound":1285049.430405067,"unit":"ns"},"median":{"estimate":1205725.2305555556,"lower_bound":1186918.7673992673,"upper_bound":1283428.0411324785,"unit":"ns"},"median_abs_dev":{"estimate":54305.69983524008,"lower_bound":7742.301513027477,"upper_bound":129355.97923295946,"unit":"ns"},"slope":{"estimate":1199124.614052614,"lower_bound":1166634.4635679636,"upper_bound":1245364.2250577228,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118736583.0,213105417.0,335270333.0,483436375.0,513224875.0,676511292.0,791144083.0,895784667.0,1039028167.0,1148699125.0],"unit":"ns","throughput":[],"typical":{"estimate":28345601.76168831,"lower_bound":27658931.259272877,"upper_bound":28757133.876,"unit":"ns"},"mean":{"estimate":28215329.3297123,"lower_bound":27407703.482638888,"upper_bound":28968561.628819447,"unit":"ns"},"median":{"estimate":28221558.160714284,"lower_bound":27315723.984375,"upper_bound":29200811.9375,"unit":"ns"},"median_abs_dev":{"estimate":842306.0621752468,"lower_bound":184417.70730093028,"upper_bound":2330796.682433624,"unit":"ns"},"slope":{"estimate":28345601.76168831,"lower_bound":27658931.259272877,"upper_bound":28757133.876,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[90422958.0,182516750.0,270788166.0,375709750.0,463820334.0,552017958.0,627659333.0,715988458.0,841594625.0,894486791.0],"unit":"ns","throughput":[],"typical":{"estimate":6501412.227087199,"lower_bound":6414908.363684913,"upper_bound":6621617.748803828,"unit":"ns"},"mean":{"estimate":6519728.010992063,"lower_bound":6451424.230373017,"upper_bound":6592318.58699504,"unit":"ns"},"median":{"estimate":6488619.035714285,"lower_bound":6404687.071428572,"upper_bound":6626004.771428571,"unit":"ns"},"median_abs_dev":{"estimate":133283.44754624492,"lower_bound":16968.992098740957,"upper_bound":202927.33433731922,"unit":"ns"},"slope":{"estimate":6501412.227087199,"lower_bound":6414908.363684913,"upper_bound":6621617.748803828,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[87394375.0,170746792.0,267823542.0,378399875.0,492393625.0,560119500.0,681039291.0,719729542.0,814713875.0,884641250.0],"unit":"ns","throughput":[],"typical":{"estimate":45808560.98441558,"lower_bound":44824285.95268585,"upper_bound":47446987.81214981,"unit":"ns"},"mean":{"estimate":45735981.88373016,"lower_bound":44514565.95178571,"upper_bound":47046514.45789682,"unit":"ns"},"median":{"estimate":45122489.159722224,"lower_bound":44167222.25,"upper_bound":47661144.32142857,"unit":"ns"},"median_abs_dev":{"estimate":2208656.9795385003,"lower_bound":463034.46309616417,"upper_bound":3611303.9092907086,"unit":"ns"},"slope":{"estimate":45808560.98441558,"lower_bound":44824285.95268585,"upper_bound":47446987.81214981,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[59,118,177,236,295,354,413,472,531,590],"measured_values":[86958167.0,175703666.0,270500500.0,317091708.0,418897000.0,559524542.0,595445125.0,675200417.0,752627583.0,875299583.0],"unit":"ns","throughput":[],"typical":{"estimate":1455700.1704160247,"lower_bound":1421383.1760677965,"upper_bound":1494838.1702186968,"unit":"ns"},"mean":{"estimate":1460851.0803006454,"lower_bound":1422530.8596933011,"upper_bound":1499760.5902582728,"unit":"ns"},"median":{"estimate":1457811.493946731,"lower_bound":1419989.8305084745,"upper_bound":1505905.0138418078,"unit":"ns"},"median_abs_dev":{"estimate":51167.70388650698,"lower_bound":9734.464016373615,"upper_bound":110709.87414315114,"unit":"ns"},"slope":{"estimate":1455700.1704160247,"lower_bound":1421383.1760677965,"upper_bound":1494838.1702186968,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114010083.0,220618292.0,331637083.0,458678792.0,568480625.0,685388167.0,801192291.0,857171208.0,1072406375.0,1062440459.0],"unit":"ns","throughput":[],"typical":{"estimate":27974923.946103897,"lower_bound":27011769.854508195,"upper_bound":29150703.93548387,"unit":"ns"},"mean":{"estimate":28111621.496507935,"lower_bound":27529513.05305357,"upper_bound":28672095.268452384,"unit":"ns"},"median":{"estimate":28463276.0,"lower_bound":27211511.916666664,"upper_bound":28614010.39285714,"unit":"ns"},"median_abs_dev":{"estimate":764280.9659563014,"lower_bound":81234.77219529635,"upper_bound":1639592.0936497562,"unit":"ns"},"slope":{"estimate":27974923.946103897,"lower_bound":27011769.854508195,"upper_bound":29150703.93548387,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[93600042.0,187636833.0,302814792.0,380504125.0,486270125.0,545579667.0,661933000.0,741755417.0,826797625.0,902916583.0],"unit":"ns","throughput":[],"typical":{"estimate":6612631.169202226,"lower_bound":6524088.473578419,"upper_bound":6763252.733531639,"unit":"ns"},"mean":{"estimate":6722186.204254535,"lower_bound":6599912.161815192,"upper_bound":6863809.9783578515,"unit":"ns"},"median":{"estimate":6693516.375,"lower_bound":6558906.129464285,"upper_bound":6850567.219387755,"unit":"ns"},"median_abs_dev":{"estimate":172597.3245399518,"lower_bound":50928.110910131145,"upper_bound":361920.7571796215,"unit":"ns"},"slope":{"estimate":6612631.169202226,"lower_bound":6524088.473578419,"upper_bound":6763252.733531639,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[138314375.0,293552792.0,412374541.0,560428500.0,683287333.0,825239375.0,989188584.0,1121578416.0,1177961167.0,1320552084.0],"unit":"ns","throughput":[],"typical":{"estimate":45260821.86666667,"lower_bound":44311111.23891273,"upper_bound":46668974.65208333,"unit":"ns"},"mean":{"estimate":46043439.27116402,"lower_bound":45163563.68611112,"upper_bound":46941972.10396429,"unit":"ns"},"median":{"estimate":45975711.80555555,"lower_bound":44918898.12222222,"upper_bound":46903296.64285714,"unit":"ns"},"median_abs_dev":{"estimate":1099633.56926094,"lower_bound":211565.69837728707,"upper_bound":2576778.706597474,"unit":"ns"},"slope":{"estimate":45260821.86666667,"lower_bound":44311111.23891273,"upper_bound":46668974.65208333,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_10000","iteration_count":[73,146,219,292,365,438,511,584,657,730],"measured_values":[84354333.0,170884709.0,254924458.0,358084583.0,421809875.0,514319250.0,586265833.0,735015500.0,778569750.0,981262708.0],"unit":"ns","throughput":[],"typical":{"estimate":1231878.3132182886,"lower_bound":1167653.8648572266,"upper_bound":1292017.859369345,"unit":"ns"},"mean":{"estimate":1198133.8667677757,"lower_bound":1166433.4639950262,"upper_bound":1238089.0077301043,"unit":"ns"},"median":{"estimate":1172344.037671233,"lower_bound":1155643.493150685,"upper_bound":1226317.0650684931,"unit":"ns"},"median_abs_dev":{"estimate":24837.829804930996,"lower_bound":6269.114510618875,"upper_bound":84768.13246287286,"unit":"ns"},"slope":{"estimate":1231878.3132182886,"lower_bound":1167653.8648572266,"upper_bound":1292017.859369345,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[81043417.0,170166666.0,260385875.0,369230958.0,450806084.0,612771000.0,651606917.0,758360167.0,807643917.0,941573083.0],"unit":"ns","throughput":[],"typical":{"estimate":31101965.76969697,"lower_bound":30284066.926660392,"upper_bound":31972503.128703702,"unit":"ns"},"mean":{"estimate":30309891.41900794,"lower_bound":29190424.472777784,"upper_bound":31473662.13329365,"unit":"ns"},"median":{"estimate":30411492.71666667,"lower_bound":28931763.888888888,"upper_bound":31385769.433333334,"unit":"ns"},"median_abs_dev":{"estimate":1602041.4089705776,"lower_bound":422125.4806182754,"upper_bound":3398021.2571855653,"unit":"ns"},"slope":{"estimate":31101965.76969697,"lower_bound":30284066.926660392,"upper_bound":31972503.128703702,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_10000","iteration_count":[118,236,354,472,590,708,826,944,1062,1180],"measured_values":[81416250.0,171749833.0,261726250.0,344574541.0,483893417.0,506544000.0,594336916.0,696676250.0,765980125.0,893712875.0],"unit":"ns","throughput":[],"typical":{"estimate":739860.0528725511,"lower_bound":722557.0380544191,"upper_bound":759211.4395628903,"unit":"ns"},"mean":{"estimate":735889.4607842346,"lower_bound":718253.0975021858,"upper_bound":758096.004477401,"unit":"ns"},"median":{"estimate":728892.1684322034,"lower_bound":718359.7575329567,"upper_bound":747694.1472457626,"unit":"ns"},"median_abs_dev":{"estimate":14680.31304954187,"lower_bound":4302.698475871676,"upper_bound":44480.93963050321,"unit":"ns"},"slope":{"estimate":739860.0528725511,"lower_bound":722557.0380544191,"upper_bound":759211.4395628903,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120432917.0,197296875.0,321600500.0,403502250.0,519249583.0,678252500.0,725890292.0,855623084.0,932023833.0,1098644792.0],"unit":"ns","throughput":[],"typical":{"estimate":26662648.84090909,"lower_bound":25959981.14471941,"upper_bound":27277769.902861446,"unit":"ns"},"mean":{"estimate":26703081.627738096,"lower_bound":25833560.457330354,"upper_bound":27702228.329627976,"unit":"ns"},"median":{"estimate":26350350.2625,"lower_bound":25571771.95535714,"upper_bound":27530281.25,"unit":"ns"},"median_abs_dev":{"estimate":1168710.4924662407,"lower_bound":56080.6253943653,"upper_bound":2498186.7933858186,"unit":"ns"},"slope":{"estimate":26662648.84090909,"lower_bound":25959981.14471941,"upper_bound":27277769.902861446,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[72,144,216,288,360,432,504,576,648,720],"measured_values":[99043834.0,169823792.0,243848375.0,317760292.0,416521458.0,546071875.0,656565250.0,644713375.0,753640791.0,838288083.0],"unit":"ns","throughput":[],"typical":{"estimate":1180361.7586580086,"lower_bound":1142720.0627950898,"upper_bound":1233548.535274468,"unit":"ns"},"mean":{"estimate":1195757.9819295635,"lower_bound":1147850.3929712302,"upper_bound":1251541.4005069442,"unit":"ns"},"median":{"estimate":1163657.4581018519,"lower_bound":1128927.662037037,"upper_bound":1264055.2662037036,"unit":"ns"},"median_abs_dev":{"estimate":58631.78837647346,"lower_bound":6336.666606946034,"upper_bound":136762.1672235137,"unit":"ns"},"slope":{"estimate":1180361.7586580086,"lower_bound":1142720.0627950898,"upper_bound":1233548.535274468,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120404917.0,218335583.0,321049083.0,426384291.0,549905083.0,677487541.0,754409917.0,892284375.0,1033992167.0,1230503000.0],"unit":"ns","throughput":[],"typical":{"estimate":28617087.713636365,"lower_bound":27355313.629390955,"upper_bound":29712837.230307758,"unit":"ns"},"mean":{"estimate":28083186.493323408,"lower_bound":27317759.164880946,"upper_bound":28959827.367829613,"unit":"ns"},"median":{"estimate":27689570.434375,"lower_bound":26943211.32142857,"upper_bound":29164938.395833336,"unit":"ns"},"median_abs_dev":{"estimate":1246747.4489701826,"lower_bound":288093.3180996973,"upper_bound":2341038.6488882564,"unit":"ns"},"slope":{"estimate":28617087.713636365,"lower_bound":27355313.629390955,"upper_bound":29712837.230307758,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_selective_gt_100/10000","ORE/ore_decrypt/range_selective_gt_100/10000","ORE/ore/range_highly_selective_gt_10/10000","ORE/ore_decrypt/range_highly_selective_gt_10/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_100000.json b/results/query/ore_rows_100000.json index 76fec37..538d621 100644 --- a/results/query/ore_rows_100000.json +++ b/results/query/ore_rows_100000.json @@ -1,15 +1,15 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[106,212,318,424,530,636,742,848,954,1060],"measured_values":[88455500.0,167453292.0,258458959.0,360949625.0,467331333.0,583981125.0,632744291.0,956513667.0,814216375.0,875999792.0],"unit":"ns","throughput":[],"typical":{"estimate":898121.6746875766,"lower_bound":838596.9778890879,"upper_bound":1000556.8872412947,"unit":"ns"},"mean":{"estimate":874899.7244725216,"lower_bound":830764.0803071653,"upper_bound":937920.6832206498,"unit":"ns"},"median":{"estimate":852025.6972708895,"lower_bound":823624.9355345912,"upper_bound":885842.8000524109,"unit":"ns"},"median_abs_dev":{"estimate":41025.27143788223,"lower_bound":2150.639945859307,"upper_bound":91064.65071016591,"unit":"ns"},"slope":{"estimate":898121.6746875766,"lower_bound":838596.9778890879,"upper_bound":1000556.8872412947,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[102811541.0,202651500.0,337628333.0,458427250.0,584422917.0,650900500.0,741549125.0,880019084.0,1011294583.0,1148764834.0],"unit":"ns","throughput":[],"typical":{"estimate":27923715.752597403,"lower_bound":27208800.78379004,"upper_bound":28475020.062317893,"unit":"ns"},"mean":{"estimate":27495885.104920637,"lower_bound":26691387.878911704,"upper_bound":28236876.379166663,"unit":"ns"},"median":{"estimate":27796056.284722224,"lower_bound":26411869.708333336,"upper_bound":28651703.125,"unit":"ns"},"median_abs_dev":{"estimate":1318558.741529235,"lower_bound":415266.5642483784,"upper_bound":2185958.651928976,"unit":"ns"},"slope":{"estimate":27923715.752597403,"lower_bound":27208800.78379004,"upper_bound":28475020.062317893,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[95229833.0,184744125.0,289487792.0,386203875.0,456576666.0,543582916.0,633249334.0,734302208.0,823729792.0,891882125.0],"unit":"ns","throughput":[],"typical":{"estimate":6504996.320037106,"lower_bound":6434948.917002012,"upper_bound":6606530.086072923,"unit":"ns"},"mean":{"estimate":6610907.087851474,"lower_bound":6506538.454705216,"upper_bound":6725493.433371031,"unit":"ns"},"median":{"estimate":6546903.873015873,"lower_bound":6471225.19047619,"upper_bound":6802130.928571428,"unit":"ns"},"median_abs_dev":{"estimate":119241.55555922983,"lower_bound":25015.845815880293,"upper_bound":306231.73938830005,"unit":"ns"},"slope":{"estimate":6504996.320037106,"lower_bound":6434948.917002012,"upper_bound":6606530.086072923,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[127421917.0,328541083.0,364346709.0,480154291.0,639285667.0,738389459.0,993028667.0,1086656000.0,1161563042.0,1251285708.0],"unit":"ns","throughput":[],"typical":{"estimate":43321471.50649351,"lower_bound":41855251.17663003,"upper_bound":45124055.2133758,"unit":"ns"},"mean":{"estimate":43866211.55494709,"lower_bound":41655420.03425926,"upper_bound":46760833.79083531,"unit":"ns"},"median":{"estimate":42546508.400000006,"lower_bound":41021636.61111111,"upper_bound":45277333.333333336,"unit":"ns"},"median_abs_dev":{"estimate":2660090.1554973028,"lower_bound":405402.93301377073,"upper_bound":5289634.616730215,"unit":"ns"},"slope":{"estimate":43321471.50649351,"lower_bound":41855251.17663003,"upper_bound":45124055.2133758,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[113,226,339,452,565,678,791,904,1017,1130],"measured_values":[83894917.0,168625292.0,269820875.0,353825208.0,462109166.0,637869958.0,623473625.0,709488625.0,859366500.0,929699500.0],"unit":"ns","throughput":[],"typical":{"estimate":824162.5654752328,"lower_bound":794361.2502568553,"upper_bound":857974.376164419,"unit":"ns"},"mean":{"estimate":806678.3230436158,"lower_bound":776879.6831019542,"upper_bound":843090.2911297934,"unit":"ns"},"median":{"estimate":792070.5857564264,"lower_bound":765481.0801991151,"upper_bound":831446.9020648968,"unit":"ns"},"median_abs_dev":{"estimate":41879.05931101138,"lower_bound":4010.6212995937,"upper_bound":78797.41027239374,"unit":"ns"},"slope":{"estimate":824162.5654752328,"lower_bound":794361.2502568553,"upper_bound":857974.376164419,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[113993041.0,220441500.0,328762083.0,439091792.0,575102958.0,690728750.0,833863625.0,875778458.0,983032459.0,1199746458.0],"unit":"ns","throughput":[],"typical":{"estimate":28574965.25844156,"lower_bound":27562393.12668658,"upper_bound":29512751.040843807,"unit":"ns"},"mean":{"estimate":28287807.669027783,"lower_bound":27701579.885833334,"upper_bound":28912354.56769444,"unit":"ns"},"median":{"estimate":28026723.875,"lower_bound":27396840.25,"upper_bound":29267995.825,"unit":"ns"},"median_abs_dev":{"estimate":1022188.7395796059,"lower_bound":55716.2460045889,"upper_bound":1807640.7070429618,"unit":"ns"},"slope":{"estimate":28574965.25844156,"lower_bound":27562393.12668658,"upper_bound":29512751.040843807,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[89145375.0,183354000.0,275553167.0,369812084.0,464883125.0,526154667.0,626761125.0,734383875.0,963282292.0,928066333.0],"unit":"ns","throughput":[],"typical":{"estimate":6763582.1283859,"lower_bound":6441927.303998049,"upper_bound":7180918.873298102,"unit":"ns"},"mean":{"estimate":6621205.77279195,"lower_bound":6446540.700807823,"upper_bound":6877433.827653061,"unit":"ns"},"median":{"estimate":6558894.287202381,"lower_bound":6395521.683673469,"upper_bound":6629045.235714286,"unit":"ns"},"median_abs_dev":{"estimate":113006.85477247775,"lower_bound":9216.24738637887,"upper_bound":327498.24115645775,"unit":"ns"},"slope":{"estimate":6763582.1283859,"lower_bound":6441927.303998049,"upper_bound":7180918.873298102,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[115351166.0,236949458.0,356903417.0,489800417.0,612043583.0,739675083.0,838807209.0,944654416.0,1089574917.0,1265157250.0],"unit":"ns","throughput":[],"typical":{"estimate":40696158.405194804,"lower_bound":39851789.190366834,"upper_bound":41549700.43585341,"unit":"ns"},"mean":{"estimate":40214090.33230159,"lower_bound":39604319.37286112,"upper_bound":40848264.358684525,"unit":"ns"},"median":{"estimate":40148913.49206349,"lower_bound":39491576.333333336,"upper_bound":40947982.849999994,"unit":"ns"},"median_abs_dev":{"estimate":982315.2068354152,"lower_bound":215091.62587136545,"upper_bound":1832564.283367135,"unit":"ns"},"slope":{"estimate":40696158.405194804,"lower_bound":39851789.190366834,"upper_bound":41549700.43585341,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_100000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1417664167.0,1412498167.0,1514225958.0,1334734458.0,1470432750.0,1442804792.0,1390097125.0,1422162167.0,1457211417.0,1626754708.0],"unit":"ns","throughput":[],"typical":{"estimate":1448858570.9,"lower_bound":1406304895.9,"upper_bound":1498579984.8625,"unit":"ns"},"mean":{"estimate":1448858570.9,"lower_bound":1406304895.9,"upper_bound":1498579984.8625,"unit":"ns"},"median":{"estimate":1432483479.5,"lower_bound":1403880646.0,"upper_bound":1485718687.5,"unit":"ns"},"median_abs_dev":{"estimate":46462613.46552372,"lower_bound":7659111.46402359,"upper_bound":121191396.47252262,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_100000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1417240834.0,1491390167.0,1416951333.0,1525325125.0,1418482875.0,1489318708.0,1437511917.0,1386189000.0,1571071208.0,1403916584.0],"unit":"ns","throughput":[],"typical":{"estimate":1455739775.1,"lower_bound":1422505898.3225,"upper_bound":1492937787.5,"unit":"ns"},"mean":{"estimate":1455739775.1,"lower_bound":1422505898.3225,"upper_bound":1492937787.5,"unit":"ns"},"median":{"estimate":1427997396.0,"lower_bound":1410578709.0,"upper_bound":1507321916.5,"unit":"ns"},"median_abs_dev":{"estimate":48843669.02325153,"lower_bound":1349939.1519337893,"upper_bound":106556776.67073905,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_100000","iteration_count":[113,226,339,452,565,678,791,904,1017,1130],"measured_values":[87937667.0,167327959.0,260291958.0,336664833.0,450789708.0,563227583.0,642146709.0,694267208.0,831152834.0,907416083.0],"unit":"ns","throughput":[],"typical":{"estimate":799612.5455005171,"lower_bound":780620.897061279,"upper_bound":812850.8430446455,"unit":"ns"},"mean":{"estimate":785992.5792168843,"lower_bound":767711.2924380179,"upper_bound":803880.7018555977,"unit":"ns"},"median":{"estimate":788033.6663716814,"lower_bound":756414.2002212389,"upper_bound":811816.3198482933,"unit":"ns"},"median_abs_dev":{"estimate":32612.33270685611,"lower_bound":7657.91357572642,"upper_bound":50659.972568599755,"unit":"ns"},"slope":{"estimate":799612.5455005171,"lower_bound":780620.897061279,"upper_bound":812850.8430446455,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101385500.0,239546166.0,325246250.0,454483584.0,569118000.0,682430583.0,761384042.0,895658083.0,991369250.0,1142287250.0],"unit":"ns","throughput":[],"typical":{"estimate":28022385.145454545,"lower_bound":27601128.99577465,"upper_bound":28424357.570431802,"unit":"ns"},"mean":{"estimate":27896604.982192464,"lower_bound":27153554.006775793,"upper_bound":28583285.66830357,"unit":"ns"},"median":{"estimate":28197269.546875,"lower_bound":27192287.214285713,"upper_bound":28495894.4375,"unit":"ns"},"median_abs_dev":{"estimate":755493.307628978,"lower_bound":43564.161651581526,"upper_bound":2023591.8614240652,"unit":"ns"},"slope":{"estimate":28022385.145454545,"lower_bound":27601128.99577465,"upper_bound":28424357.570431802,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[95,190,285,380,475,570,665,760,855,950],"measured_values":[176443167.0,178007709.0,258424666.0,352918667.0,480067375.0,535240708.0,612658625.0,781602708.0,841403416.0,938859083.0],"unit":"ns","throughput":[],"typical":{"estimate":979735.93949419,"lower_bound":949384.6393086036,"upper_bound":1003857.5833672155,"unit":"ns"},"mean":{"estimate":1050143.872851295,"lower_bound":941885.6947785923,"upper_bound":1238054.516974102,"unit":"ns"},"median":{"estimate":961558.1742690059,"lower_bound":928733.3342105263,"upper_bound":1010668.1578947369,"unit":"ns"},"median_abs_dev":{"estimate":54182.98663797206,"lower_bound":7624.605250162506,"upper_bound":106988.78930642888,"unit":"ns"},"slope":{"estimate":979735.93949419,"lower_bound":949384.6393086036,"upper_bound":1003857.5833672155,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[105669833.0,217027500.0,318471709.0,443374542.0,563120291.0,636836166.0,736602125.0,914114666.0,1029555375.0,1452942583.0],"unit":"ns","throughput":[],"typical":{"estimate":29980398.043506492,"lower_bound":27043551.478323698,"upper_bound":33242196.10730337,"unit":"ns"},"mean":{"estimate":28228259.55625,"lower_bound":26917803.114927083,"upper_bound":30229832.124583334,"unit":"ns"},"median":{"estimate":27419673.1875,"lower_bound":26478383.666666664,"upper_bound":28566083.3125,"unit":"ns"},"median_abs_dev":{"estimate":1398868.5649026185,"lower_bound":93640.76723754221,"upper_bound":2568174.531293289,"unit":"ns"},"slope":{"estimate":29980398.043506492,"lower_bound":27043551.478323698,"upper_bound":33242196.10730337,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[64,128,192,256,320,384,448,512,576,640],"measured_values":[91021000.0,191029417.0,253565042.0,359079542.0,445245500.0,524415292.0,566042250.0,699785500.0,805010958.0,869185875.0],"unit":"ns","throughput":[],"typical":{"estimate":1361215.4830357144,"lower_bound":1325703.6743164062,"upper_bound":1387994.7609087927,"unit":"ns"},"mean":{"estimate":1378093.0295386906,"lower_bound":1342409.5117931548,"upper_bound":1413661.317233073,"unit":"ns"},"median":{"estimate":1379080.37109375,"lower_bound":1343158.0416666667,"upper_bound":1409895.796875,"unit":"ns"},"median_abs_dev":{"estimate":33026.049529295415,"lower_bound":6423.827698454434,"upper_bound":99567.25600264035,"unit":"ns"},"slope":{"estimate":1361215.4830357144,"lower_bound":1325703.6743164062,"upper_bound":1387994.7609087927,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114413333.0,237104250.0,337854167.0,480617292.0,601843709.0,725902667.0,795350000.0,997684542.0,1009736584.0,1173773875.0],"unit":"ns","throughput":[],"typical":{"estimate":29391936.61753247,"lower_bound":28584057.69121287,"upper_bound":30362715.632736485,"unit":"ns"},"mean":{"estimate":29374817.34748016,"lower_bound":28769467.0281746,"upper_bound":29994699.457117565,"unit":"ns"},"median":{"estimate":29491189.0625,"lower_bound":28378923.583333336,"upper_bound":30142262.604166664,"unit":"ns"},"median_abs_dev":{"estimate":1217667.6671195766,"lower_bound":157564.01231934872,"upper_bound":1906781.7145603593,"unit":"ns"},"slope":{"estimate":29391936.61753247,"lower_bound":28584057.69121287,"upper_bound":30362715.632736485,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[86141000.0,177450750.0,258633792.0,350071084.0,425466708.0,492939875.0,592645458.0,671839875.0,746727667.0,852827917.0],"unit":"ns","throughput":[],"typical":{"estimate":6488364.911288711,"lower_bound":6419789.330409508,"upper_bound":6563511.642644537,"unit":"ns"},"mean":{"estimate":6559550.393409646,"lower_bound":6469998.406093331,"upper_bound":6650256.979184981,"unit":"ns"},"median":{"estimate":6552928.203846154,"lower_bound":6447437.601343101,"upper_bound":6679183.5,"unit":"ns"},"median_abs_dev":{"estimate":127234.42743440645,"lower_bound":35306.113604729704,"upper_bound":265167.9834069414,"unit":"ns"},"slope":{"estimate":6488364.911288711,"lower_bound":6419789.330409508,"upper_bound":6563511.642644537,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[108687792.0,205712417.0,304807500.0,369040292.0,492482750.0,558598792.0,633952375.0,755005000.0,837231625.0,951811291.0],"unit":"ns","throughput":[],"typical":{"estimate":47085203.83896104,"lower_bound":46385652.1397329,"upper_bound":47880090.51458929,"unit":"ns"},"mean":{"estimate":48507501.868888885,"lower_bound":46930449.910000004,"upper_bound":50306773.98722222,"unit":"ns"},"median":{"estimate":47389188.525,"lower_bound":46339967.91666667,"upper_bound":50801250.0,"unit":"ns"},"median_abs_dev":{"estimate":2311550.159011781,"lower_bound":338695.59855362395,"upper_bound":4787639.819077402,"unit":"ns"},"slope":{"estimate":47085203.83896104,"lower_bound":46385652.1397329,"upper_bound":47880090.51458929,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[72,144,216,288,360,432,504,576,648,720],"measured_values":[85356709.0,165242417.0,249198333.0,339531333.0,437432834.0,507554667.0,597710708.0,715942250.0,793995709.0,874814875.0],"unit":"ns","throughput":[],"typical":{"estimate":1210666.5632395383,"lower_bound":1189168.9982570398,"upper_bound":1224563.9484575253,"unit":"ns"},"mean":{"estimate":1192484.9045061728,"lower_bound":1174285.3607561726,"upper_bound":1210905.2221450615,"unit":"ns"},"median":{"estimate":1185721.8958333335,"lower_bound":1166312.112847222,"upper_bound":1220161.3398919753,"unit":"ns"},"median_abs_dev":{"estimate":43490.64219580328,"lower_bound":5193.328921341744,"upper_bound":50453.04955948773,"unit":"ns"},"slope":{"estimate":1210666.5632395383,"lower_bound":1189168.9982570398,"upper_bound":1224563.9484575253,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120586666.0,241316375.0,350215583.0,486173166.0,596744625.0,726874458.0,840582542.0,867266458.0,1011646083.0,1181879250.0],"unit":"ns","throughput":[],"typical":{"estimate":29019055.45909091,"lower_bound":28146607.887963526,"upper_bound":29966336.61782787,"unit":"ns"},"mean":{"estimate":29477647.83839286,"lower_bound":28784436.09122024,"upper_bound":30039984.70979167,"unit":"ns"},"median":{"estimate":29929018.160714284,"lower_bound":28824130.666666664,"upper_bound":30216551.125,"unit":"ns"},"median_abs_dev":{"estimate":548157.611118257,"lower_bound":106555.79709575685,"upper_bound":1529499.6455084542,"unit":"ns"},"slope":{"estimate":29019055.45909091,"lower_bound":28146607.887963526,"upper_bound":29966336.61782787,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[92924000.0,185604791.0,280591291.0,361676125.0,447265667.0,518370542.0,631512208.0,721253959.0,803561541.0,975932000.0],"unit":"ns","throughput":[],"typical":{"estimate":6545668.745640074,"lower_bound":6346038.979323308,"upper_bound":6775361.401097682,"unit":"ns"},"mean":{"estimate":6519819.079090135,"lower_bound":6397507.099744898,"upper_bound":6653816.091887755,"unit":"ns"},"median":{"estimate":6451252.177295919,"lower_bound":6389509.528571429,"upper_bound":6654743.779761905,"unit":"ns"},"median_abs_dev":{"estimate":186266.43886810952,"lower_bound":13888.063309687983,"upper_bound":363609.86391463404,"unit":"ns"},"slope":{"estimate":6545668.745640074,"lower_bound":6346038.979323308,"upper_bound":6775361.401097682,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[96261458.0,205016416.0,285286584.0,377326875.0,486759916.0,553849792.0,672500041.0,723438875.0,776871292.0,937333750.0],"unit":"ns","throughput":[],"typical":{"estimate":46089026.349350646,"lower_bound":44675913.57497923,"upper_bound":47581632.92863387,"unit":"ns"},"mean":{"estimate":47220544.793234125,"lower_bound":45942344.05017857,"upper_bound":48488646.063431546,"unit":"ns"},"median":{"estimate":47356811.6875,"lower_bound":46040808.59375,"upper_bound":48355854.40714286,"unit":"ns"},"median_abs_dev":{"estimate":1465238.480886815,"lower_bound":432151.9468277693,"upper_bound":3685159.9667419977,"unit":"ns"},"slope":{"estimate":46089026.349350646,"lower_bound":44675913.57497923,"upper_bound":47581632.92863387,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_100000","iteration_count":[48,96,144,192,240,288,336,384,432,480],"measured_values":[82934833.0,170946500.0,244313583.0,352877083.0,454260750.0,532710958.0,655245333.0,663884458.0,754492708.0,867066667.0],"unit":"ns","throughput":[],"typical":{"estimate":1807128.8121753247,"lower_bound":1759713.9353875292,"upper_bound":1873125.9647108843,"unit":"ns"},"mean":{"estimate":1801736.9742096558,"lower_bound":1755846.7795833335,"upper_bound":1850655.8043278765,"unit":"ns"},"median":{"estimate":1793540.7989583332,"lower_bound":1728865.7760416667,"upper_bound":1865327.2994791665,"unit":"ns"},"median_abs_dev":{"estimate":89567.60823225294,"lower_bound":14647.074029372305,"upper_bound":143691.6543470879,"unit":"ns"},"slope":{"estimate":1807128.8121753247,"lower_bound":1759713.9353875292,"upper_bound":1873125.9647108843,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[121803625.0,246616834.0,399813625.0,508872125.0,668128292.0,730964583.0,823149292.0,998328375.0,1121141125.0,1245494833.0],"unit":"ns","throughput":[],"typical":{"estimate":41446135.17316017,"lower_bound":40639838.69836956,"upper_bound":42312069.6743248,"unit":"ns"},"mean":{"estimate":41751963.09231482,"lower_bound":40817907.85979398,"upper_bound":42772047.02101156,"unit":"ns"},"median":{"estimate":41520119.90185185,"lower_bound":40609143.5,"upper_bound":43010375.86805555,"unit":"ns"},"median_abs_dev":{"estimate":1332017.4216769617,"lower_bound":59690.35832278688,"upper_bound":2833639.791359503,"unit":"ns"},"slope":{"estimate":41446135.17316017,"lower_bound":40639838.69836956,"upper_bound":42312069.6743248,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_100000","iteration_count":[103,206,309,412,515,618,721,824,927,1030],"measured_values":[103559208.0,180875583.0,283387250.0,359472917.0,434619791.0,523540417.0,596668209.0,723570042.0,708863292.0,850506584.0],"unit":"ns","throughput":[],"typical":{"estimate":830104.1108561342,"lower_bound":799516.1773778184,"upper_bound":865604.3363999374,"unit":"ns"},"mean":{"estimate":866025.3951502542,"lower_bound":830853.7457697642,"upper_bound":905871.7180290686,"unit":"ns"},"median":{"estimate":859829.9292071197,"lower_bound":827556.4618585298,"upper_bound":897573.8260517799,"unit":"ns"},"median_abs_dev":{"estimate":37481.99626393044,"lower_bound":4160.103555269546,"upper_bound":99708.55310190661,"unit":"ns"},"slope":{"estimate":830104.1108561342,"lower_bound":799516.1773778184,"upper_bound":865604.3363999374,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101471166.0,213202750.0,328312666.0,465729917.0,548426459.0,682970042.0,828975875.0,871250291.0,1027549125.0,1180528167.0],"unit":"ns","throughput":[],"typical":{"estimate":28598535.147402596,"lower_bound":27757852.118654273,"upper_bound":29209715.065920178,"unit":"ns"},"mean":{"estimate":27925314.01979167,"lower_bound":27104566.33729167,"upper_bound":28696976.68606771,"unit":"ns"},"median":{"estimate":27939204.016666666,"lower_bound":27004866.291666664,"upper_bound":29108119.8125,"unit":"ns"},"median_abs_dev":{"estimate":1394791.669796873,"lower_bound":144369.1778250592,"upper_bound":2353805.1848866045,"unit":"ns"},"slope":{"estimate":28598535.147402596,"lower_bound":27757852.118654273,"upper_bound":29209715.065920178,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[63,126,189,252,315,378,441,504,567,630],"measured_values":[100041417.0,175769875.0,248919167.0,335732292.0,379674125.0,442523083.0,608344750.0,717419541.0,783167875.0,823577125.0],"unit":"ns","throughput":[],"typical":{"estimate":1334851.7279736137,"lower_bound":1270710.8579507652,"upper_bound":1384013.0596593108,"unit":"ns"},"mean":{"estimate":1349970.4064972284,"lower_bound":1283188.296949405,"upper_bound":1420342.5903218694,"unit":"ns"},"median":{"estimate":1355868.776643991,"lower_bound":1261173.6560846562,"upper_bound":1402349.9635141091,"unit":"ns"},"median_abs_dev":{"estimate":65037.01301202889,"lower_bound":11514.208426534547,"upper_bound":200837.71478997334,"unit":"ns"},"slope":{"estimate":1334851.7279736137,"lower_bound":1270710.8579507652,"upper_bound":1384013.0596593108,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120477500.0,243370875.0,383850083.0,543718958.0,631783750.0,721164417.0,894571000.0,896211708.0,1062877500.0,1111017792.0],"unit":"ns","throughput":[],"typical":{"estimate":29563192.64090909,"lower_bound":28515119.088150073,"upper_bound":31330284.7182971,"unit":"ns"},"mean":{"estimate":30540378.100238103,"lower_bound":29438852.68224107,"upper_bound":31675949.024404764,"unit":"ns"},"median":{"estimate":30270367.1875,"lower_bound":29027566.625,"upper_bound":31948964.285714287,"unit":"ns"},"median_abs_dev":{"estimate":2221985.487114373,"lower_bound":276387.7696931362,"upper_bound":3215674.1490078713,"unit":"ns"},"slope":{"estimate":29563192.64090909,"lower_bound":28515119.088150073,"upper_bound":31330284.7182971,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/100000","ORE/ore_decrypt/range_gt_10/100000","ORE/ore/range_gt_100/100000","ORE/ore_decrypt/range_gt_100/100000","ORE/ore/range_lt_10/100000","ORE/ore_decrypt/range_lt_10/100000","ORE/ore/range_lt_100/100000","ORE/ore_decrypt/range_lt_100/100000","ORE/ore/range_selective_gt_100/100000","ORE/ore_decrypt/range_selective_gt_100/100000","ORE/ore/range_highly_selective_gt_10/100000","ORE/ore_decrypt/range_highly_selective_gt_10/100000","ORE/ore/range_lt_hybrid_ordered_10/100000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_1000000.json b/results/query/ore_rows_1000000.json index 25660f2..9b2f196 100644 --- a/results/query/ore_rows_1000000.json +++ b/results/query/ore_rows_1000000.json @@ -1,15 +1,15 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[96,192,288,384,480,576,672,768,864,960],"measured_values":[84979625.0,180114416.0,308044084.0,419652208.0,640602125.0,578208458.0,697415958.0,737182583.0,818596250.0,938496834.0],"unit":"ns","throughput":[],"typical":{"estimate":1007898.2108766234,"lower_bound":968825.8315135542,"upper_bound":1092316.8125384378,"unit":"ns"},"mean":{"estimate":1024690.8791389717,"lower_bound":960974.4743287036,"upper_bound":1107073.451774915,"unit":"ns"},"median":{"estimate":990717.4986111112,"lower_bound":947449.363425926,"upper_bound":1069597.513888889,"unit":"ns"},"median_abs_dev":{"estimate":73926.47433129272,"lower_bound":18419.512983491644,"upper_bound":156512.99393765844,"unit":"ns"},"slope":{"estimate":1007898.2108766234,"lower_bound":968825.8315135542,"upper_bound":1092316.8125384378,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107792500.0,212476250.0,314866583.0,448205750.0,543059333.0,709514208.0,811214833.0,915312333.0,1082410041.0,1111943084.0],"unit":"ns","throughput":[],"typical":{"estimate":28639398.28961039,"lower_bound":27853541.166962758,"upper_bound":29407845.061603297,"unit":"ns"},"mean":{"estimate":27991644.76026786,"lower_bound":27249105.09818378,"upper_bound":28756906.905346725,"unit":"ns"},"median":{"estimate":27905718.2375,"lower_bound":26856248.95,"upper_bound":29083301.203125,"unit":"ns"},"median_abs_dev":{"estimate":1500267.6145399252,"lower_bound":439913.6542099703,"upper_bound":2224833.2783813123,"unit":"ns"},"slope":{"estimate":28639398.28961039,"lower_bound":27853541.166962758,"upper_bound":29407845.061603297,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[93712500.0,191010000.0,294255750.0,385896959.0,468973916.0,558335333.0,657561166.0,810283750.0,844498084.0,933025666.0],"unit":"ns","throughput":[],"typical":{"estimate":6792747.076437848,"lower_bound":6683309.608293004,"upper_bound":6996792.89558239,"unit":"ns"},"mean":{"estimate":6807043.764331067,"lower_bound":6708482.927473214,"upper_bound":6928752.304246033,"unit":"ns"},"median":{"estimate":6706086.781179138,"lower_bound":6682048.207142858,"upper_bound":6913937.5,"unit":"ns"},"median_abs_dev":{"estimate":74764.04525386334,"lower_bound":7546.763668875175,"upper_bound":280564.57530112594,"unit":"ns"},"slope":{"estimate":6792747.076437848,"lower_bound":6683309.608293004,"upper_bound":6996792.89558239,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[127976208.0,227495416.0,373696417.0,493386292.0,621720042.0,791323167.0,899310625.0,1072208333.0,1124929417.0,1288585792.0],"unit":"ns","throughput":[],"typical":{"estimate":42785458.34025974,"lower_bound":41853044.68494343,"upper_bound":43643893.35326895,"unit":"ns"},"mean":{"estimate":42073896.29771164,"lower_bound":40915298.330289684,"upper_bound":43085559.819109134,"unit":"ns"},"median":{"estimate":42161394.240740746,"lower_bound":41318674.222222224,"upper_bound":43393356.82142857,"unit":"ns"},"median_abs_dev":{"estimate":1115550.424875024,"lower_bound":160157.62603886085,"upper_bound":2819314.0510549517,"unit":"ns"},"slope":{"estimate":42785458.34025974,"lower_bound":41853044.68494343,"upper_bound":43643893.35326895,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[109,218,327,436,545,654,763,872,981,1090],"measured_values":[119531958.0,191403708.0,299414167.0,360396958.0,469106083.0,555203083.0,655288250.0,759747333.0,826514375.0,911952208.0],"unit":"ns","throughput":[],"typical":{"estimate":851711.3425235315,"lower_bound":842450.1663308042,"upper_bound":866557.5909239658,"unit":"ns"},"mean":{"estimate":883581.6630490025,"lower_bound":848727.5684618463,"upper_bound":936099.6701885831,"unit":"ns"},"median":{"estimate":859788.1823066841,"lower_bound":842522.2986748216,"upper_bound":893454.7658639144,"unit":"ns"},"median_abs_dev":{"estimate":26298.62659151582,"lower_bound":8755.29306410378,"upper_bound":60794.58348111619,"unit":"ns"},"slope":{"estimate":851711.3425235315,"lower_bound":842450.1663308042,"upper_bound":866557.5909239658,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103797625.0,221628125.0,328932917.0,449525417.0,540969084.0,662586916.0,771770500.0,867128417.0,1091483375.0,1145072875.0],"unit":"ns","throughput":[],"typical":{"estimate":28328455.305844154,"lower_bound":27312540.140370294,"upper_bound":29261362.92558584,"unit":"ns"},"mean":{"estimate":27742237.89088293,"lower_bound":27115476.808958333,"upper_bound":28462083.943125,"unit":"ns"},"median":{"estimate":27585510.154761903,"lower_bound":27097763.03125,"upper_bound":28165168.75,"unit":"ns"},"median_abs_dev":{"estimate":739502.7281868272,"lower_bound":103992.14346627395,"upper_bound":1689671.1467023434,"unit":"ns"},"slope":{"estimate":28328455.305844154,"lower_bound":27312540.140370294,"upper_bound":29261362.92558584,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[89679084.0,183365666.0,269551875.0,361549667.0,465003833.0,559734417.0,645370250.0,803253958.0,839322375.0,906610208.0],"unit":"ns","throughput":[],"typical":{"estimate":6671301.900742115,"lower_bound":6517030.5026010405,"upper_bound":6891170.893703879,"unit":"ns"},"mean":{"estimate":6602938.229047621,"lower_bound":6494163.732892856,"upper_bound":6750089.87807143,"unit":"ns"},"median":{"estimate":6567092.25,"lower_bound":6446844.492857143,"upper_bound":6661288.69047619,"unit":"ns"},"median_abs_dev":{"estimate":141298.56391644911,"lower_bound":16908.562029813267,"upper_bound":275889.12454948924,"unit":"ns"},"slope":{"estimate":6671301.900742115,"lower_bound":6517030.5026010405,"upper_bound":6891170.893703879,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[118654625.0,253920583.0,398690292.0,515973375.0,673610750.0,777516292.0,968144667.0,1078712167.0,1218729500.0,1270283042.0],"unit":"ns","throughput":[],"typical":{"estimate":44153868.04675325,"lower_bound":43012382.62672811,"upper_bound":45206942.6088632,"unit":"ns"},"mean":{"estimate":43580043.92935185,"lower_bound":42394622.722407416,"upper_bound":44629469.389351845,"unit":"ns"},"median":{"estimate":43747135.44444445,"lower_bound":42342768.06666667,"upper_bound":45022756.48148148,"unit":"ns"},"median_abs_dev":{"estimate":1920114.5086347554,"lower_bound":171052.226407662,"upper_bound":3368051.592135134,"unit":"ns"},"slope":{"estimate":44153868.04675325,"lower_bound":43012382.62672811,"upper_bound":45206942.6088632,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1529956583.0,1415685041.0,1447321833.0,1491518500.0,1334948500.0,1196042959.0,1412568417.0,1034242667.0,1339030375.0,1042974167.0],"unit":"ns","throughput":[],"typical":{"estimate":1324428904.2,"lower_bound":1215410395.8275,"upper_bound":1421998258.1,"unit":"ns"},"mean":{"estimate":1324428904.2,"lower_bound":1215410395.8275,"upper_bound":1421998258.1,"unit":"ns"},"median":{"estimate":1375799396.0,"lower_bound":1188961333.5,"upper_bound":1453601770.5,"unit":"ns"},"median_abs_dev":{"estimate":138802151.8790692,"lower_bound":25762706.823420525,"upper_bound":299742919.4842994,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1458322500.0,1398670083.0,1433383667.0,1255448291.0,1240342792.0,1397229458.0,1360156833.0,1468139833.0,1554823333.0,1446027250.0],"unit":"ns","throughput":[],"typical":{"estimate":1401254404.0,"lower_bound":1342678076.615,"upper_bound":1456449548.9675,"unit":"ns"},"mean":{"estimate":1401254404.0,"lower_bound":1342678076.615,"upper_bound":1456449548.9675,"unit":"ns"},"median":{"estimate":1416026875.0,"lower_bound":1326338874.5,"upper_bound":1458322500.0,"unit":"ns"},"median_abs_dev":{"estimate":69985081.33541644,"lower_bound":16392057.486882806,"upper_bound":159976738.10694516,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_1000000","iteration_count":[98,196,294,392,490,588,686,784,882,980],"measured_values":[101270917.0,188437208.0,265402792.0,358652333.0,436285083.0,525450583.0,615297958.0,694863542.0,831528250.0,900289958.0],"unit":"ns","throughput":[],"typical":{"estimate":911628.4077922078,"lower_bound":893744.1943814562,"upper_bound":927747.8618403951,"unit":"ns"},"mean":{"estimate":924113.2550647879,"lower_bound":901201.3957835682,"upper_bound":953478.1039702985,"unit":"ns"},"median":{"estimate":908830.0029761905,"lower_bound":893623.4404761905,"upper_bound":942775.7936507936,"unit":"ns"},"median_abs_dev":{"estimate":24951.301405954462,"lower_bound":4861.503450629907,"upper_bound":59410.56132453733,"unit":"ns"},"slope":{"estimate":911628.4077922078,"lower_bound":893744.1943814562,"upper_bound":927747.8618403951,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114070458.0,209193167.0,325878000.0,445833709.0,548680708.0,676047209.0,774890084.0,884728958.0,1040949334.0,1107916084.0],"unit":"ns","throughput":[],"typical":{"estimate":27949921.766233765,"lower_bound":27590100.697101448,"upper_bound":28416161.112987008,"unit":"ns"},"mean":{"estimate":27722612.346825402,"lower_bound":27260489.83536905,"upper_bound":28152358.291130953,"unit":"ns"},"median":{"estimate":27686273.97857143,"lower_bound":27402139.96875,"upper_bound":28191110.65625,"unit":"ns"},"median_abs_dev":{"estimate":544557.7162996682,"lower_bound":39831.41175535266,"upper_bound":1269700.9935895505,"unit":"ns"},"slope":{"estimate":27949921.766233765,"lower_bound":27590100.697101448,"upper_bound":28416161.112987008,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[87,174,261,348,435,522,609,696,783,870],"measured_values":[86646583.0,170502167.0,266976291.0,344826500.0,461274667.0,564236583.0,615429208.0,691060250.0,821411250.0,889422375.0],"unit":"ns","throughput":[],"typical":{"estimate":1027708.317032393,"lower_bound":1008082.691464453,"upper_bound":1048499.4867012404,"unit":"ns"},"mean":{"estimate":1020576.8920717023,"lower_bound":1001860.4246741243,"upper_bound":1040873.4768226601,"unit":"ns"},"median":{"estimate":1016440.7803776683,"lower_bound":992902.658045977,"upper_bound":1049056.5134099617,"unit":"ns"},"median_abs_dev":{"estimate":36396.46208745435,"lower_bound":4499.805949422909,"upper_bound":54714.00961426442,"unit":"ns"},"slope":{"estimate":1027708.317032393,"lower_bound":1008082.691464453,"upper_bound":1048499.4867012404,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[102517458.0,218164042.0,340746417.0,474731417.0,540108041.0,662979292.0,780821958.0,895191792.0,1017434250.0,1105963291.0],"unit":"ns","throughput":[],"typical":{"estimate":27910555.5974026,"lower_bound":27632917.680194806,"upper_bound":28229568.56514628,"unit":"ns"},"mean":{"estimate":27736804.405416667,"lower_bound":27115506.4125,"upper_bound":28339523.692500003,"unit":"ns"},"median":{"estimate":27767790.3875,"lower_bound":27270505.25,"upper_bound":28262062.5,"unit":"ns"},"median_abs_dev":{"estimate":735041.376375407,"lower_bound":194488.4529471388,"upper_bound":1765546.728590282,"unit":"ns"},"slope":{"estimate":27910555.5974026,"lower_bound":27632917.680194806,"upper_bound":28229568.56514628,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[77,154,231,308,385,462,539,616,693,770],"measured_values":[93704042.0,183695834.0,284662250.0,362654708.0,445120667.0,566954208.0,652195416.0,557518375.0,744617000.0,856765041.0],"unit":"ns","throughput":[],"typical":{"estimate":1102639.507404284,"lower_bound":1022828.5658785659,"upper_bound":1188106.5192822372,"unit":"ns"},"mean":{"estimate":1150508.8973742528,"lower_bound":1084061.397492785,"upper_bound":1200801.4090166974,"unit":"ns"},"median":{"estimate":1185140.2207792206,"lower_bound":1112681.8714285714,"upper_bound":1218591.8293135436,"unit":"ns"},"median_abs_dev":{"estimate":54729.27306472496,"lower_bound":12723.348397492016,"upper_bound":129927.48021605321,"unit":"ns"},"slope":{"estimate":1102639.507404284,"lower_bound":1022828.5658785659,"upper_bound":1188106.5192822372,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[106378042.0,216287958.0,339209083.0,485384500.0,642177334.0,701247417.0,805789666.0,905624750.0,1055231000.0,1095452500.0],"unit":"ns","throughput":[],"typical":{"estimate":28736116.909740258,"lower_bound":27974990.4801774,"upper_bound":29790507.621503495,"unit":"ns"},"mean":{"estimate":28733922.967519842,"lower_bound":27827052.57745536,"upper_bound":29758224.60319395,"unit":"ns"},"median":{"estimate":28539487.89732143,"lower_bound":27386312.5,"upper_bound":29777586.8125,"unit":"ns"},"median_abs_dev":{"estimate":1427491.526740294,"lower_bound":378640.29830279265,"upper_bound":2716612.224445492,"unit":"ns"},"slope":{"estimate":28736116.909740258,"lower_bound":27974990.4801774,"upper_bound":29790507.621503495,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[90594292.0,194634042.0,279107916.0,378726500.0,474612750.0,561501125.0,673139583.0,781493708.0,863558458.0,1048008709.0],"unit":"ns","throughput":[],"typical":{"estimate":7011169.3100185525,"lower_bound":6780713.8158054715,"upper_bound":7251380.05943512,"unit":"ns"},"mean":{"estimate":6848116.447018141,"lower_bound":6705369.5102706915,"upper_bound":7021629.470873016,"unit":"ns"},"median":{"estimate":6816910.349206349,"lower_bound":6684537.202380952,"upper_bound":6951215.785714285,"unit":"ns"},"median_abs_dev":{"estimate":197688.83031532145,"lower_bound":57985.42042055248,"upper_bound":374703.94242267596,"unit":"ns"},"slope":{"estimate":7011169.3100185525,"lower_bound":6780713.8158054715,"upper_bound":7251380.05943512,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[102462583.0,201501959.0,265657958.0,358886833.0,452505417.0,571157750.0,662087542.0,800882791.0,841556625.0,984491125.0],"unit":"ns","throughput":[],"typical":{"estimate":47906567.90779221,"lower_bound":46463177.62169965,"upper_bound":48954734.35600907,"unit":"ns"},"mean":{"estimate":47691582.63815476,"lower_bound":46256095.405081846,"upper_bound":49123592.87291667,"unit":"ns"},"median":{"estimate":47444223.22619048,"lower_bound":45250541.7,"upper_bound":50055174.4375,"unit":"ns"},"median_abs_dev":{"estimate":3541227.567208143,"lower_bound":615737.2514622286,"upper_bound":4108445.934104252,"unit":"ns"},"slope":{"estimate":47906567.90779221,"lower_bound":46463177.62169965,"upper_bound":48954734.35600907,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[86,172,258,344,430,516,602,688,774,860],"measured_values":[87336458.0,192421375.0,237916125.0,275441875.0,345979917.0,509496375.0,573291709.0,706514208.0,819302458.0,1039296625.0],"unit":"ns","throughput":[],"typical":{"estimate":1042175.0805496828,"lower_bound":928241.4128977786,"upper_bound":1125147.7015930691,"unit":"ns"},"mean":{"estimate":989536.5065882243,"lower_bound":914565.2581635981,"upper_bound":1064379.7977759321,"unit":"ns"},"median":{"estimate":1001468.1424418604,"lower_bound":878458.1335548173,"upper_bound":1072819.5552325582,"unit":"ns"},"median_abs_dev":{"estimate":101094.62576063791,"lower_bound":29291.809567757165,"upper_bound":232860.46271857482,"unit":"ns"},"slope":{"estimate":1042175.0805496828,"lower_bound":928241.4128977786,"upper_bound":1125147.7015930691,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103104583.0,223808792.0,344821209.0,435396625.0,645039375.0,681422041.0,833787375.0,922139625.0,1032366584.0,1130325292.0],"unit":"ns","throughput":[],"typical":{"estimate":28862780.659740258,"lower_bound":28347875.57524084,"upper_bound":29691108.780330617,"unit":"ns"},"mean":{"estimate":28587415.402668647,"lower_bound":27643760.486016367,"upper_bound":29634162.375556797,"unit":"ns"},"median":{"estimate":28534717.298611112,"lower_bound":27735210.68125,"upper_bound":29256610.64285714,"unit":"ns"},"median_abs_dev":{"estimate":623258.5506255738,"lower_bound":121221.1266791448,"upper_bound":2546443.6387759633,"unit":"ns"},"slope":{"estimate":28862780.659740258,"lower_bound":28347875.57524084,"upper_bound":29691108.780330617,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[97755458.0,186707083.0,287880042.0,382031834.0,536097292.0,574493792.0,687055291.0,845667375.0,890973500.0,951265458.0],"unit":"ns","throughput":[],"typical":{"estimate":7068001.5612244895,"lower_bound":6864870.1330909515,"upper_bound":7328393.514105917,"unit":"ns"},"mean":{"estimate":7025201.2487216545,"lower_bound":6849716.352810162,"upper_bound":7232673.48338492,"unit":"ns"},"median":{"estimate":6918409.714285715,"lower_bound":6816982.54047619,"upper_bound":7280684.919005102,"unit":"ns"},"median_abs_dev":{"estimate":163137.23681873592,"lower_bound":25522.62319688352,"upper_bound":501118.8122833628,"unit":"ns"},"slope":{"estimate":7068001.5612244895,"lower_bound":6864870.1330909515,"upper_bound":7328393.514105917,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[84772250.0,165513375.0,294190791.0,408918750.0,541692166.0,604723667.0,669370166.0,791752834.0,844207208.0,958309292.0],"unit":"ns","throughput":[],"typical":{"estimate":48664182.8974026,"lower_bound":47648534.572492085,"upper_bound":50333184.23476947,"unit":"ns"},"mean":{"estimate":48058653.840039685,"lower_bound":45746278.72493254,"upper_bound":50227923.84988789,"unit":"ns"},"median":{"estimate":48473631.55,"lower_bound":45099139.85714286,"upper_bound":50393638.916666664,"unit":"ns"},"median_abs_dev":{"estimate":2589537.633484846,"lower_bound":752467.0451543715,"upper_bound":6549560.480547049,"unit":"ns"},"slope":{"estimate":48664182.8974026,"lower_bound":47648534.572492085,"upper_bound":50333184.23476947,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1520767375.0,1623203292.0,1221309083.0,1195070500.0,1376853916.0,1409704916.0,1063142167.0,1131832125.0,1359169792.0,1289692500.0],"unit":"ns","throughput":[],"typical":{"estimate":1319074566.6,"lower_bound":1219382858.6475,"upper_bound":1423202705.0949998,"unit":"ns"},"mean":{"estimate":1319074566.6,"lower_bound":1219382858.6475,"upper_bound":1423202705.0949998,"unit":"ns"},"median":{"estimate":1324431146.0,"lower_bound":1176570604.0,"upper_bound":1448810645.5,"unit":"ns"},"median_abs_dev":{"estimate":172339429.12206352,"lower_bound":38901322.46516347,"upper_bound":297924171.84248865,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1161110208.0,1490896667.0,1328734208.0,1514989708.0,1423465667.0,1660242917.0,1782394292.0,1218559000.0,1180070541.0,1494132292.0],"unit":"ns","throughput":[],"typical":{"estimate":1425459550.0,"lower_bound":1306574419.1299999,"upper_bound":1548367412.6,"unit":"ns"},"mean":{"estimate":1425459550.0,"lower_bound":1306574419.1299999,"upper_bound":1548367412.6,"unit":"ns"},"median":{"estimate":1457181167.0,"lower_bound":1218559000.0,"upper_bound":1577187604.5,"unit":"ns"},"median_abs_dev":{"estimate":245747401.6188115,"lower_bound":20258739.746135473,"upper_bound":384711281.43340945,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_1000000","iteration_count":[84,168,252,336,420,504,588,672,756,840],"measured_values":[97691125.0,165232125.0,242480625.0,341375875.0,475262875.0,586268875.0,669075500.0,770288500.0,884732834.0,893888417.0],"unit":"ns","throughput":[],"typical":{"estimate":1118192.472201608,"lower_bound":1076889.1487697528,"upper_bound":1151982.0752400754,"unit":"ns"},"mean":{"estimate":1093812.919195956,"lower_bound":1044477.229434193,"upper_bound":1138372.3951593915,"unit":"ns"},"median":{"estimate":1134730.8886054421,"lower_bound":1015999.6279761905,"upper_bound":1162989.5833333333,"unit":"ns"},"median_abs_dev":{"estimate":47481.482917551024,"lower_bound":6211.460380795998,"upper_bound":132174.36299440786,"unit":"ns"},"slope":{"estimate":1118192.472201608,"lower_bound":1076889.1487697528,"upper_bound":1151982.0752400754,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103647834.0,266249958.0,398579875.0,436451417.0,576491916.0,667074209.0,801821333.0,960149667.0,979894667.0,1184980250.0],"unit":"ns","throughput":[],"typical":{"estimate":28847661.71883117,"lower_bound":27885433.446476966,"upper_bound":29721664.431034483,"unit":"ns"},"mean":{"estimate":29179071.673204362,"lower_bound":27818669.277232148,"upper_bound":30679734.04231969,"unit":"ns"},"median":{"estimate":28730535.989285715,"lower_bound":27278213.5625,"upper_bound":31419747.916666664,"unit":"ns"},"median_abs_dev":{"estimate":2021127.3798334412,"lower_bound":426590.2716056742,"upper_bound":4400931.986111588,"unit":"ns"},"slope":{"estimate":28847661.71883117,"lower_bound":27885433.446476966,"upper_bound":29721664.431034483,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[84,168,252,336,420,504,588,672,756,840],"measured_values":[101575958.0,177977459.0,272814875.0,369158000.0,456833458.0,551589834.0,609847334.0,706568667.0,888073292.0,893058125.0],"unit":"ns","throughput":[],"typical":{"estimate":1088158.1739950525,"lower_bound":1056176.5792748565,"upper_bound":1133555.6412885154,"unit":"ns"},"mean":{"estimate":1095849.4804502078,"lower_bound":1066767.6814654195,"upper_bound":1130871.925978836,"unit":"ns"},"median":{"estimate":1085148.709920635,"lower_bound":1057302.9516369049,"upper_bound":1134562.1977513228,"unit":"ns"},"median_abs_dev":{"estimate":35392.14354999732,"lower_bound":8143.783985418854,"upper_bound":80632.866705534,"unit":"ns"},"slope":{"estimate":1088158.1739950525,"lower_bound":1056176.5792748565,"upper_bound":1133555.6412885154,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[108166583.0,211331500.0,346686541.0,453538458.0,565347375.0,647904375.0,809322792.0,995585292.0,1008771958.0,1111442167.0],"unit":"ns","throughput":[],"typical":{"estimate":28521115.1525974,"lower_bound":27737695.452939678,"upper_bound":29690260.9962406,"unit":"ns"},"mean":{"estimate":28178208.958968252,"lower_bound":27465488.573194448,"upper_bound":29008061.98194345,"unit":"ns"},"median":{"estimate":28144406.013888888,"lower_bound":27041645.75,"upper_bound":28890545.083333332,"unit":"ns"},"median_abs_dev":{"estimate":1116485.612461752,"lower_bound":240707.7761224173,"upper_bound":2074763.6950864121,"unit":"ns"},"slope":{"estimate":28521115.1525974,"lower_bound":27737695.452939678,"upper_bound":29690260.9962406,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/1000000","ORE/ore_decrypt/range_gt_10/1000000","ORE/ore/range_gt_100/1000000","ORE/ore_decrypt/range_gt_100/1000000","ORE/ore/range_lt_10/1000000","ORE/ore_decrypt/range_lt_10/1000000","ORE/ore/range_lt_100/1000000","ORE/ore_decrypt/range_lt_100/1000000","ORE/ore/range_selective_gt_100/1000000","ORE/ore_decrypt/range_selective_gt_100/1000000","ORE/ore/range_highly_selective_gt_10/1000000","ORE/ore_decrypt/range_highly_selective_gt_10/1000000","ORE/ore/range_lt_hybrid_ordered_10/1000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_10000000.json b/results/query/ore_rows_10000000.json index 919660e..16f1abe 100644 --- a/results/query/ore_rows_10000000.json +++ b/results/query/ore_rows_10000000.json @@ -1,15 +1,15 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000000","iteration_count":[87,174,261,348,435,522,609,696,783,870],"measured_values":[98323791.0,179556500.0,314983834.0,414072708.0,465601041.0,520215750.0,598545917.0,697497791.0,747895333.0,817622250.0],"unit":"ns","throughput":[],"typical":{"estimate":990746.7703836394,"lower_bound":962899.6093942281,"upper_bound":1048634.4558857183,"unit":"ns"},"mean":{"estimate":1050566.8418669037,"lower_bound":997683.6188943625,"upper_bound":1109389.0357270571,"unit":"ns"},"median":{"estimate":1017042.9533045976,"lower_bound":975874.1749680715,"upper_bound":1130158.5172413792,"unit":"ns"},"median_abs_dev":{"estimate":85383.5012875116,"lower_bound":18449.535238834567,"upper_bound":155860.33595591437,"unit":"ns"},"slope":{"estimate":990746.7703836394,"lower_bound":962899.6093942281,"upper_bound":1048634.4558857183,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[152663583.0,208793833.0,376839250.0,426117792.0,611749542.0,822479166.0,864827584.0,943308667.0,1068448167.0,1247068083.0],"unit":"ns","throughput":[],"typical":{"estimate":30575220.538961038,"lower_bound":29556621.91258741,"upper_bound":31699050.683139537,"unit":"ns"},"mean":{"estimate":30837911.315565474,"lower_bound":28901047.2191808,"upper_bound":32979099.65130878,"unit":"ns"},"median":{"estimate":30737088.264285713,"lower_bound":28155738.875,"upper_bound":32723333.6625,"unit":"ns"},"median_abs_dev":{"estimate":1717343.6856941786,"lower_bound":382934.37555155455,"upper_bound":5795233.170139041,"unit":"ns"},"slope":{"estimate":30575220.538961038,"lower_bound":29556621.91258741,"upper_bound":31699050.683139537,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[90977875.0,186501292.0,287027042.0,397562792.0,494171333.0,575565792.0,656788250.0,758572875.0,848141208.0,942228125.0],"unit":"ns","throughput":[],"typical":{"estimate":6783157.150649351,"lower_bound":6737303.128664408,"upper_bound":6878526.923901099,"unit":"ns"},"mean":{"estimate":6794043.0357057825,"lower_bound":6691771.053869047,"upper_bound":6902273.792501276,"unit":"ns"},"median":{"estimate":6752125.763392856,"lower_bound":6695480.660714285,"upper_bound":6946783.830952381,"unit":"ns"},"median_abs_dev":{"estimate":128405.58332034537,"lower_bound":22562.981738712362,"upper_bound":307812.59867523337,"unit":"ns"},"slope":{"estimate":6783157.150649351,"lower_bound":6737303.128664408,"upper_bound":6878526.923901099,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[113897000.0,232397208.0,397345125.0,519163125.0,621163000.0,766687834.0,873259875.0,1103012542.0,1239555584.0,1181021583.0],"unit":"ns","throughput":[],"typical":{"estimate":42819443.15324675,"lower_bound":40520002.625,"upper_bound":45059059.02991446,"unit":"ns"},"mean":{"estimate":42093573.36343916,"lower_bound":40439694.773439154,"upper_bound":43741709.642058864,"unit":"ns"},"median":{"estimate":42088786.06349206,"lower_bound":39367386.1,"upper_bound":44586529.91203704,"unit":"ns"},"median_abs_dev":{"estimate":3544950.0836345563,"lower_bound":876885.1546655092,"upper_bound":4975484.032600828,"unit":"ns"},"slope":{"estimate":42819443.15324675,"lower_bound":40520002.625,"upper_bound":45059059.02991446,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000000","iteration_count":[75,150,225,300,375,450,525,600,675,750],"measured_values":[87186542.0,220425209.0,300638334.0,382010375.0,441172625.0,546292416.0,625702042.0,749709417.0,829634208.0,907020584.0],"unit":"ns","throughput":[],"typical":{"estimate":1224454.1792207793,"lower_bound":1208219.6462570878,"upper_bound":1247170.6005632961,"unit":"ns"},"mean":{"estimate":1251174.7992555555,"lower_bound":1204401.911453889,"upper_bound":1310696.4282222223,"unit":"ns"},"median":{"estimate":1221535.4311111113,"lower_bound":1191813.4133333333,"upper_bound":1292843.0341666667,"unit":"ns"},"median_abs_dev":{"estimate":55447.100776950865,"lower_bound":14623.578056113138,"upper_bound":120369.77885600949,"unit":"ns"},"slope":{"estimate":1224454.1792207793,"lower_bound":1208219.6462570878,"upper_bound":1247170.6005632961,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[110703125.0,198516125.0,404260333.0,475667500.0,543634792.0,694092209.0,897771083.0,1060358875.0,1111945500.0,1286987792.0],"unit":"ns","throughput":[],"typical":{"estimate":31266603.62922078,"lower_bound":29763377.071280994,"upper_bound":32192905.580566734,"unit":"ns"},"mean":{"estimate":30027166.262470238,"lower_bound":28282850.851705357,"upper_bound":31668301.594166666,"unit":"ns"},"median":{"estimate":30308296.875,"lower_bound":27675781.25,"upper_bound":32599733.90401786,"unit":"ns"},"median_abs_dev":{"estimate":3335044.555406124,"lower_bound":795386.6271259408,"upper_bound":4855322.435035173,"unit":"ns"},"slope":{"estimate":31266603.62922078,"lower_bound":29763377.071280994,"upper_bound":32192905.580566734,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[83866125.0,170120125.0,259221375.0,334456292.0,443956542.0,519914291.0,605788292.0,679443167.0,775439583.0,891439125.0],"unit":"ns","throughput":[],"typical":{"estimate":6682972.028171828,"lower_bound":6579059.963651733,"upper_bound":6784322.239336775,"unit":"ns"},"mean":{"estimate":6624357.864203297,"lower_bound":6543030.635277014,"upper_bound":6709522.11956044,"unit":"ns"},"median":{"estimate":6637195.333333334,"lower_bound":6497161.057692308,"upper_bound":6743557.421978022,"unit":"ns"},"median_abs_dev":{"estimate":146926.8144847976,"lower_bound":13985.299024788055,"upper_bound":278028.2133424738,"unit":"ns"},"slope":{"estimate":6682972.028171828,"lower_bound":6579059.963651733,"upper_bound":6784322.239336775,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[113666667.0,250611834.0,390298542.0,569264750.0,628248917.0,733116125.0,946263750.0,978346458.0,1156705750.0,1242898166.0],"unit":"ns","throughput":[],"typical":{"estimate":42331374.56277056,"lower_bound":41333395.53333333,"upper_bound":43776739.03638513,"unit":"ns"},"mean":{"estimate":42317020.34695767,"lower_bound":40844606.648394845,"upper_bound":43904738.14390477,"unit":"ns"},"median":{"estimate":41825950.06666666,"lower_bound":40764435.75,"upper_bound":43950566.137566134,"unit":"ns"},"median_abs_dev":{"estimate":1600311.5710371172,"lower_bound":336047.79031395837,"upper_bound":4454316.170310078,"unit":"ns"},"slope":{"estimate":42331374.56277056,"lower_bound":41333395.53333333,"upper_bound":43776739.03638513,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1583933458.0,1351277333.0,1725878708.0,1455653292.0,1484423250.0,1250594750.0,1502571458.0,1513434792.0,1185822250.0,1309759459.0],"unit":"ns","throughput":[],"typical":{"estimate":1436334875.0,"lower_bound":1341971804.2,"upper_bound":1533460300.2175,"unit":"ns"},"mean":{"estimate":1436334875.0,"lower_bound":1341971804.2,"upper_bound":1533460300.2175,"unit":"ns"},"median":{"estimate":1470038271.0,"lower_bound":1300936041.5,"upper_bound":1543252458.0,"unit":"ns"},"median_abs_dev":{"estimate":172467982.40058124,"lower_bound":26906532.703113556,"upper_bound":293916053.99354696,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1684110333.0,1652424500.0,1433998125.0,1651120833.0,1405893875.0,1682478667.0,1299228000.0,1364037166.0,1384241375.0,1518795084.0],"unit":"ns","throughput":[],"typical":{"estimate":1507632795.8,"lower_bound":1420833891.9425,"upper_bound":1593975379.2,"unit":"ns"},"mean":{"estimate":1507632795.8,"lower_bound":1420833891.9425,"upper_bound":1593975379.2,"unit":"ns"},"median":{"estimate":1476396604.5,"lower_bound":1384241375.0,"upper_bound":1666799750.0,"unit":"ns"},"median_abs_dev":{"estimate":212815118.5688764,"lower_bound":23245561.93150878,"upper_bound":241836488.21324408,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1091136416.0,3271345959.0,1703446000.0,1863895000.0,1801209209.0,1936193459.0,3146901750.0,1404908167.0,2070000000.0,2065330208.0],"unit":"ns","throughput":[],"typical":{"estimate":2035436616.8,"lower_bound":1659976091.5,"upper_bound":2458165174.0775,"unit":"ns"},"mean":{"estimate":2035436616.8,"lower_bound":1659976091.5,"upper_bound":2458165174.0775,"unit":"ns"},"median":{"estimate":1900044229.5,"lower_bound":1603058688.0,"upper_bound":2606115979.0,"unit":"ns"},"median_abs_dev":{"estimate":271726475.37589073,"lower_bound":99190787.08231151,"upper_bound":1176074931.7492962,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1552113250.0,2172603916.0,1872198458.0,3450851208.0,1147853625.0,3246299583.0,2322079667.0,2057241375.0,3460448708.0,2157530625.0],"unit":"ns","throughput":[],"typical":{"estimate":2343922041.5,"lower_bound":1887853051.1875,"upper_bound":2816448116.4,"unit":"ns"},"mean":{"estimate":2343922041.5,"lower_bound":1887853051.1875,"upper_bound":2816448116.4,"unit":"ns"},"median":{"estimate":2165067270.5,"lower_bound":1804677312.5,"upper_bound":3246299583.0,"unit":"ns"},"median_abs_dev":{"estimate":671486454.1816324,"lower_bound":85518250.12504756,"upper_bound":1496947093.6238766,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000000","iteration_count":[88,176,264,352,440,528,616,704,792,880],"measured_values":[77901208.0,161719083.0,246808666.0,312706375.0,421551458.0,499964750.0,563170792.0,649541291.0,759034916.0,809632667.0],"unit":"ns","throughput":[],"typical":{"estimate":931709.0746162928,"lower_bound":918310.8471170455,"upper_bound":947549.5376283496,"unit":"ns"},"mean":{"estimate":924762.2270071248,"lower_bound":909667.5991612215,"upper_bound":939525.6030707634,"unit":"ns"},"median":{"estimate":921340.5004261364,"lower_bound":903614.4048295454,"upper_bound":946902.9356060605,"unit":"ns"},"median_abs_dev":{"estimate":28987.23527062921,"lower_bound":2806.156351743266,"upper_bound":48881.494453174375,"unit":"ns"},"slope":{"estimate":931709.0746162928,"lower_bound":918310.8471170455,"upper_bound":947549.5376283496,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[115818125.0,288138292.0,340111334.0,450383250.0,645769041.0,674034458.0,818898417.0,979822250.0,1059042917.0,1232040708.0],"unit":"ns","throughput":[],"typical":{"estimate":30006281.76363636,"lower_bound":29136401.555657662,"upper_bound":30737339.444444444,"unit":"ns"},"mean":{"estimate":30192129.702876985,"lower_bound":28937994.13756746,"upper_bound":31781740.29503472,"unit":"ns"},"median":{"estimate":29332115.42063492,"lower_bound":28342611.166666668,"upper_bound":31453948.68125,"unit":"ns"},"median_abs_dev":{"estimate":1801736.0176086272,"lower_bound":238717.9622244145,"upper_bound":3280429.544802399,"unit":"ns"},"slope":{"estimate":30006281.76363636,"lower_bound":29136401.555657662,"upper_bound":30737339.444444444,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000000","iteration_count":[60,120,180,240,300,360,420,480,540,600],"measured_values":[103747458.0,190135750.0,228290167.0,306159208.0,433002500.0,518638583.0,577765375.0,725423541.0,802009625.0,797080500.0],"unit":"ns","throughput":[],"typical":{"estimate":1415887.7864502165,"lower_bound":1353240.4956739924,"upper_bound":1475884.9234859648,"unit":"ns"},"mean":{"estimate":1444213.6751025133,"lower_bound":1363876.32515873,"upper_bound":1530434.604996693,"unit":"ns"},"median":{"estimate":1442002.1986111111,"lower_bound":1325647.605952381,"upper_bound":1534833.7962962962,"unit":"ns"},"median_abs_dev":{"estimate":135533.02097568286,"lower_bound":33017.708016874116,"upper_bound":244628.05255865052,"unit":"ns"},"slope":{"estimate":1415887.7864502165,"lower_bound":1353240.4956739924,"upper_bound":1475884.9234859648,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[76974959.0,154643417.0,239589750.0,375438458.0,433581625.0,507337125.0,593309916.0,735574708.0,807064125.0,817485042.0],"unit":"ns","throughput":[],"typical":{"estimate":28826762.225974027,"lower_bound":27751471.679167576,"upper_bound":29924832.09408602,"unit":"ns"},"mean":{"estimate":28247324.60984127,"lower_bound":27115499.845555555,"upper_bound":29411596.839999996,"unit":"ns"},"median":{"estimate":28219124.48809524,"lower_bound":26511702.116666667,"upper_bound":29891263.888888888,"unit":"ns"},"median_abs_dev":{"estimate":2424184.80279545,"lower_bound":533769.9667736907,"upper_bound":3552447.454031454,"unit":"ns"},"slope":{"estimate":28826762.225974027,"lower_bound":27751471.679167576,"upper_bound":29924832.09408602,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[95211916.0,192413500.0,424649167.0,379379750.0,488740708.0,564423750.0,664433000.0,745090417.0,846238375.0,945629584.0],"unit":"ns","throughput":[],"typical":{"estimate":6824851.021892393,"lower_bound":6715343.269580966,"upper_bound":7130944.988648948,"unit":"ns"},"mean":{"estimate":7116263.136210318,"lower_bound":6743655.998293651,"upper_bound":7800556.967142856,"unit":"ns"},"median":{"estimate":6777283.482142857,"lower_bound":6719330.357142857,"upper_bound":6891430.628571428,"unit":"ns"},"median_abs_dev":{"estimate":88258.45572476601,"lower_bound":18852.40238530313,"upper_bound":219807.5054601359,"unit":"ns"},"slope":{"estimate":6824851.021892393,"lower_bound":6715343.269580966,"upper_bound":7130944.988648948,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[91504541.0,176765834.0,275188292.0,380283375.0,462967208.0,559787958.0,593442375.0,761570166.0,861410667.0,929530917.0],"unit":"ns","throughput":[],"typical":{"estimate":46441508.44025974,"lower_bound":44861334.59659091,"upper_bound":47429895.395238094,"unit":"ns"},"mean":{"estimate":46060915.397142865,"lower_bound":44990058.09054167,"upper_bound":46965584.59833333,"unit":"ns"},"median":{"estimate":46386633.325,"lower_bound":45028086.91666667,"upper_bound":47535421.875,"unit":"ns"},"median_abs_dev":{"estimate":1321850.0908199698,"lower_bound":255675.32915085333,"upper_bound":2569968.5081489347,"unit":"ns"},"slope":{"estimate":46441508.44025974,"lower_bound":44861334.59659091,"upper_bound":47429895.395238094,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000000","iteration_count":[65,130,195,260,325,390,455,520,585,650],"measured_values":[101489833.0,195578708.0,299062959.0,338542750.0,447261042.0,493374708.0,639188750.0,696366750.0,746382709.0,880621625.0],"unit":"ns","throughput":[],"typical":{"estimate":1339040.0185814186,"lower_bound":1302987.0004008017,"upper_bound":1380438.1102153845,"unit":"ns"},"mean":{"estimate":1391747.6166654457,"lower_bound":1331330.9184188035,"upper_bound":1456698.4378752748,"unit":"ns"},"median":{"estimate":1365495.1607692307,"lower_bound":1302087.5,"upper_bound":1504451.6,"unit":"ns"},"median_abs_dev":{"estimate":113444.80116215716,"lower_bound":27443.6628211622,"upper_bound":171661.8742623925,"unit":"ns"},"slope":{"estimate":1339040.0185814186,"lower_bound":1302987.0004008017,"upper_bound":1380438.1102153845,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114486833.0,215160416.0,314603375.0,445486750.0,626331959.0,653283875.0,763391209.0,897777750.0,1116736750.0,1133968708.0],"unit":"ns","throughput":[],"typical":{"estimate":28726107.875324674,"lower_bound":27621451.655048076,"upper_bound":29938970.061462075,"unit":"ns"},"mean":{"estimate":28280259.886527777,"lower_bound":27372049.980416667,"upper_bound":29326811.34916666,"unit":"ns"},"median":{"estimate":27949238.28125,"lower_bound":27079511.875,"upper_bound":29684841.48888889,"unit":"ns"},"median_abs_dev":{"estimate":1048452.7098299945,"lower_bound":273480.2058197585,"upper_bound":2658624.5765949767,"unit":"ns"},"slope":{"estimate":28726107.875324674,"lower_bound":27621451.655048076,"upper_bound":29938970.061462075,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[102242500.0,190428917.0,290975750.0,393822875.0,525228750.0,628639375.0,603620458.0,706088167.0,794837542.0,894955583.0],"unit":"ns","throughput":[],"typical":{"estimate":7054234.0327672325,"lower_bound":6825858.467823473,"upper_bound":7523229.7183431955,"unit":"ns"},"mean":{"estimate":7346360.990021368,"lower_bound":7024568.980833334,"upper_bound":7667397.341376604,"unit":"ns"},"median":{"estimate":7392552.891025641,"lower_bound":6793483.264957265,"upper_bound":7864807.692307692,"unit":"ns"},"median_abs_dev":{"estimate":820877.6521336877,"lower_bound":70397.12130039446,"upper_bound":912996.8105449125,"unit":"ns"},"slope":{"estimate":7054234.0327672325,"lower_bound":6825858.467823473,"upper_bound":7523229.7183431955,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[87065875.0,181259333.0,308363916.0,367174750.0,449443792.0,566455166.0,680316000.0,728873083.0,860555208.0,961425084.0],"unit":"ns","throughput":[],"typical":{"estimate":47326973.53376623,"lower_bound":46240509.139013454,"upper_bound":48073801.45058598,"unit":"ns"},"mean":{"estimate":46831602.14208333,"lower_bound":45570627.029583335,"upper_bound":48217041.51541667,"unit":"ns"},"median":{"estimate":46550720.45833333,"lower_bound":45249473.44375,"upper_bound":48201311.33333333,"unit":"ns"},"median_abs_dev":{"estimate":2059654.5331688302,"lower_bound":431444.3759903312,"upper_bound":3891980.8757135333,"unit":"ns"},"slope":{"estimate":47326973.53376623,"lower_bound":46240509.139013454,"upper_bound":48073801.45058598,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1427465292.0,1426543292.0,1263001667.0,1479388875.0,1554887666.0,1513605708.0,1239696958.0,1399286167.0,1441024667.0,1439835875.0],"unit":"ns","throughput":[],"typical":{"estimate":1418473616.7,"lower_bound":1357090812.6,"upper_bound":1473818162.3,"unit":"ns"},"mean":{"estimate":1418473616.7,"lower_bound":1357090812.6,"upper_bound":1473818162.3,"unit":"ns"},"median":{"estimate":1433650583.5,"lower_bound":1344772479.5,"upper_bound":1479388875.0,"unit":"ns"},"median_abs_dev":{"estimate":59380136.386191845,"lower_bound":9853791.602960229,"upper_bound":178864843.82941425,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1609152250.0,1575077542.0,1521268541.0,1392028834.0,1665331750.0,1551574083.0,1616180958.0,1298675750.0,1510473750.0,1512406750.0],"unit":"ns","throughput":[],"typical":{"estimate":1525217020.8,"lower_bound":1456789729.4,"upper_bound":1584195854.0475,"unit":"ns"},"mean":{"estimate":1525217020.8,"lower_bound":1456789729.4,"upper_bound":1584195854.0475,"unit":"ns"},"median":{"estimate":1536421312.0,"lower_bound":1452217792.0,"upper_bound":1609152250.0,"unit":"ns"},"median_abs_dev":{"estimate":82571306.17246628,"lower_bound":8002178.426232934,"upper_bound":178472295.09308338,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[3486039208.0,2285962167.0,1721684083.0,2324315917.0,1946632625.0,2435710459.0,1598975958.0,1720996042.0,1990612625.0,2736572500.0],"unit":"ns","throughput":[],"typical":{"estimate":2224750158.4,"lower_bound":1917053182.3225,"upper_bound":2584983139.1,"unit":"ns"},"mean":{"estimate":2224750158.4,"lower_bound":1917053182.3225,"upper_bound":2584983139.1,"unit":"ns"},"median":{"estimate":2138287396.0,"lower_bound":1721684083.0,"upper_bound":2530444208.5,"unit":"ns"},"median_abs_dev":{"estimate":529307743.1317091,"lower_bound":90963531.4475745,"upper_bound":891861135.0392997,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1347326417.0,1849606083.0,1784382917.0,2105907916.0,1921166958.0,2159976917.0,1844479166.0,1553313708.0,2378471542.0,1279089125.0],"unit":"ns","throughput":[],"typical":{"estimate":1822372074.9,"lower_bound":1613564717.68,"upper_bound":2025504583.3,"unit":"ns"},"mean":{"estimate":1822372074.9,"lower_bound":1613564717.68,"upper_bound":2025504583.3,"unit":"ns"},"median":{"estimate":1847042624.5,"lower_bound":1553313708.0,"upper_bound":2105907916.0,"unit":"ns"},"median_abs_dev":{"estimate":409638079.11787033,"lower_bound":50584303.66154909,"upper_bound":611689491.4845407,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000000","iteration_count":[78,156,234,312,390,468,546,624,702,780],"measured_values":[104782750.0,226417792.0,251783333.0,321951417.0,425841500.0,518034666.0,621295000.0,775898666.0,870276125.0,924919583.0],"unit":"ns","throughput":[],"typical":{"estimate":1181356.1365301365,"lower_bound":1126483.0239421804,"upper_bound":1217760.3817845283,"unit":"ns"},"mean":{"estimate":1190830.4567439968,"lower_bound":1119181.8020278797,"upper_bound":1271654.5848778998,"unit":"ns"},"median":{"estimate":1161848.6337912087,"lower_bound":1091454.4145299145,"upper_bound":1291539.0847578347,"unit":"ns"},"median_abs_dev":{"estimate":118192.61900766588,"lower_bound":22973.813895979383,"upper_bound":222559.0866315857,"unit":"ns"},"slope":{"estimate":1181356.1365301365,"lower_bound":1126483.0239421804,"upper_bound":1217760.3817845283,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[123360792.0,266961875.0,392563000.0,467967667.0,548495458.0,722216166.0,838658875.0,911225292.0,1002924291.0,1148868834.0],"unit":"ns","throughput":[],"typical":{"estimate":28868857.088311687,"lower_bound":28315365.657992564,"upper_bound":29731362.54479769,"unit":"ns"},"mean":{"estimate":29869773.003273807,"lower_bound":28775068.8862381,"upper_bound":31074639.287023805,"unit":"ns"},"median":{"estimate":29600040.933035716,"lower_bound":28290364.46666667,"upper_bound":31402961.791666664,"unit":"ns"},"median_abs_dev":{"estimate":1752735.3412952274,"lower_bound":572423.5565437004,"upper_bound":3435826.095976888,"unit":"ns"},"slope":{"estimate":28868857.088311687,"lower_bound":28315365.657992564,"upper_bound":29731362.54479769,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000000","ORE/ore_decrypt/range_gt_10/10000000","ORE/ore/range_gt_100/10000000","ORE/ore_decrypt/range_gt_100/10000000","ORE/ore/range_lt_10/10000000","ORE/ore_decrypt/range_lt_10/10000000","ORE/ore/range_lt_100/10000000","ORE/ore_decrypt/range_lt_100/10000000","ORE/ore/range_selective_gt_100/10000000","ORE/ore_decrypt/range_selective_gt_100/10000000","ORE/ore/range_highly_selective_gt_10/10000000","ORE/ore_decrypt/range_highly_selective_gt_10/10000000","ORE/ore/range_lt_hybrid_ordered_10/10000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/src/lib.rs b/src/lib.rs index 7cad279..0d514da 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -32,6 +32,21 @@ impl Dummy for String { } } +/// Install a tracing subscriber honouring `RUST_LOG` (defaults to `warn` if +/// unset). Idempotent — calling twice is a no-op. Lets cipherstash-client +/// / zerokms-protocol trace! emissions reach stderr, including the rich +/// internal failure traces in `vitur_client::generate_keys` / +/// `decrypt` / `retrieve_keys`. +pub fn init_tracing() { + let _ = tracing_subscriber::fmt() + .with_env_filter( + tracing_subscriber::EnvFilter::try_from_default_env() + .unwrap_or_else(|_| tracing_subscriber::EnvFilter::new("warn")), + ) + .with_writer(std::io::stderr) + .try_init(); +} + pub async fn init_scoped_cipher() -> Result>> { // Tuning for the bulk-ingest path. See the "Tuning for bulk ingest" // section on `ZeroKMSBuilder` (cipherstash-suite#1960) for the From c6d192d5e9cd1070e0e2c05014282500765306fc Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Sat, 16 May 2026 20:29:19 +1000 Subject: [PATCH 27/30] bench: ANALYZE after ingest + ORE count scenarios + corrected stats narrative MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three related changes, all flowing from the spot-check on the post- re-ingest report. `prepare:_table` now runs `ANALYZE ` after index creation. Without this, the planner uses default `>` selectivity (~14%) when planning queries against the functional ORE btree and reliably picks Seq Scan over Index Scan for low-selectivity predicates — silent, but produces misleading bench timings. ANALYZE costs seconds even at 10M and is a real fix. `benches/ore.rs` gains two `_count` scenarios — `range_selective_gt_count` and `range_highly_selective_gt_count`. They're the LIMIT-less companion to the existing selective scenarios; removes any LIMIT-related cost- model edge cases and demonstrates the ORE btree path in pure form. Implemented via raw sqlx (count(*) return type doesn't match EncryptedQuery::execute's typed return). Corrected the ORE scenario descriptions. The earlier "LIMIT-induced fallback at 1M+" narrative I wrote was wrong — that was actually stale stats from the re-ingest. With current stats (post-ANALYZE), selective scenarios engage the ORE btree at every tier (10k → 10M), both LIMIT and count variants. Descriptions updated accordingly, with a callout about the stats requirement. Full ORE re-run at all 4 tiers confirms: * range_selective_gt_100, range_highly_selective_gt_10: index engages at every tier (was only 10k/100k before ANALYZE) * range_selective_gt_count, range_highly_selective_gt_count: index engages at every tier * range_lt_hybrid_ordered_10: index engages at every tier (unchanged) * Non-selective baselines (~50% selectivity): Seq Scan + LIMIT (correct planner choice — unchanged) --- benches/ore.rs | 106 +- mise.toml | 9 + report/BENCHMARK_REPORT.md | 10 +- report/combo.md | 72 +- report/exact.md | 64 +- report/group_by.md | 32 +- report/match.md | 146 +-- report/ore.md | 940 +++++++++++++++--- ...uery_combo_bloom_ore_order_limit_chart.png | Bin 39753 -> 41345 bytes .../query_combo_filtered_group_by_chart.png | Bin 37959 -> 38290 bytes ...ry_combo_top_n_filtered_group_by_chart.png | Bin 38472 -> 38507 bytes report/query_exact_eql_cast_chart.png | Bin 33946 -> 39225 bytes report/query_exact_eql_hash_chart.png | Bin 36589 -> 43050 bytes ...low_cardinality_groups_encrypted_chart.png | Bin 44073 -> 43886 bytes ...low_cardinality_groups_plaintext_chart.png | Bin 41376 -> 40150 bytes ..._group_by_top_n_groups_encrypted_chart.png | Bin 41586 -> 41645 bytes ..._group_by_top_n_groups_plaintext_chart.png | Bin 40826 -> 39894 bytes report/query_match_eql_bloom_chart.png | Bin 46576 -> 46728 bytes .../query_match_eql_cast_firstname_chart.png | Bin 45423 -> 45357 bytes .../query_match_eql_cast_lastname_chart.png | Bin 45359 -> 49071 bytes report/query_ore_range_gt_100_chart.png | Bin 30923 -> 30471 bytes report/query_ore_range_gt_10_chart.png | Bin 31234 -> 31977 bytes ...ore_range_highly_selective_gt_10_chart.png | Bin 47109 -> 49636 bytes ..._range_highly_selective_gt_count_chart.png | Bin 0 -> 43154 bytes report/query_ore_range_lt_100_chart.png | Bin 31050 -> 29446 bytes report/query_ore_range_lt_10_chart.png | Bin 31839 -> 30675 bytes ...y_ore_range_lt_hybrid_ordered_10_chart.png | Bin 34775 -> 32923 bytes ...query_ore_range_selective_gt_100_chart.png | Bin 53221 -> 47788 bytes ...ery_ore_range_selective_gt_count_chart.png | Bin 0 -> 40790 bytes report_benchmarks.py | 59 +- results/query/combo_metadata_10000.json | 42 +- results/query/combo_metadata_100000.json | 36 +- results/query/combo_metadata_1000000.json | 34 +- results/query/combo_metadata_10000000.json | 30 +- results/query/combo_rows_10000.json | 6 +- results/query/combo_rows_100000.json | 6 +- results/query/combo_rows_1000000.json | 6 +- results/query/combo_rows_10000000.json | 6 +- results/query/exact_metadata_10000.json | 8 +- results/query/exact_metadata_100000.json | 8 +- results/query/exact_metadata_1000000.json | 12 +- results/query/exact_metadata_10000000.json | 20 +- results/query/exact_rows_10000.json | 8 +- results/query/exact_rows_100000.json | 8 +- results/query/exact_rows_1000000.json | 8 +- results/query/exact_rows_10000000.json | 8 +- results/query/group_by_rows_10000.json | 8 +- results/query/group_by_rows_100000.json | 8 +- results/query/group_by_rows_1000000.json | 8 +- results/query/group_by_rows_10000000.json | 8 +- results/query/match_metadata_10000.json | 110 +- results/query/match_metadata_100000.json | 130 +-- results/query/match_metadata_1000000.json | 126 +-- results/query/match_metadata_10000000.json | 142 +-- results/query/match_rows_10000.json | 12 +- results/query/match_rows_100000.json | 12 +- results/query/match_rows_1000000.json | 12 +- results/query/match_rows_10000000.json | 12 +- results/query/ore_metadata_10000.json | 158 ++- results/query/ore_metadata_100000.json | 158 ++- results/query/ore_metadata_1000000.json | 278 +++++- results/query/ore_metadata_10000000.json | 296 +++++- results/query/ore_rows_10000.json | 32 +- results/query/ore_rows_100000.json | 32 +- results/query/ore_rows_1000000.json | 32 +- results/query/ore_rows_10000000.json | 32 +- 66 files changed, 2389 insertions(+), 901 deletions(-) create mode 100644 report/query_ore_range_highly_selective_gt_count_chart.png create mode 100644 report/query_ore_range_selective_gt_count_chart.png diff --git a/benches/ore.rs b/benches/ore.rs index 55d1b99..1e737be 100644 --- a/benches/ore.rs +++ b/benches/ore.rs @@ -13,6 +13,7 @@ use dbbenches::{ EncryptedQuery, EncryptedQueryBuilder, ScenarioMetadata, }; use sqlx::postgres::PgPoolOptions; +use sqlx::types::Json; use std::sync::Arc; use tokio::runtime::Runtime; @@ -34,12 +35,23 @@ use tokio::runtime::Runtime; // suite because they're the natural form a caller would write, and the // timing tells us what that case actually costs. // -// **Selective scenarios** (thresholds 2_140_000_000 / 2_147_000_000 — out at -// the i32 tail). Selectivity drops to ~0.17% and ~0.011% respectively, so the -// planner switches to Index Scan: walking from the top of the b-tree and -// returning the first LIMIT rows is cheaper than scanning the whole table. -// These demonstrate the same functional-btree path the perf guide §4 describes, -// in a regime where the planner has reason to prefer it. +// **Selective scenarios with LIMIT** (thresholds 2_140_000_000 / 2_147_000_000 +// — out at the i32 tail). Selectivity drops to ~0.17% and ~0.011% respectively. +// The planner picks Index Scan at every tier (10k → 10M) when stats are +// current: walking the b-tree from the top and returning the first LIMIT rows +// is cheaper than scanning the whole table. +// +// **Stats matter.** Without an `ANALYZE` after the table is re-ingested, the +// planner defaults to `~14%` selectivity for `>` comparisons and picks Seq +// Scan even for highly selective predicates. The bench's `prepare:_table` +// task now runs `ANALYZE
        ` after index creation specifically to avoid +// this silent-fallback failure mode. +// +// **Selective scenarios without LIMIT** (`*_count` — `SELECT count(*) WHERE +// value threshold`). No LIMIT means the planner must process every +// matching row to compute the count; with a selective predicate this +// strongly favours Index Scan over Seq Scan at every tier. Companion to the +// `_LIMIT` variants — removes LIMIT-related cost-model edge cases. // // **Hybrid ordered range** uses extractor ORDER BY (`ORDER BY // eql_v2.ore_block_u64_8_256(val)`) matching the functional index expression — @@ -95,6 +107,25 @@ static QUERY_TEMPLATES: &[(&str, i32, &str)] = &[ ), ]; +// Count-style selective scenarios — no LIMIT, so the planner must process +// every matching row, which strongly favours Index Scan on the functional +// btree once selectivity is low. These reliably engage the index at every +// tier (10k → 10M) and are the canonical "yes the ORE index is doing real +// work" demonstration. SELECT count(*) returns a single row; the bench +// loop drains it and black_boxes the result. +static COUNT_QUERY_TEMPLATES: &[(&str, i32, &str)] = &[ + ( + "SELECT count(*) FROM {TABLE} WHERE value > $1", + 2_140_000_000, + "range_selective_gt_count", + ), + ( + "SELECT count(*) FROM {TABLE} WHERE value > $1", + 2_147_000_000, + "range_highly_selective_gt_count", + ), +]; + async fn build_query( cipher: Arc>, query: &str, @@ -159,11 +190,27 @@ fn criterion_benchmark(c: &mut Criterion) { queries }); + // Count-style scenarios reuse the same build_query path (to encrypt + // the threshold as the bound parameter) but produce a different SQL + // shape — they're executed via raw sqlx in the iter loop below + // because EncryptedQuery::execute is typed for `Vec<(i32, + // Json)>`, which doesn't match a `SELECT count(*)` + // result. + let count_queries = rt.block_on(async { + let mut queries = Vec::with_capacity(COUNT_QUERY_TEMPLATES.len()); + for (query_template, x, _) in COUNT_QUERY_TEMPLATES { + let query_str = query_template.replace("{TABLE}", &table_name); + let query = build_query(Arc::clone(&cipher), &query_str, *x, &table_name).await; + queries.push(query); + } + queries + }); + // Capture per-scenario metadata (exact SQL, bound parameter, EXPLAIN // plan, indexes used) before the criterion loop. Writes // `results/query/ore_metadata_.json`. let metadata = rt.block_on(async { - let mut out = Vec::with_capacity(queries.len()); + let mut out = Vec::with_capacity(queries.len() + count_queries.len()); for (i, query) in queries.iter().enumerate() { let (_, _, scenario) = QUERY_TEMPLATES[i]; let bench_id = format!("ORE/ore/{}/{}", scenario, target_rows); @@ -184,6 +231,30 @@ fn criterion_benchmark(c: &mut Criterion) { rows_returned, }); } + + // Count-scenarios: same metadata shape, but use raw sqlx (the + // count(*) return type doesn't match EncryptedQuery::execute). + for (i, query) in count_queries.iter().enumerate() { + let (_, _, scenario) = COUNT_QUERY_TEMPLATES[i]; + let bench_id = format!("ORE/ore/{}/{}", scenario, target_rows); + let explain = query.explain(&pool).await.expect("EXPLAIN failed"); + let indexes_used = extract_indexes_used(&explain); + let parameters = vec![query.parameter_json().expect("serialise parameter")]; + let rows = sqlx::query(&query.statement) + .bind(Json(&query.eql)) + .fetch_all(&pool) + .await + .expect("count(*) execute for row-count failed"); + let rows_returned = rows.len() as u64; + out.push(ScenarioMetadata { + id: bench_id, + query: query.statement.clone(), + parameters, + explain, + indexes_used, + rows_returned, + }); + } out }); write_metadata_file("ore", &target_rows, metadata) @@ -219,6 +290,27 @@ fn criterion_benchmark(c: &mut Criterion) { }); } + // Count-style scenarios — single iter loop each, raw sqlx (count(*) + // return type doesn't match EncryptedQuery::execute). No `_decrypt` + // variant — there's nothing to decrypt in a count result. + for (i, query) in count_queries.into_iter().enumerate() { + let (_, _, scenario) = COUNT_QUERY_TEMPLATES[i]; + let exec_id = format!("ORE/ore/{}/{}", scenario, target_rows); + let exec_id_inner = exec_id.clone(); + group.bench_function(format!("ore/{}/{}", scenario, target_rows), |b| { + b.to_async(&rt).iter(|| async { + let rows = bench_assert( + sqlx::query(&query.statement) + .bind(Json(&query.eql)) + .fetch_all(&pool) + .await, + &exec_id_inner, + ); + black_box(rows.len()); + }) + }); + } + group.finish(); } diff --git a/mise.toml b/mise.toml index 2f36496..a928bab 100644 --- a/mise.toml +++ b/mise.toml @@ -291,6 +291,15 @@ done echo "Creating indexes..." docker exec -i ore-benches-postgres psql -U postgres -d postgres < sql/indexes/${TABLE_NAME}_up.sql +# ANALYZE the freshly-loaded table so the planner has accurate +# selectivity stats for the functional indexes. Without this, the +# planner uses default selectivity assumptions (e.g. ~14% for `>`) +# and reliably picks Seq Scan over Index Scan for low-selectivity +# predicates — which silently looks like a benchmark of "EQL is slow" +# when really it's "stats are stale". Costs seconds even at 10M rows. +echo "Running ANALYZE..." +docker exec -i ore-benches-postgres psql -U postgres -d postgres -c "ANALYZE $TABLE_NAME;" + FINAL_ROWS=$(docker exec ore-benches-postgres psql -U postgres -d postgres -t -c "SELECT COUNT(*) FROM $TABLE_NAME;" | tr -d ' ') echo "Preparation complete! Final row count: $FINAL_ROWS" """ diff --git a/report/BENCHMARK_REPORT.md b/report/BENCHMARK_REPORT.md index 23d1333..102a2d9 100644 --- a/report/BENCHMARK_REPORT.md +++ b/report/BENCHMARK_REPORT.md @@ -92,11 +92,11 @@ Per-query-type detail is broken out into separate pages — click into a scenari | Query Type | Scenarios | Tiers | Largest-tier median (no decrypt) | Detail | |-|-|-|-|-| -| COMBO | `bloom_ore_order_limit`, `filtered_group_by`, `top_n_filtered_group_by` | 10,000, 100,000, 1,000,000, 10,000,000 | 99.48ms | [open](combo.md) | -| EXACT | `eql_cast`, `eql_hash` | 10,000, 100,000, 1,000,000, 10,000,000 | 401.88μs | [open](exact.md) | -| GROUP_BY | `low_cardinality_groups_encrypted`, `low_cardinality_groups_plaintext`, `top_n_groups_encrypted`, `top_n_groups_plaintext` | 10,000, 100,000, 1,000,000, 10,000,000 | 969.58ms | [open](group_by.md) | -| MATCH | `eql_bloom`, `eql_cast_firstname`, `eql_cast_lastname` | 10,000, 100,000, 1,000,000, 10,000,000 | 64.93ms | [open](match.md) | -| ORE | `range_gt_10`, `range_gt_100`, `range_highly_selective_gt_10`, `range_lt_10`, `range_lt_100`, `range_lt_hybrid_ordered_10`, `range_selective_gt_100` | 10,000, 100,000, 1,000,000, 10,000,000 | 512.87ms | [open](ore.md) | +| COMBO | `bloom_ore_order_limit`, `filtered_group_by`, `top_n_filtered_group_by` | 10,000, 100,000, 1,000,000, 10,000,000 | 98.05ms | [open](combo.md) | +| EXACT | `eql_cast`, `eql_hash` | 10,000, 100,000, 1,000,000, 10,000,000 | 415.12μs | [open](exact.md) | +| GROUP_BY | `low_cardinality_groups_encrypted`, `low_cardinality_groups_plaintext`, `top_n_groups_encrypted`, `top_n_groups_plaintext` | 10,000, 100,000, 1,000,000, 10,000,000 | 864.52ms | [open](group_by.md) | +| MATCH | `eql_bloom`, `eql_cast_firstname`, `eql_cast_lastname` | 10,000, 100,000, 1,000,000, 10,000,000 | 151.23ms | [open](match.md) | +| ORE | `range_gt_10`, `range_gt_100`, `range_highly_selective_gt_10`, `range_highly_selective_gt_count`, `range_lt_10`, `range_lt_100`, `range_lt_hybrid_ordered_10`, `range_selective_gt_100`, `range_selective_gt_count` | 10,000, 100,000, 1,000,000, 10,000,000 | 573.45ms | [open](ore.md) | --- diff --git a/report/combo.md b/report/combo.md index fbdbfdf..251daf4 100644 --- a/report/combo.md +++ b/report/combo.md @@ -49,10 +49,10 @@ ON combo_encrypted_10000 USING hash ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 611.23μs | N/A | -| 100,000 | 0 | 885.92μs | N/A | -| 1,000,000 | 0 | 3.78ms | N/A | -| 10,000,000 | 10 | ⚠️ 209.71ms | N/A | +| 10,000 | 9 | 1.33ms | N/A | +| 100,000 | 10 | 3.04ms | N/A | +| 1,000,000 | 10 | 28.18ms | N/A | +| 10,000,000 | 10 | ⚠️ 208.49ms | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -99,7 +99,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1789,10,1555,1603}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1603,1789,1164,10,1555}'::smallint[])", "Index Name": "combo_encrypted_10000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -110,7 +110,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1789,10,1555,1603}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1603,1789,1164,10,1555}'::smallint[])", "Relation Name": "combo_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.73 @@ -170,7 +170,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1164,36,1603,10,1789}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{10,1789,1555,36,1603,1164}'::smallint[])", "Index Name": "combo_encrypted_100000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -181,7 +181,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1164,36,1603,10,1789}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{10,1789,1555,36,1603,1164}'::smallint[])", "Relation Name": "combo_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -241,7 +241,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{10,36,1555,1164,1603,1789}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1603,1789,1164,10,1555,36}'::smallint[])", "Index Name": "combo_encrypted_1000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -252,7 +252,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 311.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{10,36,1555,1164,1603,1789}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1603,1789,1164,10,1555,36}'::smallint[])", "Relation Name": "combo_encrypted_1000000", "Startup Cost": 311.97, "Total Cost": 316.48 @@ -312,7 +312,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,1555,36,10,1603}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,10,1603,1555,36}'::smallint[])", "Index Name": "combo_encrypted_10000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -323,7 +323,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 2296.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,1555,36,10,1603}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,10,1603,1555,36}'::smallint[])", "Relation Name": "combo_encrypted_10000000", "Startup Cost": 2296.1, "Total Cost": 2300.61 @@ -390,10 +390,10 @@ ON combo_encrypted_10000 USING hash ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 670.95μs | N/A | -| 100,000 | 0 | 933.65μs | N/A | -| 1,000,000 | 0 | 3.75ms | N/A | -| 10,000,000 | 250 | 44.88ms | N/A | +| 10,000 | 9 | 954.55μs | N/A | +| 100,000 | 42 | 1.03ms | N/A | +| 1,000,000 | 235 | 6.11ms | N/A | +| 10,000,000 | 250 | 43.43ms | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -444,7 +444,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,36,1555,10,1164,1603}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,10,1555,1789,1603,36}'::smallint[])", "Index Name": "combo_encrypted_10000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -455,7 +455,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,36,1555,10,1164,1603}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,10,1555,1789,1603,36}'::smallint[])", "Relation Name": "combo_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.49 @@ -520,7 +520,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,10,1603,36,1164,1555}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1603,10,1164,36,1555,1789}'::smallint[])", "Index Name": "combo_encrypted_100000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -531,7 +531,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,10,1603,36,1164,1555}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1603,10,1164,36,1555,1789}'::smallint[])", "Relation Name": "combo_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.61 @@ -596,7 +596,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,1555,1603,1164,36,10}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,36,1789,1603,1164,10}'::smallint[])", "Index Name": "combo_encrypted_1000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -607,7 +607,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 311.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,1555,1603,1164,36,10}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,36,1789,1603,1164,10}'::smallint[])", "Relation Name": "combo_encrypted_1000000", "Startup Cost": 311.97, "Total Cost": 316.24 @@ -672,7 +672,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1603,10,36,1555,1789}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,1555,10,36,1603}'::smallint[])", "Index Name": "combo_encrypted_10000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -683,7 +683,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 2296.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1603,10,36,1555,1789}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,1555,10,36,1603}'::smallint[])", "Relation Name": "combo_encrypted_10000000", "Startup Cost": 2296.1, "Total Cost": 2300.36 @@ -751,10 +751,10 @@ ON combo_encrypted_10000 USING hash ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 597.35μs | N/A | -| 100,000 | 0 | 1.05ms | N/A | -| 1,000,000 | 0 | 3.78ms | N/A | -| 10,000,000 | 10 | 44.80ms | N/A | +| 10,000 | 9 | 837.68μs | N/A | +| 100,000 | 10 | 916.23μs | N/A | +| 1,000,000 | 10 | 5.03ms | N/A | +| 10,000,000 | 10 | 43.19ms | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -823,7 +823,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1603,10,36,1789,1164}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1164,10,1555}'::smallint[])", "Index Name": "combo_encrypted_10000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -834,7 +834,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1603,10,36,1789,1164}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1164,10,1555}'::smallint[])", "Relation Name": "combo_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.49 @@ -928,7 +928,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1555,1164,10}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1555,10,1164}'::smallint[])", "Index Name": "combo_encrypted_100000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -939,7 +939,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1555,1164,10}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1555,10,1164}'::smallint[])", "Relation Name": "combo_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.61 @@ -1033,7 +1033,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1555,10,1603,1789}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1164,1603,36,10,1789}'::smallint[])", "Index Name": "combo_encrypted_1000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1044,7 +1044,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 311.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1555,10,1603,1789}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1164,1603,36,10,1789}'::smallint[])", "Relation Name": "combo_encrypted_1000000", "Startup Cost": 311.97, "Total Cost": 316.24 @@ -1138,7 +1138,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,10,1789,1555,1603,36}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1603,1555,10,1164,1789,36}'::smallint[])", "Index Name": "combo_encrypted_10000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1149,7 +1149,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 2296.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,10,1789,1555,1603,36}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1603,1555,10,1164,1789,36}'::smallint[])", "Relation Name": "combo_encrypted_10000000", "Startup Cost": 2296.1, "Total Cost": 2300.36 diff --git a/report/exact.md b/report/exact.md index 4edd732..b537919 100644 --- a/report/exact.md +++ b/report/exact.md @@ -41,10 +41,10 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 428.29μs | 435.88μs | -| 100,000 | 0 | 450.88μs | 411.44μs | -| 1,000,000 | 0 | 414.56μs | 423.32μs | -| 10,000,000 | 0 | 410.21μs | 419.32μs | +| 10,000 | 0 | 423.10μs | 450.34μs | +| 100,000 | 0 | 430.20μs | 418.60μs | +| 1,000,000 | 0 | 415.64μs | 546.78μs | +| 10,000,000 | 0 | 441.30μs | 422.38μs | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -68,7 +68,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1164, + "Plan Width": 1157, "Plans": [ { "Alias": "string_encrypted_10000", @@ -79,7 +79,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1164, + "Plan Width": 1157, "Relation Name": "string_encrypted_10000", "Scan Direction": "Forward", "Startup Cost": 0.0, @@ -110,7 +110,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1163, + "Plan Width": 1159, "Plans": [ { "Alias": "string_encrypted_100000", @@ -121,7 +121,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1163, + "Plan Width": 1159, "Relation Name": "string_encrypted_100000", "Scan Direction": "Forward", "Startup Cost": 0.0, @@ -162,16 +162,16 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 2, + "Plan Rows": 5000, "Plan Width": 1161, "Relation Name": "string_encrypted_1000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 12.04 + "Total Cost": 19855.5 } ], "Startup Cost": 0.0, - "Total Cost": 6.02 + "Total Cost": 3.97 } } ] @@ -194,7 +194,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1163, + "Plan Width": 1162, "Plans": [ { "Alias": "string_encrypted_10000000", @@ -204,16 +204,16 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 50000, - "Plan Width": 1163, + "Plan Rows": 8, + "Plan Width": 1162, "Relation Name": "string_encrypted_10000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 198371.0 + "Total Cost": 36.14 } ], "Startup Cost": 0.0, - "Total Cost": 3.97 + "Total Cost": 4.52 } } ] @@ -260,10 +260,10 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 403.48μs | 421.56μs | -| 100,000 | 0 | 404.76μs | 418.98μs | -| 1,000,000 | 0 | 407.13μs | 386.56μs | -| 10,000,000 | 0 | 396.38μs | 403.55μs | +| 10,000 | 0 | 392.26μs | 399.87μs | +| 100,000 | 0 | 419.67μs | 407.23μs | +| 1,000,000 | 0 | 694.00μs | 423.82μs | +| 10,000,000 | 0 | 381.18μs | 402.59μs | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -287,7 +287,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1164, + "Plan Width": 1157, "Plans": [ { "Alias": "string_encrypted_10000", @@ -298,7 +298,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1164, + "Plan Width": 1157, "Relation Name": "string_encrypted_10000", "Scan Direction": "Forward", "Startup Cost": 0.0, @@ -329,7 +329,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1163, + "Plan Width": 1159, "Plans": [ { "Alias": "string_encrypted_100000", @@ -340,7 +340,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1163, + "Plan Width": 1159, "Relation Name": "string_encrypted_100000", "Scan Direction": "Forward", "Startup Cost": 0.0, @@ -381,16 +381,16 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 2, + "Plan Rows": 5000, "Plan Width": 1161, "Relation Name": "string_encrypted_1000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 12.04 + "Total Cost": 19855.5 } ], "Startup Cost": 0.0, - "Total Cost": 6.02 + "Total Cost": 3.97 } } ] @@ -413,7 +413,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1163, + "Plan Width": 1162, "Plans": [ { "Alias": "string_encrypted_10000000", @@ -423,16 +423,16 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 50000, - "Plan Width": 1163, + "Plan Rows": 8, + "Plan Width": 1162, "Relation Name": "string_encrypted_10000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 198371.0 + "Total Cost": 36.14 } ], "Startup Cost": 0.0, - "Total Cost": 3.97 + "Total Cost": 4.52 } } ] diff --git a/report/group_by.md b/report/group_by.md index fff48db..d1b516f 100644 --- a/report/group_by.md +++ b/report/group_by.md @@ -35,10 +35,10 @@ ON category_encrypted_10000 using hash ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 1 | 2.61ms | N/A | -| 100,000 | 1 | 29.25ms | N/A | -| 1,000,000 | 1 | 93.42ms | N/A | -| 10,000,000 | 1 | ⚠️ 1.669s | N/A | +| 10,000 | 1 | 2.73ms | N/A | +| 100,000 | 1 | 27.33ms | N/A | +| 1,000,000 | 1 | ⚠️ 124.61ms | N/A | +| 10,000,000 | 1 | ⚠️ 1.466s | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -412,10 +412,10 @@ SELECT count(*) FROM (SELECT 1 FROM {TABLE} GROUP BY value) g | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 1 | 1.44ms | N/A | -| 100,000 | 1 | 9.96ms | N/A | -| 1,000,000 | 1 | 36.04ms | N/A | -| 10,000,000 | 1 | ⚠️ 557.87ms | N/A | +| 10,000 | 1 | 1.51ms | N/A | +| 100,000 | 1 | 9.69ms | N/A | +| 1,000,000 | 1 | 40.15ms | N/A | +| 10,000,000 | 1 | ⚠️ 430.47ms | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -798,10 +798,10 @@ ON category_encrypted_10000 using hash ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 2.72ms | N/A | -| 100,000 | 10 | 29.11ms | N/A | -| 1,000,000 | 10 | 94.56ms | N/A | -| 10,000,000 | 10 | ⚠️ 1.352s | N/A | +| 10,000 | 10 | 2.87ms | N/A | +| 100,000 | 10 | 27.79ms | N/A | +| 1,000,000 | 10 | 95.87ms | N/A | +| 10,000,000 | 10 | ⚠️ 1.312s | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -1235,10 +1235,10 @@ SELECT value, count(*) FROM {TABLE} GROUP BY 1 ORDER BY count(*) DESC LIMIT 10 | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.54ms | N/A | -| 100,000 | 10 | 10.38ms | N/A | -| 1,000,000 | 10 | 37.31ms | N/A | -| 10,000,000 | 10 | ⚠️ 600.45ms | N/A | +| 10,000 | 10 | 1.61ms | N/A | +| 100,000 | 10 | 10.15ms | N/A | +| 1,000,000 | 10 | 38.71ms | N/A | +| 10,000,000 | 10 | ⚠️ 461.75ms | N/A | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ diff --git a/report/match.md b/report/match.md index d231226..a165534 100644 --- a/report/match.md +++ b/report/match.md @@ -39,12 +39,14 @@ ON string_encrypted_10000 USING GIN ( - 1,000,000: `string_encrypted_1000000_gin_index` - 10,000,000: `string_encrypted_10000000_gin_index` +*⚠️ = Query time exceeds 100ms* + | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 590.02μs | 627.32μs | -| 100,000 | 0 | 1.42ms | 1.48ms | -| 1,000,000 | 0 | 9.36ms | 9.19ms | -| 10,000,000 | 0 | 83.30ms | 82.09ms | +| 10,000 | 10 | 1.02ms | 28.36ms | +| 100,000 | 10 | 4.30ms | 30.88ms | +| 1,000,000 | 10 | 21.50ms | 47.99ms | +| 10,000,000 | 10 | ⚠️ 215.72ms | ⚠️ 237.82ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -82,7 +84,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1967,1061,1185,97,242,237,702,820,1987,1659,1098,2024,1665,44,523,1715,461,1196,450,835,765,543,1846,1988,518,290,1381,574,1609,513}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1196,1659,2024,543,1967,518,1381,242,1185,450,290,835,820,1987,765,1846,237,461,44,1609,523,1715,1988,1098,702,97,574,1665,1061,513}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -93,7 +95,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1967,1061,1185,97,242,237,702,820,1987,1659,1098,2024,1665,44,523,1715,461,1196,450,835,765,543,1846,1988,518,290,1381,574,1609,513}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1196,1659,2024,543,1967,518,1381,242,1185,450,290,835,820,1987,765,1846,237,461,44,1609,523,1715,1988,1098,702,97,574,1665,1061,513}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -137,7 +139,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{44,1098,1381,290,237,461,1609,242,1665,1715,1967,1988,2024,1196,1846,1659,1061,1987,450,1185,97,820,523,765,543,513,702,518,574,835}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,835,702,523,1061,518,290,242,1846,1659,1185,97,1609,1987,1988,450,1098,1381,1967,513,461,1665,543,44,1196,574,765,237,2024,1715}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -145,17 +147,17 @@ Full `EXPLAIN (FORMAT JSON)`: "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 454.35 + "Total Cost": 458.47 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{44,1098,1381,290,237,461,1609,242,1665,1715,1967,1988,2024,1196,1846,1659,1061,1987,450,1185,97,820,523,765,543,513,702,518,574,835}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,835,702,523,1061,518,290,242,1846,1659,1185,97,1609,1987,1988,450,1098,1381,1967,513,461,1665,543,44,1196,574,765,237,2024,1715}'::smallint[])", "Relation Name": "string_encrypted_100000", - "Startup Cost": 454.35, - "Total Cost": 458.86 + "Startup Cost": 458.48, + "Total Cost": 462.99 } ], - "Startup Cost": 454.35, - "Total Cost": 458.86 + "Startup Cost": 458.48, + "Total Cost": 462.99 } } ] @@ -192,7 +194,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1381,1846,450,1185,765,1609,574,543,1665,702,513,1659,1715,1988,1098,835,97,242,290,461,237,44,820,1987,2024,1061,1196,1967,518}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1987,518,1061,450,1715,1846,1659,1609,44,1381,574,97,242,702,290,1967,237,1185,1988,543,1196,765,461,2024,820,513,1098,1665,835}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -200,17 +202,17 @@ Full `EXPLAIN (FORMAT JSON)`: "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 1530.98 + "Total Cost": 1526.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1381,1846,450,1185,765,1609,574,543,1665,702,513,1659,1715,1988,1098,835,97,242,290,461,237,44,820,1987,2024,1061,1196,1967,518}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1987,518,1061,450,1715,1846,1659,1609,44,1381,574,97,242,702,290,1967,237,1185,1988,543,1196,765,461,2024,820,513,1098,1665,835}'::smallint[])", "Relation Name": "string_encrypted_1000000", - "Startup Cost": 1530.98, - "Total Cost": 1535.49 + "Startup Cost": 1526.85, + "Total Cost": 1531.36 } ], - "Startup Cost": 1530.98, - "Total Cost": 1535.49 + "Startup Cost": 1526.85, + "Total Cost": 1531.36 } } ] @@ -247,7 +249,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,237,1987,1846,1196,44,1659,1098,1381,513,835,1665,1715,2024,461,518,765,1967,702,1988,290,574,543,450,97,1061,1185,242,1609,523}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{574,702,1846,237,1659,44,242,1967,1196,518,290,1381,1665,450,1609,835,2024,513,1098,765,820,1715,1185,1987,97,1061,1988,523,543,461}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -255,17 +257,17 @@ Full `EXPLAIN (FORMAT JSON)`: "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 11294.85 + "Total Cost": 11270.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,237,1987,1846,1196,44,1659,1098,1381,513,835,1665,1715,2024,461,518,765,1967,702,1988,290,574,543,450,97,1061,1185,242,1609,523}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{574,702,1846,237,1659,44,242,1967,1196,518,290,1381,1665,450,1609,835,2024,513,1098,765,820,1715,1185,1987,97,1061,1988,523,543,461}'::smallint[])", "Relation Name": "string_encrypted_10000000", - "Startup Cost": 11294.85, - "Total Cost": 11299.36 + "Startup Cost": 11270.1, + "Total Cost": 11274.61 } ], - "Startup Cost": 11294.85, - "Total Cost": 11299.36 + "Startup Cost": 11270.1, + "Total Cost": 11274.61 } } ] @@ -312,10 +314,10 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 537.11μs | 476.72μs | -| 100,000 | 0 | 1.02ms | 835.98μs | -| 1,000,000 | 0 | 4.32ms | 4.27ms | -| 10,000,000 | 0 | 30.20ms | 30.69ms | +| 10,000 | 10 | 729.02μs | 28.41ms | +| 100,000 | 10 | 1.10ms | 27.02ms | +| 1,000,000 | 10 | 4.67ms | 31.79ms | +| 10,000,000 | 10 | 35.48ms | 60.96ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -353,7 +355,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1164,1603,1555,36,10}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{36,1603,1164,10,1555,1789}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -364,7 +366,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1164,1603,1555,36,10}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{36,1603,1164,10,1555,1789}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.73 @@ -408,7 +410,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1603,10,1789,1555,1164,36}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,36,1555,1789,1603,10}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -419,7 +421,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1603,10,1789,1555,1164,36}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,36,1555,1789,1603,10}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -463,7 +465,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,1789,1603,36,1555,10}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,36,1164,10,1555,1603}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -474,7 +476,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 307.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,1789,1603,36,1555,10}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,36,1164,10,1555,1603}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 307.85, "Total Cost": 312.36 @@ -518,7 +520,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1555,1603,36,10,1164}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{36,1789,1603,1555,10,1164}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -526,17 +528,17 @@ Full `EXPLAIN (FORMAT JSON)`: "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 2258.97 + "Total Cost": 2254.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1555,1603,36,10,1164}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{36,1789,1603,1555,10,1164}'::smallint[])", "Relation Name": "string_encrypted_10000000", - "Startup Cost": 2258.97, - "Total Cost": 2263.48 + "Startup Cost": 2254.85, + "Total Cost": 2259.36 } ], - "Startup Cost": 2258.97, - "Total Cost": 2263.48 + "Startup Cost": 2254.85, + "Total Cost": 2259.36 } } ] @@ -581,12 +583,14 @@ ON string_encrypted_10000 USING GIN ( - 1,000,000: `string_encrypted_1000000_gin_index` - 10,000,000: `string_encrypted_10000000_gin_index` +*⚠️ = Query time exceeds 100ms* + | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 697.29μs | 653.88μs | -| 100,000 | 0 | 1.58ms | 1.54ms | -| 1,000,000 | 0 | 9.94ms | 9.68ms | -| 10,000,000 | 0 | 82.38ms | 82.15ms | +| 10,000 | 10 | 1.55ms | 30.64ms | +| 100,000 | 10 | 3.04ms | 29.65ms | +| 1,000,000 | 10 | 21.57ms | 46.18ms | +| 10,000,000 | 10 | ⚠️ 210.49ms | ⚠️ 241.26ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -624,7 +628,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,523,2024,1098,835,1967,1665,1196,242,461,518,574,513,1987,1846,702,543,1381,1061,1609,44,1988,820,1185,765,450,97,1659,1715}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1381,1185,1609,835,1715,513,1967,543,461,1098,237,523,1987,820,1196,1846,1665,242,765,290,1061,702,44,1659,97,574,518,2024,450,1988}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -635,7 +639,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,523,2024,1098,835,1967,1665,1196,242,461,518,574,513,1987,1846,702,543,1381,1061,1609,44,1988,820,1185,765,450,97,1659,1715}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1381,1185,1609,835,1715,513,1967,543,461,1098,237,523,1987,820,1196,1846,1665,242,765,290,1061,702,44,1659,97,574,518,2024,450,1988}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -679,7 +683,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{513,1967,574,523,97,1987,820,242,765,290,1098,1196,450,543,835,1988,44,1846,518,237,1659,1609,1381,1061,1665,1185,702,2024,1715,461}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1659,513,820,290,1196,237,242,1061,450,543,1665,765,835,1609,1185,1381,461,574,1988,1967,1846,523,97,44,1715,518,1987,2024,1098,702}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -687,17 +691,17 @@ Full `EXPLAIN (FORMAT JSON)`: "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 454.35 + "Total Cost": 458.47 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{513,1967,574,523,97,1987,820,242,765,290,1098,1196,450,543,835,1988,44,1846,518,237,1659,1609,1381,1061,1665,1185,702,2024,1715,461}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1659,513,820,290,1196,237,242,1061,450,543,1665,765,835,1609,1185,1381,461,574,1988,1967,1846,523,97,44,1715,518,1987,2024,1098,702}'::smallint[])", "Relation Name": "string_encrypted_100000", - "Startup Cost": 454.35, - "Total Cost": 458.86 + "Startup Cost": 458.48, + "Total Cost": 462.99 } ], - "Startup Cost": 454.35, - "Total Cost": 458.86 + "Startup Cost": 458.48, + "Total Cost": 462.99 } } ] @@ -734,7 +738,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,702,461,543,1098,44,523,1665,518,450,2024,1987,242,1609,1185,1967,1196,1381,835,765,1846,1659,1061,820,1988,574,513,97,1715}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1061,1967,702,820,1988,835,523,290,237,1098,1185,1715,574,1665,97,44,1659,450,765,513,1987,242,518,2024,1846,543,1609,1196,1381,461}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -742,17 +746,17 @@ Full `EXPLAIN (FORMAT JSON)`: "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 1530.98 + "Total Cost": 1526.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,702,461,543,1098,44,523,1665,518,450,2024,1987,242,1609,1185,1967,1196,1381,835,765,1846,1659,1061,820,1988,574,513,97,1715}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1061,1967,702,820,1988,835,523,290,237,1098,1185,1715,574,1665,97,44,1659,450,765,513,1987,242,518,2024,1846,543,1609,1196,1381,461}'::smallint[])", "Relation Name": "string_encrypted_1000000", - "Startup Cost": 1530.98, - "Total Cost": 1535.49 + "Startup Cost": 1526.85, + "Total Cost": 1531.36 } ], - "Startup Cost": 1530.98, - "Total Cost": 1535.49 + "Startup Cost": 1526.85, + "Total Cost": 1531.36 } } ] @@ -789,7 +793,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{702,1381,835,97,765,450,1988,44,1061,523,242,461,1609,1846,1196,237,1715,2024,290,1659,543,1987,820,513,574,1098,1967,1185,1665,518}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{461,450,513,765,1846,2024,1665,543,97,242,1609,835,1061,290,1987,1381,1715,237,1967,574,1185,44,523,702,1196,1988,1098,820,518,1659}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -797,17 +801,17 @@ Full `EXPLAIN (FORMAT JSON)`: "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 11294.85 + "Total Cost": 11270.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{702,1381,835,97,765,450,1988,44,1061,523,242,461,1609,1846,1196,237,1715,2024,290,1659,543,1987,820,513,574,1098,1967,1185,1665,518}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{461,450,513,765,1846,2024,1665,543,97,242,1609,835,1061,290,1987,1381,1715,237,1967,574,1185,44,523,702,1196,1988,1098,820,518,1659}'::smallint[])", "Relation Name": "string_encrypted_10000000", - "Startup Cost": 11294.85, - "Total Cost": 11299.36 + "Startup Cost": 11270.1, + "Total Cost": 11274.61 } ], - "Startup Cost": 11294.85, - "Total Cost": 11299.36 + "Startup Cost": 11270.1, + "Total Cost": 11274.61 } } ] diff --git a/report/ore.md b/report/ore.md index 577343d..08a912d 100644 --- a/report/ore.md +++ b/report/ore.md @@ -35,10 +35,10 @@ ON integer_encrypted_10000 ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.24ms | 28.22ms | -| 100,000 | 10 | 1.38ms | 29.37ms | -| 1,000,000 | 10 | 1.15ms | 28.73ms | -| 10,000,000 | 10 | 1.44ms | 28.25ms | +| 10,000 | 10 | 1.09ms | 26.92ms | +| 100,000 | 10 | 1.61ms | 29.41ms | +| 1,000,000 | 10 | 1.34ms | 29.73ms | +| 10,000,000 | 10 | 1.42ms | 29.93ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -67,7 +67,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcb371609a9d6c573eed7e891d65e32763a0777fe30e584652309016ccaf8c0b4e4101f904e3cbeedebd563ec8f9bba67000d22aecbe5b547dd4e291e7a913ab7de63374518292d0046f8248fbf7c2abe5e8d96c0c07f4006b44f6b28fc569cee4c70913e19a951f1b30c21047b44bc16ea55ffaef4d32b98f01a0e0b24286638e29b77706c07bd44000b951b5976af1bbc9665f7e342ada753179ccd9003f14119b0199d54835f99e140f5e4431a7524fff57064614978f575978d4ba7c81a776ecd4f632e402d63d7fa4be00559e25b737cae53bb7ebd547de3bf796fa7823a3aebb321a191d501068035259eeec5cb805e3cf3d651f159698f511a3394b871299d5275978baf403a46ae93a636b33cd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce6505e5d0db03c5dd653e9ad5bbbf37b01663a79c310597f2cca4feea88f7f863fdf7e0a642334bc851ef546007bab4c16748773788325e7693c2983f64e84420fefe66ebd55fba175369ff1cb035880cace69ada40eaa9c4e562258c34290667bbe9f9e089e37dee0a7fa68a1d6ecbb0e227b1711af6f0c662e7b9f665d2460a0460e1c7c84171e8115895dca66cfde0a3d5c59e35674c512b243ce1e9d6a2ec34d88a8d54d49cb3ed640b680b20d58dd07744ee54fcccb4e383b625ffacc120fe18629047851013df66e79cccf101ba839bb63c98bfa01121a41bf239c283e288df5d9730e3f463e905c464c9f7be623a47c2b4f9f948270cd132c67cbb3ef0e32320e83d411a6b4427aed3f657e7d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -107,7 +107,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bca47ad7534549731c44e6f8ae43f935528296fe8d3533fe139de063f95576d9b55dbdda14c67c41e5fba98e168b989ff6d69ab07c4facafffc88a9c07d08b03a392cd10c4eddcc204656c32fe8322644e9d1668a79977496654e3679ea13c53bc94a0d230f1011e831d43ddf27a31c39e12508fbd608bb1dc684c649dd97bf573aeb0a5078fe6e72c00230490ed497305581711594898b52e4ad8ad040692f613b8594678f4c2ae77b9b2e64f691626ed188e9045730c0df6031ffdd36fd3ca6d212874284261cc54a165fc2d832ebf4c5e66a2387dc40e05f258034a674550b1b9e9ed526c8cdc80ae6883d36a103a05a3ced71df03b5a404a40f752d0524e97eb2e09f5399b6d4fad3034fcdefcef8d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcbfbaaf8c7a29ce322f2feca2f5d3c6e328479bb189afe2e41b80a02090795ddbb699a2e1bffcd2230148afe271b8c45a54f37c24a512ac8a25770563056b21c1d266bc81d1f57e26823716a03123c9ab2eb62ad6638179e7fa5e5e429a09c6462b4f91bf55a6a67dee3ec8989db162b9043b601675f777bfbdb67ae8099a830b561298bdf02bcde34e856ee07d24b63ecb4aa992f069413c89977f7f843a352873a8d9b8dcee7f144d2777d467d872804291cdfbc6a23e2e0a5d2e6577a575de6c23eacec41b5fb2a12749cec33753d81e6e51d58ad801dcb4f8f2ea4e52591bf9f3ed15f7ab4f3ae314bfa07216e11091fbd9752548b51cbd1b595653eb340ad259388bbdb8187a324e364151bf267c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -147,19 +147,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc035addeee789fb2e823f5127d1ea3eb2abec3e929c3f195e7794ec84783ac99293e9193130a55e1b1410f10b6329d3c464483505f17295f734aefb6e1337d2b9c98fdaf8a235d84ef4ff1960efc83ff09e1bd8f63dd6faaab9b80ccd1384130d8cf4ac09c2fa90bb31be4e1ddebe36774abd33f2d9c2e51eeaed60f34c42a440d7aa1747824c7baa7b9e8b070ad454113251385cf58966ca6a198532ac2cb83f883562dbd945ba80181f5ab2bddbdfdc35957e867f11ba1f413f9d34594bd08be25ec5a8691863d709c0b1bd322e54fa37a4aa7b1397ccbb7e83bfd3fcc86581a771819df23434b5fd4d43ec3b5d7199c5b80d404129c2e570861640f43ed28a0c970002f9a35e1369df809d1309d87e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc62a3c03889bfda8d82b216c4c6410faf2006e3d1ba7ade1f8a5773f57be7c3889d905819937b3b99776e0b980b91841c9b1a3f100dc7369dbb5ab31b515155266325bfa0d72dca1d2f2397116230d2452b04424d8677fce4568b2aca0d381b807750d9853d700ebb2eb6ee72ac727a61726856e98b5ac66186a66ae9d10fe8e22c22cf2535b2debf2ed031c20f591367d37596733f4c86af0723c4cc47eb19ba05546b15b79775cae964d41415ad63a25b33bef2a82ce8c0fe7ed9e7d2082270a657241339382f54cf688e06dacb697a11d45c1407d15a9f1a3f7e3fa63a2535d8a96499a19775650b806548e0eedcad5c9416620d39a210fa374b0371139a68d0fa07b7ea6fc98d9a579fb5f9cf8332\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 495003, "Plan Width": 36, "Relation Name": "integer_encrypted_1000000", "Startup Cost": 0.0, - "Total Cost": 736191.25 + "Total Cost": 776611.81 } ], "Startup Cost": 0.0, - "Total Cost": 22.09 + "Total Cost": 15.69 } } ] @@ -187,19 +187,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce9f7ed622e356cf9c68940a09e4fa6c7f53e37fd1a20685f2a2a72ae6d7919eab25bcf13844f317689fd847005d206ec1816218ec9a2dcb8e446dcf2a0eaed8de0d485642d9c06eaf1387f6430753d5d0435e7f068d641d168118ba14c382047edb764caa4062c1d3d353c202f15b1f45d74b553b3a74b49d2d75ed36d6f31c1f349913841fe6a723724c9efb37675e297f1ad661829c03080963461a8413f5a45b1e535f4bcb9ee04e9863c1917c32e5122fa229ac0fd79e87119c2d386d6b82903c0afb914c6826c542f72db96910f3f52f5d7dd5cb377b9802a473b2d60c753b5ed34ead5511b8551bbcb77c7b69d4c46f685f891bf30c1880f3355a9ac89335779f285fc8a4d2730540f91cf1da7\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce035ad53ca2690eed1e71042c260c9e6ee809838442e212025aab171a1e201c10b8f1ed816c170862c88e71d8f1bbb6ea753a69763773f04aa828616f2dd406571a5105ffb7f0fd2645e30ab97bd8db9695307bc53fef51485e3703569531275349e644604a43d3dc36351733b7ab42841f7e31c17334884cab9c34c825f3e4f1eb5ca73ed4ae08cd4472b1de7923671aa4023c454c0477c0b6bb635e84ffa6a933f1b8bbd2247eb853b54615ff841f7df80eb76849f616aef146bd19016cb3248887cbf00ecfd99745dc8bbf3aaeb514286a2cab99df87029a71ff87e63358b9d0688b079fb4c720e5d1461b38f5b2cfb3c42be361bdce13d4ea5b336f9e8e58d8844c007786f9f4c3abb0fb42e9fc9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 5050002, "Plan Width": 36, "Relation Name": "integer_encrypted_10000000", "Startup Cost": 0.0, - "Total Cost": 7361905.25 + "Total Cost": 7791074.54 } ], "Startup Cost": 0.0, - "Total Cost": 22.09 + "Total Cost": 15.43 } } ] @@ -240,10 +240,10 @@ ON integer_encrypted_10000 ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 100 | 6.52ms | 45.74ms | -| 100,000 | 100 | 6.56ms | 48.51ms | -| 1,000,000 | 100 | 6.85ms | 47.69ms | -| 10,000,000 | 100 | 7.12ms | 46.06ms | +| 10,000 | 100 | 6.49ms | 42.04ms | +| 100,000 | 100 | 7.05ms | 45.03ms | +| 1,000,000 | 100 | 7.69ms | 45.22ms | +| 10,000,000 | 100 | 8.14ms | 45.46ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -272,7 +272,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc846ca961e9c7d073e4b69bb55d2d389f16d58a6d5fbea545a848998537d5026fe275212f67f28a6157e1747db9eb445488d3e56ab96df32df2090cf3a11c95bf0beb228000a33380009da004dd79117bd926f4a8ac0d7c82898a8a3b73e31c229035b21f79d827929aabc6b37077d26b88a1edd8c4e6d5e0681558d1cbebd09ffec80d242137bd9f745ffc6b89fde4a526a0239da0cb97d29db6b2f95e9e0d3ce1ec8d22cc092c95b9453b291a802142c9b0e2162ddc7d9ae4eb3e27081699918005f53afdb84d5dbe2916b02c1dbb14f838f2811d0ec550f07e0ab51a3595556cea1ae203c1c9066cac83d049092fef5912a7d22dc6a89818a0581d00bc975f4870d3f0412c3d9c7fad7d138855e56c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcf77977b33152775a0849e0fb9e90d1b5724a136449d77f85f9623e8a6ee61f10e0d8f485ea13f3e7522cfed28560e0a59a0c03c4b547b09f9da863d6889b7453b1c0c0e5b54222a6259b22ed2b98f752603ce6628b08da4e993c6165b3d7fdaf8ae72965268d0e524c2f0603d44d47e9c0fb410e16e2b1a4ee3cdd465a2c541aad8cc6273d11c66daf989bbd1b1536b816041cb55ab273f1882f078247272f15ccd5e7a1293dcfc299aa809bb595a54eb89afe5f91948671bf96d684828b23d22f6ce70c119dadf107c6882a2c9c7fc478dc285f3c3268ceb2fea1f52e991aae7182e4422c8e41c3e1b07844a705c7687118ea35ab9c896c944fdf4298ad5825005f80ecbaaad437e4bd489ff0d1441e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -312,7 +312,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcc8d0e399915c1409fbe0693675ccdf11458ba4640908d8197d60f34cf19ad8ae8795552ae5ac3976d25075691f279e335e9abcff0102d9d2ace321522e17591b35726bca2c1efa066d734337789854fd221d52799ebc7842fd15d7fc500f27027ce0cf3cd9273fa6a217ffc95881800ab06d6c75adf5b21cbf8b7ba6f8e962d79ae0b9fda4729a8f027c1b0f0651935bc5639fc10d3c3b5230824c6178cc45fecd0bbf22dbd5268049788ab40b3b5a334d6e81d475617b8cf23046eb1068fe3e115047cef9ef39f4e34278fd33f05b6cb875bdd160d57a0061bd8ebaacf429f9a96fafcd18d2a901ab3b987a57147a3bd39d0e5c3a9bb87a75e24ef2ad1c006eb08af175e138160fad88f898f057d696\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc3943e443c9ca6f4a982f878e9289d6a48ac5f9ef9aa8d64610a04e000b51a7a85953d8d28eb42c358a9bcb0b42258c2aa8df440203737f4ecbc1d7dcfd885d9a18e8a0c1f7e6faf95ed6107733228ec20d2f416ef1b95dc6a92d119ac82e0f83bb9e9a8adcac7b037e751ce2182b695ed8903ab442c10b38a96249e1b0775ccd94ae45b14329e72262fb9c5e28b917f68c32a7b22df72e08df89f928b2342ed47719918426305f4f80b36ec1313156ea576bbbc3c51666af80c1bec0a677dfdb264d13cd09c2b84b1eb7d3555811ba9e436f2c22429952e9f2e4e5258e62f70d3290cf6ecbd6e7ceb95dfe74ef647c9a8a09e9366682d1e0b9d532a305bfd5c1ece2f3d9ad55c2b32df39f76a540a267\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -352,19 +352,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcabf433c453472e46375cfb9e11c18e0e3f87e0245b92ddf5108247cb9915ec904903ad62305a9920d42b6890aaebccbc85fc49a32976d85be76bd6c90134b27d4444f4a53289bc92fecfdff9804d948dabc7c704e9f45fe89c47b81710a4fc20f6f274a24618cb01bc9fc89ab94fb800c232512f1fe71f2b607e83af896d4addbbea739c4552e5b465ac7792a211caae25294f851a90ac7aca8391001d9c65b8fb3853c2942b7ec27cd30f5731b657d56e7061d0fd71ad3348733ad44cb48607536f1f9c8fe94a540c405bcc1abfbe88f58171c51a06f1a8e6917a7a5087b5eba87d49f194bb76656a9fde0bce63c2d40df25f1eb5fade7feddbd8c04ebd7776e92ec8e7a769ffe9a5c80e4e63a81412\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc3a5e60fce4b20c5f84cdf50c14bb7a2d93695db169f646450ac3a5839e639cbd8b2fbaadd3d61d8aee86fb79d304fe3eff4cc04dda0fc39bdcded21ce5d97a3278149bf39f3933c1e689331931d97d079476e424b629c12ad329b6b41806200bbb52c37f553a6093a27a8a65eee6261473a9db28624a3847e95e9065dfcee285883f8d2711165d2cee42679e5c28b2be736f603179abcef7a841dff93d11a12f4f3e4aca7c87a8eed898416b23207dc4cd4c7b320f19517754dd16c3967a9c052d2503f8109595ac3c5ca3cf1c8591dcca454c3e3c415a57dcc9219781d4ac55ec1341c6496303e0af009865c1fa553745301a5c839de1d06216e0c31a6c193b692b545994e1d8bd1ed874bdd9f29b21\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 495003, "Plan Width": 36, "Relation Name": "integer_encrypted_1000000", "Startup Cost": 0.0, - "Total Cost": 736191.25 + "Total Cost": 776611.81 } ], "Startup Cost": 0.0, - "Total Cost": 220.86 + "Total Cost": 156.89 } } ] @@ -392,19 +392,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcaa4cb850266e2f346f8fea794a1917aa7ea9eee7fede9bb46574390fb91029c306c2863f3160b1d50a1c22209038b95afeceab30c37721d6be0b1a58a93bcb76bcbe32bb1aefd0644c058db25ca04e297e4d068a0b8154770a4df0950b96dd0b7c15c69de74428d561f73ebb11c691418b8751e55d5e175eeddc212dfd1565fee086c748f11988efad13c1cb0847b010da5b7306c8541003e226ff21554299470f0d33e560263c005d1086470860a48208c87ad25db365bcc4f196b76bb5b392c6745177154bd309c0f9dbf69da7910ab86af23d190a66afe6e5d6c184df20b7c5f4d03ba7c948fa47e31377be3fe4bfe46ac3932a492ae9eed49d131b605e5da48d3390054fd79722aff6a220503c14\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcf22472e31028b9267367f6ae1d7fda813082cc9cede20d048630743a6358ec81ec542cc9f6638716caebf2ce1f3762a70e5907b839e860e32106815dca3b98bb4969532c49f6ad74a4315ffe634396b78b23adbb4846f88d9a3cd0598023a858f9a7753d96f8339f75788a1d5b79f25feced5e50cffeb151ea84df8e7ecb1ce650d5f8df0c69ef1e48f9d6e3957861dcc67a7072167564a1813f95f16d860d59631db8e9ea7428bcf21fd4706f395b021f320f2ce0202437cd94de9512285cfa2ccb8080509ce91e0c4567e5894e9aef6af305ac3deb09565ed88596b21fd8f80021e5ee348af72b7c6e39195a8c5359a5a4b90d1dbd6d0275879c823624b255a7aae72714955c9987ab9437af111958\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 5050002, "Plan Width": 36, "Relation Name": "integer_encrypted_10000000", "Startup Cost": 0.0, - "Total Cost": 7361905.25 + "Total Cost": 7791074.54 } ], "Startup Cost": 0.0, - "Total Cost": 220.86 + "Total Cost": 154.28 } } ] @@ -416,7 +416,7 @@ Full `EXPLAIN (FORMAT JSON)`: ## range_highly_selective_gt_10 -**Description:** Highly selective range query (~0.011% selectivity) returning up to 10 results +**Description:** Highly selective range query (~0.011% selectivity) with LIMIT 10 **SQL Query:** ```sql @@ -425,7 +425,7 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 10 **Parameter:** `2147000000` -**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value > 2_147_000_000 LIMIT 10. The threshold sits 483k values below `i32::MAX`. Even at 10k rows the planner picks Index Scan: with 0.011% selectivity it expects ~1 matching row, which it finds at the top of the b-tree in a single page read. Useful as the upper-bound demonstration of how cheap a selective range lookup becomes when the functional index engages.** +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value > 2_147_000_000 LIMIT 10. Threshold sits 483k values below `i32::MAX` (~0.011% selectivity). Engages the ORE btree at every tier (with current stats — see the note on `range_selective_gt_100`). Useful as the upper-bound demonstration of how cheap a selective range lookup becomes when the functional index engages.** **Indexes available on the table:** ```sql @@ -440,17 +440,17 @@ ON integer_encrypted_10000 ( - 10,000: `integer_encrypted_10000_ore_index` - 100,000: `integer_encrypted_100000_ore_index` -- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: `integer_encrypted_1000000_ore_index` +- 10,000,000: `integer_encrypted_10000000_ore_index` *⚠️ = Query time exceeds 100ms* | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 3 | 735.89μs | 26.70ms | -| 100,000 | 8 | 866.03μs | 27.93ms | -| 1,000,000 | 10 | 1.09ms | 29.18ms | -| 10,000,000 | 10 | ⚠️ 2.225s | ⚠️ 1.822s | +| 10,000 | 3 | 1.43ms | 29.65ms | +| 100,000 | 8 | 883.26μs | 27.69ms | +| 1,000,000 | 10 | 1.11ms | 28.47ms | +| 10,000,000 | 10 | ⚠️ 3.157s | ⚠️ 3.605s | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -479,7 +479,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e365e1efa586a135a120a71549033398f2cbce5b88891afc9d3a622967aa8d8dc53b113eaf91f7e0fe64b07e4809682e3b02d669a9ea612ff80f029011631431896c4512ad6391d90c7827c6faa85e075cb13d2b5674e86d899e6f3bd910ba29df139ba69d18cbf9ae9dfe04592c10d1fcad9a67ab809095c71f799a08037dfd15c2849c19a43d11c03a535751da2c46b581f8a33a8feb983049bf6468551c1f7de504a324f2655f7405b318fd2f8284c5d43ad52934069c2e69a7c9d0aa2e0116866002104f3fedf883ea021aafd8440838f441c1246ad022cfe7f46c402f36d88bc44059f55ecaf8b83a1166da49675be7aadb67a15af6ec4fa71ddfef80fb72c9e167c4f075207100662462a5ccaae1c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e3670b0657354ad4a7421ca41d370e370ff590a6b30fe2af4027fa71292f0e45ac799af17fb03cafe6be194889d475340b068b3fae2b2c12943b5c72e09c2e8299fc9549f3d90e06beb4b7e115ff92c5d982130fceb631a012c1322f858a5426a8765e9803d47a570d7d4b3bc9c311122d9c8dd1235314b4b423d38be0ca0203f990b9610edfe06e1f081c5a36c43316ef6394f9e76b4460031fcb6f0e20a2c90b0801c50a2663bf5f442d47d59266e3279dfaf34b249b4e60518b671af379d156f42f6311b475dbaae20f9db0a1db11a29231de62e70bf65889b9395cb4b00fc9056dfc254cea86d313be589ed5a46fe921ad46fb991ff6bc3b6784eef66189b75e6d0e00661387099c3b52495247cc159\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -521,7 +521,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36d31ebf310f4f64f5edf80e48d5106acd24e0a932f1899d44451ec171617bf9462f3b3defdb109a9c8fdd011ecf6056ff152dea945a72395abcb7c3047ebecd7025b972bba9cac08526c182538e90b3968303422a68b4cfc5275cc59708420f3998c08e8a04db9784be0462bfac2daa18038c49e66523aa3300cc1adce2c2d6d5c9c658a3f5447ad97739ddde9a0fc196dd572f73ff74a4fb2774f1613afbf0665b8832dfbdd46f4cea035ad86dfae1bd64becab39499529c7281a1579080976002a94cc889e36c17232a74ee3b43fa84665959170b38495e31073f45698dcb54e08daddec7cf516627647098be4ffd4a52bc80d28b3d570fab7b6b2e4513c448e2b2513c966a52abd60cef02d033dd26\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36be52a8e1a0ba9ecad24828bfb15d8aba9d468853d6224316b9899ee388a0e35b84e9617e64f848ff68574fec6d156cd2c5e65253ed45558cda5b28324f5da2edd5d7858baadc96ee0f670887a7e7ef91815b506074bb0bbb390d2c101f30cd2212650fb306e18af5014af77ac727d7fe921145425de18f46d170d9d09f69c7e94191a4d9f3fc0b90bcd30e25d306a1d4d38276b35483d076745c11eebf13cf73b71ab4204ff2e1e372c01f2b90e9c6f3ae24d60b67d8a63796665e005ce57e9a69e00d1c8de465d52942972eba441695c6a52fc4c8fa6fd89c06044ef8857624f8ccdb2329040d4e9a043a335c8bb7db8f94c790b501c3d67993f6f9ba9d1525574a92f099e499d1e2a5843a986f9124\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_100000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -545,7 +545,7 @@ Full `EXPLAIN (FORMAT JSON)`: ``` Limit - Seq Scan on integer_encrypted_1000000 + Index Scan using integer_encrypted_1000000_ore_index on integer_encrypted_1000000 ``` Full `EXPLAIN (FORMAT JSON)`: @@ -563,19 +563,21 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e362e90356e07af380dcec26319c745d1f2fed64b395086551b2c70af35183d7f698b2d5da79484f9e665ef27d45f2673fe0241c2e74a550eacd6cad81f62657082ec6c0ecb99acbb0b2594f42efca5e9d12d0a59e968716bc97bce90740302854fc4e5c4a509f1dfadeab14f35ceae0f198453666e9b5e2b4ecaceda7d074369b16e0a01b920fae9a8c4a0c4d743cf34e087a2d8f67f7f35d0ce89ee60290ce36132112bb3fb0162ecf5c2bebdc7c6adfb7bdb44d3afd4087837f34e699596e816e7cdefcfbb415f5d49044f7783a2b04e78994d0ffb764389ea1ed6e1c0f9fd615fd7683bc907f5782ceb86426df1600e840e931f4650a1564a11bf0d6376d3605a1380581345c978a908c837b71af201\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36826025d5cccf199ed561780d68e3f75a38dc99751d8f63a595ec23b8f2f37ff3da38d3ec2cc33796b230696cb12da7b98fd2727e7fba44500e9751626a532b4348105c6cf120473fbb73abc2457b147f06c825823fcf3151941e7f4864973da05e29cdb222744a3be998783538888e06673213bd43ebfecd3b17910ef45ffa0c022f5ccba16d575a8f60afc94c4c23a8ba9e4e7b7b104e25053b46a20208237cd7a61df5bb17c36f6e4fb06081d6397884f6a4c9fe0c2468973a1aeff11b9cef9f5b65b017ba46bb9b0cc4c30dbf4369ea81ba25a16dd54de7d478260a946dc800999ca00925622c07ba831d002454865013eb4d8e7a4616395e6e9f7d8b7671a7879332cbd5f470985cb90f3c264995\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_1000000_ore_index", + "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 5000, "Plan Width": 36, "Relation Name": "integer_encrypted_1000000", - "Startup Cost": 0.0, - "Total Cost": 736191.25 + "Scan Direction": "Forward", + "Startup Cost": 0.8, + "Total Cost": 22557.45 } ], - "Startup Cost": 0.0, - "Total Cost": 22.09 + "Startup Cost": 0.8, + "Total Cost": 45.91 } } ] @@ -585,7 +587,7 @@ Full `EXPLAIN (FORMAT JSON)`: ``` Limit - Seq Scan on integer_encrypted_10000000 + Index Scan using integer_encrypted_10000000_ore_index on integer_encrypted_10000000 ``` Full `EXPLAIN (FORMAT JSON)`: @@ -603,19 +605,21 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e362d7a510fc7d46008fe6067002171f9642fae8a000509fee2c127df0e97786422914d978ab9a267c42d6802b197cedd4559d1eb60928041eb30f70beeadee64deec4637be4a8efb1694de349958bec1bb971eae1fa61b8dc6e310804b3081824d4bcb368e19a464a5ea9e42bc2ea057960076d3adf73a65b2d3c9e9e85647a60642cb99df28a65ba53b4161aecb75493963c82402757169b0472e51253b8b505d7d10ba32c7ce5e036e8c3c794313cb63963d4d2ed31503d5ff23821e0a6df22caa1283805c306ba89e0bfee044ed2c9a274c230000dc215364beb1f904b2c4d11a096bd5c272f875742ebb122a8627346963f9f5fdb330379f6957e5b995ab947459e8bdd5b96d0fcc5df978bbd25b91\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36b9581b419d45178f30a9a1425f682756e3bdfbb522e3ae4b80e8ce1396a389b264d8022ba559ca8817d1bad7b3dd81c3fae9777aad6410b408d953019daf32eb05ddaa96c7c307d44f5f562258b020e845f7225c1f7a24d2bc579cea64ed2466d3443af5da3191984de5ef5d676a3be46ac355a6e12de53fa351bf664472b87e4f8a84afee754fb4de1d907d8c93dfe73cbc2cfbdbf0d7d0b71f106de7d77b5dfe34a4fc4fc1723d32268d84dfa3c2b3eeba29fbd74be16a38e18ba0d22a1efa91de07ff11fb8be9a6a341f7da6d641af43018f1987d5b2aceb44e68592d1fa032f56cb4dba6226a4cddcb76d6e47b214ec07204ac1fd370df4588df09fb18e9fe9bb541594b3c0e15632acdd041728e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000000_ore_index", + "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 50000, "Plan Width": 36, "Relation Name": "integer_encrypted_10000000", - "Startup Cost": 0.0, - "Total Cost": 7361905.25 + "Scan Direction": "Forward", + "Startup Cost": 0.94, + "Total Cost": 225527.79 } ], - "Startup Cost": 0.0, - "Total Cost": 22.09 + "Startup Cost": 0.94, + "Total Cost": 46.04 } } ] @@ -625,6 +629,348 @@ Full `EXPLAIN (FORMAT JSON)`: ![Query Performance - ORE/range_highly_selective_gt_10](query_ore_range_highly_selective_gt_10_chart.png) +## range_highly_selective_gt_count + +**Description:** Highly selective range count (~0.011% selectivity), no LIMIT + +**SQL Query:** +```sql +SELECT count(*) FROM {TABLE} WHERE value > $1 +``` + +**Parameter:** `2147000000` + +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: `SELECT count(*) FROM tbl WHERE value > 2_147_000_000`. Tighter selectivity than `range_selective_gt_count`; near-floor cost for an indexed lookup.** + +**Indexes available on the table:** +```sql +CREATE INDEX +integer_encrypted_10000_ore_index +ON integer_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `integer_encrypted_10000_ore_index` +- 100,000: `integer_encrypted_100000_ore_index` +- 1,000,000: `integer_encrypted_1000000_ore_index` +- 10,000,000: `integer_encrypted_10000000_ore_index` + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 1 | 850.69μs | N/A | +| 100,000 | 1 | 1.02ms | N/A | +| 1,000,000 | 1 | 5.55ms | N/A | +| 10,000,000 | 1 | 19.96ms | N/A | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
        +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Aggregate + Bitmap Heap Scan on integer_encrypted_10000 + Bitmap Index Scan using integer_encrypted_10000_ore_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36ca01feb59b53a7fd3ec6c294403e0cae2f48e415c42c793a57bca9c9401973eb8ec69c36c2666090eec127850a13fa5739a8b2a4355604b79b3cfedb0230770970707cb62140e7e842ebfd292cfe957f0fa584e76cb7234fdaa826b1f97a98f10afbbc2cae030607a9450893cbd7b464ed9d61c8beeb67a0bc3e125d8911d9091e2b3525dd5ceae3cb99153363aebed8d9184296d198d25b68c82ba42bf1e193d97bbd2f3c58c359d48efd3aa1468f83b720cfba85742b14e70818e39a881303cf1e38f2a3b5c86b7380485e0fb0a79de67098e2c9aa8a7f3f587b86d4f87b2931f5a69d65ebd8d01fc3c65496cbc73d02888eb69744d8c06f28f1a6ffb93d854a252ba483dbf1d79cc7ba4a6829b3c4\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 16.91 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36ca01feb59b53a7fd3ec6c294403e0cae2f48e415c42c793a57bca9c9401973eb8ec69c36c2666090eec127850a13fa5739a8b2a4355604b79b3cfedb0230770970707cb62140e7e842ebfd292cfe957f0fa584e76cb7234fdaa826b1f97a98f10afbbc2cae030607a9450893cbd7b464ed9d61c8beeb67a0bc3e125d8911d9091e2b3525dd5ceae3cb99153363aebed8d9184296d198d25b68c82ba42bf1e193d97bbd2f3c58c359d48efd3aa1468f83b720cfba85742b14e70818e39a881303cf1e38f2a3b5c86b7380485e0fb0a79de67098e2c9aa8a7f3f587b86d4f87b2931f5a69d65ebd8d01fc3c65496cbc73d02888eb69744d8c06f28f1a6ffb93d854a252ba483dbf1d79cc7ba4a6829b3c4\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 16.92, + "Total Cost": 214.36 + } + ], + "Startup Cost": 214.49, + "Strategy": "Plain", + "Total Cost": 214.5 + } + } +] +``` + +**100,000 rows** + +``` +Aggregate + Bitmap Heap Scan on integer_encrypted_100000 + Bitmap Index Scan using integer_encrypted_100000_ore_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e368f1931ce1aaed0f0d318ba891c284a36d19dfe4ce9734d5bcccf4b9651d28863dec1c887347ec8025f748b7c81f23a1cd808d61a996f0269c4c72909fbb60650e7f31320af6118e2b428052d5fd7960617cf51b7845f5c6c1ad5c3c67d6b69823cdb08715a368123f2b1b6f04f3611243e36663effedbb3ac9e55822e9d44ad66f5e3cc6b55cb9b997b68039e050f2bf5c6709dca85cd3055974c152606ccd04771d3f5ca11fadbeca51df522fcfe4ef64bccd12ba8e9f96e21764abbb339bd37f3f0b3f8fc767b023e99b8b6dedd952885a1867760b9bb357f786cde2983bdac807ddfbbe166dc6c95524526461e5b8058722912abae104e29277b6e185b05c16823094d0599047663f8259bd3fc6f2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_100000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 160.42 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e368f1931ce1aaed0f0d318ba891c284a36d19dfe4ce9734d5bcccf4b9651d28863dec1c887347ec8025f748b7c81f23a1cd808d61a996f0269c4c72909fbb60650e7f31320af6118e2b428052d5fd7960617cf51b7845f5c6c1ad5c3c67d6b69823cdb08715a368123f2b1b6f04f3611243e36663effedbb3ac9e55822e9d44ad66f5e3cc6b55cb9b997b68039e050f2bf5c6709dca85cd3055974c152606ccd04771d3f5ca11fadbeca51df522fcfe4ef64bccd12ba8e9f96e21764abbb339bd37f3f0b3f8fc767b023e99b8b6dedd952885a1867760b9bb357f786cde2983bdac807ddfbbe166dc6c95524526461e5b8058722912abae104e29277b6e185b05c16823094d0599047663f8259bd3fc6f2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 160.54, + "Total Cost": 2109.63 + } + ], + "Startup Cost": 2110.88, + "Strategy": "Plain", + "Total Cost": 2110.89 + } + } +] +``` + +**1,000,000 rows** + +``` +Aggregate + Gather + Aggregate + Bitmap Heap Scan on integer_encrypted_1000000 + Bitmap Index Scan using integer_encrypted_1000000_ore_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Finalize", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 2083, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36336ff616214277b1f9a6899ff2fb29346bf2f5c3a21d9eb5d5d6cf0dc00240357a33aafcd12627cbf3992b39f610d077f9226a19af9b25cc95151efdb252be4e2d587b5c259e89390549fb08c6c868134b46199626902ea1f21c2fb68c5ce1f9189f75add605ce84b08ba514b0c7db8b9226350fb7af98e052037f121a305d1a73b27f80d20be84baffc513e7a8234d3709825c65b66cd35462d28bc25f3bbb1fb5a1b51007fe9d1546883962b42a5606ad48d38b1c79c768eaf1b21bd8fd52ca8b9d933bcc3878aba92719f35aac23166144ff1c237a89bdb5e3de96c81be1128e7e839832e23cbf82abcbfafecd214a440a0092f03adf2c9f3e46e5712f3323d254efbb3de9f5cbb698fa9013d1ea6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_1000000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 5000, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 1598.3 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36336ff616214277b1f9a6899ff2fb29346bf2f5c3a21d9eb5d5d6cf0dc00240357a33aafcd12627cbf3992b39f610d077f9226a19af9b25cc95151efdb252be4e2d587b5c259e89390549fb08c6c868134b46199626902ea1f21c2fb68c5ce1f9189f75add605ce84b08ba514b0c7db8b9226350fb7af98e052037f121a305d1a73b27f80d20be84baffc513e7a8234d3709825c65b66cd35462d28bc25f3bbb1fb5a1b51007fe9d1546883962b42a5606ad48d38b1c79c768eaf1b21bd8fd52ca8b9d933bcc3878aba92719f35aac23166144ff1c237a89bdb5e3de96c81be1128e7e839832e23cbf82abcbfafecd214a440a0092f03adf2c9f3e46e5712f3323d254efbb3de9f5cbb698fa9013d1ea6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 1599.55, + "Total Cost": 19587.07 + } + ], + "Startup Cost": 19592.28, + "Strategy": "Plain", + "Total Cost": 19592.29 + } + ], + "Single Copy": false, + "Startup Cost": 20592.28, + "Total Cost": 20592.49, + "Workers Planned": 2 + } + ], + "Startup Cost": 20592.49, + "Strategy": "Plain", + "Total Cost": 20592.5 + } + } +] +``` + +**10,000,000 rows** + +``` +Aggregate + Gather + Aggregate + Bitmap Heap Scan on integer_encrypted_10000000 + Bitmap Index Scan using integer_encrypted_10000000_ore_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "JIT": { + "Functions": 7, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": false, + "Optimization": false + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Finalize", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 20833, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e3636a48cacc6fa21cf8b6d7e9397f66d65db0bf1139c96af507702882ec0a2b2e6788ed111afd249f56cfd3ab4345e84ff9c24a3d868f851280738122f536435565d32364de6a0ce34331f73783093fe7d25b468c99da1ba0f27cdce6fe1cbd01142f5fa9c226ebefde9fdf008cc082e47e151a647218343e65430dc173e30dfd2e73d8194c5260d63c3576f2e31b1a7bb22ca6af9cbb6becdb745325c2dd4241fadc83b7a650ec9be1ec1c808b7a9ce3c7cee5eb0706c4bc89df7f7b3c3bb11352cca1986ab8b1bc3d9d02d2c30039258bf6c0a045f6933e4c532028601e760996e0e463b5cad6bf39064caebf7f8b6a2ae3946bdcb70fbebefb6d729ad9cb1406564f445922fb1653bf5c6183ea56fbd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50000, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 15963.93 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e3636a48cacc6fa21cf8b6d7e9397f66d65db0bf1139c96af507702882ec0a2b2e6788ed111afd249f56cfd3ab4345e84ff9c24a3d868f851280738122f536435565d32364de6a0ce34331f73783093fe7d25b468c99da1ba0f27cdce6fe1cbd01142f5fa9c226ebefde9fdf008cc082e47e151a647218343e65430dc173e30dfd2e73d8194c5260d63c3576f2e31b1a7bb22ca6af9cbb6becdb745325c2dd4241fadc83b7a650ec9be1ec1c808b7a9ce3c7cee5eb0706c4bc89df7f7b3c3bb11352cca1986ab8b1bc3d9d02d2c30039258bf6c0a045f6933e4c532028601e760996e0e463b5cad6bf39064caebf7f8b6a2ae3946bdcb70fbebefb6d729ad9cb1406564f445922fb1653bf5c6183ea56fbd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 15976.43, + "Total Cost": 195823.06 + } + ], + "Startup Cost": 195875.15, + "Strategy": "Plain", + "Total Cost": 195875.16 + } + ], + "Single Copy": false, + "Startup Cost": 196875.15, + "Total Cost": 196875.36, + "Workers Planned": 2 + } + ], + "Startup Cost": 196875.36, + "Strategy": "Plain", + "Total Cost": 196875.37 + } + } +] +``` + +
        + +![Query Performance - ORE/range_highly_selective_gt_count](query_ore_range_highly_selective_gt_count_chart.png) + ## range_lt_10 **Description:** Range query (less than) returning 10 results @@ -656,10 +1002,10 @@ ON integer_encrypted_10000 ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.46ms | 28.11ms | -| 100,000 | 10 | 1.19ms | 29.48ms | -| 1,000,000 | 10 | 989.54μs | 28.59ms | -| 10,000,000 | 10 | 1.39ms | 28.28ms | +| 10,000 | 10 | 1.64ms | 28.29ms | +| 100,000 | 10 | 1.51ms | 28.77ms | +| 1,000,000 | 10 | 1.61ms | 29.31ms | +| 10,000,000 | 10 | 1.72ms | 30.15ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -688,7 +1034,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc57f85ffccf8e70b0898a351a513249073689e3f752ccf5980e9a9f53238814cf822bfd393e5a011182187e00da33bb8e6816d22227c1bea13e524cbd9a9a680a44d56bcedb7f86701ed51a92e89385df2b1c75b0f37f923eb260624b5d284a0ffc7ea45fde7e851f983f4b08643d36fb7fcb1bf05d594a5a4ae8f78d65fa246681c47ea1923a30a28600082254cfb4a371204ff38164bfcb55e812a6827ed264429a54cb049ca7b40bd569a3ef78dedb9eca1ec189311e985499160fecd9b7a91388def686639bf0ab60f9ae38f5a6243f7ba78a20e0a12b482c5e4d2820140406f08d55a5d121fcbcb0e4b1ce0cb777e218d05d46ccbcf520504b84d2cf59a25e57c4dbeb6178d720ec23120460764d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bceda16bf25f19b2ba0c94d71aae8910336edbe8f825a9f1be66459c95f7d5ce637ffd968733af28c55772302718b1537642462eae63269ca3e1b1806a4285ea492b8b37638b391569cf41a9958e7c039252ea8645bcdb8b1104998e7eec88bb77ca2eca6e5c67125bff1dbb77ba8545eec1a301162fef42843b650e8f058ba0c1a91e9cb871057791d996b8de16fcb07d261a98f909f2be733592615197af1670d7d9d0691d9615721cd2a76f48db165128a311ba268e1cf2c26039f0b2c48bcaca64d340d0dbd03b7cbe0c44cdf32e9deb4fc11ceea9c799693678136e8a8934a696410c4dd99dc339af41270c2b5fa709e60ba4768d1440d612f7895df7724840a5c6f493f382091b10f8aadc17d266\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -728,7 +1074,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcdcffe978b21683de0de0c34696ae1e7af3620b38927983ed81e4f0a065da02e5df334f1bd8a45773dcd6cde85981d31d68e57fbfd5ed1fe323c0d7927ddae1fec43c67f1613027cdff914a690c2a2ec1aab26220e32cfc55846614b8e3e400035ac430c1fedd962fc35c40bc56a064e9a5584fba907c54662db4c092da217fee9ea90c53009a4cdbdabcee3ecf0314f9b11a0dc17ec276ca15c9c5b605ad14b4e6ef140b436ec03c1f4e21131f1bf4ccef35cadbd3e34054ae2dab502bcec0c14ab401f134c0fad17bc2db1c36840e4a81a3140bd0ff75feee8a040f7bb6f48cb75154629e7ab32688a47b460cae90074ecc9740fde20a9ce14882b427996dfa631adde672809609a140b1d657de6213\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcaa6d7dda1508dcb025ba4530f8c3283179584ab0db22d5f36e29f6ecec3892e371e95c1cb17c18fd442b575b22772c54a8f37e09eecc2b7ebd17426304de2d8c3d51b8b751081eb9681847729ec9fe0f6126b2d97d6606391df657ebd98df675340fe7813d96d776ceeefdbeabd6b602ba4d42e0d56c08a164cb88a1c14d81d49e4a88c62d536e581ecbe33674dbe0e97a9d22a8b3349e133bc2c0641086d916143b94c13c91426c0bc9ff4c365f07bdcd95a441f89de86a5d67b6ac1c0c03e7d9d744a045ccc675536d3d1e929381be28eda544056e9c8106f7062e69e6442dba0aa8af37a4c53298a24e7b08c0ca08434d405bb77041336f27d8aec49fb16f101fec1a03dd72fc9f28a6e5084d02dd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -768,19 +1114,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcfb185e1980702303c643f954653b34c7357713c723e207ed0348fa34b10abd7c02e289d963ba377b5c7efc4b21dc7c1b7c1461a37ac1123462fd512b9ffde212ffeb78136ed8e1145ea64fc75bf8d9b117ea36c05c23168c3c84a2df2149c38ba0e2faafd9aa349783678d28df4ecc90c977513fb33fe57dcdc8ad323fe71810665a52896d94d088912715b9fbf1d4fa0255f24c6bafd8ce9ec470b4284988eccef7f419e59d1dbc7f68f68a4fb28d0ee70c02726f6923f6196c8adb4d7cc881f926e5600d0cb867a2d852a558659762521e9b97aef8283ed807060737357bb04aff873a5830ca19431eb2304d736d1c12c4fbd453db24e5a381f3eb2dffd7ba3cd7dd444d7bb5319153602a5803220f\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc1f10ea56d47b8492c75f1339860acd4db023a4fcd171ec5d4697c28095e685544b67b814c2ed713ac34de8068c7b4ed893a668246f7494028dd7591cb861b84561dbb641380a18cb04cbd414456b7a08c1e10a9813c6cc2c50ccde3fe28aadcd8ef4960cb6114ac2dd81a2e060240adc0ac941879b1280595677c4edef6403049b3f0f043a4b722bad4daa5617cd9311d1015b47e7a1a693ec0cb1e6253bcf60b8d379950b516793044422f1914c421979291af0da9bd487bdaa416bb66e365212f03dd67a8f0824d2399141ac9ac19d7e7d5098b8fe7274c3db4a7ce80579fb9eb78fc9c6701c2496d901bd624ff9e93e67fc0f3a2d1a282a29f662273606e22f2c7d79631cf462aa5ffafa19632d53\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 505002, "Plan Width": 36, "Relation Name": "integer_encrypted_1000000", "Startup Cost": 0.0, - "Total Cost": 736191.25 + "Total Cost": 779111.56 } ], "Startup Cost": 0.0, - "Total Cost": 22.09 + "Total Cost": 15.43 } } ] @@ -808,19 +1154,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc8132d7923212529301fdc6ac7b34477530d11b3d7ec96fbb24491111827ba4a3c088470e675b26d0b3aa505dd61edb45c65b90ff960e05ebff9737d17c88cbb558c31143c25512d0b1377d41fa5efe8a134c4440068d78d886e67309efe82ea5e601688cc40ba279889879468b0c723cf3120005de8478891920aaf9d8def79d932a8304099244e4f99115dec9f0dfda776b98a8846acaa601597928cc375d2753118e357b12b8a445214de7611c1508a3cbaa2383db1c89b44e1f63133eefe866d93bdfdac4036b45f79dcef01cc656810b3b8ac238854d972f1893d8c1e0da2700f76f7255948f7293c67d933361fb089969df4efcef5339159b540a434b03bc923e2088967a68b93ce0958da998e6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc3f0e300ff67bc4d9fee3701c15fd2a1379f439472f348072a34d3f9e6dfc5ce064217764ce8b4d315ad49b082c9b558dd12a8de0b0c42022f1ebe75a86cf5cedd7f8a9a8446da81e80db2e3c8959ac852eee567cae6de44594030ced59d4ce678e56033858cb3ba2f7553aeebcd6fec71a72837339d1ce83b8ed6a66f88568d6769afa9ef42abbbd8f68dccfc307ad6a1ac90dd2c3f8b146db56bbfafdad3f08d921085fd9663a490327334c5021a249c5f9e3778f9b4ebdfbc85a24b4ae50921d7e553e55e07f7aa2afbdcf19bc9c7f2cfa52237826319241571e936806059603958a1b582ccfd35346335856af92aa6d8a1587b331b3359c39837c88063ba6a17ceefa37b187db9920dd4f8ba88ee5\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 4950001, "Plan Width": 36, "Relation Name": "integer_encrypted_10000000", "Startup Cost": 0.0, - "Total Cost": 7361905.25 + "Total Cost": 7766074.29 } ], "Startup Cost": 0.0, - "Total Cost": 22.09 + "Total Cost": 15.69 } } ] @@ -861,10 +1207,10 @@ ON integer_encrypted_10000 ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 100 | 6.72ms | 46.04ms | -| 100,000 | 100 | 6.52ms | 47.22ms | -| 1,000,000 | 100 | 7.03ms | 48.06ms | -| 10,000,000 | 100 | 7.35ms | 46.83ms | +| 10,000 | 100 | 7.13ms | 46.12ms | +| 100,000 | 100 | 6.87ms | 46.49ms | +| 1,000,000 | 100 | 7.51ms | 45.65ms | +| 10,000,000 | 100 | 7.58ms | 45.56ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -893,7 +1239,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce5c3c861e0d404bee8c16e5ebce826e0d8e85dd403f45a75081065aefadf5fc7c59b86264a4847de423f3625a82374ebf02cb1fb0b4b0001fc8d58ae7cf9a3fc6041ad3d2d4fdd03e1a6c86f9b23525ad50aa6911b529a79e5578e20381b28f95691a92f787294ee30604140fffe39a8cb6075aba4c7a2811c54806fadc353a79e9a9a6252965bcfbe5faa4ece57440ba74f2e58b7b6c49adc3e8cfffe43b1d3b0268747f275d14e68ffb3eca6a6590aea2bf07f64018b090e4944355fda0616d6e296e8042fcd4579f5568c5deeb407ac9a78f485a653c609e0a7d010933314ad2fdbc047a4b0057d99c082e15983941f75332acb480a95b683749cfebf77eb6503281f91e69eab8462513b6bc21ee2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc981f0239ae333c99d66e5d01c963193aaa470df62b2cf1d8fadc9dacfefbf678db1d341af31e204af6bedb5687884f5926aecccff21542589f17ccd5d92f58039d7cb9bc26558dcbe00ad147970e8efd3c8dfe3c269ecd91a9eebd4169d2509d9c9593ce79991fa754adee5102cb0f6bd53e197d022d06f31e56e1a7c964b87fd1e2de5c0e3a5c7bc2bf8dde1b96b79bde395c2bae3528d2b8f03bbe012db7858b2fcdfd76140c593eefbfbcb6f096f7e267094ebcbfcf2b97e1d63355f7402900e78841ae4d014f529dc4ac6726ceefd7f53b331dac99225d26122bc018fb3ef32ef60e18632be85cce7c73801c2094c8eb1f0c966755c54c626568cf3c01bd6f9968d16011a17308379262242d3faf\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -933,7 +1279,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc0fc2aba22d9169f6b28d24ca48b501dca3db2a5e16d50e4f7f14473c2138ce0768831cfe327fb1b6cf7f233d3073a6f71fcc86a1cea7478f892fc2039d2f98a4b3fde24cd6792d1d8379215fbeb931c41780d00691592a0d7b1b921b9a04101c70140d87534627f2a92c7fa32d36be3ea3da049bc5e5cf203af86eacf599a7b85e328dbb7d03c22a60556c07ab23547da67943a66e7c5211bce92361f2d2add82ccfb15e6113160936f5c77efd2ad3ad91a585ac53c9bd1d7ed93d359ab6bcaebca1c92b97ce6a9ab37ad67ca277d41c137b8a0cbc08dba59590bf723a804be8fa60762c91b8e9c035ef15484204d84d052e1340c9da3d002839f93015b48c3e50816eebc7f77825d62b76d5ed31fa3e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc1c2266c60d3f36b6fec5b21c89ab896040fdcebe88c40452415319fbf1105cdc7fcb7a7b777f1357c695bf6c21c1002124c4e8195aade6ea2e0cc76a6aad644587ac052d449bdeb7eb2b6a4689bc34cea01fc52422cb7a2e816c8e27b87d26c1af5ee9d9a3dd1e66b3d65b59d4808307ff87f869f4e7e2b38c974414242243d321317ab87c8b111901468c4f8f94f377ca888e719e08a6dfa57b3b1be60a1e263b350f4eacde5727edabb2a2be584febfafe0d22ece42e758b818ba3afa824f43b905fa626164dfacacd011d54c8594feaf7ac4faf0c2f43944f8f6f739d27293e75a09c7aeaf4e5d326ae9e4f5c3d01009b14effabb4e6b28e60998e387b55f09d06171bd6d4187011f6abf4292b954\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -973,19 +1319,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcf28f42cb49ccd75fa7e54ba418fcd991111d5f4129246ac88a77e5214e642a4d8e97c073f3af5c652c1a165ef4225398c7c94f18c903c437dd465304087d70187cd10a0cbb348a4edc9d7f90a724c418ac57d9cf92471feb1eebac3c604ec5da99a479e9795e1ac97c63e3403b53d8d2400bbdc1639920baa792384076900dbbabc7b6b325ec56694fed33e9cb5c7f3b40a91d4cf56964e266614447f25d4d0796485905d4b0879b044001bf16ba3a55ced53a94b0e00c756aa3dbbc5b260b64c1ce599612c69183dade17ea9fdd5ac44d7d5a4fee1348e425d2e7cae3460949f89f43ae5a195ecae00794c045006bd1bed6b3d094b0b25e3b5694af78aba0032c8554291e77e1860458e907cc5c2687\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce6a8b6086d0750409358d7141ee7450549514d09b6b1a827332087189e81351a040fabc979b3346f720e5114878db511790c234464edff1c5e59cab46a193b96539dc941cdfcac58b29f905f12e479cb1d26cefc26b569cd911b604d60f80556b989eaa5bf3e3d1715072db7f740692572acb594cdef91fcb53780f0ef54d2938ca7505af0d24e96abaad261abc0279f155168079957d8173918856c0d830cf751668ca7f2c1135c748b7446dfdce13a150b6b1e64923f01ea372d4dab76b4b924995eae1e7ecd91fe36476585bf1ab4a0552bd4c39830be772c47f2ee89a7343f2daaa62ce49e6e70d774892737171676dbff0c58468e23b653a9f2ae33a51b79ec16f6ef653b1aeb454c618041a73b\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 505002, "Plan Width": 36, "Relation Name": "integer_encrypted_1000000", "Startup Cost": 0.0, - "Total Cost": 736191.25 + "Total Cost": 779111.56 } ], "Startup Cost": 0.0, - "Total Cost": 220.86 + "Total Cost": 154.28 } } ] @@ -1013,19 +1359,19 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcb7119eb60232106d51c55cf33e10845b9cab118f2dbd69bd1f8a51a71e69c708eb9ce74d7dc21d89173cc27449d218a91a171d8fd58eda154a787dd1bfa2a724778bf424e2c12e1114db4554bbb670d5fb7891bbde0ed2c974313108074d538713145b575cc0c169dc3a98e0f851c70b8326dc7ba511d564f54639564a2ff6e0f44baeacdfa25bc448f723529a07b966a0a301c32bb00f8c1e1295573f1cabff2137451e37ab5672bf0a862111155910682b8456ee9a9b9cfd6958353b73b6208e17dd215d207a796afb8790e07cdd9c5f92da803eac86a083bb3654de1638eab39c210ba3d70e2aea44bba80a2e4d33a82da6ba938116cefa072c21cad029eda93f4a7dc3d1daf7f4681a89a0ac7c44\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc43a1ddec1ade1332d580d84e400ad9bf21691674d9edec0a1ca27d2c2d11e7c071cb97f10b33a98bc723350a42423ab0dd795c5a8347e3988a57f57599d058b161c97821aadcfaa8106ba32a7e21dbe4b46b57f4a2a1d79b56e96fd3d35520a235cda31312ecdcc17aec5b43aded4495b31006a25d72dca981c939e0351b3dfcfe98cf25896c488f13541336442e82cddbc625fb593b534672cac0b3a3dd30bd63be28eae0f3540007fc26fcbf7cb79633325cd94c3ce52b9260e85ec9368c777849d03910f89a6be4afbeb542104f507e5a4d4f9275d2922fa250c56b443739cccf1f5e74f71728219714d637e4773fdbebd76e6ec9a3d5fe303715a9d0f0a604840ba7f9df2af6aa1dc5cf16e406c6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 4950001, "Plan Width": 36, "Relation Name": "integer_encrypted_10000000", "Startup Cost": 0.0, - "Total Cost": 7361905.25 + "Total Cost": 7766074.29 } ], "Startup Cost": 0.0, - "Total Cost": 220.86 + "Total Cost": 156.89 } } ] @@ -1066,10 +1412,10 @@ ON integer_encrypted_10000 ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 10 | 1.20ms | 28.08ms | -| 100,000 | 10 | 1.35ms | 30.54ms | -| 1,000,000 | 10 | 1.10ms | 28.18ms | -| 10,000,000 | 10 | 1.19ms | 29.87ms | +| 10,000 | 10 | 1.96ms | 30.28ms | +| 100,000 | 10 | 1.51ms | 29.06ms | +| 1,000,000 | 10 | 1.34ms | 28.90ms | +| 10,000,000 | 10 | 1.16ms | 29.07ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -1098,7 +1444,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bca312a3e2e91346fccfa7e1e73602090d983d69dadc05e5db49676b273551a87fc355b31dc329804542f93d17c67a463498b75ff7ec9503249fac50bc3a8029b9440d50832ebf92d5c23ef249c4f08a7fccf67d8e82bc15a9ad391669869dba89b8a6c082544bc8a5a3095186eccf71494a2beec0115605b56a0603d26e2c5e2bd4de6f8c3e1b9f07bd4bb6ba6f972899977547dc254b31f019886c76ce8ac1aea86f7d397773651ea1a24c8ba34bf18d1ff9df0ae42bedee88abb323942e6b7b266dba24babd21e6f757dfa02ff5b88be00f15909ff72a17c74ced3f6b2376ff8ca7c50958342bead3f9a2dcaee0e108f1f465fc354acc8f5cd4a09902cc52707da38f7311e51ef77d82ea93de2537ed\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc14347b7005145baed64bf5fd2b8c091f589680a0075cc7b0ffc370b8403d88e39ef58e2e11513beaeb537b61e17653181c5098ad15b1b4938d2295de2d7182221083e77a080cf8d5811fcbbbb8915865d1c1ca4f1ee713737a75b21e2874b003d9a5e9ec064049a77b210642d44390b830b7ed1001be4cdeed88ba168bc01d5714ddac2c8ba033bd00da6aa4eea70669b3ca6214f798d3abca3debbbdc0aac1bd8110a55015cd6dc522f8e1fe161cb6de2b1f60456d5041488cd50dc15f9ddec1076b2202a0291c2a34a28459ffc061ef95890d8829788296cb6a4c54c8ed3e6c886fce7a37ed38c84c42f83f79eb0581b6592858e80879d01d855bcb646e76612af9987ffdf73d0d65127b8409d5388\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -1140,7 +1486,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc32fb06f4dc0ab36ab1c28b25ebd021e08aab8952a40ba32ffb2c8a1e417cd771d03133c8160da2c0efaa4a739ea7f4457b87052666b3f7e18d82b85be132e368d47a2da4af0dab2a70887fafb9b37924f239ce2639d8de1171faf4fd661c3501a4d1d9cc66f9a8767d019a189870d99127441e4956b25e60f159e5e50d6c363943d096aa7e476ce737393d8344b703a0aee037c9718fe7fa9ec646833b65f67102290d0cd8c6d444b823fe27f4edc44652fb3f3c3f42e88acf5c01ffdbb8b38a1c91da2b65db407f6337d5ed460fa8a76499f883082b0c7dff04b17443c3c257734e1c7b26e782b6e3c7b8effac4da10fa0996ecf03f1aaa2bd2663ebf2814cbf57504215241512f4c07c27e1044c377\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc45bfb34f421b183dbc0afce3324395f8bef03f4e86acd2d9873d90821dc67ee31528425717dd7ab738e15f40335adcdc3460689f78a87b3db6030b688cda7c956ced6821448aca5d76a79c74742ab7fc12523bdd5a82c94083a5faf23c56b77c0ab28ef07cb4fac38cd5059659a362986d4f172f43e3ed178b00925553d54b5a63f17f625b6e99cb9af47e1b2cded836d6f8d160fb9c4f329c684bd947b22f2cfec1fca5ee9a194ff77a41f351cfd33a4412fc82acd01de3347123f23dd773f6e4427dbea13f354adc736dc7f592d97d68349758f1c25e889fcce2a04c3d6c3bee1fc2ea724dde039c2f7b817e5ef7549a198ac130d560296230209d4c52ca200438f350a726ffb9231d9b70100fb30e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_100000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -1150,7 +1496,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Relation Name": "integer_encrypted_100000", "Scan Direction": "Forward", "Startup Cost": 0.67, - "Total Cost": 98196.07 + "Total Cost": 98196.21 } ], "Startup Cost": 0.67, @@ -1182,21 +1528,21 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcfe25aa74c45f540ea9869d814b87456326344ecaddb887948106a4a8afd92807632d2dc6494c7ca7dcf2b8f88ca9266b8fc24c8a69d516e89e3d19f4d0cd8fc3f7b4c2919ee8fab6e47b4940e53e2d087adfbe796bfe69d06957aa10be28e290d167b5bcca6c632090aa425874ecf5a30de441cb145253360f9bc3b5b4b7d71d17e635c5e3ae729975e9a85f8ecf3d8a6969eb441f44b90e9aa3082190734dc9276fdaf7f7b31d220226c3d4d8187a3f7a76394691dceeee7ba0c1d94337413f495037588a28d454f595705a1c7b3ac3b2e86e94617b0c2549599ae518cb3ba46dd8bacd2a0a66a31962fff3557cf93fb56c476e2adbdc0f49ee7ebdf01a741bfecd7038cc43e48a35b3e1dfce63417a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcc7454297a75c940d0951c142be9814e95ec61cd4924e18ceef6e5339422e134138e197fb11a9b5ffaf528ecfdd29106b069eb2006af8da90a4adbf1e870ef0dfdeb2c01cb92b7ea432a9c5f320ff1f7fbb94bb2ee96eaef5d9980765a818a423adec67987cb6bd8ea297fb9c70c8be9c8238514f049602b581d884494a25d1c51b0bf2c7cffd3ed35846e7b19b4a7f7ae42f1871e99ea271f9596c446135319b172fdd89d1c4c718d9443fedfcd83f6199e3eca994f50f771e1b86e0baeded94fee1e70065464c7c38b9395bafd86ae52a3a81641fe4cce0fc7a7d1573dfc0e6e264097915a6688509a5cf1693b73ce4c9baa47dba4f86437f05411bb2d99915740198d4c43c6c2e2921c75cd7ab1943\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_1000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 505002, "Plan Width": 68, "Relation Name": "integer_encrypted_1000000", "Scan Direction": "Forward", "Startup Cost": 0.8, - "Total Cost": 847836.63 + "Total Cost": 990161.03 } ], "Startup Cost": 0.8, - "Total Cost": 26.24 + "Total Cost": 20.41 } } ] @@ -1224,21 +1570,21 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc289c53daf516e8568c88adb4f2d3b23cbbf7a042fdcd1d6cbad70010a62ee830bc54df044bb9e29efe363cab6fc4ee4c3e39d2f8a9ee67cc65c649dee782e170148ef852e50bceb66186e0fea1be6e01145a88d33344152b04143be84e12a338d80e1915b300915d044bfb40037e18ccbfb0519ec06bcdecfe08e4f3e501109828f3c1421d805f26c94939e3a42cba0d0f1b60be9525c804f26323400d823355c5c05a6d8c6f6a275b307e44243dbee6725d69b0cd9a7c34a92203edaec1cc29b595f8e360f7b3c46a996626e1e734f75be6d272d3bdf86dea2c60209b0d4cf1f744cee86267dc086ca4d62f8f45d0c1a753db67911a34e7dd5545b580597778307a13ab6d7bca8c3f6edcd759b75d54\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc24f6a359f41fa3cb965233c1f31d65223e5fd83fa64ff6710ae83260a215b9d9b4d148c6297672bab63eb4affa1c28e64db59dd5af66b045c7d6be898b226b92ae831f7603e284bb1fefaa90bc751f632bb090d4438d5f600fb7289fd77b5485af1071fa0fc7f1bdcc45fbdffa5bb08e330bcf5987b536e9bba026c6f030ce6564f7107a72dbeaa665eceaacaa37f766d8bf8026a214aaaf8c79467ed8db91eb01414832c4742e38f909e8b234049d6e80c34d6533388ec2305aedc60868a03d63986a148a7952194a8ac88f122b8273a30ac4c14b1cb76adecce5a397aa7db67f507bd3d5b86e8e080e4c7cfb8bf96c59e31254b3fe5685f67c6414e79b01174f5146ddd77969c4a9f330134252ef67\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 4950001, "Plan Width": 68, "Relation Name": "integer_encrypted_10000000", "Scan Direction": "Forward", "Startup Cost": 0.94, - "Total Cost": 13113848.76 + "Total Cost": 19385383.19 } ], "Startup Cost": 0.94, - "Total Cost": 40.28 + "Total Cost": 40.1 } } ] @@ -1250,7 +1596,7 @@ Full `EXPLAIN (FORMAT JSON)`: ## range_selective_gt_100 -**Description:** Selective range query (~0.17% selectivity) returning up to 100 results +**Description:** Selective range query (~0.17% selectivity) with LIMIT 100 **SQL Query:** ```sql @@ -1259,7 +1605,7 @@ SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 100 **Parameter:** `2140000000` -**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value > 2_140_000_000 LIMIT 100. The threshold sits 7.5M values below `i32::MAX`, so on `Faker.fake::()` uniform random data only ~0.17% of rows match. At this selectivity the planner switches from the Seq Scan + LIMIT shape it picked for the non-selective baselines (`range_gt_*` with threshold 5000) to Index Scan — walking the b-tree from the top and returning the first 100 matches is cheaper than scanning the whole table. This is the same functional-btree path the EQL query-performance guide §4 documents; the non-selective baselines demonstrate that the planner correctly *avoids* the index when selectivity is too low for the lookup to win.** +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: WHERE value > 2_140_000_000 LIMIT 100. The threshold sits 7.5M values below `i32::MAX`, so ~0.17% of rows match on `Faker.fake::()` uniform random data. Engages the ORE btree at every tier (10k → 10M) — walking the b-tree from the top and returning the first 100 matches is cheaper than scanning the table once the planner knows the predicate is selective. **Note on stats**: this requires up-to-date planner stats on the functional index expression (`ANALYZE
        ` after re-ingest). Without current stats the planner falls back to default `>` selectivity (~14%) and picks Seq Scan, which is silent but produces misleading timing. The bench's `prepare:_table` now ANALYZE's automatically.** **Indexes available on the table:** ```sql @@ -1274,17 +1620,17 @@ ON integer_encrypted_10000 ( - 10,000: `integer_encrypted_10000_ore_index` - 100,000: `integer_encrypted_100000_ore_index` -- 1,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ -- 10,000,000: _none — planner picked a sequential / hash-aggregate / sort plan_ +- 1,000,000: `integer_encrypted_1000000_ore_index` +- 10,000,000: `integer_encrypted_10000000_ore_index` *⚠️ = Query time exceeds 100ms* | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 21 | 1.20ms | 30.31ms | -| 100,000 | 100 | 1.80ms | 41.75ms | -| 1,000,000 | 100 | ⚠️ 1.319s | ⚠️ 1.425s | -| 10,000,000 | 100 | ⚠️ 1.418s | ⚠️ 1.525s | +| 10,000 | 21 | 1.21ms | 32.00ms | +| 100,000 | 100 | 2.02ms | 41.51ms | +| 1,000,000 | 100 | 1.90ms | 38.62ms | +| 10,000,000 | 100 | ⚠️ 2.092s | ⚠️ 2.262s | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -1322,7 +1668,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b97e769d90c4aa9a8664f6041d91455ab95f38d16a8d06669d4393487ea6b1fde1e9532e3d075810c7cb75e2312c1ccba071e065a23c2c3d3a795fb836994b62dd2cba44bf078dcbe8ede1f0da70b421fcb6a55bdd32f285afe0a8220222afee937aedbb92a2b194a84788b6d45abcff27fa4549e99bcb6c1455f529609f6140fb5cbc35040f21dfd54508018a0a25bd0c4c9d35e526b7ad0843121738b0feee112e30d6cb8d6a50f1dd5c5bb7c50353132130126f16db97a124be86b4b499375ac323ae8f3b4262a34287177780d745228248f4271ef33e241274647edd2e7bb9ddcedb3a20db9a682cba094412acfce00bdc7d690e9502058a1b91da23040b9c8851684336236c699500b7d827d84454\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b91dae460933df85e4969c1af944c2e28978bc4808c2e4f10131b732b607dac7eb48f29e66b0599ad7182328009dd2b61f89ba48fd10657e90a6c1f16fd41e97fbaf99a11818257f963c1bc6eecde30663acdc615d65a0653b21704d00ff0a3173de2d878f31fcfdc9c34c77ebc71b41f1e4f0dd617395e5797ae691fc2e5864765f567790a9db72d781467b7f6e1b83cef0fb5a34b54983d0a195334289bf80c6f03ea0c7a1011e4c0177758c82b54eb4b5cd429895f5f79bba741349e330d04b4c5fea589b5765cc5a8584e55c86728e0cc19ef5c808bec946522e12d6c97d690da317f5f493c51d0eb8ee79a859e2864d057a50c5cfc93cc0807e18b9aaa251e349afc80ff526bcbf63b9dc41ffc567\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -1333,7 +1679,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 16.91 } ], - "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b97e769d90c4aa9a8664f6041d91455ab95f38d16a8d06669d4393487ea6b1fde1e9532e3d075810c7cb75e2312c1ccba071e065a23c2c3d3a795fb836994b62dd2cba44bf078dcbe8ede1f0da70b421fcb6a55bdd32f285afe0a8220222afee937aedbb92a2b194a84788b6d45abcff27fa4549e99bcb6c1455f529609f6140fb5cbc35040f21dfd54508018a0a25bd0c4c9d35e526b7ad0843121738b0feee112e30d6cb8d6a50f1dd5c5bb7c50353132130126f16db97a124be86b4b499375ac323ae8f3b4262a34287177780d745228248f4271ef33e241274647edd2e7bb9ddcedb3a20db9a682cba094412acfce00bdc7d690e9502058a1b91da23040b9c8851684336236c699500b7d827d84454\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b91dae460933df85e4969c1af944c2e28978bc4808c2e4f10131b732b607dac7eb48f29e66b0599ad7182328009dd2b61f89ba48fd10657e90a6c1f16fd41e97fbaf99a11818257f963c1bc6eecde30663acdc615d65a0653b21704d00ff0a3173de2d878f31fcfdc9c34c77ebc71b41f1e4f0dd617395e5797ae691fc2e5864765f567790a9db72d781467b7f6e1b83cef0fb5a34b54983d0a195334289bf80c6f03ea0c7a1011e4c0177758c82b54eb4b5cd429895f5f79bba741349e330d04b4c5fea589b5765cc5a8584e55c86728e0cc19ef5c808bec946522e12d6c97d690da317f5f493c51d0eb8ee79a859e2864d057a50c5cfc93cc0807e18b9aaa251e349afc80ff526bcbf63b9dc41ffc567\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Relation Name": "integer_encrypted_10000", "Startup Cost": 16.92, "Total Cost": 226.86 @@ -1368,7 +1714,7 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b953531b3b060ae34090ce80ad8482fc3f7762b9c33883b4da2c2f076642d3ed31a6aeff2b3575f09ff7f6310123141304841cc74996d88850fc4ed1f989f4a1693019e01ac64f4c7f46a67c7a1aa6e5e810b697da0815820d5c58f730940200e6676e103c4bd6746b27e374fef5fc76de8f5efe5f547f0c42e8fc48d4a0ce0dfb5f299cb6b36b9d5b76aeb113732d9b8d2acfe5afb7d9e6d59c140578ab4a9d48f298ceddf20a7bf028c04ce603ea91f30a2c09e03e7b20561ab94b23f0dd629b98cfeafbf8400e34f14ab8272b5a00358d9b060a0844768cc814e8a764148f29f3063d95818f26c5b7fae5e61e5d954045faa5cf50958bf6b96b5850afae14f3ab58ea7120338014aa91e85a496c5b13\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9358a15a5e641746b7c6b66e189423d4c88a64df34327a742e1ece8193d81f95d623e0dfd605ded1cdb56a0690278539530b9d2c2437dcc5bf6c7811fe180ca2b2290c0ed9dec1a8c7c9370dc255211b22c425a0a074c63b77b441a0b4eacdfbe703fa8abf7ca3d5a53d4f9c796d8129d90bc964f7a9f92f38560e4c5bd3a1e774bf50bcad83d1ad8346da0b6228f28030edf79ee04a6445ccef6208586fba71e916b61706536965a95cceab3c54a89478da21a3d6c88d86845a142501a1f80d9a18d33fbee14ec3b393ae83304e7d3b4f64ee3a20e45395ba1ca08b86bdc553e22b4583c26b8e66db16f0eeafaf24ef3295156365e60099fba4b0c2f4a946c9cfc7415acb93a1061ecc738114f45caa0\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_100000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -1392,7 +1738,7 @@ Full `EXPLAIN (FORMAT JSON)`: ``` Limit - Seq Scan on integer_encrypted_1000000 + Index Scan using integer_encrypted_1000000_ore_index on integer_encrypted_1000000 ``` Full `EXPLAIN (FORMAT JSON)`: @@ -1410,19 +1756,21 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b973c9cba3bed1de176e1e0c737f3e06a87d24c01f532180c5c6077db31a11b5db39e39761370cfda38eade049692bb691af812eb7057175beb7df44a1e4280960b53b78b78d98b66568e00c60af82a8f01eeb4ca38ddb63ccee9b03ed6cf2aee3bc1c9ff7c05c1ae8754ef48c774f9c062b25b984fe11a69cec39ee6752ecd2595afb793db146724c17eb97d35c60e41ced6ebd7927cf90b486116e1968e7f6a4cac146ca749ef16bb38375c397df01f3df43ac1126fadc672d1709aa748f3b7d085f49723bde2c9e9e142f3b7084bb70b8f036275265f3f5ccb89805e1cf4308fce7df350e57c3355a25e958fe8ff0923307e5aa76c1a2ec1f8cfbe9b781402a8d8650468262388a0b9a78afedcf53ed\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9cc6e472988d60f56a47cba7d9f30e0b64788545ad1dae1999c46fa0b156e1d563f48daebc786bb70ddd61e32974a69ff117a5e76328f922ba4b6a728aee7aee75e06f47c38560954532333812d8322f8c433d41947ca9c3d626dd95cdf01ab694e17346cd07c1c1869c471ab70218ed87648af057fb257188b8a25dc0b0f1974c3b3c7c20ecbf543001e7eb4c5e0ef7b997122321b55f36f294c760a1a172897c72096fe39bbc637ee039159d7f5a5383ae1f4d27c5aed077d2b3e70f7f4a598195da798e683799c8b902de06cd5639baaf9dfe6c3ee74434131ad9b6ff51b7e2c2c777714cfe9c8dbbba410f6696b1543feabece5b01e8c58ea66190e540b112a9b4837b01342bc11dd829309f33937\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_1000000_ore_index", + "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 5000, "Plan Width": 36, "Relation Name": "integer_encrypted_1000000", - "Startup Cost": 0.0, - "Total Cost": 736191.25 + "Scan Direction": "Forward", + "Startup Cost": 0.8, + "Total Cost": 22557.45 } ], - "Startup Cost": 0.0, - "Total Cost": 220.86 + "Startup Cost": 0.8, + "Total Cost": 451.93 } } ] @@ -1432,7 +1780,7 @@ Full `EXPLAIN (FORMAT JSON)`: ``` Limit - Seq Scan on integer_encrypted_10000000 + Index Scan using integer_encrypted_10000000_ore_index on integer_encrypted_10000000 ``` Full `EXPLAIN (FORMAT JSON)`: @@ -1450,19 +1798,21 @@ Full `EXPLAIN (FORMAT JSON)`: { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b90a6e72435955f17eca00bb5f24313355ddd769245e20eb3cf26894ef43403ef5ba9310bcb83c432fa5351944383f549d9f8f0b826c16146da7220bfb64a1fb262f2b0495330e0bd235b375daddc8c3f0bb7c0e0744c137e356ad043adcd0cbe7047298e4b5a14084aa7e52acbf28531f78b25828bdde1af75b0089afef8c1e1c70d8cce9adfac3f687fe207d7b779e3aad4631976390402c9123618ca76ae8d5fe52ddf11d8ad8f27c860cb5b864516351a6f5c65e2ed17e8cf28f9fb9998b51f4e924d5de50227a42d29284139555cfb259e673df19abdb2a6bd8a2e262c8ef98668b023d9add2135c159f4a0980e7a207ad001f0d74b0a7e02c5b159f12b35ab41f1e7454438c7be1d02bd5a0bd7ba\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b94da6a5c9730d37d11cfa0560bc682cabfa753c419e4719a7b1568265a12319e2b810be016244a215aa315ce894faf33a304c17197f68ddc0c5203ca82fd55a34870e5f445a834781ec684e007b489678f925aa5ea2083eda4bace925157a22ee9c1f48d64c33d18907cba79f728961e13d1457e95644139c3df24d89ffeb31d195b06d4893ca4d8a90cbadeed07fdba653fb4c62ee72e9e2c00336ba41dfc6160151c5370f7344881919a877daa7d473d628ed92b04e39da3e29347b705829051cc6cefdc8151e26582eaaa618fee547cf762daa98399af7347ed463730a56f6801c3495c5e0f880f51bf6820df041c0e16f67d4e85b0582a3f4d52fe493c66ab0f6378b831e6fe5edadb596c59260eb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000000_ore_index", + "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 50000, "Plan Width": 36, "Relation Name": "integer_encrypted_10000000", - "Startup Cost": 0.0, - "Total Cost": 7361905.25 + "Scan Direction": "Forward", + "Startup Cost": 0.94, + "Total Cost": 225527.79 } ], - "Startup Cost": 0.0, - "Total Cost": 220.86 + "Startup Cost": 0.94, + "Total Cost": 451.99 } } ] @@ -1472,3 +1822,345 @@ Full `EXPLAIN (FORMAT JSON)`: ![Query Performance - ORE/range_selective_gt_100](query_ore_range_selective_gt_100_chart.png) +## range_selective_gt_count + +**Description:** Selective range count (~0.17% selectivity), no LIMIT + +**SQL Query:** +```sql +SELECT count(*) FROM {TABLE} WHERE value > $1 +``` + +**Parameter:** `2140000000` + +**Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. Query: `SELECT count(*) FROM tbl WHERE value > 2_140_000_000`. With no LIMIT the planner must process every matching row, which at low selectivity strongly favours Index Scan over Seq Scan. The companion to `range_selective_gt_100` — removes any LIMIT-related cost-model edge cases and demonstrates the index path in pure form.** + +**Indexes available on the table:** +```sql +CREATE INDEX +integer_encrypted_10000_ore_index +ON integer_encrypted_10000 ( + eql_v2.ore_block_u64_8_256(value) +); +``` + +**Indexes used by the planner (per data set size):** + +- 10,000: `integer_encrypted_10000_ore_index` +- 100,000: `integer_encrypted_100000_ore_index` +- 1,000,000: `integer_encrypted_1000000_ore_index` +- 10,000,000: `integer_encrypted_10000000_ore_index` + +| Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|---------------|-------------------------|---------------------------| +| 10,000 | 1 | 958.35μs | N/A | +| 100,000 | 1 | 1.46ms | N/A | +| 1,000,000 | 1 | 7.79ms | N/A | +| 10,000,000 | 1 | 77.18ms | N/A | + +_Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ + +
        +EXPLAIN plans (per data set size) + +**10,000 rows** + +``` +Aggregate + Bitmap Heap Scan on integer_encrypted_10000 + Bitmap Index Scan using integer_encrypted_10000_ore_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b91a80367663852bdfcbc395253c06c9c19d4bb4234c922426de81be8473af8ab59a928fbff4b7f6f70d275c6b00206fb739b00718ed29aeebbbad1fa73bd2ed0789d978867c805e75a42d2517e204e9a807d88bd71a40c8c975cf9bafef627ffefdd245ebb16b7959f956a5916e058dc6f757866458c67afb9f17f60aa1fa4366d91f9ed39cc0d642c80329c3d762ed4a70d7818ac373604b2a15f1efcdb7af4605006becd7e953169cf2c0a1ef5c970875ce3c033f1d15e9ae7c04ef0e0674774397cddbaedbb588d1ad491ea5e1d74bb13f55290e2e9ea95cce66ee2f7e36963557a39358de046dd56a7d263254b0abde73b81fcab424245c1a5aaaf4c6d29ea997cecf2ccc24eeb8fa1181ee17c050\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 16.91 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b91a80367663852bdfcbc395253c06c9c19d4bb4234c922426de81be8473af8ab59a928fbff4b7f6f70d275c6b00206fb739b00718ed29aeebbbad1fa73bd2ed0789d978867c805e75a42d2517e204e9a807d88bd71a40c8c975cf9bafef627ffefdd245ebb16b7959f956a5916e058dc6f757866458c67afb9f17f60aa1fa4366d91f9ed39cc0d642c80329c3d762ed4a70d7818ac373604b2a15f1efcdb7af4605006becd7e953169cf2c0a1ef5c970875ce3c033f1d15e9ae7c04ef0e0674774397cddbaedbb588d1ad491ea5e1d74bb13f55290e2e9ea95cce66ee2f7e36963557a39358de046dd56a7d263254b0abde73b81fcab424245c1a5aaaf4c6d29ea997cecf2ccc24eeb8fa1181ee17c050\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 16.92, + "Total Cost": 214.36 + } + ], + "Startup Cost": 214.49, + "Strategy": "Plain", + "Total Cost": 214.5 + } + } +] +``` + +**100,000 rows** + +``` +Aggregate + Bitmap Heap Scan on integer_encrypted_100000 + Bitmap Index Scan using integer_encrypted_100000_ore_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9cb2fa1de61f20783cf700958dbdc86fe842e6501d43305c38a1e009b32d508c312c90ef12f3ac4761c63cc40f96b16726ab527a83508f025835c1c571285a81aa11ef90d28d65f2f60ca84e39f1b8e8e1fddaec53a536e4c7c4bb61fb061fae99c9c2dcfd81f5e407f2298f9f1042a707e3e4a338928c3797845b44f4a2815cd68515c4c80b6c391ae477bbc321223c9509010c237d2322552bfbbfd7fd507b1015feb169590fa5c6622cd5041cfd866e4fd7765f25198786a4aabcecfeca4ce9f898c47d786639785f602dcc06e5a78547b07f498e8f3d2da57cb9c07aa7aaaec29f1f5fc237fb80c3742d2723e91ca1c6a4d99ccf4207a412828212f02e1872ba17e28d316c8338cd43190be359dfb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_100000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 160.42 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9cb2fa1de61f20783cf700958dbdc86fe842e6501d43305c38a1e009b32d508c312c90ef12f3ac4761c63cc40f96b16726ab527a83508f025835c1c571285a81aa11ef90d28d65f2f60ca84e39f1b8e8e1fddaec53a536e4c7c4bb61fb061fae99c9c2dcfd81f5e407f2298f9f1042a707e3e4a338928c3797845b44f4a2815cd68515c4c80b6c391ae477bbc321223c9509010c237d2322552bfbbfd7fd507b1015feb169590fa5c6622cd5041cfd866e4fd7765f25198786a4aabcecfeca4ce9f898c47d786639785f602dcc06e5a78547b07f498e8f3d2da57cb9c07aa7aaaec29f1f5fc237fb80c3742d2723e91ca1c6a4d99ccf4207a412828212f02e1872ba17e28d316c8338cd43190be359dfb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 160.54, + "Total Cost": 2109.63 + } + ], + "Startup Cost": 2110.88, + "Strategy": "Plain", + "Total Cost": 2110.89 + } + } +] +``` + +**1,000,000 rows** + +``` +Aggregate + Gather + Aggregate + Bitmap Heap Scan on integer_encrypted_1000000 + Bitmap Index Scan using integer_encrypted_1000000_ore_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Finalize", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 2083, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9303e5e42d7aa93e853d4cd2cfd026e2b789aec720254a8e67101993039721b076eb3afb9eb0dfe84b93129133a06d9f8bb6ac7aad0eec110cb7d286dcc591ed6c2430fdb333bcb29dd1c18d029fea02819000a1713c8e1abddd3fb338620b1808d5636b4027888fc67079bfddca56c591a7f8a1cf70a8d0281b6dd446584d5deadd261e420c30908be061542fdde4bbb6f669b6915e473cf9c8955806c044f274e14d4277c6a331b2cc0c01b411263e9b07047af7fa93efd92ed73cba8c9499bc6869ccac4c63ff6aae4fad5545917c50c275cc17c21b7edd5511e505618f6651cc1b3d9eecb932838a4533635e8651f89a2947701a3b39ceb6f134a679a293b6f25034382cbd274fb90b1a488c53693\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_1000000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 5000, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 1598.3 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9303e5e42d7aa93e853d4cd2cfd026e2b789aec720254a8e67101993039721b076eb3afb9eb0dfe84b93129133a06d9f8bb6ac7aad0eec110cb7d286dcc591ed6c2430fdb333bcb29dd1c18d029fea02819000a1713c8e1abddd3fb338620b1808d5636b4027888fc67079bfddca56c591a7f8a1cf70a8d0281b6dd446584d5deadd261e420c30908be061542fdde4bbb6f669b6915e473cf9c8955806c044f274e14d4277c6a331b2cc0c01b411263e9b07047af7fa93efd92ed73cba8c9499bc6869ccac4c63ff6aae4fad5545917c50c275cc17c21b7edd5511e505618f6651cc1b3d9eecb932838a4533635e8651f89a2947701a3b39ceb6f134a679a293b6f25034382cbd274fb90b1a488c53693\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 1599.55, + "Total Cost": 19587.07 + } + ], + "Startup Cost": 19592.28, + "Strategy": "Plain", + "Total Cost": 19592.29 + } + ], + "Single Copy": false, + "Startup Cost": 20592.28, + "Total Cost": 20592.49, + "Workers Planned": 2 + } + ], + "Startup Cost": 20592.49, + "Strategy": "Plain", + "Total Cost": 20592.5 + } + } +] +``` + +**10,000,000 rows** + +``` +Aggregate + Gather + Aggregate + Bitmap Heap Scan on integer_encrypted_10000000 + Bitmap Index Scan using integer_encrypted_10000000_ore_index +``` + +Full `EXPLAIN (FORMAT JSON)`: + +```json +[ + { + "JIT": { + "Functions": 7, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": false, + "Optimization": false + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Finalize", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 20833, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9c22306bb84f2ee781c0cb8f7d53003060948ab2ed3082927e8862e763fa2342a844ff626ab7fe272b282a43d4e0c68d8c0d6a3874b55845ede4a7703ac1cba89ef0a4218b287cc7c21458d042a0664196c4eb69769dbaa42e692a0a14a23523453cc5186247a554401d396c8659a21420c6d22ea18e03dc07820a4dcf1c15045cefd19f78505615b38ea28d297f05fdda6da1ea2af15e5e09a5adb5f364a00ef6f72370675bb96f4c0ac07a8f7e56a5319f20543b1978620990d71c1089600ce66d6121202d28663652ad230098e1da5856d5874f2438c3a87f3c5cac4d906885bc95325fca5794b131cb8590ff5081e67ec424fb85f94a5c243d8589487a0aa86f4fc09859e72eeed9ad139336d9112\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50000, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 15963.93 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9c22306bb84f2ee781c0cb8f7d53003060948ab2ed3082927e8862e763fa2342a844ff626ab7fe272b282a43d4e0c68d8c0d6a3874b55845ede4a7703ac1cba89ef0a4218b287cc7c21458d042a0664196c4eb69769dbaa42e692a0a14a23523453cc5186247a554401d396c8659a21420c6d22ea18e03dc07820a4dcf1c15045cefd19f78505615b38ea28d297f05fdda6da1ea2af15e5e09a5adb5f364a00ef6f72370675bb96f4c0ac07a8f7e56a5319f20543b1978620990d71c1089600ce66d6121202d28663652ad230098e1da5856d5874f2438c3a87f3c5cac4d906885bc95325fca5794b131cb8590ff5081e67ec424fb85f94a5c243d8589487a0aa86f4fc09859e72eeed9ad139336d9112\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 15976.43, + "Total Cost": 195823.06 + } + ], + "Startup Cost": 195875.15, + "Strategy": "Plain", + "Total Cost": 195875.16 + } + ], + "Single Copy": false, + "Startup Cost": 196875.15, + "Total Cost": 196875.36, + "Workers Planned": 2 + } + ], + "Startup Cost": 196875.36, + "Strategy": "Plain", + "Total Cost": 196875.37 + } + } +] +``` + +
        + +![Query Performance - ORE/range_selective_gt_count](query_ore_range_selective_gt_count_chart.png) + diff --git a/report/query_combo_bloom_ore_order_limit_chart.png b/report/query_combo_bloom_ore_order_limit_chart.png index 588ea4abfda57511f79507781a01684621b69a57..6aa8fd7f68ba17cf1e94535a209e8e99f174a24c 100644 GIT binary patch literal 41345 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 literal 37959 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�_2T5W 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 literal 33946 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 L8W-~vuHF3?#yV63 diff --git a/report/query_exact_eql_hash_chart.png b/report/query_exact_eql_hash_chart.png index 1d84a872243529051ccdd40eb1c645b04db1997b..3d07d08538de489a92e044f5f6b41f96bdf6bd19 100644 GIT binary patch literal 43050 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%0A2K@fAihV0_<}5p%T)%2rr8m$=e!q` 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 literal 36589 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 z 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 Ic*^_#0l$VeiU0rr diff --git a/report/query_group_by_low_cardinality_groups_encrypted_chart.png b/report/query_group_by_low_cardinality_groups_encrypted_chart.png index 180303759189b880456365826a577be2d2c8a1bd..3dd45cb78044426f4fcc58032b60310c65b5b85e 100644 GIT binary patch literal 43886 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 z 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 U)s~`*$nOxp_c&B};P{1q0SBi$FaQ7m diff --git a/report/query_group_by_low_cardinality_groups_plaintext_chart.png b/report/query_group_by_low_cardinality_groups_plaintext_chart.png index 76ef4f7476627ede0319be177b97c9e047bf3976..ead7e8223dceea69d5b36467a696c0dd4e4f5d4e 100644 GIT binary patch literal 40150 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

        30BXUf1=0>Jzw)} z$9m>LGx=lj56OwH#at24%F0lgigmzj0)$NDyjeMT9mM7PQXe!i`HF!v!{eekxWR5* zky}}^vrqJW4nO__u@S_b|r9pYe+H6=5h*6j3wXn zBPERS?|$L$t1M-6dps=*gX5(PFF@UuekdH{azd#3J#5KN|-#Lhj@eRyV{S z)j;)taPwpldv8wyw$e!thUOLX7gri3QUmzx5=AM~<4Qxn>_%OQeJElydD;21^Ek=` z6E@smQh~krfLwbf6d$2&Ve6_{nU@)gM|*_Q%Hx#nhca;$1)9cFQ&WBE6v^-b(W1lO(HHXo6YpF|M~$!+yGEKK1eWE6O=69uwwcL+Pd_mSV~thu z%MhINj(EORX94PA9Ua8a>vjWzUuMQ>`ss1HYkxVl^3wX>sW}iB$(T794t{? zv1;b>Pj<`uDjxWmReXeLi*nzuRyiRXYek^MLVFi%jiN*Xmz~Bd`fjH!TLcmVvFqQr zYWloqD|uW!nlJZ*Oq=-XtQ4)AcIVhe?BtZvN$?Y%jk~!4^x%*j5eaCRTcj!F*RqC4 za>;|HroD{+F16Zb;yU>$GZy<5-?jFW*+w!mIaG-=Wb1Jj>_%7Hdcm`N7}0o-Fu3X` zGag*w5|YcEkfAC0djR`kFDyABy23%RXMwD3@qF=i{S-HvG#=wbgf2&_tqL>2o;a$rn!-`GLy&sXlVs((ONbBaGb(T#I(e-@K zDpmfYrNyc4{qqt#Yrsa`(pRosOPi(i*$GydH9?v&QA87L2v3gS0`| zcr*~VDss&g0a#=htLucW%w)MGHebc&QN!JTD8E(zyI)s%*14&1qg^N&_`E(UI=Xvn zKfZsMEWX;ZoRQc+4ed<2J-mvG8qbW%tnEHqpp$mzsen~o<;p>p%In<1rSA;NX+(5! z1@dIL%m)ew$e)hg+0^2SB4xQEw<8`#{)J`VGcf}PFrB?59hOY(jVcbK!!t446C1%CyoU zJjCsU&`L(Ux2goC1jf?B*3sdwzg>!g4wR(tu?7Y&tfQ>%RY6m_cbrhr!P}jcr!&x( zqN1WCCDL7FgxJFbl((Q&rz2LGsi7{3QX%PZ<%1!Jkg#waLuFx7s7d98y^#L3S7_;h zwa6R9ZDuiRVRm^~C*;zL&Tf_M4e>9v4IYHLWMgOib?qJp{B<=8J>tBJvYn;1#W`ZF z9-q%I(VxIW+|C}iTbV*x&1}`jmqlcDKalZTwUii($>1bi?MKSsp*@Y7Ca^&AD%jkZ zNPd7p5QB)r6?wAoA%@Npnm0>V!{lPnI+Y*BwL`S6uxlmVJIUi_CrJK%Oe%6GUO?{# zP!I20(9A(Vp2gYST6x9o5KdRk>(mTq>e>2k%%YhkTWC$YhfWx^d)(_ zEvYSaKF1oD;lWlG#sZ48A-})UqE}osH7KH$c&a6a*0tj)#bX;Zp&cxl>;vNg=z)n{ zh?Z=_XPk|))PuefuU(>bE&(LcxDopMy04(Wv^%A~06PGjg>5F)DYnHbwRmPyP2gygHj= z&D+=4*I9E)?oKXstNy>YK{YoWA=nWXE$BLED~`Fv4h)~+ZvC+DU&NsgC~FV!1$)!?k`zZWm+ed6Ofx^iu`>!6@n z4J7%p2#3Ixfn}rR9z+!D_&Bn%?%Tq5&ZDr zy%Ux#naW|-@0di)TXFWq4m~AJ4zte#9I^EP9h9qQouDVkK-&tGpIWY;I1xhCcl+vc zb8_A^H7TE<@fp?H+F75@wFKy=ZC2n86SmTxW5NgAKW7TuN}w>KiKhkFPXh7hkDi@w7bOUkUWeh3XK^U7`R`{0Uj*H!g2xV^fy-YqQ5=xC6J}2t!>;XTH46MWXi5q zzKx((cbc3-`|IsBiCNTmx6o%CWWa4fS}9{6{eAoUx6-E0b!rJOf6W`yANtOA&Wswf z|GsGbYT)gDME;e$A0HMIFsh5{+*_q}@wQ^~zOw1mgZOFF)3#2Hm?Xx2x9|K+Yq>FW z9RVyu;1Cs>ocgJ?#&G^@T(gN(;+rX+A0s#I%XG^Z*AtMid|YB7H{w1L0PtM&`-X;w z+{yY0f=2dzIqJ)8_kWdG$pWF4ZzLD8Sp#)@!NNU^bwSB+z z?U~1tH<$HNoeB4Hi`-*H4=j%|B#FNZHbCpqbPBD_D=GJmHgh!336lfjzaEp4W zmW*EYu_CxSrZ=YJJ9;`2XNiozJlyy8w1p6H+w^W77GjE?Y`iUdHLyI3!+Fj*snP;V zRbC}|=@tSx)Uw<((9c=O#7I;~q|ijNqYx?5)w|Qnm>Fblj>{J`F%fXu#_js96S1;v z%tAfN+n+0oZ46QnVgl9Uzf?o5%0{<$4xvrz2m33`yDr1}24W4`8NYpyJ1SnbBu*KVW3qEtEQ}poR-tD0wy~aTVH=K1KHrD($9J*Y(0fS)NTCr?_&Jr5;cq z@n&UZ&1pJ9S4U;({`uz?x0>U<0p-JeJJk_f@|o}7zjxUI#A)K2H~)Ae(_Y!sWi-+@ z5Wf)2kAl!Xz=}+*KAQl_vm0Xdzn}Lno(3%bMT(y7SIbLYF|8C~1IMn|L$>V?mi51F zK4=Ej$i@F4FouS>p(B|J|^$5aOra6-cu0Yspk^P}QD&n?-J$q@jR& z1MnspB{&GK9}k>WGaBU+|$Z2ftSLOlu!mL=e@7g`zX5u*}Q+{x<)l8jmo zIV9KKy7yWcyQtAVjAt~uDXhmMU}yE2eglj>fD)f9zD|Xs49FH;p|x>lob`Mdztxz; z@nl{GWonVI#ZIxp=I?(-rsbOBUfC;$G#RQY$?A+z-O+}nRu-?eF;*}Sf-ROsev&?a zPv*FD7_Ki@~GyLyoAt+!>%(-pu#>VLLVxOC$Utu=Gzn=um%?0+=-ZOjMWKG##(f$YEEyL7101pWP zW}^ZjV4!-iGtHp>=+S3-L^Z%*x~?vTt%Xhhi$bB) zH?d%?jw0F2P~oo922nLmI9e`cf3d@d{QLDxR#{IHrNqUr;nb-!?JvD`+X>$}5pOQV zqDesvbr!23zb7q2wnn7E2*iv%3uWf^1+3>~!#ae-Buq`!p@{?XSOn zwPYY%rQF&+mNp{TQ)Sw4LSgZ&RZBzY22ZlG_zH<`qxp4a5+yR?mBypqkGU3E4V|mi zroy>bOy@ZiXLr@t@T=$O;W4k*Sf3~{E;*s_evRrJEPesu^WDw@voG(uwnkMEPYOUK zMZb=g!sX2Yb)Ny@+c{dZPyQ1IHh8p_v+8kv$pCgQ|(7eND}+ams*N!4=&qaWQMHHH<^ET`hb*3sBL~|%1 zh=GqC+H=pz78sU34Mn?BY#35L|Nckdak*g~c%l3PqL{G4njj$hz5^LEZhXK`IoRcE zfm&A2G1Ph;q(SOXuZchH8mip;yQAP+WHgwF^$fD(Yb(Z+mQwXxwrI$$?@;6F`@=QY zluaz2o6!git|M1@x$u?SVg?7$S)Y8f>c(NGZIb68y20JL$#}zdO&OyVS=mhp${lg+ zXA=2|!;#BZ(6wdR{;c=&@8?);RYn*(vXhF)#Oc$$3A!p5z^5Hh9jso?Nwy7#0H>Qf zi;%ilmN)qpmfrv6Aq{J(3A>x~spYT0tOzMEexUNY zMY;XkYe!80se)C)F{&PDuy}vr>!5|5DN-FTO|~=qr|2qH0DfK_APZ0cUb?Z~!kK5G z)=^D>rP6g2slqu#;0haWhMj=^F)r1!(M%^@j^~PyF`~4oap1KDIja#@Jr*d`PtJLo zfTaR5hXkOuP9^*GYs(}vS!_R>1aOSmiXNqS08DK=pi=rnU`I1OntH%Zq00KA%)9U# zQ`7Kv`u9sIWr%~l6&z$K;y_+9G6AjMzIgEC<*5*qQs6Vf>XT+nX`=vQ{L|Y^!g#zbLO7ft#>OYRNFe<=F5~$tjib6MN zN%2@{L9)mD*9;srQ@&DfDolhWwVpqJG5e#;?ht!e={{1)ZABn$kFk}u^{Nn;GE$j5 z7Qf!3x{tW&i|XUC#U9PWa)AqajpVn5*^~^L(fw{QpX*BN@0NISbJ~;79Y&mHak-2V z`BW0qm8E)1`F8*0|Is)`kmlzo(=uszW zXu5{<1Is&#G&6xuRr3Lo%yKMvQ=1XyA|yiZQyDn{pj@uz=kftE0{8M(Y2)6a1Gla* z0V`RBMu)ebBd7uZxyxJo;umN1#hUiVLB0U`5la_wq_!|mbh(AH5tg* zDjXr-Du4K#eyM-q!?S_jidxEj$9a9P1gL)kGhR@`LfA!=nmJl*^r{0vdIjd$xxd|+{M_9nvTGWEGdQ|l3Q z@HH9c((#Bk5Qj8m?IU=7ryuq(uy`}&#$=LwI!4!z+^3|=lm?lO=-@-P+x&dm#(*5;EcOq<%xWrE0PW=%6;#4 z8258LhtrxzLa52+I=tc57&c;!;yIt{)^bKWTf5d_1XjNIdQF@8QG){y*R3y>YI8FO zK>k!u_L=SSe?ncY9k(pyQ1HFioz}qh?^AC50{=HN39tmqTF6_L&sH`nrA=##0Tnxx z-Hs33-@6XH|1-A;(q~FT1Xc9z^{JT}l%WnW=@Fi)t#XwfB^jj;AW9M?U#3W-Z)||z~s{$xlu7Pn%?iHRQ zQUJHasNsTBq(9h5*_tiwGwYx^0SW2Y?(SRyZY*pGDqxdeZdjx* zVl#q1!{=GQ18CJy?Gc;vUE#AV7VDO8qm596L+h~6v}=k!rYSc4=E2l`Ew0UJzeu3e zl+bcc;Is+dh%GwweP7v_^#buu(9V(Ga%Yg)@h(Y7T|*1;uiqHA-zc;+V2rIt`3Ae^ zD)*q#%#V7MqHT3o1qP}jKftQH_epRlC|&S#{0gfIPS{ix;td4FSvG&R4p15&}vy14Pv zqaX@5guq`n0VPx$z|?h`>Y4S52IEVmsv+TEb}tJHS2LPxD?YjR5a`9nc-M~5H2x5F z_LrlLLQk!2#x*cgM7KrIVu4wOqvLY!5n;@v#xhuB)_=aUF?iR9QGB*J`~;1bOg#`h zMxq`%tQ zQ-7=Ii(gI@tsdiLh-L};Ilqk|pOE!k%u!IrlO|I{hcF7yn`YSZ8Dk?c_zN{ z{;iMg0gA~g3)Qavv$^<({!L3Ju)_6(OQLfwVa^wKzM5>#K2uWE&ir`&-+TlFC)}_WbXi($}EL03<@mOpmZgeT_t^^XeKJ?GOb4A$reB zXzVLVJi9I?g1DlwM_v=_QP_;4bA&W2fr}+=fBYlSpI)_;f&RrR<%$pnBw!G!py~HA zfbcb{w3G(AbazUQ(Yh^;ry^K8eRg%BH+!yOb-1Dhl0}(#!Ehwt$sJ7U3t0!4kPddg z(Wh)JE`Wy5(OALC#OY`MdfC=(`nQ!GS=bPu74hj&B->Lmpn87nP8#2vqS@tBj9pn= zGzIA!B`y1I*GLKvu$)hTk^7mn0U?#-G}Pq|vMe=A$;3&oeyx!*1EemAX|PL2(Z*~? zD&+_O@_*f`kD5skSaZU3cdS{nY7SX%x|PO@@O4|m4$G@j`xDrt-y_8u4?U&*1{-vn zAhQ;03!WavcnzTn@Hk`%Jcmq(8fnvM#yR^y&n1hyMb99q(v`FN#+4Dh(_&FF)kV(d z%JVbB5~e94Op!kliuh#Un#wO48v6g0a@bt2Q6M$;UUbF!b^J7{ZEiKT&hdRwE)Kmb z(SN-?14#-EssG?Sk@F(Wjo(f=I{uYD>y&dL&k7oO1^iwDP%#1$G`P#KL(Jd+BfkD@CL_UKJ2EWato>5b$Jpq#BE81K5|C?dXi*K z--jMnNr#+@J)$;EsH7C=^SmKH+?#sf0GZ9;y%95?2>n!&v zuvs(+usH~X^IhnCD4Q4)w<5P!Q!@WHSoplCZ*qlGPfGHfWa~fYG{Mjkv>#9i6_oG4fk4+@u`*r&T(Br}$Fb26boy%23i_IXAb z@|Ltlx+?|#B+1F}->B+%$>bk$FkGt=YNcS45wNJ-nsv_#k{d!7kbM>w$iw|Coiytm`e}lu;-dxYwFFLdF@kO zhh6tG6VO!}S2Q|!z|X3KT44Dm7$!jWa&+7cq-T|kdGqmW`9h)C3{cL_F^qXB@70PB zdm^$Q{2zs1KDU7>iZH~fI-pbsX5X`4TXDB661J(ldud81nXdipIlDhl>I5(3 z_d?LY+M)ekUS`|#G~~QIv!jmRy(#N= z``)`NbjUX!pOt%;wl<$EdY#NABB0*=vst5T;x2JKuiCKCSo`d`EJKc1)$azkosV?= z6Zm$dh!9+H@6Ga9!${|9dQwuWQ~}$t|1D$We#m{{DW_(`z@28ieyL^BN}!fgQUC9< z&yL~Pw%Vc!G#N$TY8TKyP$THD!S&+4J}(k)kh!2ipe9{%&kPe5nC5jWMv z?Ny_0qH>cr4y_Cx*2xI;bRRJPbtKR=VF1`;2yN84(880nVU!Tr5ic|7pgh9;7f<#2 zEQ4H$v4N#acJM@=Zksviy7?>fYBNXBpRE~Ro*}`CyzwUcc1UV)$P6J=8wD}FMY%%* zsB!;0Xor0_>ZA5-8;TWjHQ8OvMB=EabpQLXCI(@9MjEcGb$d3I6&V|3ZsIWR`0PI} z1q9;C6lRK4kn*c=S7!BWAJn{(Kvylr#L3CI4Q4tX-v+T_oZL1FeckEPdsjKY^GPM( z^-fKWfA|>S8l1M<>9NdA9#si8n1-@}H)kC(txx>jL~@rS{f#anOTzA^?4WHs*~-Mo z!_^c?O{M|F82=psF>xupHW_1V(DU zKHUaraNjm@KGxJJ1IU@9!-t5`R-0)s!gQ54mBO`%<60UKXUaHz|2INr7`rlGb`#!N z2)<%&@=+-93Fq9U!V(4M?lB2Q3xG`~MJreP*{~;6&F=VDdudU9tv*O6zUonqPAS zw!&=g-+z9dOvjT{BL0hun3oSeDR z!HylH5*4UV9Mb`zuQl3(ASmJ383QDjM*t=^6Txg9(-zN{`r(MW16)NW&Y)k53wm9t z7g1XLuK*lU)TOiaLr()U@8Xtsfn6>Kqs+^z8W$hmPq4|;VLyUVi-5f?2$B;Z_eKF) zJTw##{oVwImjIB-m!~j)43+U@e`;l8eoVr#*4_VeJ)t^(XIK1l?TwlNXG40JfO;4O4;r7`I*&Vm9x6AaIbvw@J`iRd3Kl-<{VdLG!wxF)%ql za$^TK0-k-1H%64-QwJo^>nDS{BpGU>;c&QL>5+wqv?E1k6%d+4Kw+&h7DBc%tApgT zFbhgcOIx`Kq=%GhC2PKjB=!J;{G1Vhj8a;XO9s+tR1~X}pp|Amp!nASc*2{)!djyV z9G!A6vKkrul#)(-VL5&ZAti3JjFd8~OZuW!JH)}FdIc{PMc?;UF-L5oQr`Rbmb{3% z$yaRl0B%ZL#VnOzI%^&SjCl>++mk0x+5@WeBgfv{0ZLDMz;pV5O(F)^OtFToIJ)YO zA3t`6;5Rg0pa4;~!!91!!!?JD~mJk~3dtdxRl>$gI!gu>wLlqyuGb z^7QM0IQVYmDcZ|AT(e+cuY4{Qaj8jkkJk#Wz!%G5RPq?mxvR6VM6_+V=`M zGm}&UEW{a=wx3n7#3?HAhMNM^E(= zCp^vHkoVhmyhxEhliJuLOuI)(dDa!lOb>xo)t~&Et-?+4fjdPCvVQT!`?lmWeV^~w z7%a_b|4jzrxVM-jVHL;bNB4bF1jr3_AGaFoK2{XY8XcctqOMuddc&q9F(gkk$>;mV zRON3#uWv^rU}j!}Te^H6JPOxh|E2YuWmZcC$RqSgdUNh>ue0o$+PXT+#9Nyyi-d{)61>_QpZN@ZQS1sKPn2$E?oGX zkWbC#secp>43l&`%ocnwzfN=axVuo(KsFHTndb)NCNCX-J+?bdHx5WEHwAdQ5VYtb z;f9YwKwRBnK7N2Z`7TTW3y~zB-<=N)JoInhZ-x~vExUfb@V^s0#SSe(@d4k2)tKlJ z`7|l&F-@5jg{S5JW~MLM`!&?0`l@};iXz74246J;0XFL&!-MzF9G_sftPH)!kLow!DJy7TeDGiC zWbf0Id+7?(^0F&8^YJ`d9Mw(=8?$FD0<;q4`aYT;S!wjf-^$Em`o8|V^9RDJQ;Y^$ zwQkwvKDtW<-6c%_OaC>ef!(xrjl(zPqkpFQy#Hjo;aaK+YU-H74-oaIe8OpHr2Isz zc^YWfNeTmw!ku}1@eU1j?fA(GYc12Ay$3&%#Z#J)ty&%hP)x_pSA zxdP^+9jDgR(kAJ4F8>Kwn&$PyH~XH09u>=LOE(PmWa9O+?g3-G_VRCuQRq26_N2$4E zM;2f?B)}|oNn`I(u5BN6iW$!yuNJR5J10i_p(1EpisS9srz?e;Eqe}tBVOh@UXX@u z`7Yw_Ktu=-?L}DN_yw{(in{WqCXcUg&`|H6x?i;xWhTnZA?yhR?$E~b?yJP(&-*)V z!X7CdKugUoY;7h801ZO9>BY=9%v^sRMW<}qxn5zN#A~seY_X^w|L)&lR_o_~4S2b( zg0AhTL9o=)k(wR(DD%U85HHY;rXd8gKT^J z{Vxrly$XwzFS;RxE{oaLt?cdr^_9%=Iyt?#l=MP;noM<+{WXp|@6Pe>rB-XQ&;P#c zE_;nnx0_%u)HIa+Op>3on}hav>{q>+;~W5TH!dm8vE5Iyl)s_0pmp`tJ@40|X!9~%YQOit4dbZ=4^@=xHj+-5Ur_N4spAbidNzh&RZKwPF)nD7+ z8PJv2ZDmtlmh4bcy6!pNYbbb`;i=dS_T%s0qSdj9iLJoB{ppjx-}=64rY;3F^u6Z% zv1`70Ib+Bo=Ue>4`jPbP1!%UtGlq59%KkrD7?6(d{HPfBh}C{Q)#)?adNH8Ek8zzu zdb)Pq;P2SE#v6Bhn>r6R|74P**0TN)D2U1IIGOF16Q86hD27EAD>OQ(Pb)B%|S>SG*%cn)KOg>04K1_2@Y7myHaFqAy*n;& zS$pQ#vs&Y;k%uCMu#8(Bu@7k+G!7jvE$9w}r%gWkZ|#F>(ZM6P1A=zP6ThA2jP=`- zN+_RvI27M{`>%CkgeW@ciLaYXJ%yCVYJnuua5L!N+WUXwzt6I*e!=;SGUIOEoFt$5 zJ%^bC>A|5Ft;bn3=Ei?Xq*@)#{(mKrn?Mp-zBhB6id$oo!pz|Iyde@PZy7;*z#`Ab~G)u)s1e&P6?ZSy?>Eqg{DeB>z z-X}NU*+;Mj2xRX{L}rUaXO$g?dvGnM^dCR{x-4?%)L-AI>0D);pXn8o8EV%ZGc-vt z5&4?&{QHpx5jesjqBl{k6D+qcWhU9S6Ic@xFr~%cte>kKXJ9rUbLa*)sKYqqo!X_c z-?bGsumYR?8G`68Jp5~5ccoo$X)tCINE}QvVg|GiG<&(iwl7{g+RSrwTn$@M6cH1} zJC3k1dV1cJ`uMKQPmk+3W?h5p#$-wSmpPW-)8Y-|yXo7@o%Ejk{rtDjQA`ZR$^p=! zbGt}kLQHSEt31a1x7T0e_}9{DqB~NK5=ZjqCw~)%efaaA{~rAk1}L1_qH_IB{oy7@ z#kGm~8}XFm#8D6WYaeS@+`50jav?o>qo1&-4w;<-f_DA!%C}wsdTxc^W>IOn8d9?s zsmR1a-1P=<-A{+Xh1X8(Y7>9@mv&BBRr z{_8;E5Ijm87v}%Q7dAe{`E*}d6sGZ7s0 zKU!XU=S;93U*m4SG4)0VnnR*v^5IE)Jdj*3{PqQ|aU4PwI!iG+?LScR0J#gKj_S9D z!v9V!yPhEa_2h|r7h0?l|7MoPOLm|(TG?DRDEP-ffiQv38W_koKmkhmOH53T9!GKp zfJo@x_WyrHJM;}66jCWh+rUqi=JOC*{0sD>700f$U15jC(N9gZW0OSPvt_JXy`m6ISw&oUqZbh;mr=g`KDMLwj zQoOn~S5mo}B3ri!5Dre0e?-83<)q(c0j{e+0TZ!GLRk;%mCzEjj=>FPjiU{0FZJX? z5z%Z?fOtLMq%@<*rfIAa^6t%>N7apI^wi)SQXPB!N-^b19wEX)0NR^44{V?=r&K`` zu;0@ePHOXz!eR3-ul%p!9sN1{@^Wn$R$5)F_VTGMXFYwq;dx0Bj|uDl@CHB#rKpk* z{5nP|NJIH0AkWYM)KK=#aKT4*%~7#{)1ll1j((7&-|80uv$ngllSH2Erj-EQq4|T@ z)V!#ajEve9R=tqfAo)2U`|PB6qn`xb2H6)jIPtUT#hL$8+gk=iwSI5I8#%~PM2?~$ z3Wy?IN;jCaz|bvH(nup|Hy{ikjS47@bcaO@CEcJB!XPPK@7got|9Ae+^LszMA6~y4 zJurKA-1}Z@UF*88MM+t1!Ct7-YU0?1?G(kED?*nXG5MpSL-oUwi)5k zN_}R~od}9|rD7TUj9<5hAnlPOmQD;)WTP#Vx7+Xb(GFAo=WENn^tSkTJmb#dK408p z3ArrS;bWsv+Tj8zmz&Lp{D)4lbuJ_bC++|H@6d5v)By7Uu*hacsz=;cwKlZMcl*RN zfnFSK`zzT5Aw-h-BRpP=QDT9;wvirpD!pcJutQ-F)ueoIskRE&uPdl{O31r(MXob? z1xUAC(C89*Q#1m=Q)+B{Oa0sP9ghyNs{WI5H!cHh3eMY(*4!2}|L~VkaA)s(3#;B- z^XQ^`1TdtAi3!mAD=nr1bnvFLGTE!(W7wc}ukpXg<@n7VtQs0oUi9Bx?=)Fy6^Fck zJfB!V5fWiCd{;)4txSp#UJcw%R{WqHU{K=nD%w%~V>Rw+gV`XCcX?*bOyf6$?z zj9XAjEPghlY;ujL|0i0mqVOKQIU|>P=)|d>1&L;z!Br;0wTxO>=kz&KCEp?UYp$92 z3*(|k3JE2*pHo^`4Hg?Yj4#NXP#(&g9Vn+H3M_w1$SV- zAEP40G=3DzXSK-*zxbYBt<)gpZ=ZB~8F)kM#YiE^xHtKvXJcz%A_2^AB!c-kpAxy? z>x2!*xO365ZY=(!SG1L!*-132Vniz*!B_lGTETx~u3>4hjUMkfUMJNPsoTXGZ^%*e zVryyR6JW9pE58QD#~Q++$Ye!5jKJVV39zt>JcNuTsJQecmisQ$)P5HL(6-gMGFzS< zgC1P~+n;X}LO_87cl`P)eDaf1OpY&)H1_o9P50yoprl8sxeBdxogY-h?br#e+h9lN z3lJX0W<+pv(>mE(9>0f}!fr5BrUSMz9B@7nKt6`1bo?OfuYtpb&<7QS4R$;wbJzB1nHI6vFBy4bOu4V_1y z0Di(zhgs0PvB{7_;rn6LQlE&!i`l-@MGBAML@Sn8Q`=QItAotk-37C(ZF zwSAiNYMdT=+vJ+o#^O_KrnPS#rzv%~#&LY=@4)G_x5@sSD^q*Y;08B%FRgg=U;`_M?p`I_r-BSk6z28IK zNNGydR~I5(WH^VqWOgL_NyPh~%E*B4v1)lsy%Jj43_7Z&Q-8|*n!<}|D3SFUgU}eT zEm1loE=}uglRiclxYXew{E^H{ARgq|RQ0b2iW3K8$FH9UEEYOV)ULh8mO)1K9f#x~ zYL|jTlw)m2VUKC7)94Z)zYTCdew7#!-}qBIgT98Qh6T;K3EsXIX{PBfweWwHsBxy` z&t#dD>w?IR9n>N1Z`Dr@SoGgY2Zcs^rLUJlH!b1Ii@l^}&p&83=HarX(+Ws(6qy=K zdWOC^mlFo|PS;G_!o34SD%9L)qS%ypy4bN!VFp?Ic*c-w;VW(#b}t0WEKuylCC1N7 zUrj|N9GC+_ibhx1l+QkABYb4KYwlku^;$Uj3%}|z_hcmqXJ`+mdF&Y!#l{HP1Rr1&*GN@QoLxIk{M}RE zX~V{EGn{ihHHA@souG!p1w}@n+dtb_+LE23;v-u&V&6#ct%ZO+RoW0oORQ_W;H$;< zEb7m7bq`JUj)`E)egsQde*18LMxJoqdGkB1<>Tee3eB!Ja;q!E&Y~Im`|6-A_mSAM z<^)D|dzO*dQvUVNPrgrjtxHyW zpDqdg7zW~|jZ?IUX6MACCh*09Kl7prKMq@dnj|)~ShI6ZF-@ZhJ<|GjN`Xh`V5u8Q z$ZZGWpEdM$;E(*JFigAU&!%H&ffhPBzq>pzJ<^aV+Y|9qy# zbk*i;I3yc!=iZ>_fc*2qQK6-gcEq9J*VDdlteSu*G%X9hN;QdzOFseLfC0wzBsObRXEw~&P2LU z?=r}Sq$O?c&d7MwVozXc!Y9kc&h~sl_OoD7>mSnuVo|3Mz0o0;=YT(#&v@uCi`J%s zic8J7%wt5H6ARuuj(>iwZf$%nd~suyR5JkFM64MSWZEPM*EBq%F>~3+Wkpgc-Oo>U`xb^=&PRl~tci(7qY>vt*Pm%X2S!UD*`dgW@Oy5RUqp-RIeygg(%K{gLC za1WwRI9F(b_YF_0>}KW`?3u3Ml7j1g3eI@o#L);zOp52P{&q-%(lqZ1u%m~pag#2- zmf;|N%qEg2lJj)nR88a3O05T`)i_x82;xv>OtexGB>9*M@0(yF=sMBF z;MQSPSsl2$10HgUX%Jwuc?i!mh$m*Lhb(%zE+C(AY|ehKC=Ja%G-S0h|1|!Xq7=^F z0L*MPl{7eI92%veIGR|1))Z`Z!3B0*$`CHVGi?gPZ)6;CoCdr(h_pK7{UHuh9z{q#5 zR|4_kEB1umv(TGjJr;>%>m+blUUYcjYH%@4d$oX0s)e3vCqZiOLKos7MkY&NeXd=BFcF=2qme+Ww{FonNY6J z;Acy%s`sXZWNvex%OB`<2F)UF4O{p5{mkUjdwk$UkFOY=*{^EKn)O%O5WSibWQ>3x zL{_@oZDa+F#fcr*G+~=}9)sr^oI%_+?^~`UQd(YZI-k$TILgzp_lkWc)XjV;y*7GxvD?U5qAZ(mvyQw&c^uK}ko)P~ z5)G5I`p}CH%D9J7mtMFBmE>jgl}A04)J|l9d~vL3z$yImQ+g>|G=AEuLy?sDF@a&K=!%lPyA)KA@i2cZ1 zXji#<^!U3!N#le8C>c#ra>hXN)_c-u7aphjsVyt|6j<=Bh>vm&twPPuiUxbM?f{N9A7Ckm!Dj;34P}2c zX;H`rS1b;BuDi`Kkn7GNn6_-Pm|e;=p9G_Q$NWix9yGPJj;eKRU7fPz5_3b z;%NNl_;LI?;fA%s*duo6-=FE@W%!!+?t z+W7(vJ9t@wa|ro4;`2{pC@)RZqZd?4X{m$x20jdJuMck?cDd=ENr+G-d`z;|zvG_g zZGHmkgb`3DroXlw;3BUfH&mXwHnDMkXJmKBX0LG1V#Lo4u-kj}=gLxditUPd`&>JL z#RT?VkgX_=j?>;GbLr5S2I0&RGcz+K6&0aZ*vK5LWVkXRciP|Xyc>trivnzwW7+m} z1nbkh4l?!qDPZjz>qyX11buKnGyD44%fhSeyitubre+tN-WkQvkj;NOmr`)Q6WA>K zi$n>J+4ww0Ip#oosqWQy$N;;qE`w>JPNI&!9gkOpK_4%@q)zFT9zOn4CL;FFRra_to$Bu(PDB32u#Cb3wDae88+ zwI+|KGyfc%M(ZimrmT*v8_KICLjl5fI(+A6#{q^P78+;W=%1a=>7SkbiFr>28}>;^ z2tB;VTZBiqUmcCX>#mhEQfP7&NfQNW+$1Yf!G*mw9-)_PRvkd0cY<(4!IzL9utN`{CrQhDv`o_c&w(F8>e_h#;Jj;#GiAua7m|hlpHt6??$h>?3-FXXjFM zGxbjaQt2^fPk4l(X_Isg5zi@qG`Xf6KDB5)hY}$^4)3WrN67YSyNRv^ht?N!$QRdR zwyn+nTHkC$Np8|-g8a$7kCn|4Zh-NZiHkP{J%_E0*2j%bC~v!dgP;*~=R6T4ciH!z zJ`8OUD=8}pjg#^5DCPXz4^?H*9#SXCg^-;7{(MWqd*U^hSoX0~>RuU>a7~=@q>Fy* zyIBV^{a{+_Qozrn`>R0fa18#Oj&S=U2A8b&n_hiL)obdz4d z(V70JsA#)Jh@DGL~QiJJk&$<4{0&l`JijQFCR~BNP6=N^uKF0aNUIvca9< zdXW$~ZGjtS1KxF^1aJfmo#x;3hV{U+vh0zICv|RvrBfNe3>^3a9!MMHCxBAnAy| z@lVmU+CAU{7;LZ$L5BVBd}TE?k=xoBOxV89s1z$&*1zl-nCl*LCTzu{NMeoz3*g=(DICNwuG_b7qh7Y^P(n!& z468x5fa@w!2k#m~N!zt#3%#iloj)-Byo%#U)zE>8s$0u;s2R0S7V6fLt8C=PMO}{~ z^!YMb9T9OdzPeyW+>F0}|Ni6hc9wZ?c(6XXu_5^NG=fsn0x0j>_qwp?IwckvhG7Im zOuaLlX{UyhD^PI2gaDBX>os&pb#^O)6KiC^_D1xm0{J`edu#woB~7tu_tc%q^&+l1WNI2kLtAEQ%f;&<~6AsE-o&$_b`{A963iG3A#>oMzwJH zUkBfjzs)f&#efJsW_AH|9pKe~V*4sNrjUZ2q%wUwQ-1kJvSenCNu9YEHJl7u%(S{r3w zZQTL(m3^@od+46fT@7W*Q-p+pMTp}&trc4Gg?Xk~wD|YvL;#82%7#p_&VS$zG4@?m zwu^bT=9k4N6$^dz^vF;^?Qa4s;Emx-*(OJg`lkT#5O(a>?#?u@n3eP2D5!ukG0(n- zpM*V*?lmXkqgDI6%wzNE+hty7ZB#nH#^;yO^kad&BCIhUuqXi+aR z<{Vh)wwDQ^W!`U+mdO8#LU|6c*zof`+Jwu$&grr6{W6GrwIf69c~EN$Bxo{UpLemh z=LER#>y*2{dp6g1wqx%BBy>(g*+>x@$lSO()KGn|9O3SJ7tsXvu|5@LK8Je+crYlx z_U&uxP&|iJs3u%U17^LVb!!42v#yuo$ei zyntT~=tHDk$`gsgtH_{2!go9w`QDd(%fJcdQI}c9mgYcxmfDw^lao^cPIK0|FrEX> z+D4L8U;t}Vi@80!%stbLP+(kH98AT0ci%lnW7Yuo@w@x2X+n z(e~q){9bdJ8L?uRO9=#mn&z>LH_i~Kex?#G)zlhgu=iB`i^0A*ZtH#wF@2U#K!RB6 zs)k(jL2M90prEA@DQLd`$bT!qw%>f?Dp+X)mi4BhgeuMoWYH@ULU)@nDT|PGDatK zhmRZ0vnu$osEr0G08KZ|~*hW4i_9x6_ja&@2}+_L&OmSS{b>>VXF za-{zy1_n?>)ZV4UK@({7ry3#Yj2i{DhSgN0g|!54uURVfqsUQ2PL>ME7HjhX2Mnv$ z1QqfT!mBmd;|$D%du;IBl>B2AQ|kW#j4a5;#hbIxXUW^YR2$v2jEZ;m>_vMQ+)c5!9-Fr#aN;vu~*Eu$5L+bOOd~4TO!xYOg zY7v0Dkzr=#LdSuXJPlCg$qkNdy*okrqLD*plxD{w942dpzPH}@ElOXs?drmS`yMK6Y#TklmT$U~B$V-DHsk%gtDaMW~SV;Ro@wivWf*+s+1 z5nDvOKf$H@z`eYGG<^RIv?yCdSu++{X$AM%pUa_8l1k6_*s^2nP_d4XX zR`a8^Xp3bXavxN{DhNP}&%$SVCKG4$kU`{X2Bj(iy`F=-3itl1M@tFunh^g3fChHr z1gd$#h-DG}YblYRuvh1}s;zxGgj4Xr7Oo{^)-@hk{XQ2=&5AmB@t5$mg+SLB`hbnQa?x+=_AFJ)df4W|(&D`}WvLHyRk5it+CVyNR>d+|G`8dq{mwj$4S&1&E zPM)O_Shc7JcXurVpJh>tP&LYv`8w6of#9x%SC9M9Y3JXzr>m-DXS|T?qskyexhlIg ze-W@3_agk%kFsIdIOZO05KeD@O;jLrXloB6f&PI?5$@6NyJkl2Qc0K&AZ)S*Q#DvY z%wv>_|G5ngBO-W6XuiB4hE(x-LJhV7=6NU>}Qkq4c$5M!|7?w1Cg zTePYGTTC4MRjs%ZooTb|?oW6=_7eZ195VOj<^6s_0G#J9NE}SjMlDSM=tk)SXoJ5g zR;+bJztnYn3@wJBbETaQlJb8%2$5mzBFf$dSsJ6X+gEI?_OsCUL(_TcWF-NdDUhzQ z1K2Bs10|10R&qh1w*E0S8T2mHL{wI8Ij`GJ?#pL15Y|XNc!T}?P5@Mkh(H8hqcLHx z<~>dHL`OFQ1_M-w4R?wSy7#RNm%d5EQVXE8rTOa;%s&ac&I3$_`#b1I zA}d5*R?Ww_|AYNbDk%^W?<$B=NiDzrZhlY0x01iKs?s6ZUQ8`RZ-g<4+$vp<2l&v; zD_)SG8w6nKObzI#k?e;;gqEiFqq$L|02*r}srD{;~SA%3N` zy38FZ!3FQ=rXc3ady>wu*+fzKMQ!3|MF0o6yd1T4XKhWo;B^Ti@l%6NKr|PefTr&c zeW2();%3iTu|xTtAQC_|gOVjXCHh|6VSZ9kd{^1;ae zkq_E(Q6RG0n3cPMzo>L(n z>AzqR$Y&GDYeBKmx$Y0Q-cJ@7@H5e!f$oOt)^#JZtOL+!sutr6$Bdgpnk1H12$#zYj=?lCWN0F6ORurC4kWqU+=jqogDW z?Nf`oWdWvrqcO`KiwcX-u4s)p=?f_SEB*aojT`AMJ_YqcsNWXe6e8Iqj~1}c0l`F< zIwOe(ZCoGxW?}JD4*+X6PH7x!+*iaQ!_xSNbo|S4YKoDl%<{TxI@buD$@vYD95gMJ zzfF3V=uw>|Flp-(!Y9>AP5aLJyjLIxe1ee+Nq9_LNX9h-jxyjEqLF!T(x=b- z9}IXacslbWHO=T50p3AwJk6(=@%^8l5=2!!QMa4PyeUbK@J^1!!NzAJtFhzqfo9MQ zyQIjHNP*;#0I>TGxNqV64{IOi3i={hEXKA#z(}ok>lOUSw+KQJ%}- zUSvS#C5b1dq1fKeyEq?(x7r0{YVh5K5@|O#{}nkTht%P_Z@KuyWbwz!59?A;q@x-b zxG}xENCipddgM-`XF{l00Px5B{Vokp4-hEuBjodjq%WvJ8+^cNqJ27!S$}cDUI}uc z-Z|utTDf1|*=A*Lb32eZHJzfs^5$>(p8jxYb;DDayn5OkOg{GqVus1^6QwL@p* z&<^Nq{WgW+XR*)sa$vIbQ$zHbEcod$OGh5&YgnX!IP+LmBX!btX~#MR0RK z*V*`h-h6kDJUeOWlC8u`3eW_;AJz@XbYm(_y`{9mhggzcy~U}2GvMEDq>SGN27C?@ zN=;lB^^_>dyLsTuKyaMMxE_-^9k9xdEVqr{ zwo@b3)%Wh-SGsiR-XM@8fkco}ZH+EKd8h5d)q;wW8?jl^3oBPrQ;r}tcQ2#?rmF(} zQ&x*(4bif)knx}ehZUq?i_j4P6T{0X0P%%|hF&vLAWs8?t{xCkw4i4HS+={gNwr{t z9((>s-49wq&o~UENhB7&B!s`wL&oWqwxE%2;uGpuwga3+5ES7krMYwtRNN6jXNaZK zftFnaBzoWwqcVolQ!}#58Z*JKWUgLKZ0HPF{|fWvqF=+p0m5p_wM-9JX^>WdAEc-ujDY#M_vM59GzvAog_;I1Z*uR zgbPpiYN3xa^yn}CrCz-gV~Mm74zEUQ_^fw7_zQz*$Q!4pbe6hJS^{D}wO0%pOO*_? z=>Qooq6qI(fhtabJB3em!3uJ;?!PE_{}ddLmJesU+{{kfIhPCx5ZnsAhCNG7&;eK0At#8i-MO>xit#nORw}=xbAHE zl)@@kd-|?B%LoU{vwc|yXrHP3UOSb1+uLEB33b5Y%7C-f_%?b$E;Qiaz?Q??2eJ8U z`D1M^gHALRSD&=_Dw?jSP)_mS;ltQNb3^_~ZcG*`HfP)?tKK1_2LN@h@oh;2QdjbT zlpL-wY9i@GDJ-zRaZzKF&#($7=Y@iYy;M^<9S<>kzx+pD9ooX3AcmJ-xM z%u+@@icZS#fM%ybH((`lqrK$%Jv5;oCZ^*-dJ?grym#fEzIfV@mg?v0PEq>C=Q5fk zRgiRwIWPW*HPlVc{x7ixl9Wr_66cTqzlb$zcu2pnA5C&-qh`7M%Xd$FQM#V z#FUtC2h~Y2`f8$*r~gTF>=jS|XS9oSl?5o*N)VDk*+k36U-nU9paz^GTqRM>H~KZf zELTUA5d`E%pU}S$+Y~-TpiUt+q@Ta9dLqFowA~ zJc-Wqca)8D8rlj(1W6A;bJ*m)itdcKdF0cFf7N4wK`=J=zkcDI?yNY!^GWpVUMW+kdGw8<=#DMe_E6~2Ps&6_5T6c#= zrs>GYQ;r#E$r9v1%!gfkTbo8s$I`@$;B-!390NrvIF{BCzJe&s2{MYUw66AB=piEz zmQdxE_X|R8=t4n^YlGci?!Fgv`cKk>a#fLf24ddeG(~9gKu(BS$|UJVjCZFV1wkt! ze~`EgT%-VsWRUQUC!{^i+?VUMOz`Mq4l*WPgD3lTt`_u?lMVO{cs1Bpo!M{i7!QNJ z)3;25WnUKWh^Hz_4Kr9-T7H453amapMUj+0v3*o@B|%z%#-EV+XgS*I$PlXMF=`?c zzS!j)mkugTT)THfYu32>+2BYjp@6PuC0+x6>-G2bfblo1yje&!&eGQO`L#llMw20n zL`#A5{$ktf7<2z zw%=E!td?iBtV_XHv|=D9?XR_)`^b@mJ3^A^&J~q!xuhAr(g6~{ksbxKVGklebiLQy zCcaQ5Sm41nym1pHssOXIF(1$sFV0N7Pf<5z&s|3EliOne8nQGENR(NJI8alxYWbY?nd~Q$WmNzF;b~ z&!IJapX3=CzAgt5d(v)miOFyvbWu(7P0O{o9w1i?ss2O|C&;kHXNV zs!T`qy#ql6h*@q@+qOTiDf6ZsG_$geWNdZQ#1sEQ{^rb&?K3{e zJW2k%Uz@;AVPJ*T7QN^pqSAN~*eN|^H8|qk*uy#t&167Jal<1t4i&2D_S1b z43K_)cBz{wOkH`M0aFZRzA`>m zSzCp1!*$1rOkaYU9NmTqC7XN|dDo!eIl+bb!2ZGgO1lUZzs%*xVDlKyl zmx#}2{(MLgR&D?$1BlxbC`4U1E`%}4#d6ktryaYuBOS|f;^3Elk3L+SY!$fB!6p$V zLyhDTsi776y5`~hW@Q4JSL4(|e=Ix>3k&JKTK6NL2H2Rx#8a7X%bjYve?}tmlta7A z6z1pH%UrIvuP@xC+7dyKSz?Lo!rJn8EUYIi=2b05l2=jr;a(MO{m@JIDOBK<1s*&Q zWIxqEUi+k47ty}H(s++j1qu;H3_bLlh`XV2P{w_=l#l#FIj^*W%vP3IWkxEiU_1~x z=VpwpfsC7*%)(M32pLLLhw{XlH6 z5hX=2RqXG{g*^viGs(jJdz0lr!sNupbF! zBP_X^gXUVpw)B;eU8hqF-)ld9^5lqF*$mmAqA*9k_b(*Ko^Tt3jNH0%mFgV!{}$MC za))!IA{?Pa4Zf{8=$of`$78q0VR6dnC&~$*kbiaB0Xh&wXvXP;=w&);;h~9kk2h4* z8>_NqU&)ZsM#5_y%J%{2mL!y>LfRpZ`fsP6yoQzVNHrM#5k%OZypN&3GkTElfx*Ab z;hma4L)e?M=|s1sSW5iG%4lzy`RyUU2aSjj!t1Uf|931bm^^|=cJzw57W$YDb_}G9 z@6J+1hJC(srfnpu6^>LwfnG~c;2}`}Pk3!6CYVQ7no=1%ddf}s~aAN}l`$PJYSJ_fhCB{S; z@(CY9;i#Ykm=4~>x>>C}{HSf(%@%b-Z5}SbSSj)n30FRvg`QO|gpNZ#PPMuchok1_ zWPFpsn+mWS84#9a;vTA{G^x7RPFcU##%MS@yVWpzI^4+5x z;n(WRuD!oQ9u7r{A~;2@^Xo)cau~?rqmM;d<#i*G`RR0@vrhQ@*Frz z7FKQY&hjL$)!*1He}8D1aE#2UU919Cx#-;(o0Xe*9_&7v$O#>lu}uiZpyf~|GySDZ zE^os~^D{4(J>%S6K?VWNA4_>BwEm7-Tem*ozC&e|nHAVBlklogL65wypu$Cy61cDnPAGjI^97yalN@~M z5n~q`FYgU%DZ=a04HXNXK>GUyIWx$TJXBxpCg{zR%a=>pKaCGkE%UHCVBLOSA}VW+ zgKW3xpz?0TuHl|3dy`uUCitWS-(FPh{ig5@4=WROWJ)l~)d9%k2`m-9i@S z5y|=uX@zII{xb3@RrkE3O+wx$CNK&#@lb@wzlcEnAPUE&@HPjI}TVj zyGBLM=dl6YYnfljuOl}IrzZWd?mmV?JptR;6tWS5v<$XHE8fji8RbLEQ%*rtJ>% zZ|5dIIdkU85!K&&k*TTm-I>1p!!R*-r-Td&Auxgq^|EDNlzLZ1i5KrQJ*qtZ`9IiE zV+7Arj$004`SyfUM5Imp{3`A}eCVrAXv(5ZZoqO<%FS?Ajo60Y68&B3lvj$?+0_$e z`JlzT&U|JAw04m&yrqL{pv^K5)Mu`vHDvp!sBn5rqvFBh?1PWXE6i+q^3R%8Cz;~D z4tPwgYu!BPq1LjKO~>x#lasB{`XT+|`Kn;n;$QC^7o^_V+`K<$XYLxcil4c)D0QQD zhBkomXvYO*@-)}+Myv81X?|=wyVKXNU-Q7QdkT;lKFjt+U`h)4U)9hEE$w^y=#h(} zzc35VnFTxI_|t7)it$6%;C)`-`R982mU)|c1m5+y{`NHawv{ISu#C(9Syh2a! zosD_dD;Bf57XzN1MQco*`6VB`3eT3}Ha$FL)|m>ft?aA5YZ_)k#RV@Fw&>Pz;Txf- zYN5Tt$1PeI&>*?MVbK$2=Ep@HUaB~dXMY@!Rrm6#ZppSWuL?L{8TqCdw@!QiW?ZS@ z|8>!&A8e@V7K&OsOonsv@eOlH6#43L+off+Cvg#1;$5`>aLPti1FpY+YTC9ZKd#tb z89=pn3+(;Nm%^2pN`{zrlwtnVJ)!{~0Em40%zYSTTfNH6GQ1DfuduZyp;qH=kwXYd z?^i^< zzy++qaA>GEz$o$dto*>;fT{k%4B(U~!mNmA%rb@`Q)c|#LY6e&8imp^fsz{=t;Blz z^cYwnyZ~;I)n-|+q**p_1%X#S^kwTS{S$i*y3l}c%f|qHY!%$h*B7ocaAim;NiRAreL8)$rmf;T!f0gB7wl559+2$>Dlwh@Q04jekcPaW|y2@_2so4^rj>?-G3u&(DBstY%hSwb-2Lj^>jZ0F8>y*+mv*+1!* zwp%*Aw6nFOJ|H>bzZwr3**e#sZLd_#>NF>DbK$Ep@Tm-=fcV2s18nS1pFSn~216v^GD>_C!ok4- zvuR>~0!y!v^XT72LK$;6!~ER*30dz zv3C5Doc2q@_d0(pyQ(|sif|s#lN6JfUTwT1X@i#pD(H)vni}`z5iqy_Y?ysylQPK5 zwHQC&bx_ibZed&~6+~u*Sh+8bDJg-pXhmW}i{^@qOTH0DzGH6>6*4&G zmnK(eRwWY{7|5mh`cmYih(f$TzM(>3ZHf27^@L#|WUMEmMJ;%v66Q7*W``%biB{+A z;rx5nlPRF{{3I^3o9i7ukWeQf1o*XiV-QcvW^uBPHEG-)*D#mB9q5VaRrOa_xk*S()t- zzZI9i?tfJNybD~TAY7w$;nnjdyD$duHj4d|UjyvFXtO|~aD~dTD_tkG_3K0s#Dl4X zaA>qNc2EBN0jAqi-CwJcC6|*un6^tnpWsfp3T>q(0WRQP@`SEZArwAUorxPNK`WER z8=$0bmcZ2gUH|M&OH^6#wrD2a(u1Ee=z~j&TlkxR9Nu?sMcHpU%J9edR+e*2%8QN& zm`eZ8Q_w}9!p2+%g`l6LD<9acs4l+~+tx?zee)||@YR4eR`U7S*7_13*eMja&kf5c zXlYJ2A)w9@V_ksFa@+dE3hNqP8w*slJd~zy&D{t?aifjCq;Uf2`Gx^>C!&v+Xs2QH z;+`BvjMx3rI>upuRwvp((+^l5r&no?5$RBiie*rU6Ugew21aUsQ=XvD;utQ~gfi%k zthzOpv?D%aZRwK?kGOhM7N%edeJ<_R841}wGKq{*_k4?Ia;e$^9u?ot&Q9cGT8@}q zm}57=AY?QO6ZH0vv7E-b9^%o>JZpC6SuyNYeW`E!Hm2S-lO;gDGALWsU`o z1KmYcU0{J>ad4%kMqWr{91M*UW^Zl_f+(X?l`4($2PlT^BtR2f<^l9cdl;kr6zwub zLifXv*=OvKimR*Z?O#*~=g*~a)Zien4Z?+x7JeAE@rkIzzGcm*-0Rz*SvyIPY^ zDKs#rOkwiz59u`eV?gg~SuSljRIN9SpT-+WOvhE4f848r@6Ku#ZHy9d=08JL6Q1*N z6((Lzr_a@XodlZPRyzjf=xFT%na>E?dfL}0!$Wqo&N}95^m6NE^TI@kxUG@h?UPa` zkwpm#7ic+I!tqcZ@d_IfA_xr~5P`gaK?(HJc+(P>^WaZCUOrb94szvYBO9Qi}l23H}14#Ba9Xx>I2myKTK%lC_jQM+Ae(mjE+yERV14i-&p;LsAyAM=YdX%3s;w&>b{MA4P92kpZ!evL=h2;8zmI>@PGe5{>}T5 zO`^Xp%FbHs7aMX9N5j|mgOR)jr_p!~eMa$epdWh^eCaf9faQVH1zJ3xxVS!~ksQGL z3xlaCMqsG2RPk#hV6*w2AcTVNH>$T5pMvA`W%TAx8-po5>ONrwOgf+bVVL;WR8^09 zWH$)4O0%Mq0>G_A88kU4krH)*en@kY&Sn!<W?8&n|;>DBeJfjqUTGusDw@Y6k;qmPTkpe>PE#m(*c~ z(cf-c_a8ivEC*cNn+*(1;X!$ybo6lV($VW{L`|7a25xDVfyfn=x;P9JsXaNubvj$# z$PDP%>H)jkUi%IlP+jc>S8S@SWuSR;z*-Ck#gH;Y!FHL*&`_4$k>SdRx+c3f8Fz&z zkGd**f2>G)IWb>`P3d0Di+=RPr&iGsE6ykU_}Fwi+m)2>{$p%KFX-8?Ke|Kz`mc!4 zV~=egaoIgiu@>RoZ#W<;XX?DhTs1ip7a!qayp=$+<|#R{B#}5b=~uORakye+&e_Am zW6b~7tum&xWEpYSu}1?{{=V(+QM+`jTOt%dP;`U4m6tTE0w&f;QRGO?E?eU&REObb zt(%Uaa~@YgZeAwiyK<=oX37qaPfnIYc4)9y1D-VBBXk7!Wr|=d8(U+|{zh_i{JNB$ zsj1TvYDrz_(AR!PwGnIk3=)YlNH)5t6dzAeWn^Ty#fmz*Mn^{%b%P$L^v<0nTS>&jT*15+mJY73%T{CcFP3FHMEZ*yV{_kPSNM$i8Dxb;=h3azCrP=#Kn~cw zZXjv$lx3hu#>S(}?~;_5jrg33#V5bI-h{{=*ZJ_yzkONz!#b2gS0YT)}ZvWQu0;>AEBxULS@)T@OU|ALk zR)>Wh#<^og*djK$ZloMw66xpX=FXer^6qL|wu0vPEJ#weRGv2#CiGr=5#z^$=l=Vh zElq*IbgT&2AFV>LDu*dJy|Q-d5or;bQBk*yDe%uy{JZ^u&6;AR{CLlGkn7|X@_}H> zA4WuahH&%nux|c_k)3`01^iZR4X|mN7#hY@?kyQ0!b>3NvH!_x6a{b#f*~L`2M+;+IAZ7eP_cYdSGLe)*TV zlG5Yn0z5qVs~ed>PpQhyZ5!_C>RMM|_W9KM^4v!;`|hUQ4SbGg0NC~y?WCu3`|g5= zUf=469@R0B@x8bIGN6L4nm2v`_y}_~vh0_;FED7NEQ3XP5K-~*j&ndY9(X75(QUBY zt97Ejq2c`j-b&|3$`lbM$%mz^exYLl^1Ojl&FFF>=GnWjMA=xgx@~e?k%hov8$x2}v-y>i*#O;N( z#OpGoOsHOBaIP%`vq0JRvieYlyw7|)FCNjK#;EbT55#quulz!PCEN3vlxb^1uP!~L z*-qWGeUg2x2kL+b4CBOncq{+v%Y7V0p{GcP zUa8eT+735{0#nW$MvyJHpJ*2-=D@Ne=9&U^F*%4t3!a^^+D{GDVO}tdo9?qoEbOs7 z@<=oAl+_-`-rU+4Zyp4#{qeD#FD3RsIq)8NbZ|KfW0nlqOerYGzD{V$D{seq-?w2j zB(Us+NxE#HzW@8rTOgS9ygQ;9?rf!ycDrKbtSVlY)#aC(bbrnR&YGi6W6bz~gxBJ* zI9EYZW~ht3qj7#-Dd$$;R6Cp3>g>?FB;2?n;92R^~_6s{C0NPhl_zDQw~2@XxSZdEvo?t z&O8T%GI>42mA*!{F$rN&y#FkzTTZRQV+-z$`bZqcC~B%fhQq?g@h@H9i0QJ`y|yhhsFEw@6%8C zXgX+TuBQpBYhS0Qb3SNg!R4EJ?oN#Yua)6_TpRYQ4(t=faoMS<>~Snl+rJ zt*jBHCV&~3G8n(yV{I5E7z{-`z1K6@U2tyWt*2G7a;v3XI_v}XQheU;c8s6DN(#So z1t5aQWgOf}o&F#lf!QgrRSxEwf8@pCK~JC=jWLX!(9lq`@+Vu4->>DIew&=Kf46RB z1Y?`j4X-=%0YS87)0md5oT9hC8%&w%_F(K(vv`kN33DAgW#^a0du&+?!=MM-_z;9M z2L}H4of^hZo;(=@#{gpp1$*S6!21ZhU=g^qWIg0YW&lIn;aa_RhW zt4mzuDrB_r^deV#woo7{B4nz}@NQmNr>ZfVJCraXnI0gk)AfAY#FWK$gO^!l6Ju;V z1E{kD^{@_*k2GL|rZ5=3h0nTYZw7ZLqWCBsT^a1Am;F=ap9f30O_YGBvz&s8PJiX4 zVC50xj_t2L5w#Qs<_nyUun7rHzJh@}TgjVgnaPm98LY%ApIt7;iY$XrVjutj7b&}n zJsNYBs|m|pnCMqGs*gPDSY2FNdh?|fG!+}6wsKus%C+TLM#YAGuaB2ecJkn%66-#B z070Z#xV%4{giyi-k;G1Q?8evE_vZ#n^IMynmjMx3fxK0vGQP}bDK!zS-Oz2RwZ48H zrn1aK%~t7O4gNZIGXMwp!~OM#5athxWe=&qwRv+nsI5Rr%QFI+mTK$f<7T?LbRz68 zo;=wvXWz{`QtstEQs!YF`v$C$s@}choV^9%WGX)|&tV1?+fg1kHcCZB<=A{1LdYi6 zVf~Ya7q4Eu`T=hSSpaNe?KUY| zJG)4xp{eON5GsFz@~L_`)xg#8 z*bRb`$q!Pl@52{?cz2v;N{)t`WiQ;`UD;*dTNBYXyyfYTThCTss}DU@WGzw-9Xgu5 z=OLCOgT*jXM8DLyVpv0RiTZJ|YZH7EqICJ{rR)pW?)*RJ1lh{~ literal 41376 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�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 aTZq=Jvr&CHJgw+Q$zD~ul6L9l{r?9VSKvSZ literal 41586 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%0DM?ag1NumAeDZ1+<9cIx=c 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 G5}E)V8{)D6 diff --git a/report/query_group_by_top_n_groups_plaintext_chart.png b/report/query_group_by_top_n_groups_plaintext_chart.png index 0a097d9e310af4f7ea429a9896c01206f2c3b018..89bba82df8304c0dd903f55ddbf073a282622992 100644 GIT binary patch literal 39894 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 literal 40826 zcmb@ucT|(x6E=zk6%jZ`6a*@s`y%rno-yl-^1RcOvLpQoUppixs*)}x>} z4X2!_3FZ#*Mw;zl`<)LcgO+i6tMgDimOpPx_Qd5&|K9)SEZd-QE{4*QVm^Y3wOoTiuo+-?vV&HU!PQtXCwV_ zkO)zCR0aZpco`9)@!|}P&Fsf#Ro+Yeg01*+i>BVg3~6@}ZuP|2k00;wn^eKf{il4l zx&;xcnwpvg1H&C_mPVL_he-mDTw<_{W2LQ~6Eg=S61RXrH%sKvA)$>HC&RmDi8*Ar zc<~7vcCrB(d_*GHVdm#;9EV_UTr-|Nr7)>;o3bU!1^=$NBxu-MYq7Vru+W<(9&for z-4KE~F>n6Od7;X-=lrABXDK}B4$IwuR2w$KjtF65Hl6>-_-{GJSiA|9YWzR(y@~ST}pvfz{_k!G`r( zj3(|nO`SxqN#&DQ4M%HeqqVG&##dh1KINMd#}zH_>cO} zgzz$on8$7}4fLF%lY1QGHU)m9t#}4C7P|SBv9Ai>yFYVuXpha63_A=?yXBcDN7@-~ zm=3FP8l8W`n|-5)c`ambA*I%11$;5dsy#d{TW=!#d%j8r@n~;}JrLJIm~U9h7RQR) z_1@q}PQrUEj}+;%O-oLy>FLE&`RvL?IGcnmQBeHiW1ygr>s;*15DpCum6ht7yw1rf zENEET>4W+GJD}&w8+u{;{>;j$I{N`OjQ6gT(+D5NT1`zY`TS*pakdhRrrP#H{Kk|s z)wy#O@{l4u?w(IC&a&2;w1u|79lqz)x~eA$*iKl%5%x#>6WLJ$M&&NhgKt;eeF8Mc z%3@ah@U`wUZkwB%mGYtOG}1Q2db_2Xju>{_ApTK_Av)S@?%O+8Ld46L#(o=lGUc=6ID zn|}BqiD;&sC7Xn`hAnv@AT2`RnpM1f^(xKVrYoL18PRq)@uLPQyR^THwMSQ2y;#VG zZrmge5>cfl))+rbt!r`zd)TC2iJ`DJ+j5y*UwX0%d&mg5Dakz(37#`}uOXf({}d4m zp|6pQ(uhFP?wA>aC?s=*I95CI;bHql78aLi=LW9@p)m{pEZbkRpBDGy_4oJjZQ>EM ztYU=w_wT2XuzM1|t0OEe1kbr|Y1XA3+A|4lZEf7wuYdOHlN>XKgpquE&`5hxOb)4X z$U0@zQ&Uy-25~S1D}z`%L=Gr8Zw#!-4Xh<^PP|`QeSi0b5E!lUWq5eHwOO5;MNfrQ zyAU`I|8YYcazkZi_}QtmE-|D-B96h*(h@UwM4UMiX|l8P>sgaMPx0%*OW;3Z@+DV_areJCb=eZK~xHXci<;yK) zy#-3f6oPg>EJWYl=&V|2)*L_UN4|Os&(5-WjE5c`>?I#04(mE~#&Q@<8n%_XPuAb; znHw(9x*9=nVeei^!8V8MH6Ha&jMlnh%-M6qY`e{C6=_b$`mQFHQK+6`ph2$H)r9K} z7wSk`DI0d^pGuGV5hZ@F2xxzX?hPaX?ppQs&6}H_rjr!5brklvbaE5JJ%grgYH|M4 zfxH-;MLS-wM*oF6vBJz&I8y9# z8Q0Mgqq?b?LLGK*#oS92m)tJQoT3Ow1UtTU!4f+JkJQJPv=bPFjAwN}G(ia)v>1nX z0#Fm09_;u0h$z4vUr5fdi#qlwUo4 zO4jEQPD4{u0(1YtgLH4m0K0rPuXg5*n3a(I^nG*tJ;F>_pYmDR5d-Y!l^gmY!XzQK zke!F(a?;nY-wXZyA+F053J%-FVs0ky4Nl0W=Cr`HnXi!`r%a(`PNGg4wC>fMhyVq2*kBRSH@lH^w> zYDyfDhYAi^P5k-=sz3?*peFSmxxv7E+jZ7xU&}2vEOVO985+=uunpVl;;n)b+`KI# z8H9T!I}iQYDQ0ucv)-Pdh^5CLU7xA4)rjcuIj3WHq~|_E&2hWMv6>J`YY)7i?|2)n zN~N2Asd1$c=7ZA68lg}=YAe4mkro?BT(9eMT^`I$*?mqn_+G(Y7G)7Hr+v=Fkz!Se zZ2wFo@XX<5xx|p`+dWA^avcq}!82pk6f_xEq3#6`bE4vviLxWILP1q>ssOdF3=#?%Hp% zo@UVKvm$rYZw#H|w?IJ@C-OTdl1sir9!!+1zMxaM@oFBK*Rt)^emIFDxQP}nCHX!% z=PY`YIFlb`SZ?kZYG2A0`rB$)L!DP?a7L{pj#H((W(<;%?*||RBQS3t^AklaA%1J) zR>`}Cp`WTlJ!9U!t)dxamUK#NXUr1pYb{iQNx)KNeT&gK{htd7WsnxrdrC^Km}Fry z!&(>glVo4j=x|=(8ak4z6v5I`-k+UnGG0LRdcX&_ zY+eV3|E{vJaVnDtO#Fsv-9S{fJ6>#~L)JyGZtVqwtzvuD8Ah47N@1o5KRf>q_F1yN zRR_JLV$^!?ggfZr8ckBiiPofLUI4@J0>| z>YTbrW9}_zZB~k#Vpg|Z%KZJSosKm;(~i5TV@ZAK(Ki!%?;r>|Y{ST!Ro2mc@crGz zRE#A%J9Mp*rRD_1ESemcu-$LJ?hID_I`m*u#cY6PUF!+W!)hsYzkB@aT{m3DZy+Zt ztdy7(g6mCCviES!+tGU`oo6`b#w^2X%7FF~7A=Y5=>Q_PH!2Ji8x-l$#;l|~B8u+s z+oBJ9%)YIQhfAP>ZcyHZ1}`)EI}@vylD!TR><&R#3H`qpqf>U)kULA`x4D%VTf#zo^BAv??ab1Pdq${#?6 z)k z5NBCpSY|5YfzSb!%rlnA$U=e!%dd z!)&&O6Z-9k;=gfWN7#xMl7|qK`SnB&`%EaYtbI<_rq9B`Z0*#!^~(-3bKgScrPqLd zJ{+DoRr2ntwCn{lW7o8rU5m~K7xU-PElH7q>^31iNsRyak(x`WPntnO8s)KUc8s;dOi>V(yT zTfW@2Jc8oa9PN6Bm^ycQS|n!&|G8ryJCys_kU4yrQ3k}EmZ5uJgE>mf>dK4$wLYRW zj5yC%sYz{U z^q9H#yY@Axp==WbL||eetnxhjazr$tbVs8e#plH+`_f>hqd9Qf<&zl*>SWk=TR|kf z;CN)(rfIK&><{vvdnYa1+iK6sQ1IhzNSU~NC<=0OpEz7F%Y!}0fq9{Vo#rq!<3gy5C@yp`-FN7xckXu=vo)M!=B z#&W4^LPJyW>beZ9U9iT!p#P$=ZgollM5pXT4oYJft+uPc`t!q>1r6Tk3gV32g!dz; z&&nn$w`~IBvAx(=<$@OT79MrZs7cA}$KSI0d>UEWma^ZJkKA5Sl>NY=6rSqc*~(Z% z!qq5PV%;2<5p`=UMifsoynNxl6ck=_zH_gJLxQ~)wUy&dx7gr3$!k6b6tIaj+z?To1=L2R$O;Q)1yB* z3r*NT0XwP@92{Ig?8Hey-u3es0UND}0ReazrgnJyr#i0Eyum9OXtZ5muv^P6N^{`T z?Cj$n_cl`UoS%JWi0E8z6dsYa+1y7vW%-SXdA9(W?Ylhq$x2=tnXQ$hFx5;b1#YUO zNWV~4j+ck$+eId(Ky>nhEO@HOMK1c;M>pxVk;A$E6K8?}1JGGZY@|f1o<7FgvLGpr@(- zN`XB4j^%C*@ALjcn0!q2(*}itS5Y-m27Zn@RO|PxXRbbgo*W+rVK`E`&UvD`Xysil zqHOn(X`P#^UCcy{b4nSnwp~qHb;mPQ%MhE~1oTb>ms5;DnKQiIqWV`OzTSgzLLnq9 zsI;cwUH^N#nNz)44x5XV)C`^Lbu-zH96^HeqSYT-Xb~e2@rhH)GYNS7py`u+CWnFM z(&frQbVqe8^n2cYtrl*1T(yceh(5ngIp`>s!C~@5pYhDYa)*aO>%Ms{dRwN{8qm&V zT~k)QlJ>_hUcBhjg1&Qn7Q~ueh{&qEQQ!abgFNf*IQHg9uJ1$>&s?q1stGLNq7N3; zcObGt9GVf7Kf6ZA%}Jq+8D+Dc;34(y5DXElrX||;(Y;+Y*Tow}<-bkntIuR)M+PaZ z^d>R!Qg*(r^#+SulwaQ7-On34xo%N37V#V=ZtoN$y>5{@`h`kX98UXvWLj%Nfy7ew zb#eD#NR4`j@I_XLkQ>2PH3}bQbKXzmTQ|W2XoKljl(#HxF-Yp4ER;9el|g4woTQjN z>{Wc#(D*Olp0e+>8JkgCVK2lm2M3*Jy_XUn?}cUzV*Olj;`N!^>Mv>l9yOUvqh%ky zq2cI|_bk3-dGIDSR)>Zlp?ivg0yYeZ&N)D18A>=jq zCFL_+K$(8jSoSc;@)Qx54R+dD{_eGu<n$8gmjHpTKBDa zdx*&6QRszoGI@~F$DGQFM<&?9$+)3bKI@S-CSM%0KHXxboulBo>ae2eXxgD_A2^Ku z6^on$b9u#p8K2%0l9EDQvK{F6t8Z+95*C+lu*!IGnRO`2$jBH)DBdQD=oduo71hAN zRp)$lH+0OkyUTO*M@)ICBPGRC-uyusuz2vCH(&H_I{Dw{z1KgWCYou%zkgZrn^u3| z->3TX^QUWoIlTz@xrOc|ddrzoqSC+Ww)al)3m^Y}l5D~aKIn4vbWp*?a^+#AXGP`Y z%;g$7#y00V-~ehEY4V()FjqS9wC(PRkGn(Xy9mGQ>u(LCJJJz0uXF|IQ5;Za)xaRW zq}bTU(=T{)dMRellm8scOYuwEVcNWm>!KRve~UcN0s!Wp=R8Y0;m?O(H$eEE0xoP% zzdV$SgX4Rz-FYry98 zj*FZ7O;g=X85#6QQeMHOD$Z-y-ro_uLmt`74KSQy?%$tK39|8DE*?#eJ$d0qY?}~6 z95odq7uPN2^Q)X%>YDLNXYpP8IQ#SpB;ZOY@h!2s0*n$-6G;0Qs*p)}t5K`LvXhB%5+BHHbH!lP*G8F@=zP~0KYcL z(X-eugoQ@=SK#z6y{b%I5^z+Uxrt3fu_|r#DS}4*QJX&YFZDW$ zVq^c=)_+m-;R9dz)_()wT0`_|y)MhLU9&VOHPp&WIlNv}R7ANIG8oddSI$D zzk@zUXy2yY4o%HoCr)YUdb~FNqW4&`nhNgq=DHVO>8(2Q3JBk3)>hP$L^$)z}nm|z`Z9x+@-B8qOO3k#&gZ6cyN@xNLu8AW0@*4+{rl6us!tC#z> zw!TJIJyHxhSWba!WfgmAC3!6dWZk}stI#rEV+!2e`{ZR!N*{s+t2N+IwN+16E@I~B zroAH$TDIu+TsN-|i?nE6k>=?kuE!wQ^hugKSK1_hQp$vFWUg!lS)D9l4bgr*&FVh=!x&4M?R-l6!3>&E3jj5&{z?lkUvz-G`x;_NDE}2q8 z4J7^)%IpzFN1xt|KRlgw%Qjr@)+~R6$Dv+Dt~N_#oM%2HUL_|`dwPGKTBgE3M(*f$ z*nEQuTYUQNY8TP+NM}{jNkCL??=_1;#SFgr1(DFDRp%dDNq;!tGF)xz9GGV$O`kmf z1*W5r{P4xu?p^5_0s7V~9@1HP&Y94|BB}zhA-@`@VM89xY!QEdTv{0kH-j`gqc~|) zJXX%h9x86~E$pzSx@`&KZC-BI&6v}*v5v9nRmtg|O|gvox*eJbhDEcDF>5f#lknTu z1NXniZEYU4Cal&t_awC764o=M(_9}!L5)_WTwJ1KXaz^i#)w4Qz_y_~u8(K3^-A1A z_8t$}Fo|tFGHLX97R4f`D;BhXE`&cBEnaL{Su(rwyQ%TSw8M{YoMJ&6b}|<;9ycLe zlq;edOR{|&bWtk^|Ls2MjDJ>vUyDPPnPm_|k4XN2mx?+7-ZCB-SHZ+OpB23#gQ9o? z1Z1idE0w)GYGj$D!WQ_&{1%|^1<7Gcwewj2X<5K0>b16%Gn^f(5N%83`w=pwN4^#2 zX$*{t_3nt~U*F8Uyou3^3N$`qZ{`29=>T&i?$eNnBWzLa#u}WfcGLJB(T2dZqcR+A<3?$K@_XDcOzQ3&d*4ch4 zC(iyslo-Lne^~h9KUetX9<=h&(FLo&O?q7o!0JrOCE9kAz{qcEaIgJyZ^b=m+LU{xv8HGRZB|of2`)(mw6s7wm$0QFo|3_7R)3sXZ8a(opE;=b3?z=H*!WR7NE@lpZ;{=dp!9b4Gt67;pIGRn=x;js61JbLf zGmg_1K)>2`DYr>J*4uuG*YCeoT^WMI-Dg_8etw~fpxywPN7#dR%;XdYo&Yj2sT~q) zLw=eWQd(}!n-A#MRiKb{NF2 zI3J|B9*sJ@HO^iLX!SqItlD9d?VXmj@yd35eT_dR?|vlAZK`oG#18=fou_0MsC(;@ z;KO^}k4m|4ZHI4r58bL*tzT0q%!;M4FWXBnbsC6?ZZQ&d)iIw@B?t3Vji;#Q~x6K+ED@qA07wYF|kxE z%nsdm^nM7OShUGlh1QFz0yekG-5@_xi*7R za!ug2xw-BMeC-9cUsz$||9G~!X zyQgqCerH2O{IhmQJi@*&#W6Cai>7Xx=gphwEaCF`-lBv>`#LlC8@b85ekvsei--9U zbh0k&CIaeS#p=81cJ(vp`dfjGmhO)Fh3QPFfZwyvN)(J<+=AYJ8?K@2QNa@PreXY0 zzsj~trms0xDuW9MD*NB&89}svO&wb*)eaLtbb?IPwswa z_mWfCEXHsbz`9qqQ$9bBl6X7BW*`i)6uNtua&e+GQGl7t`)o~@;Z;e8AvUS>MyKDf zyRXmaF+&{s_~E$^o;-O{kV^(lMZ$2#rrz)!$A9vy5}Bo3Qkx0WP@c6Rh$-{@@;{%* z8To>`*nL1wX`S0fnYmjqY}rVJ>SM z8kFLA1%}zhrYKAsMM%~<&IR=D);nFX-OV{V=rD}YAb0}$&ZOe;Gpe6!j(lS^&PK?C zF5a9}-8H~jCW7?nw3Ma}CgTyS==#5KtC6>t1$(hYT?xDyc;|sq;zrZJq&+FBOi66l zS90>tB@S@7wmofhBpG&uupp&0AANJ6?>uM>EqQsFKORfkm_hcuyeV6~o*bR!Lcsbr zXTIh$oIDt5RI}|)XQ(@;Wa7=!+OYtOn%bPLtfZu>=Fr`t$;39=bj zsLkSUJhtR~!)Wy<;gM@t**?vDO=SC8CP!Yt{>{LZzRjTzfz-%SR+@_bJDtfrh6uK11m0h$#uB_gNx?8Q&(xtma(yKrNM6X_jRlU@VUY}hJbGsYdpq~l7?>g1#hdoIC^13n}Qun9E4 zmAF%cO&!kHVx5->xQNC{?!(Z-A>5m1i@)nn)ltJ~S!Hd4CJq2EZ#N!?+WMZWgAzU5 z=KvB_S2#NGre}7j&u!6kLN)Jb_^pocGf6na_GaB4gN038y$@}+VNkgB0&mLgZJF8j8FmmvuDV zUGFoj%>Dd`Gw|605=do7xfoPNXVITd{8V02crPAv>#i$~kY zp@6_CBbD_I|D@-$ z*I`K_IUmMmumz~g&ID_fN52Z!w(LK6$ku>B9<*03q^%L)ex|L7&u(!MYt7y4&_DYa>jdUWLeVIK-V+HI4fU1g# zk>}lSX@3lRmdU^=Yinj}@gr4dZpqGTzTjIQ&EG-RBIx0W{QI5j5f>NnyJZroBV!{c zSBp)Mb_IU=fYR2C$&Zp)9{Ieckt}qRLtlFmBt7h|WM`KIxtT^Bp@&ayqo(y`OSfji zj%r5HLxke;ozUI-)$MB9RNvp(XWS=V!j>`@*i(KzHmRN%PL`cx>+07_P^5xKUDOV(f(uZTyES z+l34eZ17tK^Bf+Y0Q&N%VH1z9-8T$;SON(#sa@t}B5Xx^E$;Apo6AmPw6d8Meijd` zlX5!dce?1s*1A+QJ4ecgv+RtsNS?o)Q08ej+)58-pmPfWy$|^z*Y!Xg!6nb$xD&GZ znb;p7XEQ#{EJKQZw1#3@Z(`*nV}k4bwh3g{dh!k`_!9#yEG<1hG+c+~7rg|7V#1KCL(s6=0e z^gw14bF}T+O5woh%nJ}eDJu}y#P!`Zpms^3meY75IaqrCD^lo@`gG>+y~}k>+nzzf zR#0I?+g&Nvn5MPEuivk-qOMB0iVTOgN@O%O7OJ>M>_VZtH>CyF;YsLLTzy?egDv-5 zXgSxMvqVEdl4houl2>;q`-C^Y;6%H_xU+Siu;9dtwS=M>dtzwh*Xxzs*e(lBR{M%N z|6*e;bbyeQQNFvx%k-_`i=IYqm(?A=+pX`yDAU70eckqgX{0?i#SQ-B`578A`z@~$ z>F%t>Dm+wX_3Cis^B~?g)CaoGkuR^l(L$K+ff#l8PQ$`p%?62GFH}gLw;{C|w6Mel_6Fm>GY>w`ioo_uJ1s;n2I*7^odSL}hM4xjB@-$Ww zBb_b*>7jdL9b!XF0SFbvMrgnyUD@AOPkhp4=NS(wFd3T5MygUmDu|qM2 z;Ie-BSse6WS`%vTs8a;EM|Aice-=rHx)1Bo1&Es0P2ckf6LvJg;;8(S&2J843=o9< zrdbhW0^o~h_o?O)0}4mx*Go|G$*wHCde7}ALVi9Mnp(M~&L=KC#>X?N9zG8R8Nf*n zL5AMAPcP1-)ABUHSuJ;<63Vk zC}iOrkyT-$%MP^~dr>0)P^?5L(PF-<3N?logRW7GGRSnCy!hh?_Op0D$Fo4c?w ziI&w``;_KT*9GnXO1Z2wUU=mnUjS?{?sxLh95~P8RYu;^4qdw1r1WmH^bU^zBI24rs zh~CEIbKcwz6+!vg`W>E{4xgc<0CKF)c%Apdiw7TN7MgOW|1wSM{&M2=PltBPkh{T) zp7#CY&x@LyA%1NdU{%_z=_#J$S+u#sxn8KeC1xSVTvsAQ%T!Pu%gRqGqO9`e5ihX} zBaI$J)}gXbZe`G(9kt31%C-~Ib`u^if0lcjcIr>`HN84gB&>p8PXfk1BaUW+Q?lQ+B(KLaE5L2_@7 zAXO!A-)URQuVvx5m8&`AT7b=+)e=N{_Cvtfw(hKWJIZ!~hy~K0b=%%)*CFPElUVLOv0xu)76H7YthV^0H@43y*U+n1*`Dl6`ov>DliD6j>veocr^ zgjJy8n*-)X1e-Q{0E?ufi4;ipnj=e*=KTxXP%pf}hk^oH4lTy@oC_iPI^Ya&Y zNHX%x!*rYaTMKhu_%U4_IA$q zThZlS@(OAN`HeJhGttl>D>6eqn|*L_03%o9of(LW%@mkYu;5pCbnpJsP!sZ@NnoLo zzFF<8>(LE$zNARY15n%B2?!>w>+2gFFR}+wOsAf$oui>i0=2w>Un&0~3-kQY)$O{@ zZ%Uqa4NhG*m@x2MqcBU}#BR#0hg!o9Syp{nj@Nv*=GERrMR7g8Q>$bY4kfSS>2{xm zzwseqNdd_+j}xR1l1|9`bOI9cfeOC$Yr(>OgH3(KL#d2f8No=Ng~Hr=;ElIf@ZuTF zzM%hDO3*@8dCk1=l^n8mQ&7al_`I#E7Io$R40DCS?FooTy9M$h(oc|1jEt__=ie*OVwbD!_Ogww3e z?U<}2Mth55&fQgc8kk>N9*h0$EIQSo((Tq;sRx7e=aYmjWYN7Oni5+JnJo4ha zrMhcV1CZw8#jl%D4GJC7^#A+r7OCy5?YFkGeO{_hbAr9X#Hnat(FS(MT?m7xF8SJ(IW*i1VV6r%rd!`1ZJToC2);DL`p{%Zk! zwJ!=($zekvUltV98c}#*b{e) zNya|GHN<7?fnJ%xztQ$m{~QbKGy2OVrW-P*7xjm*s=JPl)HdAAqpj1lj^}Rpz$pn% z3LWw@(*$8DVh(9VvUS`%`@g{*wk(OZ8;$LD4XUwin#)?OMVZF}>wNYu;>p5jV1_Gp zu2C{xfV=%xxQz1grnNk&y2Ku#ablR~NF@_q861B6X zvF`+wJ0r7Jz1F_|@}AYUxPjFY zU`ViHUG-?re0n@FwPo43V5HR7)P>iv6npjl`cyl-+MZ{kum4%s9Uj!0qOdiiOJ!Lb zrlrz=Pn(tBp5u5=v%Py&QxS$%Yy?$LIw5fB&AwxS9sC6FEHAl`FpD z3rjZ=5gDjK^xgCl`@1iS+c`(AX2~w{cFBElyQ{G0nsQJ}s+XaSvwF7m5K-_`hqWm9_+~XvST^Z&-&QOf z16h)P_ukv<^Ru$8t=e4<`m0DEowIIb@VzJ~kBhX0*$fIx!nOM1%iWTVjt?Bdzx#x> z$a?dQ9jS3OZfmDZ(qc*oarf_;H4nXn-(DcF^7eXlUB9~(I>7UD2|KrH7f5rwKwrZR zSq|J$)s&Dk?XDGq=i;M8Sv|^QeF;di-lWcB~PQxfhnTJ;hVJeO@cSt_32_`ohd#9SiQ&0w$(MMZ+Ib z%sGlI;`g8(JKoSMh^G1T3)!`XLX22dc_`G?@saS*Xy2C8Ux~ce)lkz)xT}xq?DAH# zBNa@*=igi{X=*fqkc$Gy&m||E$h1faAzQ4+mh<_-)P~je)Q$kb~m1~@Adk6kwdKfDj1yU@8G`z0NzPL z7_Qyyc^29#mg_J6<{XuWFVf@KWPZ$FR}6%NhlT-rtC6*;o`3$U`2>$S>+$!E-|!ca zjn5ZeSn94eO;7i!F+)FJWGv0GwpzbSYr8MS@>a6v(RHPTzH*wc9UUE`efR!nIAbKj zNdNBHjRKdq3|!v61aNsHaa)&;2bf!v_tXw2RZQ0^tdH2Fsj2$R9XFFMFh1?EDTvvcXzr`pQ_VCfHx$$S=93$p$a}1iY}O!gE4GIq*~u(} zJ9GUm=+0vB`cu3Dv?k!CMaMvQq`34r%Ce=fbwv2;#*h>T;qR$E#Wckx3Y_9m>1lu& zAgAGufh*H_c|h=T$9n6AOJbMqLgjDTH9Ro*H;^=a=I7iTxN019$3vK9FoozAki0(% zMV$WK^+lnN3lOk++5Khrii{wEUtyW}I?$dm&ZeWP8VhQ#Rc&lwm-zLR8~xS=Zr;2} zOB`Yt0I@D^j*J-4t0wX5KL91p z{Gd2A?krotos%a|+JH^~kwC>ix9ggJKQFv9At8U^o)6V6tWV7B70MBbi%FK)o54Lq2ry6Sx4z>rX0=MnxosvW>Ow%PC zuOnLU=@+g__3nHI#mzpSZvVHZhRv-tt*W_k6Qp^Q&qJmV|5LO!96t@)2_w<0w_$+q z)GITUTp=@W(S?U3f~A_acCz341iE%KHw3U@@t|!g&6fm9J(TEGO={d{AU}Wpv;qAI zA_3C>?M1ra$oo#{YXyg7rBfuEdpUL&FD`d{5>lQlE;Im)x6KetO|Qw%ReZ;dT+#%Z zvO2%LySe~E?t()7$|ql0vhzODavyw%&_n$3ZpRe+o8 zzwN;c0)tl#)l{|Vq-3S}_{WmBQ^1gy_hY!qVuL{^W(=WOSAcW1b*3 z2fC}EEwIXYOk@R9hmdfep6t!5v+26H0-8tygF(8sU~vQ#(mSJem#(@uTMZ3^N*wPQ z&@!l10n+s?LYBOIe4UeGL-ZdLbWXx~y{!U3|H$7$si)5+eRo6CkoXD{k&E-9^hAl2 z!S@u1{VT!eKM{Vf)lPw%wv-LkCa3hoZE(MSw2OfjzRm6J1VDPKDJ#F+!OhIFm-eUx{RWf9B|ZI)0& zXINZSAC0#H-eN1o?3LbGIyQ+DBOq<0WmE%#vQAKu;FvrL8jkFTqyY2xs>|1|qX=b!~1X9d9*fAYQ$nGP?R>41WcyMo$L7!JO7aTSgw~A@3nnZtKIa?OH zUAg>J>(*ep-h{YDWMp8F7C%<^fzAg0EJgW8$x9UVp(pvSFl$`MY<#eYP<(>Ann;(z zo?Wl~{GcU2+Q91Iszg)6+oe{eKaMGVNpPMSvxwLx&1eaPG6!Bqh$ZMEc$=r_NC z?Gw11uylLmMstDO>>l zbOJSlomTF?O#R~nROa~0?%FvT@ptv}xVeQ}qDSVW4O2i=>iOjudTptgrr!_Ov=of6 zrtjUCeDt=*yKd~KNBjG~IHHp=M|eh9qmEU&hx_x%g?vcgmmFEW`qzJ#ersw5s?+s5 zr!LKwojr~KfT`HOpI98nk0X#m*+8j>XSClWk3{;y&P!6ELP^nr*i8nsB>DF z`igP&g()nfmGeFqalZN=3X!|bmcyqLQujb4IWE4?y^McsjIS&1e)3;OcPHE7?zVkF z+09RhPWt(<3yp9dmCHuQ5zN+nzNLTX+bjSJi}LPnL1K7D;yyn*1~}$K>kg{D$6e7o zv7c1t^C4PVHz>`I!BJ|Ii28j|)#mrYJ)dCkNuhP@Xzf^fj-jzXxX16g{G^Kh{~~4Pp?t zB6{waY2A1E5$4C(1ub^Cw7x}{9=2;RSFULGX7`1~LjS^^+2YVCX3m_$+8!aIGi#AT zA1uK5nhI^h@yg4W2h*sL$qk_UD zjKRWdj)CLjNd6`~De#>*kh*aGtCCG{-8TSC+W%F`K9;#Asd?o?@F9^60MaE+G7a&1 zkRqBP^ZDPMnJ<1U+TNOs((r{rn)Ayg%8jEqDGQJHMH{a-WHX!S@J2)RCYJSTV%%9o z$>)d9^^a}GS!)KDIN!6@eO~a3xm$*H4@Tmi4ht1oK%R)YX1Y0E65snQ&DgE`yyxWAFoX8|3|g}htdp) ztUnhUGJj96m~8Tv67>3l0P=!Csma6tmFVpK2mNS1%#)veUS&h~=WC$M^^I!3^!|z@ z;0^9bo=^Nx{y)6)}Wb2+c4A;lu30-=*_?5n_mJmV@S}dFqVv>l;9T=zv`Q?p!xj>uBj| zueo=pPy`?^F09EfYgGNRr(*_%;9nI#pNo9M|HlCq zkR9M~ar`8}{$S{1bEta`t4fp8aMv&AmOToaLY)!_I4pab{}Az5|kT7_~m<arUbyQ?F{S@>@D9hnDX~JQ3Y0a5zRK#+ zL5%KiI2fZw`%a4ejp6Tb6mjl;ro-CKbZy(Uc)mKv6sp2%Bu(9U@mOph!;IDwD6dAR zFZ_BO2B;5lsx5-IFY>9-vCw~@*yT7818oK>tLsE&jjtDT!HIiF9v@o8I5jXS@%qAc zEnykOL#?4qVEB50zp|052mW;ik#MR|Bz2ePa%5KpE!dp>->~GPQb^4cgwVt#>txP* zC+Fv;wYUd!5c|I_WETCAd%$~1qE62^rI`yB=jSeT`7OA9*)RTHd^+#N;P?xfRS)!r z0P!P_s!g9Xt*ZuNzZ9*z+9y48iJhH2a52r^g}}|l)d^CXTw-E+n?fJ}`EIeG{NFSpQZ4)DZ~Dl03uK&;f=gliS7oAinV_|&}haNn6; zfdpDy?J~&C5>oEdLgW%r3CAI2S-&+ta_FL&dgIgSNB>E*Dh!_;?-^N(2B6`)a`%Im z_0?K;a;e}x0oiyz(0!WKPC7ayBDi>YZ%1NHYYQkQpkeu}8i!$iY{6_;0 znw&EVhic7)7-B-{C}suzYd@HE0{}zEj8kRqVsB7MG57q6nbWTjM68-1*UTIebI9^a z4+!$6Z#w7+E*1UEfln25?N&7<}D-t;S>@3W*#tA)50HNmmN?}eic*BDRc+JZt zSfzDGH;AP~n~uQiOA6{63x@_&BIH-8%5rEZo;ve^z6ZY9v{sW4Em8+6fHQ`ixzx9XLx#!FBa9Z>b$%SLP(yzbV+YM^VZ-!FJv2#Sz4p+{{kTp27eR6{uc_3 z$==TK&FHVHy0^O@xufYt=9tU_`wKOIy$8ikswtG^{zI&J|er7zhPcK$A_ zn-%~s81SgafzBT>-+Z7TcK7nguc4{3c|(4|haBkblR^Vxz#O{%|J3%CVNtJNw1bF& zB8n)2h=|gqgh*qc5;{15NUM}I(kY06MGqj|AT8ZtAT3BrBNEa`w|BoYob#`9Kim)3 z=X~&a&W!WR9c!<(cCNmrYuWEF$60z_y^=ktk|LfVa3@(MLn|=j1n^tUXvg*rK;zi# zUwF2J5@SJ@9*wD3JZzDB*x>MR(oB18B_EFOS71nU-cg%4a{kCmv(S^8Hr{5-g*$1o zXqz?F+OI8Q{p+ronjME|&QWEs-=Ux0w{M?+b@lb`&CT^?A@LAdJlj3@go{sh1v4hY zbsqVR2n0{DFlh}yo*W{$(^ub|t!&}n7fyVpRn(fCXLE8bxg<(=&Dpe_9v)LSE-F%W zYtiMz*UB&k_%2yn1_CLtG0qfJRQvoV>KzZW-pmo79vx)`LZ?4#g#E{-%5+8`d?9p9 zi69k*KW^@4?~UDDb-Cu)`_50=eP}b{#^=Tkk0;)jK2^n#MTbe*WdjBL@X=f#JYchD z3q#uRuU@=3TUjYqnt-=qi)FQ2C&j1?5W8v>wZe&~J%1{-q4FG2=-)~V&`=2%!9CMd zJGIIX*{i{!H3V;cRAKiQuqUO=I$~ zl;cK$coLxwNV=GgHhe7@9$d!7eu>w91r*qj9Y0~5FEpXnGUkt!c&Nom{PK>I8(EsS zrz8vmbJ z)WT(aah}rYydc@v#~(RVqLtvT55Y|hKn!Q#{c*EmBLs5eQkSN>S()WMQKeC#_&DnR415h^*5sm+vMRVc=_iGy7KzRRTycxtzybWiPz~Q7; ze7Wamy)E%yU@I-QFHY@qs^tpu+!JV5By>ny`y`}Hi$(=m!+TbxdP)%MkxRr}7csPw zm&SK{)qK_~uFopZ@OJJgPQvfmXAReQ`9OSXb93_+E zpMPWM`a}#}f5%yjYF&FpI{;<15bcJMH%A>RxmJe}PDjnFr2$Px7`T@7SgX#=KsAT# z!Ej&>Hd#Wr;TQ%({e_FcON}Ji^i%_^01EmyNsV78QSqPZr=kezbN%B&3r1{X?C=$i z&LW$XFfoT_F$P*%c5r|4MGAnf9K+L~?dt3mB%C>e;Whb^5&`2_)6K=N6mj}vF;J}! zuv^miuC1@vL0N2KM);h4%DfCaSnoY3^a+Db(CIaKbFKp!#G%<^^<~6xzyr;a|Kx>0 zE%QR#u^7I!>0R{K82=g)S4WTiq4zl%Lm4vMBqbT#1kLfzwTJYN>9RdE5)9Sl67rlJ zP(1X2lQZ|zTe21u6Ae1juc&=NV=gPPGC*pOe*|4cw;eQ*(0;L8lf%ivvtO3RSr_hE z`&$N+z9(MG{s&oSj-fx7TF!ObnLg7mZECBlt1@8Fr~AR3%)#_H;WqHZ_uFZ|ExfoC zA!gowJkZu#-` z)-QbU9;WoY^6ncDN(;E~%|*8WL2sD*4c35Q09PXiLTC76kwmduXE@gZx+!xzW3B+E z%bHy*QYGT}WUbPoE7z_WtgZl|h--2D95)O4dZpoTY^`B5@h&%%8;?G+|~83E9@*}IIN{w zF!oOM0OeAUx07Ii)E|w-G0ecEf~=FY3-m_K8QPMo;B%%2+FC!DY&>7Ind#F6p;c&T zFCpa);EXB5e9!HJN6|6S>2T5=cM+Uh_fy<$)2^Iz#8+EPb8=M|F(&*JTk2ZHEH5h; zrfC_%+rXCd%XJUB7_*LQ*TxHH&=jAhKJ&rtq_<-I(Ow-VX)3s#WL?1EDdGDn$R>xO zrq6R9UAnw+Uq>hW+g0>c%v@WL>!fdGs7}3QW)q?p@b8_CJ-K_pHo6sD+jKWpe&foV z9Spz4JiBt`%7t=0!k4JsT$jTGAw3zXyJk2YW>?{QszX_z!v<_ku#UMI3?0SFnjbyk zI*YZ8S;_D{kj()Og7=ogV8XbiRX7`ZnaK-p;-?FK9@s$uUfrr>p{4a1Gaj}uaaT20 zjejcUq|S{#M+eC|C#V%VkslibQawgNNcASy z;?~yIk{m)|hDj9t2h`Yim)I$MGXqX-vIJ`O=453~a9luF$X@ zr(!K$aC}uyaWF#jFLPP11=G5)ekQ`joP+vFRBv?&>J8@CJ8L||LtjN^P*xqE#fRV^ zcqRl9;j4)IZR!4V(}Pn$C^)%b!gT9LtM3jm4*Ym$b|MlxtfmoCI^#)tZ!A8sO#L)X z-SwK5{C50=F@ER{X~cQwjBDNud=Hu!$6Ay8#WrR?;lO9{f2xk5kfQ>w`dxH~<&(|} z%GO4y8(Cf5N>mR>r20D=I_2F zV(cB+^fJHH6V9$6`nRNcQ2BDi`MO~y_u=q$IzW^xbhb0ztbMter!UsETQ6`k*Gnl< z9~TBmBbx=eOl+zV)Wl|ev8 zzm)0v=Mj1az@Jf8NeRFIgoqLjhnvgoB^*YFu=R-h{@}8&d0UsNM4D4^4<)Fg&Qgoy zJ3{6eo^OLo ziYA&tZJ=U~2i0g6)F-Gp7*nze^ecT9UMH_rGWk)A01*Sk`i|#XUlV9;VHIj~r8HJOV=pc$1i< zpKPui*y$Z``+8ZGLH?#Nc|5uMQhM`2*@x|mDno~08?`R!?*v2JEo^BOk%`@bY7dfG*KLhGr8+G zrnkdBnJ|Hukm%#ToCGHqijkFk3Jtjy*w?X^Z!W2qm5l)2s0U`72gKt!Zl^wYzRz)O zRy=Jge&&-uR{vlBIw$l>44Yfnmsoj0!Z3s+zpZh(rqFF85S`ZU-MgLi+2Tv1jauK` z3q)qc$WqUF_QUSx*lUzB0AfN7bzvc}xpO(^ePMGXbP%@RBW-LYCe8=%B`4?0f3vW2 zcF139tVZKl-)>C7jt&Jxr(Rwd`N*BMbvIQtot~D%+{X9}_}8L@KrQiXz{%ORJ7UVN z000jU$D3rqR7Rz&6z{B$im%gdLg&l^2(8ekP5f5t57(t$K^k5y6GzdpgHq_>bu(Bu z{B$Td$1+3pz`}gMUYL*CpMBOqg2jXO3`pKOTX{o+XNv$x3mF_1*-|j*QqMC9hH|W0 z$#kZ_yqs1)k$=vx2@Lxf4_`6#wX%UHJ9IV)fRZC2bMwgs(S zFwb28oCQl0t^b;*_X>_Sgc|5~x4egRSl=4wxY(wmxspzJAsqsM@{90%=licz%YpD) zSgy=`fNS7`GnZQPi32%Jh0pJ+ne?{o3pZ|}IdWw9o6fDj2@VB8K?de{!qiBGo0diL zK#A5XJ`>7k^4m~QrB(ka^dl9V^_q6yk6tHR1!5nQ&knJZ#92Uv>69?gn;LuWs=E$P zui-MnM!g=8_*5w*!~4yrUw^DKpI1DI(04ORj$aoS7FPQTcyC*wjPRJl4e0{{0}ati zz|_$LS3l&*Y1o~YMsV2-VBvey-iSS8Ad3XXdI- zWAWKNkQ{=GmkSC6Hgp{b$hhHV`yx6;d%7kkD5=kpv_ZYW&Z&}KZ@f-894-CP%}|akGMp(BQL!_3+siIznk_ z!TeXB8HxH#!3@Ub+$b+`Kfgcmgn>9EXWC+?^;$Y z5L}k7Om`l#QY~2-d<};R!tjy$JVJRy?)%TvG!lzM1zF>(;FKs^8^p^Ch?yVaQH{fu z9$rETZe?X5j?kRAz4_m9Thv)VN7|AUSrI>`2TboeL%g!VXm*5f4pLYDMS9kHT>u>K z;l6|;7ZjvU1^o=cAs=ljX4$u=oI3Z$5pF^CE7a#1m<#YvCyD62ss-Zss2hnEV^y>g zSaK#&965a0Uy_?}rR_aYzZq{RQo?qKlYsr_u(+~M9 zzp`|%eNXp{Q%hok_7@{W8IL;Y)#>7yA+R;}0gv&~d_o_n@Gks@yf2A=Eb}?$Qb_r? z1BRx*3`4TPOl$qx_^|sVHMl1`OlDRM!R_M9o*jEH;iP76)LUfp)rb|HL)1a&DgcuB zcP@1VlqVH10Oz(wjXG$eY#+TQobR(PeB1hPm5oP(b^EZo7t4 z_+=_a%^5ptmY3!|(SAJ{zuyW*jrIxzqbo2x;@~-@x=a3LU>sZohLZGG)+ToXN%z_( zX?WlsK72?h6(G^Y8@425IW8Jm{Q)d!2>Rgw$dMx1L|mIP;~z(YZiy8AqV}^tmW?IEStsx$ow$vGL?UtrofkQChtzOr#( zWTh&R{?|uuz*O+hriie`IP^NW%(wd|V5W<4*n`SOfQz!7otGv%6IKYtV};W{Od@3l zNaE_++6ICRB78y3coRXVFFid4m(eVWc6n`SiW6vfeh_g+^*hkvxm~*3u+_q6`{8K! zT5<1jxo3mWKloH#8imrNJXq5lGRj=D9B=SCnp70&udS`szCEWSp9#wr;LFRxRuVG1 zZmOPUH-w2QgR%Mzvo!TCI6Z}9m)PU);g?<^Kwh4beTrQf!Yg=%yk@s1l*qFZU8+9{ zX(xu7f}!-~=Aa20?dkyPD~38jK~_0g>E%5~^b45KM%RAsauZ?wK)I)6wb!8Db_1dZ zM#GDf*sim0bvnuRsTDLtdnt9kIOxTL8C^tZf`o*GN-vL~prBAOp>Vf<`#;k@Xd7EglecRjegh@V(E|5Y@+jnE3a9Y-_O0Yl^A2O4lwlyjf%H&dx2oZ@9f zGi9!;0`Dv)@DdDE%Pqj5r_4=gWhh@0kze$M`M4A$Cfk${%n=o3EE@n`v<$8r4;`j* zJHkqh(HXjht{N}PIE;?Mbr6Xfc@l90CY$fk`=|~O>a%AxV5l*tL%3NOp@)MeG5bS` z2t=Wa`K|c#f^w+#EfK_b6+Db}UismHoCVQs<@yI2JLXwwf)aW(!(C<|M^ORB6dfI% zFhF>oqAWt*TPJRm{d}s*qk86g-%RI~4d)CAIZ@0II|1|L-4}0NYX5r>CCV{qFOhYk zP%$Bj78C{)->hCQHxa4}x$N>i<>i$l@m|z!JNCqb2oN8dNUTPBGFNsw7>%o`pGY$3 zYV(^&hE7I`q=S%l=*1lg?M4-M?biO*lV`!*%&5gS-Q$ z1?tqAHh@}oChNKnI-=u7vZkF`(nWSNX8L{Wli7_!&mrfUghD#kME7|Ntk!{>E6Ha& zd1nySlSZv==>{ZkLl_cSy+nkgU!opn~I5vnQP`DJk$G5 zNLXEbF0XE^?pk)))KCj1l^BhKvc1R*4eb|HJdL-l;Gqt(BShgIdXk3s zrC?K+9d1S#CCqaD!?>s7Su}ne!WSYb0A-mlEQRy#W`Oc64Ap*fJywk}i{tW?gex2| zGB7s(H^EG{MYa-vOUyGBuS@L8K(Ss0&x!_14UMod=J?Y1kDorx$GQ-%+YTSR9}8(> zsxN_}($&GsO{pDOO8cE8O6n536Wx_VR|x@T)M-93Eo-TQ7EI)?ym&Kl6|#gGj);dS zT;T4pS1MD>tbzf`YVGH~24TuEQsWxin{;OB+x@Zr{*HkZ)TbH)+8a2UpN%8(4ex3v#XPZ-V4LKO?cEA%5@0U zoA224Qt?%RcD%0OL{tD+|esuN4#oMr-Y2YvUEBM^l^2(;b6+JGh>7tLpZQ) zcHOh@^}n9*O+}LG3!kaLvMd?0L_daPIG1&GGYoYCjMEFRf;Aq;ty{Mc3#1dU;!o#+$`0)w z24s)~E3S@oO=j@9y%!4H0Xc9oJ|iH|I%xniZ9hLhT*V9_l4*<%cZTX#WoGODH6d}P z$Mn2{UxB_nbZ;0^6sVTiX9An14roC<;2fE4%5Oh=H(1mz9aIaSOkBar6D9H~qPhX- zM>SxPG7QstUznNJz&v_e6B~6G@zXXAx-@Zl>{_dVN#2<=P2S!>uP3ZcdZ-8hi;#G@ zfU^<2*5F$v3sGDbtSp<;)P=Ge{tKi*E-%OeHROHrzk@XTOEkxh*|&9gzJBfh;>DhM z#~(j_4E}}Dj2v5AD^lLtgE8|4@{7ghf>O8FmpbvoTRv!rvvskN#S-g3N4SM+#|3yo z3ty>Y3!^+$U=zz(Nia9pZgEP6MmWzDhAO9#zx6ZRS~l#%$&->r+6UyVg~lZUrdBS6gpK+TT(uFCvRLc%y7?==; zztL=cvv-w3Y`&g2#Cfu7OeYd%mPU>uVC`9dPn{xa;oQXerN{WihZ8!gZCP~UjthFr z#*G|l_lA=ejv2jAWX)k^P5q0spP2Zqd|g{LN5%F8me&=Rt@}c(Jvna7hNOc3FN#mZ z30XtaByd(HB$$~DL5QNXe7Y|#W0PR65fbelA>rHzI-`>R5F=pcd;53mers1m63a;E zwF*I8lI~mdhV1*ZivpAgJqkv!JqnGwkxiGb*3^5+ ziAm>nQ$F(lD+V*he*UDFzsd+S73H0|zDnL4E#P3#=6SPa2OI%+#V^Cx0DE6psLhXB9W%+c2l?ds|d9j&GQSBdZt z+6PALc9LmuS*>DFEfM|#JU0p-5GDF!B+I^%%$jIaqMxtul%A2~Hs8u=%iA*ZX2GT3 zc_G)m6Z3Ujr)oC7PzVxPVKp3qsrgXRrm)Z!4-Y%$=60$vW8-dM0=h@Qr_8z5uvpvKUCrkTYDOnOZ2AT`BU zY!gu}PO~<$)KYK!g^Z*MBPd9sAJ^*GM zP|izCb}DT+yP)q^(`^<@Kj8Dxte1rLNcITD;5=sF$o7}X{%PWqjTsOm{{JX90;LJ&CZ9Wj(xj7y zoBQn9wn~q&KSI1RY5;__+4xOET-%x*g@|5ukFiOJZmKgfV^_CGV5%-sXI+Xshv^T(lhqjVYMsx*hV zW_mi_LLM*Ker$)bwZVxrv3!cJZcFW2GM1kmU2`ojB0(4|%n%7`!6t8!Mx@Pp(%>^yEDH z^8%^ciS0)%CJrw^dx2SPkP277c7merdig}M#TydFZF!7E%(;De)kRM-^$RU^-<5Rc z9)gmNaod$(;Ebf{1t$O7(}GAPo8YBn4}2aBBmeeOxD%xH{-AU>S9e`acWjPw-dS}N zlePV%IN<*VmjOc&JsuDMZWV(CJ1UM4N$^q(rRQ8CxO;Psqr0HcbK548xY37XFa0;(8~Jk& zMtJ+Agx}A9R|URVMsJIhQ4o9Wxt(tGM9qwwNzt|{7KDe{eQ6G4g&E-efMFEczKfy% zu11jOWyeTOZ(oS>&VObu2LGP9m`zXji@?h9k&^T}ff?GS&1+OHy|t%3w~myO)257q zF@Q#59JYg*iUrR(X`}<*TVtqS`WFbQkMX%iyh%P}-~`3n*ar+VMVngc0F~+V#@{a$*yn4#^b^`LLTQ=m>TtNHP?`#R1RaWrS%Q}v?23~eibw6GJ`OJ_ehcG}IA z2p{$2yiz?YI&Q!Dki>0+cvuw^n|5sys_%ci6FxvlZZrB+Lo=g`Rb-gC!^G&Ak+(HK z>)^5#F9KV)I__`;?y&(-wBk7NZq2IwkM#peZuVrv%c7-zZ5*aHHIEf(>K*+-;&*2^ z5Uivw664cA05o?hM@?Uys{*svGT^+BwSMV_C{O4}L?+;XU zFu~9+zi5p|yG#S2D(uh}0|%%YSZciMDxRPpkcAbbAZxe+@G7gQ?WD!`5!f1ub}a$t zI|$KF|7>j{QXAREO+x+&MYR9?qh?m`PAi{h`V5r`#(V@^gbJ-j1GnufI2qecTHEwYt9tD^XE;*jgOg^lkQkLFhlhftZqz z@&aEpepA;6Y6&d=;01oQ511`i^(@2AOchXen>s2jPIfB7vJxg_i(CF@OC1b%@8zw6 zP2CU}*7^YRDwN?4I)xHBP%I*V=i1NaKj(^-+o<>oG!b_NQxc)Rh%fRJcUr23y_yX^ z;wjL)00T3Cs9V6E$TFaa!<)@aOc*=fM)!19B61^74ru#5T-TnH)q0eMypn{tP%#X` z>ehe=dfvM?iLit5(I5zOHVqP^6-{&mqvT&SYH@r^B zMY>R8dTxXq*StK>Bq32|@eHR|i$5o+bN_xl?A$5pi<3FreV+EuZht?&`}#xK5|aGD zx(onV65XlMr%INA#qQNh99M6auv_m&-d9sUGO>8pxfC4#FBedS%G z7;-OY+X40T?s1-P$g`R7DFS6d4RDBtKwA?8P-ji7w}g@76=3CG1&Z6RCTYF@VWO>c5;xo^&I0HfTr(gAp3i`8KX<5%p=uX(lH5hv%>v?D2wm z)>kk6OBF3Pvz7$G`_CY+YObiu_dW_ixmqF0TxxBIS+fTXpAEsp-0Dc9iwF9dyQ5E- zMNJ+nje&zn`L)A4*fAD5#2h2mH#b!^3|iK=dg1qG2pDViusuw~tXFCb0^g{|nI_OnQjf(>~RX#yqIa2^&0|b?C#~O*=S1w?twN z8}J3*7z?O)p)mWqC~N}M45Pap(Y>wy)5Sy&eVcVVB;WdH4--uFDPlxt(A$VHotr5G zv8r?CL0VUB9gy0feg(7bL{y=})k$?4ItJ4~(hXo99@z%~I>w%9`|Cgch7)JKY~l^$ z2hog>aobFzpp;OZ>3M$Ex(*>b`Vp-I$i`8~W~3yZc|j=z(g0|<-VTEY(NLP1C(8Z| z#In;(UA^GcJn-jAO!x zx;8g;S$UZN5)f`noT^NIf>rd)Ym3#xupq>*oz z<7Ngx2%T$4cF`AZ>IZtdA&c}ARHr@LOT6v*S<6tTEq!wAUVB$OF0*Ng@;tbtBb?Q( z`}*~p0fa*BGt_r>LOiUc>bEV?bzLPoCAoFmoA&8>^+B+DwU+peh@<~=LVvF2`vENJlVX|pw+$%9)Gw_^&{%*W4#@*T!H4?Kd#CM6j zr!HHl#!JVb!E&luT5qA3Vg)uR))9*jHiecy!i>Nn+>1 z|D6ZzxXpu}!wggs&uXZ6W=n!GyMy6;9b9WYq?kpzRm`kD@yO@eMm{~{8?U;Nx0qja zo?zBBj`>RvI~2OIUAW=k6%n^E)f;Pl$90V!LoBQr|BMqvt4m?%HF)p*w4^nO$KyEW zZj&N4Dl{@7pC}nvEYoXzdy&kwRU2V;^HKzu*d4{NhFL?YJucVGWW6T@RMao>P zCEs4Mio>NzY99)@Zw=2II54vWjE(hBbSGCL(FWCE(XFxglR_&H)-HC)Ly#+?#*)G@0x9tG(0LCs;hE&jGP3g!Qve$C(Awi^NzsxKlknN zs!`TsWeXKG55)zV8lTF3-IIT{SGf_aKAo~D6H=Wzs%%6tm`Or+5Y^PGT;vlL;t+)o zkLi8MexH3{@8HKBo0E=AoxA02VKcyKyy0ud){g(iZ=|<}KR$3Td)M{6zU#re$+Fp~C1xy3OPFL)d>iI@$-=*zCQuq;Yjl+$YV-#-1W>MnP&vJ$> zS;wSPftvjRI-@9s1CLv}uIE+!A}8^4sn87V`UK> z+$bS_o6&NB(ns%?udYhmx-*M(@l^YwFqy_}nMFJ;gs= z^=N%RiEr;C>)uRp^b^awq}`iI<6>0aMdBIGc8W8ElrbE=j-FhM{cebXTD0RDnaiGO zRX3ma2_*$T6*00GuOOElwAsozEsTpyPsR?K8 zmI7~$&rgM_t_kM4KB2sUVcCnGnlqvMFW%6)9A2m0lId9;dCGvKtc+@4RA&e6Chfo| z=hj+FPh?rDH`zG0e_>I|W8LM3cpRtrpXN>YlySbNgV*Mg*ZR2$$8y)Td3vo+9aZ(I z%cIlaq&Y8{v8Hvhs4Q7SUEHq)sY0qxUrM@EtC_%G6>vFx;ndBs$2IY%ZaPrf@R+*B zZ)&j17g-LFE>qgnpQkw~S1y@NxIj+DF8ZhUbL{U33RISRtGbl)&OzUxu>E@yz#NNqkaIaV)zuC*q$>}LDr7;7iF=bO5D zE?+ivmx@&SDWh*nJQtxM^OKSLA8_Vv-Ng5i~Lx&C_Mh%)k z%3NORDp^eVM8i%^f9XWj?Ddm7TrSx%i17$=;P3Adzzn%H=^@f}`O897%^j7hKld9$ zINS4o*I2mfFFNqGPZi338>-XlaQsurAimH_LVje*p`%DGPKnbGCda;ma#%4qqlz(d zO*R`?*aSP^13*G4+LJK>{P>0iVW5|c=*P=Mh**uhkzp6FjQCV_hWq!1a(>Dku{*Ly z_vUeiIiK4<_xnis{^-}`f^RZ+@s4aQ#8kn08Jhez{QAN7Ys!M2t7y_~4O{(Q^^y)v z`;^yXw-PWs*f6be{YH8Gnb&bIUW{ISjLC}WaNVSdsHl+g-csR!01tL+Zg34W!i4vz z91m0Zbt$Rm*x#T7kSw^KeIrqU2#WqtJ3{xQe=M@&DGnB!Q^RNs4*X$(c1Ina-G9u= z`d#GFtNDLA!W9#5%7E$L%CEOsVohDQ5jR|JDY_=Ey;%gdOI~aH!Z8{4@TNT#)}cJz z%-~|#qerEI*~=5P6N!U#;}II0#cDoc!=*)+MfW9BtgecD?a9wxs_c(?_F8l!{pcCO zw^&`Dj5MD6VXkmaJWjxeLnXcEh_`YyFs0r~gPvXw76_nmy?S-r1nKSr^$WrmFJ2tc z&$yF$|E8h$E?ozTr*lP=E9_dh69vts) zb01=#X*KZlpi*K$qGW1*0lz#kZhLfSVzk3p*r{AY z^47u8V9|N}^7w%%u6O5$Mkg*<^?&UO5_QhAU@%`76DJ(x21STu)#tXz6xQFF8foKr z542Wj7$^gQvDdt1!82qCbj)~Ie*IFYW}5oVUs4Iofa620CGj$aB|J_&e2osWW+nZJUlT@;4i?_yH0FlpdP3o!obA86}|*ASRL%N zWJWthfszs|?v(fGr`nqFP_-{E&qNj2624$&SOfT8dQm?_tLre+KXc*2_j-u}Af9?u z9j2nHw+`_2^~J?qKZN}AK7amv!6f@1bunQJUrC|{GJ=3+;V0p;_LlYrjLunrco78L zVy)jc;Wnijz}*)xZm*}#NWB&NTs}nLr6NY^u@)=8f4H$f|5kc^wQ9#C+AvBX)N{A% zHi*4pdfcN78^@{hW_~1wS(k>vrY-YzME=U^83od{!QTD*bDV*^9|)2X zRR)KlLvmnX!Ub-ad8UZ2CI?)2ZZtnfoV7rpV5lSMTlY_PcJ@FBc6R`~H9$fhLj!oQ zxdEqZOgv43S#>R)Y>Ivo52$P)(BfO>060}gij1+gl#V0X9kd;Fy~TFwV6({$zK5A6 zeI=c9uz5}uT*J8lLmkrDt#G%a=1rEBspXgcfZ&H;1VzCh09RyfC>JT=!UYy6Ir8Bm zZB$fL_g8^pXX&t$#QyciCGnCchtq?QaOe-^F~EUWT|dI$oeRWqffUEj-B-fB$&SecC~yOTP^kLF>x6N)M}!8ye*JsX zY`wap^J@@!`6e9a*4Nh5ynvL^Jpz>cOz>+|2WQIgm2{G*yXiq|k}58J!1y!m9zhB# z=yUFXaXo%);=+XEDqKnR@s5m{_cILQj&~qcHC9nFYU_fV`PbYUT2~eQp;Y4~pd)gF zi;LY#xAph;_X5#n{<()l>c$I3=YfUbHP z(ygE-SsK_I$O}~f)Ty@?78iGB6%yl#h@Su;x2H9JtMd2vKauy1#}TnuOk*W;i?x8l zW7?hbFI$||xkn_7k{Lm3ipBi-559fO^EAuos0Lep&X!G)3CE=F?=zo@Zrtv$#IWsA zDLyYeF;lxyq(5;UR-p$#6!%y%@6Njc>xIKdf09;+I&>}1D&H*9I=axG@)XA)<$4Ie zxz`W?>cDRxJU=5SxcI8^Tcji3_)DjFQ@(BwmtstXKU_)0s^RYW<>eqC-RnANTD33o zrI;>IzClmPxHzelmgZE~P-;0Rzmw*~d51#%`DG5bjRC{{Pu?P9j=^o`R~I)Ux4o7y zWL^rjq@cC?vQdA>Q@aD?OiI92M9RiNtA#{cUNNhY`Xl)@CMTDmyTul1jW+_%N?0tN zKlqmkv#MrCm`!QD(edz8(gxNf7?pyq+!|H5TT4alrgN4JBQwgF)ekLY9zhSA(J{_V ztV>4YcfV81O%^5zqckRgaAI-o10@1(R4E z8JlsLiSuh#u$A!u>oRz9Hk@Q%9B-=&THc3Qbtr9(T)XDxHJXp)hz)``BhA-_5GQtCD)>-tXn*{5K~h`!*!+fpAAZuL9opp*oo>Y{M*I-(d7; zFJB)JWDG*R5ZClPt53uLTH1hiR~}d|0QUydZgm$ptr1z8Q>q7$JTmcIs?Bo{fYd~do9Y*0`hs>t?twPITdhO7#-*)k3 z>1AaB+3B4V?P=LLhAm$vW1Uy$MqZ!6P>;;~Kps%0ZOa3b6G)-W4Q>j2Q(${hhRlXn zZTVJzxy~h09wk?UY^Miix`;YtIZMLmt%&JJR+dAiS}tH@{A9Jj-z z7sQuxP!tgeb>QxFiHP;!Scj#s7G7`&S>S^mwimdfwCzMyDZ5h=Z-)4SFK0 zmVs18q;cWVC}4bjl$#3s8+JBUTY*=~pQ&Eg2g-{ltA01yeO)EBmR;GWc==pIw4UNQ z*M_Wy&l-1Vmo6V?=6TJ9$P^+;pn`}Tn}$Ym5VVVxcymnxA_kF#-US70W#_2ue_Ixna!Rx^I3|qHgv=>Q~ zmxuhZY6>&pM`JiW3`d|GgQzh%dyt=ndVxi>sPoEuCx~}Cqsx<>KVQ9irO{vJ!cF?l zX?gnSl?yiGN@pzMxY%#)x~;%q|EuYgsEV?(-n<={iopQxi#u#-H+&WOXsw3gq(sR@ zDOmyS?@*WZq-2zhTUuJ0q(Q}IRase?o}SKg{;H}*t>qe&4muP2`NI8rwXb?J^bUkf ze*=fNIPv%#^B?*rG_;3z7DNFRzcq*9xoW8XXZ{279#butu?Y`AH2Imr^~EXL7rROuL3G zt*oX>mJDVGKA3@E#COq9ytaBBganF@uECYj^Ff8V+8YpY7l7ZCx@%07VP5Up0s0Gf z^<2rXvqxpa;L}NY$z-C6+6}3j9U+L zSMluCZqLx30aByIEzkPgh?Tp(AOtd{BK$>GNF7$R zw6sffO?}B>55c%Pvpfi@-2NNjQ^>7d*7KEp{^or0Zk4w?RFcZT?4-cG6@@*<6UoWR zt#!>E?d>cl{KLbiJPw?ob8>~UZI@1RN{VR&Z`lfytr=9^w$ot9Nb!X=L}&2x%Q8^( zvUh0Qx^-_}Ur%pU-MqAoSEHZ_Dy)W%j*e?z#=^ds_7t46d<2Pu;_K+p&`L>334ZxN zy9BVoLu0X#5@qk+RkvG%O~)>sy4qS34L(pM=WjMNHZG4gM&?_AzI+x=CvWRLjMUVe<)ZdXoom`S-2E9i zoPi90LnKYR1p2|?;!o8{*YB$kQ@hqC#>Xc&6|v%ak^B1jgK4zvKTHQd;3dIS1YBDM zL#hY2@E55ck!u&^;~m+6H*0PN?b*^68i+TC{SbySM8|4qcvy8;V4u*{c=uW!+{^GR zTa?yS#h|^)=Zbc7JgjG6P`t6>94dJM?-@I@U``ja+qfU**{Nc;g70`sti786-Ho1x zVEpHs_;>+$GmTr*-|z)|A)B~u+Y0ib(-XG~W8>8FYuN-1_-gICa?Z_BZpTJyM|5nd2anH6rGfpodIgz|N&4v1!?vI~06fKx(gM@m@=UjlA#d)mxC z45ryT3Ye1*ZYjMw@`$brB)Dmlvdm`WP4B4XU1HBDOR+~aa|gUis>yRd8gg0B{YE&t z)l0go9m`L0hNYZv(Yow>^Ht0nRFbB4@$ij==JIqxe(l7 zP6{QTRCelxTdv7a4aU+y^JKbgRxteYImv?TE+|hzKt1z z>L9C3=0@=8CSc+0bNi*x&#@?tpn+b115D;2I6b=Ya_43mPk^Hkds9p*E7?Qqa#*)j z_O0<_lxLj_ALho)3?s0YY}EWPd6vA5_!6txbYaQ_>OTUPNfuF zKWBQu4*v8-_RU>rB?8%@#qM7UvFl*oR|L*0(j%1ZCl(k1#2b@FT|v$Z?6QBQ&={c?zy#Df>< zBO~O=WJ=A6UuJ)NnFKP?drVB(6R)VJw{A4_gEn)$drzOo7{6kIeCFkgLVDQJ)sfI8 z>ne*1#brgQaZ9rOa4RaKiD?MLjJIDUSY|NVQ!OyP;-zdkJUN&ofK|Fr6ZqhOo({WH z0=s*~H8DN4XLU{ZZ_3)*k?+H%LCNN8W0>}PLjEdA>=kiur4g_~E!(AMagY41p=Rv` zHGmyHo-5jdeqY^(HKKOJopprSs*XGV&aA>_VaTP6tYn^AV1-$29^-dqlLr)HUg1cF zbsW%1J%3S7mNQEAT>!9O6F zelV<4l+hlQ$|HDKWp6Jmn>?;Q0mT2b$(zBVYI03?#3GjBQ&a1Y96hS`#4doB1EZv> zYIqS@sj_OW_Y_*Cm88YReFnQFcFP-&=}rJ5U@=oN?**-Q6_=BIuoijx*zz}rfDdG< z_g=ESzy}8#I`Kipj$cnojRPHm>Qboe*~L=4;Nq9#=HDMl0O;oXn_LRu@cK2Qq;OZi#Sg4UGpRN6uJnJRe zI3xMV>e|{lz*CmNo9hwe<}C;U=I<4uh+G7`a}iYXbDf=?kHBPY3oR*W3DZ5r-+vqv~=__Dau?FStS6;|sDz|T6{c=W8Q*$a2uKfDq#3+Ez z23Gr_$O;M!WYL&`vdhKHEZuVo;GUCW_V0P2;t<@8)P|A{bGpUpf)KfxOaFi|?FLu{ zZh#iZ1w=_M`uYho&|0{ZB_y!$-CjSmH5xubF=Mx~X9o8CjhbMg{&9x-)EUG^Q=(j| zS)U_?tyqS&&F|fdjy!ws(#QUyyu9;23~KA@HX(SsK-O~sQ?d=n*3O!mnok~raYCj8 zRQuGzlE&>^qT07^9TNTn%K0^S_Z{7wn=Xs+zS7XpfEB)%^p`Z)3Y>4=FY&`1<{`~L zUDvQyWS^nnob6A1goPF&e=-?DaPc2^Xi~dE+9n}q2~fHtK}3Nrz?xZ>g;z?G)Ivb; ztHvH*%cx8a|4hj4ix4f*pSTlPqSq5fs_W49TBrYie{++||3jL+QcL<)ZG{W{yo~hC KE9sZ+y8j<9FHNTa diff --git a/report/query_match_eql_bloom_chart.png b/report/query_match_eql_bloom_chart.png index 59e5dcd45ab52c49b38ff9a0cdb98901a6a1afeb..055d407307d34f4a52d574d583e487edc5228bfe 100644 GIT binary patch literal 46728 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 F{yz*p(nJ6N literal 46576 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 diff --git a/report/query_match_eql_cast_firstname_chart.png b/report/query_match_eql_cast_firstname_chart.png index fb0bb6cfb62c7822749749b60a8b6e400113c859..673b35adeecf95ea7e18b978f9b1928d7f746c4b 100644 GIT binary patch literal 45357 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 diff --git a/report/query_match_eql_cast_lastname_chart.png b/report/query_match_eql_cast_lastname_chart.png index 81b155990e3e7aea670da879a9defb25a10fa47d..894236d75b2c8a99f22a12807a37f28659b023c2 100644 GIT binary patch literal 49071 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

        f0lF86ElmK8sPurU&+*) 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 literal 45359 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

        nR#Sw4vb-*|Lve{87G1 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 WDdr?nFZB@l((^{7zA<_ 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 literal 30923 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 diff --git a/report/query_ore_range_gt_10_chart.png b/report/query_ore_range_gt_10_chart.png index 471afb9ea42414b0bd8591a3f7925588abc75602..959c805cd3f84e43057cdb1998cc37d7b2156037 100644 GIT binary patch literal 31977 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 literal 31234 zcmeFZcT`i+w>28Yf+&IoQKTrnBfS?X0-<*ZP3fWc-c$s!07B?Zgb+H?J5elj5JHiz zQbQF8HI%ml{_ef+&+m=<*Bjp%!(m8HPR`k9@3rQdbFLGqsjf&$LPY|BKuDF9v|y(YoT>Q*0QAh&6}Dx<#S(s$P2xE^ZYeU>i5Ka0~c>nJbY+!h4Rm9 zBJy*(xvV0Z=X70vTXooV=C1fj50kPm!bfxA{;`$lwaxapxtW=n9%TuqBaspJ*Ve9eeUh)4^{moiSUn?nAFd3AZtT@c1??;8>gtB8yrWmhai8tz&(~o| z7WK%@L80)6hHIT2@f>~^8Gh1*99$dN@mL+NbDvN5fo{%qch7ePjg9P~kMYv*spcjG zm+_E9wg1*)e~pXz-fW_|yC5?-Wn)L?&NC1QqoAPPD*8CsZ?$foZ~5&+gHLMbD+-R8 zc9u*;&7{AInD_F+u$g%9LGAL-vM(l5N4u7LIE+U3^waVEspBJC*@3i=oGQ*uTl#)0 zRl^bq$9wace3sv@BufTVH||UZxQ|#Tu3tC}}T+eR-^{ECU!6 z8$-^~DddL@UU;C2|=j+9&LdwNznq(6E~Wdw)AOYi|Zt1D%sKA2p!&DynB3gA z?jUM@+n&m~?o`_<`@s%&v&P!^n3%^yBMm;Kf}RVSg{BSO`rwnI>r7C?7bFzr*Kgb? z-d-6qE=3>J$7f`$mQ7G_==(b2Yo>xLa@EuA)4hg_^uZh`+L-M$4#IC&ft?eds773+ zDW~;cxL*j3XSbOMC%u~zw2xmy2RQ0vei?gq{&EpVX=8tZVcCZ}migMqA{Fksul}3e z!u)S|S=_~#Cp1<&n|Pc?E8Ev^U!{{;-uJ^T^o<0EtEY)P(JRnxuj(Nc9{*LZF@=d` zQmJ3PE97V>gFg>}>^?%?gh2jc!8F>gm3-0?c7@{Ms7`@mH0{Rrm`myyOnGC(Hd8rO z$fXLkbZEBLld%&GHAO}h-@O8Q zGbH(f_B}C}wx&PxUn6hy*Lm1RyV)u9hMpl({RXqCgsKI2!Q)dJh%R1DD#KbI9qi2= zzKM)ncL}ufz4L1eMIwLPw%I*%AGZXTWXX)5#r2ov(JD5bN}jy;~4~ky(fm zUvc)-@!1&K()vYqjEeH}xGuYo zb{Dn9y48r1Dte`itDVMd5*$9}ylnyF$xbGH;2O29a?g^A*CGt=DdjvaGR!w2y^ZK% z*DFvm8>@B8Ze2+cbg=Qq&u4}tShhwbGcSN8w?l|hp&F}$41)!Fot`{?Q}ah6F3mlm z`Zdm`9zzwiwY8j6ky&yP`+?3VIkw_k#^~TC-D23FW!?6@{*HU3 zJ_X9;t>eQT^NPuSqzXSNvZQ(69;0czgNeB>$H>duhg;UJR})A0Zw(rlM)&c5g+I17 zAciv`e7-n~UkRK`wl%4t^P9PLN8Gz;$@_4B%lhZXCv)?WH&{C4$Rw?v35A^JV-8wt zlw%_mtrBZz!*8!_)~=Y68kSorM+eo090%VJI|~UNKZ(KjbsBx$?ufeQ;#OyR7HmR;*@}0e1Q97-a^bW%%rgPQd z_ZNSCeqQdiq(5v~(y%HP&F0YDLyyAoj>b%GFJwojyyn@5RkABRXAe0imh0+S{=#ss z<_tvUFF6#%&rC4*jOgQ|hCQRg5WZ~N{>@+$o631@ZS7dmu?%PYk1RRnnLd)6q@Lxm zsjf1GZvypTSdTdYLpXRu~Lp_XQJNALy(kgXOY{5s)Wm=_J@}-UKXD1n{Jjz`o*h0=MyI2tS9whx`*W0I4JuLZ z^kIJHHr*){h!uye#0k8zY4F}`?!)Q}+G54s4awflcG1}&Wz{)@p~br&?79s*Ipwat zmiperzR>oLfteB4Y&V-CMAfStw=UBxplUZrVoU(l7r%h1Ud z@bt%p-`;~GJm>@ZVpvryM@el<8rB(vDJi<_wN4NkYK*E|xd6|J^AYyE%K zo`3oMC886|+HUuBSb+|c;N!sxs69oRDXBLIK=XE-V0zpIiA;u>5YI`e1e8)mt^L@H ztBa~UvHe$~*Fey1^`FdDP5$F{9H$|bjJ4!%cta~G);lG=GoK1TMz2?f@1IMV(+=ac zWrIaV{KHN`rqzVJRMg-!CKTxm_OKu=J4uLS7 zwj$*Oa%0qv)_Y5B1M{G&-c~{?7p0Aen#k;ZyBc8Z@9&?GSyNjp;?Va&L6r6~1ky%@ z*#W1WYhh_Q3l?kQS~I>!H^FY}rT*Z8d$DUDG~v<>=A;fp6pi?tuZF$HUlI!TT4#+k zkv>(9*YaXbZi@r?xoa`{dv+c!#k8<0d%fI2^QZkQJVxbTCFYZDGvEaSp8Mk8@vD;N#j|c?Is+~a|9%C1gDYqhYufQC8#lx92P znZ(34{qxRJLgDw2DArR5Ei<_XV99J3e{UD=i15)1M3d#8>1n3^!shMe5z8L?IK2&G z$S*?@h+iaHJQaGmj4#TB9?Gw_?b1_=jku z0+j&L%~+|ddHjk)Ti$*!k6SH8;GLM);>);y$o}Pf8GEpRH}-~?kh&HM`6dldL5%p? zM^5BNNjM?-KYw0{Z3m~!OSl^f9Ue6V?yX#?YqSi2V{+e$yg02GLW$QwwCtdq3gjpj zH^1+7SBPZGm3$_20i*`)#@dQ_?MGwY<-seI}m2_jRW3N=;Ol9;=|!r~rQiuawlJ37F|juPJ%FCqi%wT6aWT-viLE z4@I!v2Y5aa0L~YlT_>XQyX%;jlnv+1WeLbicXejjuN} z+CUtiO?7F0=e;u8u4iCsO;wv8u-0TiKvBu!J|#u4DrmLK6!)-+hgx0)DdD&>87gXO z@s*VVY}XA0mbbSrx}cffcC>aLH3f99gdFc<#?9&|7CeI=7q8 zW8L745W$a-6l!*)=b~ZPkZR4IRGIo3=^}2jqctvTFjVm2zBULMMh)Ihxmg2cmaSdi z64KI^#Vnti(I-clcM3BcdO>7Z-8j!fqL4B<52g-_;xN0o>t^avt+Zp<_1WMe#c1kx zwIA*jej%aY=2S~bpZA{}CmxcjT7ErT&1byYGw!o^Na~qsl~B6yEpr97kH(G9UpbPJ zT9(aMOBG5chvF6CQ+Z@kyE0Tlj;sK7$F#h-tO5YM#84@y5SPd6_%SPQ>7>oRN71A{ z*~^d&=<<-~3yO=2jqSR~AtqL2V{umID`ACDt2|Z8dO;NtO`X7?7?pJPst@|OQ7_}} zanixZ-{PX)xR<(lx<)09&57fI^D-XC*<@GVWeNrH>`3wHGfPY9A01hy3P?2Mzwx&z zzsaK|n?b!EQ)JpC3r%F>APSdaq$#QGs9F*1l#chYX{1Lx?)BXa8pzXAT&>+X10S5b zJ}lE;O`jwbA6ezAh8!8~ zZPu7GF*ED;6q%XsPl)SsH_r5P?yS6Hh?tFhN0vM<9lV@m(!b|k7t%FtGxbwDHqL5P zN29F+`I<=-8#+*Atg%WZW&$%C9~zf_Z|k$S-B~p^|2^{3-2QgJYMje(@mAeI)P1tr z?X@@a8S&;d2UfYgRZH%5z6wP{sMg1UrB7=S~1enf#mX~w1Z0*-zlWg~soCUZk{--naYaf3fI z6_JRH$&Z118@b8;IU(=*%hiIoK&byzb`v7|0tCr<*?bFy*UBJmA_3^7-63ttjz(~0 zvPP?=&@)X>t1VP`;Jt_a%gV~i*U*w12fMAv<3l+nq3Re3-ailT1WZlj{>k+#yo^-L z9GhtpHjm@oxtg%aW5*R=s4Eyf(GZYW*|1E4759B9ub|kOVx8I1R5QtlnL5_&LI0(% zPzU8`msgp^w{DMH;(Fh1P#Sy{3?I%_dlwlU6`P8mVxp{cVnH8oR7eP~@B zTb&rTResKF+gZ!T(~b@~V(XQXdeq;qJ&R4W%^2Tljqa3easjD(yG@eek@AaI@iSk1 zjx|=-0$v|Xp$fZ4$Q7j}m1*mjuJTV_{4U{4Ymnt`jrDgT%j^WflAA6>L?e9Ct1G9O^VU=ozgpogP;eKm0T_UJieRWl^ zBRlN+MM>Cg9FbE<-UR$*9NjZ&QshRb!Der| z8#A%$rd{Q?D6884?&cigXRG#JBfSqV%x!0wid&EW&Fc60+r;Ba8yiXJECOzwTn z1RgW176z~Bl|xBcyNT^m zqJ(zrwqk7{Hy%lH){xdKLgU$%MtioJ@Et2YQ>n8@e}kjAQiYWlBX96+w4;!|k+E|b zLy6vh9j0z^Ys+VZ96A|%OSs^by-LGK6d}nexHJ&2u+|-4oGRQNz=4h#-CAs@J_HMY z1{tZ*{uNuAdVY!$-I|0cqBGT9EsF;l2?j>LDgQF0`9W}*-0c5b8biz=dl3-3Ma%Ttrp zZOlCvQ@0iOXHl6FLoS%CxEbB1M{ia01S&(!jmkXBlAY&Et7*g=&aw@zcND5BRbt0n zx>kA(xZ}h~sgi@{qyU_(_4`tD{iSp;Ua$K2FwwJlkt*8BelR6mY;vrrR!*_qrKLa{ ziW>F8_J0%L8QzQV&uxn5Fz5iKIMe<65BIlM9CH7}v*~ogY1glcTb|D;^rt#7GR}TE$zXNR^PVp8wW4zlG$+GyyK~( zA(|A+_?(vdzMjJX;={Ms?Fg157V)FQ)-_(*pEbiK<^kAtZ1AMF^UipJxWmHS>T$hEv62XXS?Sm|J;?5d{Z_Hv5va3Ap<$kr()S zdweHw>7#!K6Zx?78C+TZL*cWtt~8 z&F6`Ohj-0G;jI|S25+VH>t1IkGr}3Sy`98nmm5ll>T-|wrk6K+gl*%-st(QJA$|t! z4lry^QwnZ5h_30_xq7Mez&G+rfMa9fB6j-xrW*0UZko-Ucc+k(^%jaQ^?jQ-r@KL( z>;2(m;tFH43U$+b!@Vne^S#nD;mwC8lE}(F-}hN*YA9%lNxi(3QSB#*h;ZE+GmM^v zr3G>)^r6jh*z=DhfQD-GfZg|EkLf^6mM&>=0X~sFG~>x?ejkIX%LjHr`?k+BR({qS z{O*qi?X{8q-6l?BSJjypM;7`qGk>$>__o^Jw6nBlsht!9^sqRzEiDa`xR0Z-?GA>& z4Sp|MZIGoq5EG_fw;od39Ybm!!c@%T#4~$?BV}&w@>Ec38kR@AHJT>wa}6%mtY*@g zR(QRyufNPeIA5s|v?lb_1gagIPcQCv5H^l)yIo<{Ew*KK zB<_-$p%1gRjxbE-qT5~&x#MkXF6zGf(PX?iJJ~%?&$v)}&oKNAwKe;%vsqaf+zw?M z&9GNoZ$gkof}qsAiJ$dqBUqU?vjC3@wrfQu7U$U#lUPfocHS(HmdQcCw|3TXamTQj z`!f9sR$R43rV1>n`5k=5&o(zVsmTl;H)n0k+7`}6tf4#ms`tkQ4X<Na1+i*vEH8CiRBQ5*r_>f1-Pr6S)n{Ief_Il2Ps|SUzjyXCt+o`Qn;}p$4bFRkz)t0tKy@^En$(PmpN)Aa|DP3wNoHVSVezx;;`vYs6uLT!?z(7#`(kY1 zqWj{u7T&hTdR5xt{J`fpQjUt7#=1GKyzi3eSx}qbzVFp?FMEwSq;t}xehcD#p|MkQ zHkA0&6f%^*(tLoyk}m!h4R@UXTdIn&%{v?~F*|3sw&oqIT6myA(I>VvO~Zo*ZCc;mNulXPOlM?NI8=gAm#Pc5?pVgGg|{LL0xCr$Iug!@C$tAO^f}-m`2*Rgl4y|~s{W|-Mk~w_d$0VrbGO51 z8I?8*u5Jcj8MFWg+oJ-r;AY-~b^|YMZL2V4w{?02XuT<}dbnI<&Dw0I_2%`F=7%%0 zLL<`iTcwe@&M9twu*LQm_LbfIj~!Qw8cSDRM|%l4ZtUGQkKU>uY8Cqoy&>whFvFy4 zaz8Qp6MKygV?{A*HtY(7Jh;+HWgwreLdNWe&32zwPt`?w#Mw~SD{<=7-b-(1T#{yJ zSzl;@ad_>1o!Rd^l#2Pq<@BLjI`oy9WCr&VjNZq$2Z6DWe)eFkH5YX&#=dOf6H&3_ z^U5w+ftuDuf83jMklMc7S%ufP1mBiFZH#gM6^h{0GD(wVJrD7tW!}q^+Aw5^ZDFJv zRCK%a?i%yRt9Z%1S#zRT=i@WR78*6mvcI(7l z-okrIpp5@?H7+otu3Pcb48JBx#e;SR%?)8ycVianFFB9d^c1Xq?8n*u#%%a>#sY0c zIhoIzadh=b&QnB51ZTlF3k4GKol?8z!f)jyl~EVWwB~v(F&ZM9FfVHVOI}rm_nzuk zKTM%(>d3oA6nZ5^*oAv47_B8`S}Vg{o0E=Uy)$APuju;|?NeH`?^|{=`t3VrwG@%< zMu6ov;7KzKh8^V0b%M)RmmajY_DbP7W;Y+OB?-8e%b{?d%5O)wVw2i*^Ode$9kjs0 zMU&{UQhFP{p%{)J3H_pHT3okGSwHe?)wg`4)<^hh^bSn3tL+4d|E=NpH9XZ`hTo3N zSrKVM6YoBi&?<%r)@8MBZGZxFHa)Qh+RkU4qxqZsNL~KN!f>i(Yc%v-i(Aj(Vi_l) zGNe{lj}5#2ZKhhPsatwT3=kPIc3&7XZJjr-J+LN5v^-GlsO}Sbay`aHzV+ozZtsoj z<@RMalFz}KWlOtSJ}wuul=~Lx3|j0>5wsI}GH#lQ1bvI5^ns-2fVC3f$mjAQp>_MIab2UAh#d-p#3< z^YW57pzXO{kci@=$H6c@yUo03*OqRy#wb}~U>Kn+mD{wpSSoLQJv2t|HT;v7h$r5> z_h7~c{SlI@WFy?P@%5T*!8e?!c63@}SS5@zrb2mcMipTspQkZoIr@pKzCf`aoilgn(x|tyMHIMT8_Ftg}~CTXI^M zWbq1DAsa-8mZJ4}N?9MW@DsVV&#u&(8>+K+@LlT1Rc8-cTx7Cp{K6g*BxS_dywM)= zwa>NFi{?}BsPEML#_e3gvoc{|Wzuu0cG$BUgDY|q6>%_bTswk>DMKKs`m0HgKm2H) zx^chsRwwt54)zC|!9{2aYsK``@6ORGvF_Wobd!mVlqW;}w=>hr(&Jjui{HAc5aRo? zZ1;Lwau|XIMz=}g0>QLveZYp9R078hJO| z2b6!|3vtP8>j$#@>HW#61^noX+WpGo=MhuH2P3bB;UoH$by$*Uz=bbegDJZF+d`T-+5wQEl2Pa*Ubi**@WB z{~itDDtycpEyuqT8U-PJX&9#6X8T0j`)zelnA#+1!xur-jvsfGdCV|V#BqRh5@DN? z$#KVMM*s07D{mxjbZ>k+Kz!*(zwFeEbl#bi8(Bs|I^vgpgkB*=(!b3JHt4nZ@L#~N zzRt3&{GC^LTu}?7`JiHR56)X)yd`Iu$_Y;#w|oR8TmxjriHwhp_9%pI-b*w0v%!Pv z;)muUFLNN>gCC`THuW5cu*s;`tOO0I&AcVrTNV$#dJU>D8sP=yAIAE4CHRQ0dEp#c zpAXF+Mhr2ib`|s5v`y=$rMWbg7 zzg0hvE=zZUK$yAdJDQ6x*9@8e2#-M}K45#<8H+VdNPW!lBkt@u@)iaAQ15$hnx`X( zvve8zZ~}$q2hg?QEk67w8{#;=LiG-M)$)+5Tj)14LaOC1iY+{WAcwhr2ys|U%+Wcn z&vZ5_cbSr614^kpWlYFK#KbbXt(~X)H@76$<^v9c&#;f|qvNvmA20n-UrALW{!tEC zswH^p=cGSItd^nPBE(bc4Afb=!MG6&J+A^^=JqZ9C))b9PMwU7^r`@$5=$OFvkFm$ zY9tOMP0&Y13Zy^seHA6@$99wD8qIsrYbn-aAu9t_mvlHUUEaRU@HD`X=^E@e1#k=O z^=Z(BGplY8BM5gJFzUw_?fkB#_+7NEBONQxf8?≻4>nJp?=PSum#OR8&1qNI~Co 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 diff --git a/report/query_ore_range_highly_selective_gt_10_chart.png b/report/query_ore_range_highly_selective_gt_10_chart.png index 4db4dd056df2adeff98f38d4a4f9ab6cc75beb53..80b6bdd55fcc9dd45db96bf2cc288f496008a65c 100644 GIT binary patch literal 49636 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�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 literal 47109 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 HJYp$OOQn!ms^49I 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�nAxKkGDRG;1sR*r2aD`npRw@!~f&wEl^F3fYr+CcSzJLD? zoXQJR>)+c0&0J~V-@8d&DG_WPsIB{#qA#~8fKVE*oVb6FqEMf%wVd~5WlB4%7ZMbQ zHu+zs+yqs<$H-a!9XocU>M^M*0DA*X?t^SvH?hEUI{DkTZ!R69%QAw=vay}M*ISZY zKweQ(&C%ojCZWRbfXV5*jo~~=I!{~oS&j?$lVPf>(l=A>ft*tVl;(!OGT`Iapav-n zrrIrI;$+tqsol90AtJ)GA@#@M;U0$l3mj5e464O*%Ck`;31(f+ zYhDJ=qEWF*AeQC`Bs=l5HPr5mx2L<{xEzV7lP zm#xpfXZ~du!0Myd7H;j3b!VcCbK>65)lip81>OMzMOBSMM~9irRng=ZjEbuBJ!P4_ zgyV|cevJIR3CQ**SJ}0NE(Q47E%neykryNBhj5QLu787|aFwOwoC)|Av`lv0-W_pR z>Jo^6DdI4g{Y2L((Ij}DRmFc&E%BSj@ zJQN&d4-+Ws29-GXo4rZ><-`Nlt8si{k{>`6l!(DZZaXb0h#1Octe5lLDDOW?Cp`5M z|FNa>*_QtzNcJ_`xzD4Mfd0aD|BbyE5$5f~?t(QRtGHX|aSO<}em|9KpZYtrcIO`C zxzReXctoirL3r&TcwCXx@E%pb!w<&t>&uF@&i2j(hUqis%F4Rao^0iKKmVfH-E`M4 z#;X_%@zGWsG;u25L~cJLwM$z12E_86HH~>Ex)?5gxwHG>OWfV4G3l-Lg^ORBs_1QY zVPg46`GQCubr9}uIL^Idp)iftQi<)E4O8-+Iz5iD!}K5c#KLqH-GurwLIICHyY1Z4 z*8H6+QFd=0Xo7%^`_nc8{FEGx>c{`0FAIO>=~r-v&;*Ig_Ud?;yfewGjV@GaNzx7( zp1dACVOxR(T3_TAWW`iMZomFP6g#{NPPFs zdQyp!VHCFIO_k{&5!L`HMDlY$lq-(5M45L$LooSe^SKnqvRJ7YMsT+}OG-RbN+AbJ z>vLB+VZqNKo&QM+e7Rqn*&f%OPPohPv{^_IlwOwTbQGx}eSfSJ@`C7JyclYdMEmfg z)Q`~#2pLY!VO&Jx!w{U9z;tT+^`oTxIJQ=zu08+?8947^9)6ZIF_e34w(eSn6&bf| zNm_qTTFeURVF0Kbx20;@EX;yh!Ba1}k1L*%zz(bLGou=sri0uo)GO(R8Qn!D4`F?n zVEu5t;|%Np{1gCY>u&|yRYcQ4gu;8m^tIVd)8(3h#Q=tvWBtX^J6BhJfec3B)%MR< zIwLO?La(JSb2tyocdP<$NtS7DT3b~yp z?+D=Iv;42B4!|o8yG^{scUuxk^-AFR-?myi#tb4lx9*_7S8r|P(y0N2NWJ-_xm&u? zSfhijt|aMJ{L?*q-ini9Do>Ku@mx%9{h1Z)ol*+elP~ePX+1ZcnJUqqq~MXB+g;#? z`x5RpAqMPX7E;#bAK%iMZEKW780;=X$6eC6gkEtd+-uMwGZL_ z!_LB2fw7Pn!25zMOJPI4b2Vx?rj!Prl)z%?T;9!Uky}9sCC+M^WT0N)vQY ziX2i<%2e|JiMerOXh(sV&dl75{U;#lig1&l0EGq`840d7h2pCgEdip5-B;6eK18xx zsE;s#{Rmn}Rg@rk7?Eyek|A12Us+hmvpmNY`Sq0|%{xkU{b4f^93d6)3ZcFMn#v>r z(uKBNeAzX7CouWBW;XZjMaKB;J!!0xaaRSb3wJ8Q9mkSZvPT7Y-|lDmuqm&hmI?U1 zE3M3wDYmkI%h|R`<-SKTYxscEE@S>AND*bYaf_ZN3MJ1; z8%E&_s*yZckb?_aN=VpYDS_s>-)s=5U?ce{Ml5j|Dlm z1C>r8W3CS}fmK;pfIzg*?3O|lD zlJRPp)NI|)c^;=GYG?A-1zlaz%5afB5~qJS58Ub?JQ5wjKMz*B-0kJ)A?`FAT&`~t z3ci?ak!+<#b)Gu0=~kl5n^}kA50xsx{*sauu>9X)6`TK|C=#9=)@Lb}W%5 z3wk>`_fJDrim3iAbYpP`1K>G;jbcfv_G9-Z!!p*9ma*=?E#vAfoi7|p5CyY@VLhZs zb!p{|=FtZ$R^n;NFEz6mbwT|4Y*F67!cY5)P%~RYiwFyZ)nxc|DesC{xQA8V@-;Zx z{HoA%V}7oT7pv~E=gOOO%m;aQiH8#$K`zbs$W7>MML)cwaW`7TUlLVETV(eVLh@e7 zdF5Fir2qboj5Gd?8faZWIsLJzs{6Py+{dKg9u}Mv%w9Hl_jniTJtr%^c^(M@5L6~f zKo`-wvYis1O5P;P5NWgjH#tpH)OJIBjHd$C&XUCZ; zdJHDI63*U?Z^u^LqRzHV>!3j)jmjhsaUhTGoPl7<;r(l_?KsMmJRzjvP5c z@_&E^h*xRMa|LiW!(YAy&*$;SOfdUIRg^}+stdyT_=}-kicl)qiLyUtf?FyD38%^p zNl8cS(%rjvKbeQX@F>XFk9&W*0R10-qZn5;KKlvvp~ZjnTbpfbOCCqKgoQsT~_0&dx1K$H5e$xFAwHb=~o*m|LHXRPeMsPB{^Z`ZtrY#oTGAGzxgcZYnMM z*1eCi2uh<6wUwaV0(-$n0+lJsN|6OJOx1N`30qpffKmf9!nSmQ!BcSI1HDmpP7VRo zpeW^c1fHa{Hgj8{l|C?S2k)x?vNFevi{JZCZeqpsd)Y6 z?A#3UfWp6~c{7Bv3OEiRNILNSNt^#e(FJJx7~)0)-Jk{t0#e5%n1zLfNBhc3w*AuP zCtRF43d&GfJti3NEic($?uteo1%kf>8rOaX`n?SD(G$%bkUq?M zOV{|Lk|}3+gA}ayJ^U+4r$wH_gw~iPuF*^boxI;(!S|Zif};o;D8KFu7{^G7TVo_I zC$MYg=0MXphxat5O+vG@Fwz}dfCnh6WoR=)XE|x86QHrj0JZX*Zw*YplD+sv(yD!w z^TKtJ=e9na#}%P}{jsCURk{=Q*+9Z;m2^-5kZ~l#vk%Qg*Onr9YNp$kc~Aey|q|9 zdI8z-a7jWJXM_XIpzyR0U}sGwKZb18%wL<4Z4t~0 zXJXD!)nrzJaI2Rfg<-Pp4MdTLodKZN-`$qUqfIf0X~%SO(;Bi4dn@LXvmf%+m5&h0 z;&L4wZ`hfvhS58A(Mg5;+_k*=b`MvzIE@CeEjRB6>Wmx4=OqJ-rL_bvn_#S1R z_&q57LW-)WC8@Z=L?dGX4-?VTL79RM%}*isn|46wHDn5ADX*W~r(KdAYfqbZgnLW! zt|}~o<>OV3h9MYSBT*7{|1RDwou2bj0J7?!{1a12O3-+45QAXaLLEHPU=N`#*;vh- z`zppSBoe5ey!w4me<&4@LJ+*=I?DJxA|z_6gJT|kittK;C?f4-zrBLQ^=n5Ajr(>@ z(p`kI6IGoM4G{L}!7`zu8N6Od2er*cG2@MFYj((^4*udMgCvIXJ{1S|#!3@EygEf_ z(*$Z&FHhLX^xdASum-leaDTZZMH@Qbn(r zCxg9@lyYHWPoY#XHV~y;Rsx@{vgnnv-`-w8RZ(_jN`k5)&FQBvw-aYf3d#74#UCK; zSK?G8kmF#~^+{WP%9vS}xVU&#(aX~m=(+^ax7UVUW6%Rgovkyt;OZp?-VdYpNPq;D zdc?UDD|OjEboM(OLofBB2vM6BKJV-ojZ;e&I@%i-y?pFz3p03gffH-!;W5|_))&}Q zzg%#SyOhT3r8>cW0(c3rQ{54{0Tl(;55*%7g|uB6ev-A9JLIothG_&Y z%{4lJXAQgU7IZOqD`cM@7(YV~Wvv7V?*I@`U?wyaNXI(-#} z5fztCaGiJ&LzB<`OMNACZ6s^c@qlz+#lh|qZZa>ryYTiDcCvm}Z zKaWP8@g``8%>A_E72_yl?zWEpL7VfS&hdetB>g_^chWnkGPzzb<-5~ZG`aT*3wP62 ztw*|duQ$EfI#F2mMSpCv&%IwfvZsIM%BRuD&7#Kd_EnRS0ttipa(aoKM!Ob2^si-I zoPSu+zrRk#VR~XY+3)D_Q%tZQ@N3Rc-e4S#-b^-m0PR$mAiJ;SlGZ9AwI!Dx#wM%i z8J&(>UR|d;d(0^^XRqR!RQ=g!7mZHFeIq|f<>7$Wdl@&^7E@;XBCdI~yo1=FDVs9w zp??|cEIx0)I*abE(F=u?Q{K|deEv5(Zyl>j*-s^dQ+}y*Uqg}iDU+D+u*P$ymBkOj zeqt{lkKJ6G9Gx9r-&meyiT_!J9)8>*_+e}pt^@Z08H|H1fzbg)ul@Rs45DAhLLW;% zsHGESR-w7|k~|jo4)C@(zzKGCI$zb*K?w~gAi_Uw=Wwe)DHx+V7bL~J z1e2EV(6o>M5kSl29mr*XgA)kyhZ-PZ57n|}UJU__y4q^b_6_i_sx!&c{PgNRR%N=c z4E0eAA7rV=14o3@ZcGLF&FwRD@3red5(r?(R=eq-oDBLCsNI79$r}_DM1S?F3UnfX zD<#^4pJJt)hWT_KySpc6C7>&`ZDfX7?#{850z)oU&Hy}~9*yuia8}@(Thwz_zRf{D zVc-a5KJ3vo#;PiIqgVtt`p1gbX&89v-_xV*>El!Xu*?^DgroC9;3Fni&@t{E7#3#C zaV>lz8CXbj?)AO+Mx7QZcXxMiINeqNF=AA%kj7Z+J>hHlApq?umO9jl+E&)Uj5Qrj zlAr{Gc^DKJcrSQH)tf|A`!P632QuK5j1DUm6QVpCFW!Mm#Ti^_o_q zASu1iX*VrFoEfZ=wYJXo^zuq+qPqwNtD1&}37w#vnTj3R=`%C~%9Vj7ZZHsBT?h5m5O4n754#1= zNg*6ujdA3wQOu!zByR#{M^rSnV%9bQPggEpHV+?ZR6dym93QU^Tz{jFrViN1)`q} z2!Lcki&GE0$JCN>5P`|X&_V+TC~a-@4)LI7XuGZM;c6VLykCxGe17r zHE()SF+LZg*-N`Hy5U2*-sdTl?*#lJ?6~YNgvMlAQZsj)Iyh-CVOt^m{=4fl=dqTx zlmF$fUL8}+FHTdwdmpNPa2MwdPb&rDmmv(?O#t%Osy28D$v_3#FiWfxB;EnDWnkGE z!kqU9pgm{+d0qodb21o<2sf|Ui}@RTl*^sTMSezQ7*%xBnJ3`<2~LlK$Ibdmi<+~J z(B1x-ULHj6xog)hd@ut!<}WZ9oQ}pQEd3booL+nxN$Q+H%2|Cvr-MYfgy^?%i^Nod z{c>LXKmNobW7e7d3A7=t;QUt$UM*oTa%xTBQgS7jJl)MG{IM^{-~aF32mbmSe5lpU z%Frm9DLJq)xYe8W3s|rPO>_M&bFa+x!oW@(T7D1AOD3<`%>Pu3;Y3Pz5UX(mk&%;K zGxu^3qx>~c%5muMVxHQk3BU~LliVh_Df2)a&S0u|oMR5kJXJ^Cg3nT&k%KUB@~dbt z)KECMI`DWAx7u`PPL;O%#zI#<4BH&{?Zzm?xILtOXq=`EUWTL4 zq7EJfvnggawyQVjJR6U=?c2Y95-4VqU}tqlQq)4vd6GM3B*tY{G9oneK3Ec&!2+2f zBb)9#QzLkYPQPu$v)<_{EWBO<1A9uK59kc4#&5t^bcQRF4}||Y@gTF$M~wI0BAZ0$ z>!nV9dHtjex_+q>_B@|!pC10`=KD4n{Xao!2k{f-RvtoIDy>`krbGIPQCu!yT=^2XHJiTCP7u50!* zTX1FRTW7(aqT%!B&s|_T)Ajc`rsHHRn^xL|mhTecPg~?0*3)NN5EGx4>m=K5P9796{a9%}VlN0627lk^MI? zv~T~Ey4z#G4?lY-y)>h+@SCzBT=6v)mRh6}b!!@IR}YJcvEbt5bQvoL5z+%Wxq}vh zm^*D3nN>r2{&UtmUN>&O}?{)J3{GpO?9EV)PZR&QB9A!`=yaRCUDgzT24db{O9 zFP~?kr3#)Fiwz7ss;sG*qP&L&%oq6BErD*}re`zN!#f9u(Ml-;AD<>Ie`df)Q;hJm z^6i8P0)gOITU{p8Zwhm>6J_M&e0g10b2~xkt&l;DdCaX=TP9;R1wyApA6&?c6|i;P z#_degaGZU1*RkZU1~G?a+FnVTyM`QSS7*nfIe%2t)FUmM;7Jk+UIVSg?wD5LfW;E$ z7t;FJq>493ab6;`FV2?=$2RJZ6nT{||Jbh#4zxtmAzh)!*&7)tJ{5eW-McUWobb(Q zUzbjR=(K#PY-`v zO330=2>W}ZkCD_Lg>c|c$8`J=5RB)`@7cRKP6*sl1ZPhfuq{h*dDT;A`vEqnn#N~6 zn!ZVL4~dhk#7$^S3pLecFl5_E#$IVihtE6N$u4I9kjz6N#azaEyd=J2jt^_Xr8Y-% zT*P&&H|j^T`pG1jw{Fu^aCy+IZ#nc4gxrEv1}1rFR1LMYvumfq&W47Cjn0Mdr{?&n zKf*oh0!mT&lNwqqT8ezwAvee@glHEjPha~<9Sjo%b`qV)&Z+AYdg`djHM*ynSXi28 z6lZrW!?VMTEgiS4-Fd2t>|AKd>7brfj+1FwnzhyKQ-O(}N;Uum7xg<{OI@B4il#fTw9Ft(~Fu`8Xqx2@7 z8Jp-qtP3$U+=O%0l&0_G2G+C|^mJM(D)Cy%hFI)q`j2)T+`;VW(m7vqsvfXCGbu>e z>0wF3iXHC(_oQ!-V|4!%9ERHeW9WtO}+IXTkOVPL~@EJYGU-D%+3z zX5kgJI&-z`h80lc+eO$Ir)v8xT^qqzCU5<-l~2R7faok6OR=%BA`kcXlsvRh5E9u* zc;5bJLqYbK~K;P58`rbKvdKu^K_`Nd%4^4;Ex}+skPuy zw<>VST^r4XHm72yZ3LXF8*BxZal9_eZ)re@B`YEEwjrE5r(&IWX>w(5<(V-P2%_L0b2OFC4WMu?|6eA?#YitLn^?u#6?XHIv;1OT2q9J8fKWv?oD}w$i8{ zc)FjSSZeL|LQ8*Ps<*@pQp7yp)>f5`D-@WJvFRz;w`Qr@PrCJqFvh|JG?Yn`P1V(J z!M~5PYY(&3CgXLRw+bDIa1Cdy@n>Hetqxf-kC%N13xQT)xV5>#ASej@+#Q&V>bg2E zz^x5eW{Kw~zk(}X7wEtvfUOh;viN87Js3;ojj6s|e@os8@$=y%KQCOc{<0Wmwo^!u6<%y5PEWmm ze{&9;e#C4=q%LpEk>Iqgnj#5qFqpl(kGE&v{J;JwBoyh7;cRZJDY7UYWq{OlDOBRE z+lEsMAjoqoBQYIz$^iI<>_upvzgD?R(QesDEd-8&e-w&kBznKiaJ^W^MyC6Q^b<}{ zT3$7WYluKvJCq+?16$uPq~sFb7?r11?FSxH-X#<8axUkDEMqt&HG>oJvLxl?uEF$Z z9-uyP#<(tqC7X5^Snybs&OCRV|0*tf@h`9%7=9o5JxhA2p5}P=ataUz|$k+6o(DZgXuq zqO?@N?8VMxudUoc*gSD7)x$TQi%3aw;@tb3Re1$#t%QXBZkl(N$2OIPIq& zeUfL|5l*e^@VYB|Yps9FHsQ|oLV&*OFS*U^rySb=Y3=VH^Va1MfG>DZCx4ZR5$bh; zTR!aPzW!!p8A4V)L~Gf##Ywx}3g9}m`v}ZwmyW3ns1H2KxuZ_wti$rJyMp--IyuuT z;D}}r64HGl!>OFWfF>c@fGw2TJ_(BCrfv|rq4e35lan(y9RvkesTgD~gCE&1T!4l) zXWb|elM)l78f6kiMyQ3?zaL^1WE{BOn8s#BG@2PUT7Xa# z6cdwKl}bm(92Uh5X;FnVH<1q-BW{za)9zbqLehT`VuoC@pW6KR=qV(93Cn8)@zljv z5Ylwb5nz)|@T%$RW^hH7h8)a*lpTaDV^*Uv;A9vM{@#s=uFYq|0+zr(>5el1_?0^K z2uQwbghYxUziL?*m1};W(f$z3>vR?w$(SjAf^UiXGDBbh@DawUtWCYp8`C{&krEsbAdT3LN|`PU&IjE6kUG3 z+hZ5j|9IDa+k~JYoj{`7(cHk3e1Z3!fwZ{FN1>}~=Qi^~c>NuuU6cIuoFR)U2Tn)^ zT7=mVcechKir2en(GFws8Va(#3!_Gkw2+9u<{~`Z z`4J*svKh$B*XlvsIxon=!Lc~s0-jQtW8o}lP6g5t1@$vCWj_!6tLqp$STixj%rk4)BUk1{PMRDQPfG8o? zVwBdx0kp)-SQX#Hnpyh8#${u50q<*MVDN2XV#1_pGPev;S50w{AA!nSKTj6)y6GzU zaF*5Wvi>!2W3nHvuPZy7Q*aSBVmH|Cn^hFR{x7OXp-P*cpYnmFHAexHH zVtc5UGN%b4ey@%4+cgBgtWrdoENO9fyIPk!1%eQ=)y?_Pyy#`76GLV>6$P}C3ctis z{E}Y_r_EHn=d=4aTz=w5KA#VtbI$9$U*~yvZTs7DpYo~E(M>>VY5@Oc1JkIuHwNGk z(=yDnh3$%|*hfyCEH;MnR);LpLF-Fch}0gE1&E{#n7t*pIZqdj{@5TfQlUXVU{~=P z@(LU(;6BQOq5OY)hJ+kvrs>9NyWgN8Ls{CCCIu0N!h0?C#;uO1zb?} zx{=Bl>n0>eg|VyWfbwbcixJB{2RNy;W%PnCyYmQD@)#wn+6UG=>HvOk4?Roq;FQeW z)RND=kMYEA;L+ner4PD1M-T)?l28@~ znd=cPQkawZ{FioasynKK#QQ*o+Q*qsqK^7+DueWGkSB_Q-9WM4cPJUgoW5j@0077p zU2pFLE(VQVsaVUi9XCm=r-Y#w^;{wPpNfS~v@6t0_2n2#V8~&|ZptpMsF3nu?z5d| zZ)j^j+=O2UpWkj`?D!c5fh%C%Z>G*06&BQvYms&#%;puS0E_wYHjmpN0bRqzFAtp( zPVs2JwoA_;Goq9JK*K6_&@C9!A;o9Yq z9!25OUbx=c`-|~iP>>OFIeX@WX_i#GP3kJ;I9{i)@=>)xbn;cq`Ipi9CpSL}*oy8U zbQ@@QyvYWL-O7!y%T|{DD(dF5+&&vG_PO1*0TpLXPSfa12LE)aqmFpXADd)ZRs(X5S z*YVZ9zP^iD(#BiqA+MExU9MF`s`MwJ*1IHWFA{w%YosvT04>#Z+NH=2tSu8dCPMXv z(Yz<13?>`5dK~5{E6TnTZ4m%CdUCO{TNqxH3S>WGm+Qx0WGXew$F7VofiZklFBUeD z-5nD}8O87DLdL1A1Sl4%8?EVff10cJ9Q^)kKS#lHh-K2rm;5xsGy_;`321C-O~!iy zeWoz&o3f5afo~nM`RD?bP|_}T?mRv9w)6t#+K-ok2{Ypgt32^gUTdOBO~Y zN&45VxC1X53+`QyP|rp)=1IpD9i!XHT4!hH%U~qV;&W(i-kZLwqDZsL#^KW5eZ2g} zt~0UHWWY(CG(<%}~+&R1cG_x`Frm{PB1r z(uY98Ka$)lA)DOKL4X(`5ESLmCvtLfnk)H}=PWo$zON7P_I~cO3aseIaJP3t=Ia9h z-qZ`IA|FE)X@({?l#WA#)s@^Hkdgz{QE1rmL}q2x7z_r}WYt!)*}SRmEYuMpCpzCAf=n=UJ>o4yiovR7 zWqrWz-8LWJ^{4BEnCYeY(+hHr1*BEFkD` zXPFrtP1n}b8q&_qLElOs5Zr=X+=%RcBf_%pDi#PI6Bib8jOMS+w=O&!qe%Q-1la+$ zVtxk}4Xz&Ep9-&hAy|o)yURWIj{^;wzLSt`eMy7^@AmE34X5eQ_o3&9Ckhv8!2KQE zx|>KG3Fm_{&6H!!U?qFg|94fAYk(~@>=uP~IPob1(zRL~FFDu~9|}+D*cRmY1U}nX rv&dTvAEcG=zax+T-!})R?2R|%_O2gunS)?Kb#Nd@M29QG()j-cl^|sf literal 0 HcmV?d00001 diff --git a/report/query_ore_range_lt_100_chart.png b/report/query_ore_range_lt_100_chart.png index 9d8ff4cedab71dea004a115943347a11f85511d6..b957a4d265bff5ad77ec9d50220e6487254962f8 100644 GIT binary patch literal 29446 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 V`%dr%XR-_oemB{jr~Aj5{{b@lKhOXG literal 31050 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 C0GX-) diff --git a/report/query_ore_range_lt_10_chart.png b/report/query_ore_range_lt_10_chart.png index 43c900e9539b0d7cb8904ed5a5e500179a7337e6..28a8ea919bd3e623e8b2c63fb268fadcd47ff0e0 100644 GIT binary patch literal 30675 zcmeFZXH=70*ESkO0SiSDkt%}prc~*O(n1eSx`=eCp?5@30jZ&POy~rqcWg)rMM9Gf z(!2By-wOD==N;#Kf8I038RyTJJ@(!qS-H!)=bH1H*SzL>ucjhLbd~BV1Og#akbeq; zKrW#mkc%pW_}~-s)v^cRev&7Iv$oXjA~Ce9A8?44g(y`XnBbAnsh+wpNf ze8ByPlit$V*#R!X!(;njBe?CIEO@@^yL5u1Tyc=sg+m}DCb)kunG^h9#A4=SaGt<2Y zE&;rLvtm0b@Xp`g%Di>{=9L`l<@0yLH=q~J-hFX>1Lgwv`b7Ib8FtaGzfkw)jT@77 z;5hCK2yj~6ogP)m)={@{E(!yO00gHl?CNb!)|s~07}u4dR=zGV#`o{v8x1TCR~GB5 zO;(Y!Ys#~0=F+E%xI`!NSwQvllE#-j$F$J~tt?3q7YllFR56=fl021To&~*VLwyED z#?)cko^0jdrL;$m(#)!9oXSc3Q3(lm*t821_$_}){S2d=+7!JG9xDsG|1h{BlhyV_ zKBv>;T}&uXLxSB{gU?~RZBq#OMz4lytJhjR3$3W@mQ8JrN^10Ity}W&T)H2(vF|=g z_il?46dH2#8>KJ)6?Hd#%+tn;EvuR|9y&9|2l{otQL_t|O7LR~fzS3^AUEvrNZ?p*aQk6U| z%L^I$Z2Gotvr{xWCFNCiSDLs!o%i3zR=+=)1TT4N)O&7c_+}|6C}c0<@4OEWk2~02 zQUp_AHdta-;&Zs8G(h>_xj$bdI}G{mI?W@ss}$Uv#f>L5R|-!KmUtEhOLGbhYx^~g zFF^bao`VOqH@Q^YSh1B8IOW zz~{iZ(gQx*?wFk3UE>P3Z3eShw7)s0&!t~c7DCQp-t_Zlk{L0bnB|8%55HLtpi{L_ zQ1Sxz^*`Fq&Sm6x@7kB!kB@mCu2dG4mGM`upr3vIW;^V6vY#VhJH)^A`WpAAtK{r2 zW4ZME7YB;dUFLsfI@>}O6h6~=&fhD5p`hl2p4*FwJ~g((f|a(5Htq-0F{*_H#SKGH zdHDynoVq2*z6x9YC17&O1G0V#zUxPI753w+f*r%QM|%J!_*gvv1RF1I`huP{ifsL&PvCw9>*9B z#&rS9Bvk|!HJb43@(u7Jz`V7R>ljSB2oI>WeKwNKMBp=ux~(GeG;(TOuDt@M4_@iM z&?jz1-`nWt_c^9PlIT}ifsTPe%9TF|*Zq9`O06?j?ehmu@dD_KBTuc2$F}Jz&66Sd7{=Ocb`#4HhTs=$0 zM_+FNnWE$rxyVN3#-C!PpM(4XXNwZdfMJXm{tRAj4#-AQG zp2Ah!h}O31XDgJG1*?55$_$BX?mE-3jk={_E<*gjoH-lc?#C^(`I>ou;KE%V=p~O0 z*O_v?a_d%tyWY=#?zXnPyTMr3P%)Z`(C&Nn`_p4~9rUtby-~eqww?lB<@VA5CQaO{ z{kL4ap=+Y<$++LC0EWx3rq_biWu<(eP42GG%blK2Cg1N%NQ{LIqMVb%)fPVpjX9v< zC;M~BU!ctjFug0={rdJEM0n{wJGyh5pG}+Fe!M43?ON*1V`P*I=Z{GDS{3$~&wT47 zRuR2gKtSjI#lWXa0D-k~6>*-A)K3Z_d1(4G!8&yW z*{2jr!J{Hn|2Pmoo7zBoYjsrAkbZ`cuk3L2ThKK=gVS`slXYR$+Hv96qD8aaA%*o` zyGe6zN$v{n%0nknj|)8;%IEGvtC{CEm47aw&6Zt;poS%@57 zYS{GsN59w^?PIkMl5~ks-j@ZA54JJf(vb60mklQ}BCt}X`x`Un&*7>=+nsQ6W17*5 z)%sl{KD(%oio;+5@c>utMog79P*5voRkbr{kuIFRRHY`OR_Dsod*OR|Z5qC5V)v?V zqKn(sh@41d4abV${D-AS&~Pagj;14`7U{(BYSiOgtePgrSDMGM!9F6{ao;af7?75^ zUWAaYItk*iK#LIm^*a+gM_&oAc$a4W7IPE?(ZQ z+cB;T+qRi)N_+V=K5h8tbj<;@Aqp5Hb0pRd9zY|e-z=GLSX;5V-+b4P69gM4iGi=Z z_1!K89KqptCGDi8yOOohTE#|&>{|J^J_&jS+ct;Ol8Jg4MXBv328OTC9Mtz;n7ROw zTFrm~Gue|V4iR*ikn-5>)9HZMzfLkTT+L3lBIz9b@bb0W{C$s4h{Jt` zZ7W;fTp>#tJvH)Pm(h5rRp;*5SllpYnM14NfO$tOkJcH6I~VnQQRYbKOc7=T9jPkVl_O!6f6uwy^2?CI)*N>)vrfhU%pm{{+N#WJNeygYrebls!-9JrC*tWS8B?> zK_#c`8;|=9uBa0jk|02Is1a|RiPLYl$hKYVD~LyM=x{3z!)aNMyChGYy_Q9~)>FGb zX%_S62DXT@Z~Go^>+n@IOdS@LWfhq=hYz~H1tFE^HgL)5D(MooM3lTw3E*viZ&OfM zfQ8CGdH|fOqkd;kZ=S~JtmJmDhQz?O3$>)LH`*@^T`UBjRVv1a?N7%T4G&~I#w$>W zVeXteXrR$9d^TCJyt6VqTA>SKRq@&;I6%Kyyy5Kjc8&AGpB-=DA3L{U8X85wS(w$R zg3ysVM-CJIeN~R8>6pca6A)8MN5Dl- zNY<=@aN8&&Bh#wLQ-5FbWbb1&Z;Ez`rPc=(9{q~KGOHe0fM8y+YnEu3WCaG+YPX8* zj=;0^by=~iA3%hU0rr!)YArHRrOjWYSKel^t>e0|6VIvp!e|q~1wJk7A@Q~SxpW~N zK4%oU0kK}<*3Phf@`b^2r4OYf1yLi zy*EGLX2)qVh$89p*RA}ZgH+&&-{?(SbDJ z={BEze?VKT7{~&i%yUyEHt@d(zd#Vy82pHbS<0Bk`JX-ww3dnp^PK0AO z*mFF0SGmT0b`7&Jz=_!ldjhz)__8LX6Cv%+fm|yxjneQE9tb+oA+Gk z%7vO2qaX$$0iH>8^}2S;Clv$C1U)yBFCsbJad22SGk@MoqDVD@J{j`GGc&5Bx;d9D(5(u53N{kc`|Uw?)|wS5#cq z_?I%gc}GMo*iv)XFB(%^r)S-pN4-2t|K)-@h!M9qwA=fwnfm^02yT3@Tzc7BLJn{V zd7e>y4OcNH;XLJd^9}@f#cHS)A(GUA!f3?cDtSZ{u!47nxNrbogi+9>6;U@RD!=db z=&d)I@7@vSx%+AjHkjtv7Au_RGE#((;Im=K>}+V}H<|mzi9&PYdB%dW#COFk(@tyQ zZ#^2eV)m6{`-|w8cOHwX7=+;X>9I7 z6Rbqjs?}a)?>EbsrHi4SUjDSqf2ONS()Unnb2xV_lOfRTS;C7HBz8gJxe9+RQ#Q~i&Co)^Fix{b>U)*GJnj;!$ zF>@(MH1l+|<}l_uWYAyfwR?4NK#``SJ!GV&Z{&V-gDk14b70k(dce=dsMIR zoa_ioGYpop*?4%sQ5w!Iw7g?9%Xeq2xbjV4?sK8D2Mn2RpBVO(HyAA0m`7N_#F%AW z?Z%nC+>Vzj+5>#N%r^GAd7uBryGc&V6+=hI#<*6a5ps)*U0KhFL1=4{@ovLroS3tl zpH**JqGqnXw!>wCGB;*|%JCtfr8)Lt#2m5nS>ATM}CkMpbmxV>4J_;b3v zr%2~{#AY>|7n;~#r*+^Mca!99T;*-fI4YOLq`AYLWzRK1-Ezqc#jigoOqv0sG09r5V$(H$abv>Ur`p^_f=P*t3M0N6;%*zpUCyZZ$3qXv?4#7EkZeRA1q=oF?J-)AF{UEAeuRyVv|+<3cIP4+hqDM zXgu3e1(8o7o|%nXZSWNoQhgu0(a|QVm3t*P3w2O|91JnE62HER;1Ea(AFa_PkwV`b%s_1T9t{zdLX=# z-oA0;UU63{3y;`IuGr25p3~8@kY0P|%rNiiD^{MZsLmPakDoO~Ia<($>~t~5Z@QEM z(-mn>{KD$NVvqFLb&8l}LdawDR3*4;Pmi0|1nGpGe~pYg1nsuvi`R}+lIsW>l`I}D z3YZOf-ECRYNQ?D49AUT-6_uT2wH4DPAGFDCR)xlQM2Ez`i;@nyhB>MC>MB2tJgV7e zA#3q)A}TG>o6KHafQP!5&W-!Q>r^*H{u5|Y@Oits-1Py1-?1|q{)=*3ta{l)l`J^DVZ^^p02dYd_Y>I#)z2<4f;0>d!5o%tgp{ za0}w)FHJ11)VjuuWXGzAX!m5_ZHSk->zA;w!69kPz<4)xy3q6BDCRQrC2I#0vdub~ zCBc#dOqVi+eEt4S!v}gQX<`clTh_5R@89E=J=yntKLR^#AAFxgp6bP_CstA5FTZ#> zT5CwlX$H%*(PWV>FC7%ZjI24XvAd~74?Va}^&tiI zXHzipo7ByFRvn@#(x?|+Q55KHle<1*N_Jm>ODi0OOt^r-#1==QR_32+4IQry%KdCj z8?BxGqo|k2(Xs$p!BFrZ*!ac;GPP8^|Mp)WtU3|3a*^?3qfUR0ewm}w(sQAY55739 zKsj`1UcJ8~+TqzH&TAy%y2RaQ(RF> z@TbZHj8=iJ{_Uf28oumUZCzn$&f=a>nU)p_ot74g+b!!cIWrrf*78x(-6e-oS%pJ? z-(IgpeMm9Br!uW{5Xr$uB~rh?&VoJtxjJk8KK${rak{8v*Cm(-HzG;Gr>6RNd%$?s z1K@VEkt#<(H&9r3OyH79faDq!?ufc9-sfpNDnW?qs1V>*os_Qzb3+Q^eMG#Fk+=5F z>KGT(ix<;bv+*q&JdJ59>){5)P$9Ga+Ku0VyO_VeK1xyo4ts?AI|Y3ko2ruLR{B0` zbnNRh7>s^TP8%**iGMvv&-Oc}>-;SKopt7Hbv5(rVKs$#}TC8U;g5Ay+RGq2^ZH zMB-~r=N}AK`y`8rxo6yGqKm4P6T2TM7ZxqLO2;W$d3=wAgpOX}{d=cf@h4_~Q^k=Q zm>O7?rHRMNRPjttpMJX_`_E=*!OuP>?uuvOJ8$s=?7gd`@OP>@HKA7YS`0sZjy^pP z{p9>;U+fPcc?C|NTlW`Q$yWO<6;)0zk2)5sQ%)`hKfi6?Ez}2(mwr1bMsu{Nd|<}`cd3PNHdIHbKYIu zltqG}L)3t+d`XDV75*(SmO0u}@BT_y^RZP_FQ3I)$5fBe?BTPq;iD8wtPb+&>)$5F z12!*rPb*rUFv?C_ik_JBc;v(K^@VnQQ4x|SRe33TAd5?J8}rzhO}1}a9xO!})|R5& z_$)dRH7-j@`&@cugs_6Mv_MMA>R74fOAFKAR?h2Cp^oipOpR5Zx5HyZjx?K2US1xr z+o}N|WTWD^^xJ}osFm198hpIwcwH8IquOFQFhk`wKEbe|jxLu650#f_{3r+XS$lSD zWOQ>INg#yG;V4{QKuA72qFPFY;jPT*9_WAG%(c8u7$BA{^YRYEK4I8~N;CKA0{O<( zr=d?}y+-7!#Uez!(mkOs*SZqzu*>+#J3*+^__)oKujAXB2CU^Co91NF3w!EKp%n2R zo3jdlG=2&4IM}D>kJ$i4I=ms0)(hA!Z##P|Qi0d;&kyIG-L>)b8O3L_0tfeO*iz`i z<{JngG>RAKpY0i5{jF2yc(nIW*p;*CmV>()DwW6|+nG`;NkJ%_le$wSDRgW=KkYMm zS}{4I%^Jc<9~b;MO8teE{B&K!PL*4#AGey5632wuAmPB=2}u!|$E(I$+l&Yi-#=AI znS;GLJSBn>N#CO?N_JM3=$M!%dp8TSzanIZMY+Z?c} zck-W8h&)$|HCR;S_upLNb9GU<#clA2{|Q@BaK8G-V2=@`0-0{3Z++e0Z`ZJZAQpC6 zM9>I3{V3A2UK^{Aj-2rNQY;;GH8Gim$no2~mTon6gRyInOV^rl`CW*&N-b6D`puiE z8`s0U3FLh*D_cj=n=N5>+DYw~Zn5#TTZgyd-bEgC2K&Y0*hQV#o=1^ofmwOrLVox$k(nqZ3qW7p=??e1Rd{p03pf z$R`(RMI59W4qm*!6&fB5mPd%;h9)b@a0PHHFYtK=PTqQ=>SH-{+JFb{KwUcAUb3k9 z6U%KlLYO<|QlYB)Vozcj@_ z7tu9Jv1MP~)-5wrA?ez7+HtBRakPTC70PzM8%%!NS}8EvAeCRirzZ+l>ft*(C7BNv zM{M+*{`__nPK@ScQoI%8>vJfd2SaUGu%hs+wpT~>UDw8JrCF8d_#+nqt(Ax?_9WkY zP=vse^yHi3 zs&|)creEZ%RjN~ZRN3L}kDs2foSqyOQ!e69!n@!7{{3t?c)t6A#*pEgS} zt<}a4q?%h;wQS zeixn?WAc0I#?c-vUA3z*$G5(2$Q#bH!Spk!hHXJ?sodhgL#V?4v(+setm!K+*lIide@ zYmlSQY9^fcneDf`JU#r^o!S+JIvDwRBWRZ>wtmM|T1iyQ*f=a1Qp*_Gr0(Yo6*kHT z{q#P7K#I>m>CqLRvLxn-OcmzgjY=<_Tw;i=#e9sFKUs?!OX;r`Gip!M_InU13Eb7U z_=O+&?C{RCmE2$abuX%S^fdL(?GM*RnA)Stf3ZwthR2h#)W%Bv<>GCVn~&DdR58zt zQba}J!=j?RJp;0v6-FBm)_zc=7Go|zCh$OYnEv!Ku#`ut$SuwCuu8JLd(_`J5_mIJ zt-0Tbq+L)UW)Jvrb;qb}Smz1`wu?^DzG!B0=*hU%>bJF*+uRDj;Fo09n)&1{(s==U zQ{f8<6zihkF$;oFEMPjKH6%9nGC>Z_MYX9Q!!Ctg2yGrkg7WeZcsM0Kh?BbfMfy zxx{0B4AI6j<4?CvTkd)Ab2DFe42_IUh0-=&%(`AtoJped7v$_xg!d2^BjpO*H>7i? zns)-Vn#k;?_8t{i%v1^EtGd=_#V?uCnl^t$3+%#~yE=9;W&jfV%!qI|-?G;uv!cc=OLis<|EIg{O6VQKfrXUm8-}O&#~)E?O07r6Q*LZ(@Ft8 z4D0Kf%{cHT$bgVub-?FT_bAY79@r@lIg4|U-@$6^G^qnhNXx_td`Zo9FcLVu>$vOV zNWYQy>(TF`vyUKu-zzGfbHg}QM5a6CW|#vdkaB<*>Bad53MiQCv%d(*z}LZ;gfo`b z|AEx5_}Ryh-{EIuH29-}@tm81_^?^8RwmBjYinNb+A#Ldfk4D*0TmAg zDOXC5ef7+3fMY@ciT_y8cIZBd#9jua+u~G&&IEYy}H(Aa5E4ZKN4#+Z2$)aOw2YOv(qY0zc==ac{axZWK`0K}U~ zSA>xxLs&i4V&MS<05D`V!4Wm=dpis?fm(W z5_+&BsKneqwF6NNP*cz|K@pMSUONd3pFe+wA?0uEgKAyJ5l3+y?9ZP+?Fq2mQMdGJ zUgPhSK)A=yvI&N#s8pZXL*nj z2rUrNOo}yJ`e*}TzOG~tAd-@w0Imyun6^S9FyxCVkv{Q(NIh`mybJ;4Pb390s9U(9 zaqVld+G4!1Z*%Xvka9h9;!-i8WT z_sZ9}uCQOD;N~}+%gW+4S^;{#jhT4kHsAwa^os);<7HFiy(iP9T@o>U1v(gyxzxFo zG@t{kaG7qoQEAOqe~{L>Y5xBpW|)|nWu=cLPljAz&{OZ9%E@6$%rMiyp$hd> z*p0H|lxu*&@EkSIln!d|hzWi)Njh!GO8&o%4UNW`nyxkD)x=NJV!6FM&BSR-p#(~9 zVPxdg)EqJ)w;t|-N6HtgDzaCtEn@W!6>v*u?7Y(6LZCCgsXbHnqUkDMu6u!YQHcwA z!$MC^vKMV>TOXJwl>K^g`T_BVw9A26`kn-^1ew1K(cN%7B?OEY`tyFbn(+c!MC zhhU6c{QdbOr*XrG7}}t^WZ{JlVC6V%bq2O`jQ;=-(oS^#t4uci)LW7V^NiJde?n8c zB!N_vOj>;Bx2d`RMsKfX;sXlgG?fZA)@xoAf0sI7D9;8wtZ@?>-^T8WlyY;|E6@YLxYQuB_h-l6}#*kLFwg>`4iD98SjOF!3Vb=m9?!dRsH#1&DTUpl0u&&PfPa3amL zZY^3mhGwfATKV@cU%e$?IU+-0_=66oCkGkcbLl*sFW^|^GOGJMBBmS1bmPVi10Ry} za|K*Om5Er7)p=k`EmW<>>V$R1|6Ts-TbN=zcPz+~+kmm9r}q5=n_Xr$8Jj@soTvU# zc0&Jru)p^`{Y=f%lVdZW+zO+-e17c1nl-R^RdM=JG8Ryv$$nKux zsicau0%cceUx(_zzf+gcKyflQpl_rH(IEB;8FPz{u@4iFBPv%KI60L7K@JRvv>D57 z2I9C4Yvh3?A9R`{U$j~LW8J368t930p0@5Pp449*%BP>US)@rZ>Rc74>&HDK9c$EKq zZZ;A*jeU67*`Y%fwl;R>pGmp?n!9%X_J4|Fq~_niKrvzC-<`$fh{9BUvbU z0hs*;5SnAg>b>v=Rn8CoCMtKi&>6Vkg^}t~ZvazaK*WcuK>#aB@;Eq3^IDAp<1u8a zVmIb@&K43WtSonGYoX_>9sWiY5MOVK3p@UK^Hg?rCEOO&G+`N10TXXvB;s37xK<7i0~^ISbyWhYJd3n=9^myt+i|!>C5Lf^2piBL8v+#@LHefT=@A@wN23a=vsEjV3lF=8 zB8N#mV)tCFO^sQ{0v|96!W*yY&+Ge*r-za;(`?G?AO~anC>IgOq!^b_uyMBVBGYHK zLn!DI##dgsjMsw9twU-~XxzJ$@;7wU3BzUX&Bi6rBb9I5=qqdoByG6YH;tFBJ)Z#M zZiv%GeoRBn8!pCz$|E#zV*`VpTz|YdM%pM55U;}WxO%<*)7PdoW zQ2=TvJPU>q1MwfPaW1Z^_NOV-41^sVKq5f9oSkdhG|wuo@OU$W^Y>nH^}t;94Cp|J zy2%8sGOSt#(dZ^Et*tb%{o`Js6=sV!aC*NyR<938{f;`_QgdN1t;>Oplkwa+YmeSxy%aU)Ev!Ki|W(B%*+l9wAQcL^Y0!QcUx9#EunM>p81;1lf1Enrc~U+z?7_SUX7Z~&mjr;wGM`S9UGJ0Usg^EoS# z4a|AGc0ylEc6#k~Z`uzsb5FZV8aST<64c~HY62hc4uJuAAmlUya(%lVfgc-%{oTy~ zCDz_&W)>-kWL8R;Fj)Kj*%ar*6TUosQiSUWC?ZN0vKQ11)aC|8mT2;tpB0mtiJxI31v|2ge}nF z5eCXoxG!jHQA!ijweHQm7j%`JcNl(2-|u)k-s-IpCmJ|O7{EuHBH;cuK;Wz?w*a~2 ztN^Hsr7qQjYC$%Y@_@~+jDSL*0IfD`wot=C!@?zBhf!6W(DFOaf|F;Tm=90m=}9fT z;bV<0m^~a$?g{Qp6;1xa-4z7GaRI;)$erv>kyOuTg-+Kjp<_T7$kj_X1dJuFsceGHCLPxmAwQky%ylglyxNEfiqs{{ScLL|)}iTx|xoC2e=P7(9K+JN%de%TyC zd&Tl{H169lr(1Pmpz_4LjAiE{aw-eWaQ(;uI-GQ6o6-HGvw1mbP>PMc#R}~VsSCJy zoEQ8vHKoiH{gH@DUVQxrS*MwKdxD8{=IQa8Uv`bscX~sWYwieFn_kB%!v$X#u8C@( zTuq&FToA-L+>6CL4SU~g#ffIh_T(0VW}Fj&d()5&r?DE!FRO3(xsDBCCHmNKa$vLR zxmdqD#*n?t&!&`>_#WP@iFpNqz5A-c1 zv?bX$?Eh@BR-|)GWfrt{oYmm=QU0>GuY3+N>j+#yO1+%GyACF_PmKz?;4Vw7_qEi0{l)%j z?OOXYwFXOyhTh&@&PFuxr=qW6+SbAsX;z%FA0xE4S&N38Xj!1fas>C>R-g%^18%?2 z?gvRC{x#UoWiHFi^}mv}X*}|EOS35xd_eu3`DI(kuw8A3^LMZHCW?+{nqVXg?ej5p zanvZg(5v4QG!}~E1#R=ki@tr^&NL6?cEyRt$_@&Fkp8C9AQdUJk>)_QjK>s!Zl&r} z--lxMXLm+#!*59i;_I^sN@3x&rK1t>Q1HcuM6E%{?1ZwRB8+{uwQx1|fpsJee_i(? z1CiC%RTmNe3Q4>AZEbjvFm1d-AahX*6|RD8O=GxQCT%nMEoc^Cy2eBYrP?l!h6du^ zV~{%47~bomu5TL!o?{yPDY!J>cS7g2{184PRz#(Nqkln4+S(yB{;Ed6I$pdUn(AuN z`#^rUaLUxG3OQx6;7t_mJd)FnVApC3<3mjvgFX%A*d&%BB=%wb_OZ1-KWFd7d#KUl zvaAJ=MDz6-qIKAvi8{8fh5!m#D80Z{uJ=LVi>45B&j)4&FesTY?Q$K+QLP3D|&9t zo3K0mjJV4~#;nw`<>I2mNaO|PNDuO{%f)|fF3qd6IxP4hRlcQ=P?25@$osIDUy3}c zBo;zWF)ln)rF3~rEo7HcZPgTYd&IIc(?`<2yS5T&TLHLZ)KZB>B_Rhj?InTM9{!GD>W-!8=xC*PaR~{Q-0GBVW#dJ} zBH168`R2v`i%y74BPIm&t1BOOls5Kdyz9)N-Qm5#cyH-HinroI3*tJptv+0$9_NMbTCJo#-Mcn=+PP{5+qlmcz@9>zn%BWHJu` zfw?zl(Q9lQcTqp~bNWWis}F2_AVJ&T>QTiTr#iD%fA8lY`^yeRx>C~!SRA8U?;y`VKfjcwNeiEl<ciR4fN74cqp!<@WUP^35kxAlSuB#R2 zYvUcwzW&Pr*>R!NyU+DjkoS6b$Nkn)cKURT6{MwKdxJhxC(xoZw?)pOjidQcAj8Lr zph}hOwi6aX>U5>POv)SpwCq#><%YhP4Jh$Z?P%z8F%*e56lDVE=2&4mB|r-5)HFSHb_7Wme`GoR4z~v3)9)q<9M>o zJ>YoaLBE_uP>ibv{E_Q&0%eXKM+tu~_HzNB2B>k6d1@6tQ|GRkXYj!F+yKbOoPo{f zB=9)~#;XAWBnQBQShS(&K9JUpRBVI)LV?pnI!u0pWh+ru?+n?D)=)?QQVd?x!CmszUgnl(Z9u(mY$KXQVeN7z+uy1g|lzI(sM zz~Ab3rj{D0xHLwh)kA8VWpBZUE=is{+W+2RN%^F;K@gWZel&((_^>F8QBOr+nu~{8La|s zF0$Ym^QLEMS5Qt~e>VV|q6p|OB+zsj9qQNYFu9DBg`F?&=@firW546_E5ZP>E4O3? z^a46{wJ-zQMnhy(7X;ILj5JkT*su9F6PENy6HP#ROoOgM{yr%B-ZO2`e%7o>k_Xy^ zTL6G&fzNdcWa@yGqWlGEs_z5L!#okBVg{Z&%WPyUDra&#c_3wnt&8GX9p-rpv%iaY`)h~THVhIDGXs>f-5CmwvN9F>R)8DIj{EJVxvudssF zeM1_m;%50M{#+*%#(8C^uP&}39(2UF05Ru16R&M?0xm``Al^LI)0RvrB>o*69sQ!= zmR{T3-h{XnA!;EjFs|%8NuH}8(wm-dXpdLihI4*&E2dymd$2hZ(j0o-U}k{1oE_TL zQJy4MoSpOaZ7?g9l2xS`4hrXi#gn+|rrY<)Y|dRG4jQ~z02K3p3274UW_!1Mxwb9CwUd1&4yoPg^_;+O3 zeI_PcPnQxZk%OpKtd_oJ^~s7|p7UL6d5Zo_L^d)is(N6m7|?99v#Q4DpjA2qAJ$rX zv9jKj;Qp_&*9*87yFNuKsMQ@*nOsb`%N76y2_9&}ffDKBj5+8N)UuJx8gPsPriN@p zNU`ScP7VfFJ^?}^(N3fJ%?8qNuk6JFNV*@&@E(j6Xy!3|y}43CLYry8YWV)aaAq$^ zY}hJCoI)?f_nuQ2DBKHkqV+ym{3OhR174F-btW1P4$rU!aTZe_4kE-Nc51@FBV z_A28_H;UX?*YWFRiiE4|E5g}Ripr@X0;9a>z%Qa{HWZHs=-EE{fHJP>Ye}MG13bwU z=z{R7)}vM!EBUJ-7uDKrtDE^VZX$mgw6(4L`axT|yP@1+bq%q6Hj`uct%sU1PYG-r z<2Zs34nbewpR?L;z{t^u$tp@btj@Z7x!1?1b^XjeO@+e}x7bd{`-XXq_6(?xmcQlb zq=@<)lwHZ9Ss7>+F~Wj2^>*Iy1@x|G4?9DV!2#foJ4nSnV;|L5b5D(xZS@!|2-g#n zqBA=|p4dUYP-Z!sUx4N{Tyi#~{bf+w?y@#E8rFmyB`z0DF?E0w#s2(2&9X9FDP&0E zGQvzNWCIvp^H&A!L)c53~Tfdw;(W_oVJWhZEXEtkpck<*Hw>PNaZPmh{hhMEJ zvwYR16Mgp%NR)Rk{I`lyWZLb=^RbisYQMggl-^&rkIGYK`qS<=SCUqkE6wnvf#QA9 zkJZWm-#C%6I9J17^lS7MUjqpC$`8ojJ>VN+oM^?2uLEO9W`EGNR%OmZMQ?piS#~gV zJQgMrnP}tJQYS?~+4HpX;ZU8B-tD=St3FhJ-aLu?IB8f_M*$(c{ZGElFD}HIBc5p4wV5!&!JC>MQyF2u4to%aycaC+jkX(9^tEEyTu1$<4!V-S#t#dwf^cju$y~;6l-xjFGdgw0bY6b1l;&nyQ`5LG~>3-Zle_s zQ6Le&Kh+!&k1KRC#Tzi-2vKVLI(5K8mX4mI+HW!e7cV0L1}(84m)NWWEv#T;nH$UI z_ab!YQib8Nz>95cxycOY1t5GYw?)z8F8WXMKpVNi&gv*fsYRDyTN^*E1$u@$xSY2kWBzEG6Oad ziN!4kK#C}T2MN`^%2C(kJY<_9E-#VM`A>17ho^vU1bFO@_}gcS+}8o)D5;;o0nY%E zZJGI{C#Sgk-;5tkO*8v&Z?30pxzcUp%S`l{i0`%5pkS@9NPl2%17rjUK=-?zi3TB%lDkl0bO}gx zL>pz_tbzSys?V(iGDxMd2oNBw#@VXJjOP}&I^o%Y{T~pbLT<6W_!&F|pz3Pb`KJ&Q z9(|qhp2r=PuLf`K^`Bn?y>Sbu+?loA@&Ft5%z)iCB7xrKQiIm{w}du>RP%L!iM>fl z$p#z+!fUm<*&ql6rfTeZw(r40j#N3>`OtlF1U8^^>dzk}*mo$v{>J&I-;64x^MLdm zzu_F(gB>191hW5C`bZIK>}+fbY2F(O3!t!T;653&0SqE>0VhfX>9Y!8Pa|jq&gEi| zNe=zdU9b_zU0jnnt_BG!HCNtWsT`jM8BphXwhd(L$LednLAVL9{!j9!R8h0$0}k!fCB7>UO2+qrSZ(wO2b9?VRqyDZ zXZEg7HKTx1L1NB^oc#RgpmYc2K!Sq93jE|~f3suaKUv}z={%fh0r2xYs^Z%SK!7KK zHdd?I5HE1_Xh52``RtCyrz)Q>VtUYxDK&?){OX#qgomat!7dNxdVmRSD&YkEvOuk)8-vo+%F3`Rc35rcKNW=5VAT+&jS0f+n)ZjE==+^o%LV{}kKli6J-6l1M z+hqj=fw`aA=a)%}e~}Jq3zQ$YEi%qFZUD!j|6~f)D$?s)>e~hGlL6G_U?3^tn>bg1 zLP$TU_Vf?G1VJmApcc zFPXrmD8jlY`vXoT1}kB)71tH!wl+4)?j_Qo`BC-*Zbt~PCl@D(p}eCzI3E_*GxN`^ zX@X#jxH1ZWmKbo)GdRHv*cVH54k#EOgMDM@NyPs8YZe=cb0nWv#-$`;P-;++St{cg zlg&qLY^|CKR^^&XN=kNR|3a<_D<%`cL6k-K@%;WHZSYe6J@NqQe?>URf7=k^KMJP* z*}iSy*#GZ$fur|(3oFnmj~-fFX5yF{2_wJ*a%D%16W(}VCNWd z%awn3f9DO1jg1YPtIn7xXqz;!50nvcKxC_qn~Z(HmY|+}egS|#3$AFmV*Bq$J2DD% zAed3WH)RWuxN^Pe&#)+OU z3tDV|w4xet7=pRB=QAlq2r{XscxUzgc|XF4SU|_RA_&Zkf`Fii zARTc8l_DY?0v3=GIw456*BOdZq>B<%s?s4ODC!^`2^t^-L`n!DAT_kWUN<_w_qXS~ zd(OLi-rci*EdPn;kUYhm`bKn4AnRYRi@_jq%EgijMcXF%qZ$ z4fYB+ZU47*L==GVP`2`kD>@Yjg~-r66}L9&omwGfwkrs225jbkBedCDhlAHnE6DvV z7+Z%4JZkeVDSbOYgI1~g0!XREb8b+LZ`yQ1+P!mv3C=>Fe`1I-R10LBd&(0c!A(5IhkJ@sqsW;5PekT_C8z-P{ zcfIom>fmSu*ewb%UFjvcljTq8*fgzBM}YPeefv)!6ahtG(ZA|vz#1=btleByU;X`| zM5+94rFP9i>j`!V^_{<*?>&&&231^e*3#-XSor6!`TahR>?!K`v03SEhR}cI=Rdz> z{}I0a2mKAOXB&Zy&OHeUb(Lj`0V zIT>hX_JRC;3%e4c(7#zsC>`GaYm6VUV}JZ;@G#V^YAl4c3)4i1wMbM~3Tknne+sV*>p%g_&OIl6|U;_D8B&&b#KvGgtw;iMh zUO=K|3N_L>$Xi3?5B<9vne3*2enSf!bpDlo6YM*YOa-^|0vY;zgnOFZ};tr z#3`dfM@Gr@i8-&^4P>q6jZd!qfX1&Zy4A)p6vwF!jsaiq`kgH?m}{?Aq}Xb*x*k{F zI3z>VH48I31Cd%(DPsP7x1SIS;;xC;8P3tXE7gEc5pQ}Pv+n4e>T!5Ub-LdGBmKep zxio4uUCbQV`1WU0o* z&h#u6`BA6r#gFV(XQrs{^V1-tjCG~f7hF=$quO=uZ6eHe7&DcrrzhQ?(Qy@(C1u5L z$ws3bZ$^oMdJ4xc?NWDSO|Z8Hfs$FTl)q4)E4DLydmeQ;X^^6g<@#4}AI6PS2$kYo zUJ!x8W~TLqO^@$Boof6rW6QHcJmF?mkFJeHO-!e}sZ#f0e3%JG!Dqsa&*dtFp z{VcP#Y_+!YEXj;XJ9+0|RklXyz}VV_a86zIS`zc_%hHFJ%)D+VU)U&r)y6xdn=hZZTlkYX3$21=P<||aZw7wu!Oo@inC6>q_WbYuppWgASmKK0y}5Xc9W3ye@;SgYyuyTvGa2gMTX>qc;W+tp z0MAg-x`*u?TWHd@A2WSfy!)6PpPBkn#n=$(^e0#E%j$F9$zSf2ZrK*U#mS4RdHP9f znn`Bb=qzqJoZ6ZequTjkDgX0wE?bpXRV5tkYEYpZxSU<;Z1Sa3*h`9epqCzE{uBG+yt{tRpk}^J5=6woyZ$g=jVn1;Yx|oY|8WquiWRG`4z` zM0_(pHoTOS5>TG3e|dqk)Dsw4KNkG6s{dXi;f&r&(bcQD8>AIE6p5I2&d*^xry{a@rQl^5JR?#?zd9Jr>#&(Sh zZV-(mFA0xd#x`sJ6|}JbYX|N<8<$E~u@ArK)VlC?GV-;vcG7a#^}vO~ifFJuIo9I>4m!Hl0 z959!iS+<`^o@y_YQ)SF+(bL|{+s|(e#`f4QP%Gn?FSRe>$9jSjUgb|?m**3D=j}V2 z?}~;<>NF-?d}cbp@K>L^w(46g=SEH6?=)V|obyjymrn#Of;()}gkzwkC}RLpu#NE)12v#B|2=+1^~ z0{N19dQvKrLGgtYW&azxGExTVQMuC=Gc+4ljbki)d6?ick22f0E{_mXc2A(MU5dp?vo zo=C|IPSzo%MFovGD0ukLBX@_7PcO0qW~%Q^g+~+U4qDu&IQ5VeN7AVNvbJ-YhtGPW zMfdylxWr|yB7<4A!??O|k;V&{KgTRw z=6@}}(r2j>b$cKd<4@Jrcbr<>pHRXb9~H{z4cx;pzD(r}sA7rNBDdH^vhu>yXEvO* zI~^0cMxAwCV#!A6weh0->MO6&d4_);AEl7LPVBs@K*9&9MY7y^7wo}PhO5oPPMlfw zIWL_S4IYkt&k zS`+h49God74zy03mp;xVZz8TTyYJ>>ntM45qv~l85)I!V#Ae? zecD_GQeI8)LCsl*@*ehf0JFcWF{N4I5LshsU21cRqu_c1c3^?BlJ>*_8&Dtow8e|P;E_~8tZZJtl|-n zs-_Ye2&mi#A``urN#CQ!E8ZK3pn2G{OW8dNngr_4j_c_qGNI!jegmcj5*FXK)Ju(twZLm#FA*}@jU+1o$(Dj#qW`&=V2)0R zitfqhl|7X$#_IGa+x%@q9ACMc*q-7_d9!XWdl#vi)~*hzMR}pqfxSIBDY^r^!JC9z zZ(k|3(1qJd3P>p#;3q;`2c2-ROpWUGg-pp+rFgGVA|iP*g1MtjQ76+j?o@ooRznQ5 ziX~va8%_i(Nz}7;?Ab(bnLfr_zsr+vy!_S!lfbIL^b|sgWU0Mu3w^+99f^Vq#D4#7 z5ybMs)3aES)QRdUYxSFT3yteJ8*X28eOxN`++zT*e(=0+MB15~W+!f$p2|+0pJM$A z{-UuUMzTWXBd9*2(0>_gqaPb$_3{rYa6KZ?q2MCrgOc_Xc z6OIG;9RQ}UY>b3UjiJ|~s`2Wt+{|Y>VpS@D;UEuoS6fhmIRaUiKyk(h(k7>lty1%Z zkG2HC!^ODrFW1&PLf^i8f%x%iQ#1*T<{kgst=WlOZ2e6FanMBeoJ@n}jVw6vBN@sx zP(aqG*JWPpX3mDHvsURGz%sU=LMTFXG!L%c0)$h!pi;Ae_31C~2dx5YNRA6YY3f66vKDXbx;6^^?%45+( znsa{1>)wqSdGYxy8XFoG0Y>P|2x8}chOd(YZAmLoFTR4l(kJ)PqnJ6PvXo~5!moWM z;V~&M?|-BbSTN`H7Wy?gLqje&FbB5ql#D4zV8&~LmjKL4c$peD@5(F!TY4+>{yA)R zkf+REz2g1NB>hZ&>~-yc%QP#us^ruwp8LTYU*Ey&TwBXl(XR!|ke28q9_|gC~6yaDq=z z-=(a>_@-#5$7t8Q&{^!B+WNeY3p#ptxb1Zu6*iP5Tt4Mt>5+hD_WGwT8C;1-LS2ea z#W>4S4;4VSMUHr%%L{b^D-K6!3dAEZzo`zY^PU|nC2(x=*~!52DFcaIVhrCoaMVhl z31!MokDdG9WJCYdZzq}NTM7Lr)p&FWAWR6l$jP!}J1`?^gkf@=JS@ky@;~JBYwD4g zIh(-mKhox8SK4d!7tKcuGZNR~BV$sf;>VuNt+#_GiMH?3881eKIjD7$`*{2k;p>Yh zr;1_i3iPSSrJF^uc3{iHdPSSXCN;#4ci6c*mQlSL&G0&<0V2g!YZBTyVa-d z7rv10-MfbjP!=@)T0Pv(!tLZ8MEim}Oi&QaXoxs_b)L-P_>0x|_s=$tSz*fewKY+> zKMj?!a0y)vYyQbj;Dv+%jK|=nKIO3eYBWwe)x|^uuj5!2(T$t?0ySDiyT9nlcJ$Sl z^q`Tp1;Fmg8)?~bL$N1A#QOOBN2ZGZuopU>-_3`4^W%ESB5tt#ML&2TrrXP02(|utuIdXajMT;JBnr&pq5Rf`4@HN!;11`XAp@A%m{yc7)%7A zD|T9%DePxi>5akD9GMy50npbF84c~1fx3m&7*a$^Q2z288f8Hkj2u*I48%6RPSO!m z_uonLI1)GRZ?^_Rav~(JYa46qQVU}%2B`*!CA}}^q4prSOAlOL#(e0}@-kq9O$J88PQUB`fg}j6YAb-_T&!rzh*;DHLF=K` z?>MEM{t(T;2!_#gAcnTQ4RL0TjgzJi0gx*~UK8@G>`L4_3>6Nq#iaX=v>Ei-L(}*( zh>UQcB=`$a^K_yQdF{JbR3FG$e${&tK_H`W&IiAp6phxW&czZ=ykg$HcoQu3>IU-i) z<|7e|sT?2Lra&*I+2c6fWV%NJv|Q_lTZ#A0!5||W^k|>q#P9;mtr~4+HKsjqL<0(H zbCEuP%QiaU;UytV^1qAqgds5rtF#Gj3xJWkM|=dG2hi7;mkW=sF8P5&;_YKXdbiFug&k6u52WAc}Q_Nf(kmPO38PLOO$COLNX36^?~g zO(6**aRrW<-}nVKNJQ~%`aI>;f`Do0dA2Wg27QHrMCyF|Fz2NnFJh&|$cBG$w z-|@fCZ1F~ol>y^*3c{C{&Z$8C>hg*Obom8n z#Ozh_=|bawV60LUlIB9#BVAit+tED(2hl~{1lasfJVqiHu;Tj#2x%n`BuvMH0}V*4 zQgS(D=p|orm}NtUNHJ{jvMZ?0z{K4UtWgjz>^ny0)&W!bTRV~h&B5_G01Ru4Nee<# zz!cFiQE6Yh5u^jVf03&%(11_|(;p*n5NYl-fF3i2V^|d^KNKUuJGBpixod;bNE+M@+Apa~30VE_d6khOy^{GIocPSkyJPRGI0SE?=+;#0X zILzXaiY;UrJTHD88H7~E?};dC#`<2j5QEgBZ7u{r+k%ie-}2$C?0z`cz5bL zf|pO6e3WU0rX}PckUVUC;ZQ|!#g+RGIDUD3)feQ|OhudbL~~>IuZ8ws<5Yu-1o4wKG-0`&=4X4D zfDd@gd_q1FpKqSwKBS})dO;if(w1hxX|jg0eW@$LlR5^$LMVj_hocekA&&M2+9M8t zE?vlEFQLe<|K<*RZ(Lf5zU%~u+M`&(KvT@DxMTlx95&5<)aCEnqAJk%*)tRku3;>J z!cK%TmR23`$iE&b4&@L6wO`4IySljESUKFC;vNZ(B+1>d!YGx{t&)?#Q#hYno~Wwz_( z*pKXNSnIZ+WOzut+EA>SdOlisBG=q9LdS@Eb#w<{rvPgrWoAcZU|~mO#pz;G*}_+q z_&;Rz)iqgRU@!-^#F?gGwyW&(^>=E?4@ADvxd_EpVHG0<^@j8!tj*D92-85;_FUl# zuVVE+#G5Zt5a8weew*b7M097m4y1Tm)_n0LzA?WvhL(|G&B_dpB0x@t%VIx68W<|S z1tb|*II^0Ua3UI%Hh_eqfq(#_b-J{&)B``d}bi4|8w2<(Ty#!t$K)0>~-{Sg%K}NO`$!=T6tov0+eT9;DBM4agyP2Uv_bkW9`l z=J-?kic$BtfieR28gwm)_p+?R;I0prH{HK`_Z8w~QlAlt*0AG$287IIo3zR6Q^v;1 zRCM@LmmmU9Vj}T}b@TM$(7>ozlGL*rI&&G){z(*<_epT!;1}ci*BcRK_eU>+e6hx)PS*e(;-owb;yU!W z@@eNu2R6taTHB0}rZp4yDMnb-0g|#wyRm7q+k3N1@Ta+8S1=)fh`~)to!jcC-CW?_ zD>Cwm?k5SrFAQt`G)-82O1RVCfOL-~K^L(ZQZ7n*Tty#(aJjr7Il?PL@-AVH`YON3 zHsRvSNq{^U?gpgytQoA=e5$Xabj2+!$dp^6S}jGUF{^kpNh2^NW`9g; z^EqHa_Ws`1tmmcH5(+h(0Z65N>6E98h=ZW|)cJ;nG+udpnVAxh9D6dN1=wWTH~lqr zgxt~b{_M`*r2HtorB===>+qB7-#H z4P$Bt7T)i0aOe9ybYqYo{(RffMmPukCmG%v0Yo-L5RF|*cpYw-~M&> zTSlx!9;2n`37SKQ3#foyp{&?|KHOpKpmbnDc`%ybw*Wg{tN(RB;?;x_1K9|a+2+>| zEuyURhDK@;J-P2*Af?E?qxHsZHLZAUC46hk5PW<5f?<)tlQ4NWQ2mW%?aE$)drgB` zAg8OGnrnKBo=I;pF(OT?4waqF!@Fm};!CVa?elV_>3C?vWvH(VF)BYrGIOQL3gMtK zg5%pK_Q)pNrRd4Yw}M1|2i&$lBA#V1$`G{&M@RV!@9_-&d)Z)5WdK7R_kecJtPVfY z{?S_X5SY^(qC6Bh(AijjW*}w-Y5K{jf+8Rx(&}eQX}=To);oN!4^OV;$Qi*nwhcoB6%$4Q)=<9D8;AZW1V<)@JD$rmm`9LI;aNYc=-ecl4ak@U_zvd&a{S&S zkG5>fW)aPxBH9cEHem~Z7#j+}C-9|w*%v+>+_cO_;ozB(SKyoFHi+8=Hu9Xw=~55+ zB|vza+~90LLoQ*+mo=onhuI3S$~~+Z;(6Kwcv9X1eR{BB3_@|InUk>N=Yo6;MvlcQ zj-7{+t_ASqu?YZQb|S4?W!PspF}W2@fcodc=5GZky#)kiIS>X|gVBR=X&0308VP7Z znKBOy6qKj{KNyv=#KUIOKfSuBUzk6&U|#O)go7yV^C*MFh)aT@2j)<-%TI&XP%ss; zr*msALToE2q}F{F9)qF3IjGF`Y(=PZW}{lWCR*hyMTDq5*b4kX#z5ttMzJ*HZ;22IcDvBLZlp+FBqzOpx(n6IMI!X_{_bP~r0s^6TA@m|$T2N8xEul!4 zPN-4?gus6X{N49{c)z^=aX;QO#xtIba6CC@pS{Ku#-PAOYW)uU2q^{|UNCYrCl1o4dHbbTWe|y>xM~v3Ie78`HX(IXT1a?YP;w zINA9h(^|T?I5-P(aM=FW8SM5>798L7T)V(kE;`8RI71*;UlRX2l`ED5hd{jB<)2At zcqFfko%c~U8);rIxYTA9D5-P$iD?iMQ#zAWcIebujgYIPtAU|(Evhuv^>b<2LoWIJ zJay&AHAR1)qHA5P^Ym-V5X|Z_R(-h-#_HVT-q84IqtR#|J3gD= zoDu2YQ88?KT2_O_Yz^MHSOMobIXgSMuOnU)T7}x*>?>}a(~=FpAK6Upt;pVZ-~=D8 z$oui@SMAP7rS+gsb!SHhB2PUBTIaSx&&({(qLE8mq+1!~IQ?snaQO@*py%DyNfZPk zj%e@diXE}5Q%d!idMDiOwmJ&8YmeiIV^+^@VJ)erYw+48wQPKIl_u79q$*(q+#(Z= z|3T>xHB(FAne(Q7xzAsVs@A!$#iojQxA9H*Os^lfPxxBc?eFPT*(C5-_5>K6hCqG> ztAd$zcKO#mdqhr}-|)6}K@xkzmRg=xQKHT0m*h--^w(<2=<|MB*Ev3S0IjnfmS898}HMZ|onch_01M#4_g<@@}q zS|x_I`6Xa5xITl|eERQ@MViijPLQwA-b{2+MFmfUYb?8g)lV?E1Ms0TWK4AQw63Vj zf@*~Cmm~q_?B=q)&3W&~-S&DpH4!FV$pQo4UtcOxP7%~0XVLf^6&>9v2nMKX^~>~? z0&m=^7GZz8D3qL4_u|EiT2@y1{h6{?mwr+hRX902i|o|->^VjF9&NO941BoDT{uvr zr)Sn4TbU0lu_L1q9UU&WP)X&Y;&=F3yHs3PSnIl!=&Dy?`7#_^(s;O7s^Uv#Z{J9$ zavk@a*WtAu;4vu#bF9Bek8f!<&Zvv~mpImO{m|ETsO;yofKm0un~b*>U0r+<5)z7= z4QgE+R}|Lp8)NPhp7nF(-J(mnJCko{ydLY-dpN4D(Lf-#K0v`FzV^`~&39nBbZ2V4 z_yRgr?F`A~k6;9nngz)gqg6yB*$rxMeK`_zUGxwhSS*m^^xm=Aq_zdGcWxfM$d&R$ zg&h9Ht!E8b4cW2rv<#^?ZD2|)devJGvM2Cb#~y59RLY!Yp%Eyk@BY^Moo3vGKgXb< zcTt}9rffl91uRZ0uV$p$KJ9MO_-!^_Q@=DvN5>oC%c-WX*LOzjy@gQ=pWf@^ytfu! ziVo_oo0oudC$5FvhCseNM1Z+?%JHgjzD6FMMT%=|_x7k1vv=KrBr};zmE9N%CPxJq zfBSch^Sn=UCRu+2oYrN#AND?aivSPER&P*KQ&YT_zJQ&)*e&+s5 zVuCB{2bN4|$;{E=+L3;D-5d9P!}lX0WcP$cxdqvisL!uFL^gMM8-Q1&ON?T)w8O!pT8)0b zjZ2;!&J$fpC9Ea9aP%`n?-gFm#3M2HQO7skgKmNdbbg}i(ttcz>%yt_y`Ns^X`#Q` zt_)X}`QqI$_=OMLU7Slt+k-~t4Oc~XzuGgoemh6ea?ig0WjKbddXz3NFE8674(&Uf z(YM(xwl+MsI~~Cn7_%d)Pt`85B1gKW&&@*m{_ z&k8#0=5VUH_3;Mp&Tax8*FM*oWH6%d)XGpS4mI$cjS-b%9+SC;9$9U`89HxDPqZH$ z;>2!hNGD~oeJAz10)Yfm6SKkvIS@=|295lAah3bcG!0RyIJd)v3SzKut`r%=fzYVf zlBp?7xiFK%^es^9?p}TcdhoFg(=12sT~Qy8z(7P>TiZsRVnOO?4Ne(tVv6&3%27YJ z>AhT_%XDqHn?+ZWImH}aUb4H;MW~U(+LA!T>FJKAZ!g@!jR_g}tIVuj(ZtzaaJ$P} z$bT8G2ZC=oR?k!gUbj*;lI4GNSe!jMX*f2k)Km!~^5C{MUJ{<^kz$xj*5q27N@8-Z z7wdOU$$d*yW>{`4Mfu*=&xVL7sunm>JN=XnJtkF;GMI%-y7ETHm3*FMOsZ}bh(&R~ z`A+_mn3Pp`3KdY}01NzpnzWJ~#~?Lj4Mj=(1N~ zXP%=6)HhfNy)V&tzurQKDot#qI+dr-fwKrU!}hF$kQlNH6lUD+o#6Axbmei z1j0nE0rGf2z=CG4O!$4~ZsE-jo`o<~OhLPW7Z%B=fo5%LINV<<=FC=1c#<=sW^9sZOruk`#X9@H4xcBks*1SV;5nps%1FAtS( zrj$`!wq3P@r4T@@Lg%SJ62Of*caqP5a5Uq5kI?Xek{9|boN6iG0R#O4=5b=W0&C%x z`vHjZ@vIN5Fx#piHHSA(x3kxE9CW!T2A#heOUY|>%gTQ>4DG)+OA&!zZC~#G5Q6kV zO4!ob!xjmDo33Wppa^?fy1fGhuoBww2VfSy1+e5=`a{`pZN5>5pr_7lxY(#DW8c5u z&U;qT2)g7pdyQwSq^*|vv>}-Ns<+*fIA2PZ9*K?_*@G-4I_L>b^bIf3EYQ*dFhM_J z+jl6I!)Ud16=Y4}9UTxj($+TrPBsnPwMd@a+}__=Sz7m)ZHp;hadL7h{1$Yc!b7pn z1*^7TlGXfkVoi{n8=^Xr+&_HMJ^05ytK{jiyL!q2iT+&p#X54k1S2D5(lne-f4Vb}2kMiBPWml0=bZ^ zJloyU@^QG*TEV99$SYTk0t%-^#>o>a1puPf_ogGnX1+{^Z`RfKy;jqGU`7+4l|}z< zE5F2`&Mkp;X(mqiG=x9yw7BEcni}Mf{vx}G$k?s3Lw7%jA=wdSIm>WbacHr2cWIA@gcRq*h7KJjqUOXCEufsLnlLj?-37ZhOshpX3`vfgNpn3HLls%Rnq_ z04gv-;a7#q4+iw?W8B9*Wr@&+6;_OBJUY~4umAf!iu&pC9fW`8?_%$_?n8L4`9G%W z;^(#rZ~Fu@iu`H+_`kBQ21b2WWcJ<6z?Ga8N^~NT>YQ zS*>#O&M42#xrEQq&IE4RL_T}FSoh`MrNJ^M^CtAYAr*V6{`lhOCuZ$!?^aaUV$O?V zy1CY+3zh%`r@#MN6N$h{cmv?4H1C=6E2m$bSZ7g-czqdw4-_W!6~I(L#bEHsET-f$gujOfqT?=!@bEHHH%Z5vmfTjIt9;oyGN_U`rYc|ccn~1 z9m+Rr#@Q7mwM`#24Eh|o8x>=)10{s-_2&3}-r31_)2CBW)i$lhH5IZHaHGap7aNVi zQKRkN^QV-;d_2%1=o+0f0<*ira~@Q`(vCg z_BSd1RfU8Db)CK5^XB?qNnG2f8oTRgj6|~cy_d#{V@AE3i=6&`JvF$&A%_29leskJ zH2Y#x=nk*X+h;+a^AT$I`0RKdAa)|qsOR<#+p!gvy^;eZMjU2sh{(1WR_{WiOc}Bv zlyBVx!OYAoA&CvF{)3LrPTp#{?CC)n_sBz0NIJbE`#DG#Qap=uf>4-A*1bKqy5G(b zgILUSS~I~Q)zqSF#x@FUj_~#o+lNCnQrY1&tgs2Eq#w;_)jkuL|wX}L;EH?Zi4*EGiKsBn=geK|z z$6wBx{ki8++QmMpIP1n(y!C=NYFjL5cKH%}Y*KSL1uGxyseiRRdS_*`rlHQWTkK)y zNHWur?*@Et2{$oYihl&v(#jS-SiWC=&@$P?NI%kG9XINN6H&`FXY-uj9-OIdXOA2d zHDplItw1=cQ*$*dHy5m_^yeDrd8N4rcF(i5M_rxJVX8LrMQ+i!)abi6-`TTX((+u) zXk~Bm`U*J|<|Ij#OJzUktaav50b6Mt2GiZe+R5)Q-wcy{6M+L$R%~FN@|IAYR3t>@w{*Cg6DVy~bHr{2P z zn)$Um82=t}rys)K=Vi!#7SC<)gvp_Zfun#&|UJe-O7Dm7aMrxdMZb{38Sj6c32v*Z2>;K|t z;@k*wYMI-Lt|urd&AtYla@zg-atIX1vXux!-xBlAL_Zv#dB>f*yjBQVq{djSD-xiq zIa2>fMHLdSRvBN8|DIvHUaQTv$HY0!w#mOHCD-qc<1iZ6;1waX+-enckrPZFlC~Ns zo-VcZ@u|-mC}b#75u~KcyBU6t-XgglQz=H!snm5HD!0yAs#)`DAavW=Vs%s zIa(HnlZtizw zTXJ+0i@+_s$5~eh)TCUDVH|Ud)_>v=58g(i1{8W_;kVn8bCs-2&)Ss2Y@_=)qu9~k zpb8s|)DM9oJh`Bld1QItD3YUjIjzlOUUf(+xxDOp;1v! z0bycJRyY;l%zW))2M!gV>0h_dnT<=+`x`5KIDwxzth0-gI)7EJ{iaG(FHV$pMMY?= z(hxag8nIIG{0lT+e`tCy_=(w!gI27ka%1!azsJYrZn@}ttM^&ADR~f16mOX=oVdO=^ia%Zl-AZdXJ$yNiP2jRPjx(w z_?`PAjDlK5JeOU>V*Az9F9|aqE|>?}6u>6lzY|I1z9pSL@5{npJP1HzmlAd+Af78q=yw7`-zI;$n$iX%R?2YU?r&L=@(5DMf>QH!w)VPyj7csiRq}) zVCyp9M5}w9$kFnKN8yNtnK^Wul2?D)9$gkQ%4b^}40VdhYZG3}BC~bW{1&O>Zr)2*q%D2KO@UYvFcg=OGJ#_SQ_zO@C zJiDLr(xnZXGMk?y+e!wz{Lw(DO8#}|qq7ZSWb(^|;lo3d0-w!UN&!@F?|@Js|2je) zslT_8O_$#+K*;){S%{$b-8W*ohdPAbZrt+kMuTc-2^KF3-=16i zjVvhK-<7&~%kz!&>Wwyf4}BZ9#`$|7$|;r~Y~m(n$|fHwG9d}cF8lhQGm=;S1QN=o zf*3Y>>+F*Tdp<6%&^OQ9r-^Q5?p%cM8lm8pJr%2uiyD@qtm#f zfc4S3nwP4J;qf2zQ^|2%G5k{{Xt4h4L6B)r3@l-Vy21U`*5aTMC6zU){~M&d`I{#(CKZd_WEQ zPe#!B*$(Q44un+EujX!>)EH-?@$VMdTrX)>_;7Lw4x(AoQsqNbyD>{bK0EF z`+Ny`41L8XEsq#h__hviMzn<6j${FhlRP@fli;*$_A^HF%^*RA#Hon;{=i~FLPXra{g6$vKDrL!MWYcX6y*eJ3 zha0u^(#ASsy}$i*!o)kCv-2L(d}y||>Oa%9RQ&XTdW3TqFJ^HxqG`E$oC`MWy;J%| zsR_rTsh;Jz^t8C(R{qhb$9p358ucZ}$*YV!8XR+s(-+&fYwX5}9-YQ4Dd6_HUL9e^ zZ!jwM8EP~4zaOyC5BfT9WJLe)yuKw1lIJ67#d@8(@#8vMKjsYB1ST&K4u?N?+!jgM z$Te7RG81Kj@GBo#EVoERO5vY9!906{oAnnXa73=$BOSMgnnaTJOW$aFk6`AAQl0$W zy@5(&RsUw4fOnofT!Ec~Jb&A$aLU56G1r@MjFrkOl}$;nYU;D>UDjX>?p5VZxr*7y z(bHA~_t8nY9ZBRZNczm|T&OAX9Q9+*iEfb_`&=uBdkbvz#)o7%q&Lky3-!8IP=h;; zM>`(Gmqd3Cuz$2XWmoYR!*rG;*%>z{>{^k74qdYCG? zr5Q}1k1998M^_Fr40D~~Yj=QV7$Y-SYUpR5s`so-eKJ7J$g~Sr5)$f5b-{);!xWmcPp{&vka2gyi95NmZ>RL6U*Sevm6OHEodPXrzI_NNxJNd zMGK3hTs`3p0fN*vJo z{eqb-n5^u~wItPD76v?O$BZRRsgT#9Oe$wozcqY>IVw?CFhZJ>r=DB$+3YiVq(^oJ ziJ%f!Pa8YVweZ^ZWDnu~xc^r6Pm_#nLX~iF&z%?XG4|5&BdFYs(*bWaN(@D6jC;iQ z8qbxqFO{dokjl44sa6&Ka4?Jr_aEtMiz=JLVf(Cgqdfn9G^J|!*cQXm^7o|_5=uV* zN*OTmy$X%-B$&^7YcyRBZiV~OPkz66#}W7T>G1h{8)Rnn)ULG(-j@81Ir*ou_6EAg z2(lyBWG{@fddtr*=d=P9?YGE7YV7ALef1@|KHP=8upY0k8TB1Z*=Rf>r~rqPvpg#5GT-P&h1^h+A$a@`_z>dxS6IZ4XIZT$SBK9~nD1Fx(a1^vE_Ic3<2r3yQBvZZzRPa< z=eh>*J~Qb$n)_riUsLmCAWZ7nA1Z*XFnUcSqpvGPh=G^4vTy4W(2!K?ox(kMr^oMk ze9j7skmBuR?8$plTu@J5W}K(UfTBOe??ug|x4uxsZ%T9Jb6IiJq`jg|ZM z=M-g?u-o`U2Lm3-Bg3~7<+Ah^BaIn`Jo-GRA*zKJkO64%MoY{7=bYc75=iF%+;=5B zNq_J>BZ$G9@_r64EuuToJ%wf-*}b> z@EOb7*WZ@OH}A7D;ESPU_gwI#u{Um{P_aVNT`>L~oZsFlHz{8v96FaBk(H5NE8Ey@4FnSdLB3cMv_*H!wFspSQ;DNKnp;P9Jfmu$eT7GJ_$B@qt5 zy^s%Cls%loUd;nfL1?O-?nSDp*)GTm&1(x9k(eeR0{ryhf*DWfwGioQyK! z2Tjrf^#U>yn!7&*I|ZKgTkldjIvZee0javbK;ySZB8T@8_J91ArMTe2Ugi;{PCRET z0ksEHJOtu4?Lk5PjR?)VFt$`wlL#>hJRfmWmgWTx+x6w6NsaQ1+Iu5&m0OihT8XUa7L6 zpDBb|sRUihlCLhoD<3}iKT*<{@;(^YqI^DzyfLj$8#MBpXN^&(`PN>r{#Gqa|60Tu zXrz4Mv;@ucd#&EXL(+Dm&sxiYdb#;Cl6QAszi3;MV5gK|BA5TpCM^kt9z4EoW=dw`wicpK*>3h2Xl+ zl?yhvX{0vsBN`wJGEpg-y*upeoEQrs(b3{kqGH2-Ws4`Rw@lrDs?^dwK!nOPKEAnU zZSd`Q1;2Pz5_kPd_RH#V4)u33LEv(el1HaB3N|AuV_GU750zU)XcXyc8b2&5I;(nL zF?vfo^2^!q5`$~k%UEi}B}-LF{1iRel!MiJEwNcsBh?{N#i2-(Z_m@esrk@h{($R! zdQGD2wtz@t9dZ;F+ElnXkfA6`JxU1VlCzEp3f6BcE8HbaB{f%Ng|kmtlXf!Mf3e*E`m=c9-UB{=xQ zi7E>52tQW;!H0lp5NeN)Km0^RnRxu~X~)CxKQSQU*eggzmDI;M$xfjf`5N+S>gq_K zMwbC*B*L}UZG{CmqNuB_i)*rf{5p9_0T-?!friHn^z?>8opKq`{e_1DPBU+}7W);h z+~@yOI^GX6Vgu!~^H{cWimtKAKc#8%r@|ebGShd>)4;Hi7@7w>46O+ksaP+R&)x>H zQ?Xi`o~~}G4}muHIOF=sM5LW!MUKwS z&9xDo4ZxUEdoj%>&cH39uf)iR=*7DC)aIkmT0Lef#cQ*Z&v*3^D{K3x4HkZ< zVRzZuLw9kfAPn!EnIR7B=K>r)-jkkKKjVA#X)Dq0vVQRP`a^x3UbP(? zu!cmHcL^%^0pXXZ0d>z|qZyUjHV=vo>gc(-)#(Uvh5e@c8DU{$OP}~47xYd@BuH@3 zDARs;T4dz)9xtv~)Ci|@6B%F2C+YX5{rQ^cbcrCJ!G6XCAZPOsa=mb?RI11PpV``Y z15xLUJPho2C<0{Q^`pRZ0a4$9%0|@W_*=q0t?ec@0LAZTu+5$s$4gCSegu#eZl)Ju%mynnk+(2Yn9E zf*h}{g-KnaH$e?lojMI(uJ6Kbp4{hkedbwqU^B3*nY}Fl>@-N=MwzPt_DzL^CuUhd ziJ)E@$bH`Qc$4A(SDe+I`ES8g5wj(C#9+;v;Ad%K(o{U1ouhkMs#yzIPHh>b|3S6LB z5peo10Ve{}y?uptT}D2C9pB>y(S+)EkZ9Udem7~UOo$qDX}2=4%>L|{+(0}qd56hBm-jj^Gm6W{1l#w zMNCda4SeDsD*S3tcs890vj%LQx3{WJ&VH*bVdUGLv=gI?@~JU3Gn1e1N_p=>E_(9U zXVn2L$oeoUAuXaCeuV8o zGb|eE1Z*1Z#JMLRAn?R->c{^%+joE5$e+Lf%q?yregJtOrQhFv0+hYY-C^sJ7?2=C z>=6I%kVQfhitXR7a7T!^suW~xLA|ShyR1d*=-_7U^M5EO|13Ea01v34-=5h}oqI_K zuu8bCjoW(35BVJt+yOe$WorJ97f96C{$O_r^1SKZoJOd~6MEolVp0nnvT77$U?up0W7YRb{ zb_=p+kAFEJm*QTB%xrrcpXR>?fB=(>K7gWTfFGJ{@!ZK%2Bc@NDWwQ%9&V-`wbaa~ zTKfS95o~H|YNOD7qxF$<@V~)GRAmA2O5bsffSce0YuOCA&M(7=o;PraFGw;Mg?lX( zRh$0#8i>x2I$w-BiJSpbSCOK-f6mmb|GGB|?Ppmpq{nw9w3{eBt|EuOFW*`Xdu4+CoihZ*=NeYm&6ASnM{qT+|QL!omj^y<0 zJ?y`gA)XLg1pXT^eV+jXy^874A;EK?9XQ4S6m9w9IGqKY`{-(WBlzeS zM_P`5cAcZ6=1hpET zwsR?-L|4EuGr-&aG)4`WDPuuLL+@D)76t}su+kY*1YM&5-=`ocDVbjPFCj9kFBGi( zY;IPlwi^Qq*70$H#2Iu@5Rd<72=z>v33L%WEJ5w(f4DE8#{T8c>7g%|HLk7RI5-sYxPc-{6gK~xY{t$Ya37q1Hc70+!3 zIs=$t&w4+F6Ia0&=e0RNpmxp^3kl%V@HWQRJ%L%-VFF5Pm1pVwf3^dM99v(3^~15KQlK6m5~Yg@#9A@;Zy-=F6aXl zo16(53qtpcLq^_*#i8de#UCFBWm(_bGO{Mad zmu=ofL|k3!4h`S@^DT(@&Njb*)!r4NHq4g~(xP9Sbxi`b-0{DLE+IsOK0@W?nX!|! zr?s!&faU>gkdQ{Hh_w*@o#!K=q-Fz3Cm#?-{o?$0C*PpK{7)x2UfSYW<=%4e*SD^P zwb9^hD3C_Fsu_KnFari+2sy$x9&yX3qHl4qvMK=2E~`T9V=mb2@j^}Kxr7U)NT(MY zkx-hb+nY;L%G?C^mGDbzv8fjq+1aTNmcUm%w&^`4@0TPYgSYZ{{l&y?WfMU}<|ZbGk=dsreIkql++beMfwt5gR|NSp`bggaK*d$|R;*FrR1B z{0|-3x;r~#h;3M)UjYeFoVmZ-=j{>u#stTOpHsCiSh{!b-p#p2MMcek?h4$UZeq~3 zHZ?WX+G-aKc@FP7;U)!-4vDi0!M zsUvq*M%ux2c?e=jioW+sW%1wnuYqUKb?){zlM4;%w1`GeV#C;|LlfDl2&0@LD$sRO zOq%;blDy$dl9>)8tr}$&T-6ON|0sc_4EVQOKo!%WAvO}vWikVvhbM4=*#85bihDAq zu5PuqeHjm$&^QxX!OxfhGJtvs*heopt^cI()({wTY^HJ=v8_%pA$nf1gC%J-J^Emh z&Vo?MxwOF5hua6eDR>_hN-gYf(28dZYLQA$f6&iVCHpg$B;=~t!RPudv_kfqU69vB z{M>&&$SqidM{hcJi@?Ucme}5fnUT;QufB6w+)Pdx>%)St+ht|WrfU*Mm^z+NG->`0 z&Y#|FdYTlNFQI0$DffiVZ(TyC%d^^4lpsP>D1(8HIQe=fS&h;PpvS$-NEep0u4HsR zRgw5cw#3_z=WgHHO(I0hzq1#i(X_HT7Z!PHNy%B_T`SxxLpas56?T#+rl6S5 z4!23y69%^OuFSX_csL0 z=NA+^ZBL_pmq%+bXANn5w<4R}DBIxc5$H?pSV5w9wl`BYsg#APq*2sR_d4=r9~d2T zLzRY&Hdgb4OBCz~1@@XB!WKv2uFE@1R$nOGG7tm_I-;2!=nI^bU`^tZ!(q2%g9>_f z7}5DmMcQa6L&`=!C=v1u8)`3RyXdBd$OuZ8fKtOeRQF{i9P`U{;z}{khv&KyE>rIw z)t+W{1t2pi&r$c{EjcD~7F~H$6#^dgb}2bzs}I-1Gu?}_&>vR|%e&g#({vxqtrDFx zpl2a*k*Vkt`l&q72fLk52^58wfsCC*SSTe$6c>!RF7$lcPF4=cv9L!6^K1W`=rt1;5Oh%qbhnV)bdam0`1eOXd~08O+)f^JflFn`D-a zt1pwhEBk;62AF4jQ!3Wf<#|8gw(HhK2VP!>iU6=QNAU@%Kb)>87OzV^-^u>)Bn?$u zav@FG2}Kty!_}RQA_HV@^G4sC#R%0Y=-VuuxttQ4)2~Vig^N8*()wEu`ffHruV12} z>fypIRC02%WMlEu-vcjXSSyzyvN_4{Ye-EIXhGE|{uy@3@}?6mFZde@rIa&;wYECr zifpK;bdNS%P+|?QPjUEuF`EmIMk*+^Xxt(8$s~l}KzCZap~kTISklw@>Vg~>-C0oR z==)Y}HRK{;jYD{a@(=kv_Gv=1&tioRpfCOV6{vPKN^reiH~S8bECs{a`=bv zlAMF=^e~XVMk}V|F4^(S_i%RlrU|+}XRYG#K>v}$<-Jr*6ZO?^sM^l=7Ni~<1l^mq z;Stn9;+H`uDv#&j$99T_{Iqc%`o46tkFru58S7GV2DYWyml(K9i7&nt71*!&S}35cb+8!?fJ^J7*Ru9Y$sj3?1c z3|Njvg~0lX2fJW(D;m)iWnGL_p2a)0Qx7FXGUvtInC&Ccd|xC<$}o+LGkh|csO5%r z_a>{Z*q1Lk%t-^?G{!(Rc(}+-ZMkzp1BqaSCsH4;@PMhzQyMuk%=f35T>k!%z|bfZ zq*s(F6jWB=)ZsTYRPsOrUmIZgZ|?UV2YU$Ow0e#*uR6W!@E?$vvUo`I)u8jQt;$OQ z&CuL2UkEEn?FNbBjn~QP9*O*ppJYqe)>fgzpGDq=EA-MpQyhQYoy&PTq+4bxpE~Q+ z<8o;7oc-H{<9`saK(4`rG#EK4h9I(1d7v$pgz)O*YT~M4UH{4?;}Qhgd~W#RBIr@( zCF|UFlyD({$w3bP2SAyAX7mw3+|#F80QM^}AtQKQ+EgUkeSz>1BfQlkRc1FPNW_8l z+XH%N0B;62Kp1Yl#8LmJR0+^4zEAZ|D$$?z0Ii}y=Ms?|&?wd)TJ!SatpULF=cvQh zqBqC`JQR_vMW+){H~^@pGB| z=6pBD*3!vSsi=q%Du@CRU}g-uS0)-KOiuyu+j;XDoU4ta@qjKT#Vv8qFBQ1#V>?rX z_$D0kIVIpx+sp+8F5WPUq&iI(v`!Jb=GF8_*G_NQ2kFWAb&G>yj3cH3lr+SY-rw=dA#?J$g^U5esCn_R2AU!d@8a75pGd zb3{$hx^eNnC0%O5+8=1eneFK@MovV@@S0^epgxHt!bLzL%(wy`eRCp2`L%P}6^f5rDN!F) zK-&5&7==>Lk}Ud24f;xI;~~%{DkRRnZsqAFwM)JZpa^GsGNc%<-F;&E*3*zR9x*Pq z-KRba05sP`6QAv{Y3ktLW>FH#8}K{aUR#zoNkB`qs}lf0#O5^L@a8MR^%0Xm+GMsJ zuHeG=F#9b=DX??J=u-+aFfg=&g2(<<0eBK+qLW%O>pgp|+-mI-`^^JO285PD&6-|w zu|&cg*&=Aa;qgR$D!L}k)(dYH51@do6BYk8?Lgo&X!088#XX5VE(omsx;?J145_t;(?1y z5{dCoO|H2J0ySW8R;+NQfc&{&N%NZ0k+ZX13Jy50Vmu(XpVEjE7_3z7o zh^G{V(|+p4`p+MC{c>0j7W2l)QGQu4sgrxQcHGGzj&;{8V%%`s8M0_6;~V|6k2)m6 z8Rl1PdR1Ej)P&*!KBHz;)^|^Be!qzI1*31SFWAt1C4%P#x{aa83vKn7%!voq17+3& z?Xny7M?$M#n!rvLi99d7h-@fYfdh21SZ9LJ?RA!mvT#U3>-}vuQ=lDe02(ZDin2&l zo$^BsP4w^I+Rn+#xa>egNFd;IYCH=mUSTeMhif88Gwl-%xkEU9Jx`mj4NJzH)wxl8eLW@eK;`?#$3Ux`!~53YCTs2D1# zEZ)!vF3IJ5!agZtA`QXuaFFr7T8S=HA6WKNqLhO_P3O+5AA+6k3&^7d`*yT!ChruY zu`Y=cmi)-Iu`4rB$yXy>6-{|^E4&7|s*9jBeLPUGhJ7PfkZLo$s}QZo=7>q^lJDP3 zOU$xTVNMCkKl-+{I#&1l*9i$FX9;SG3N@CGU-Nt_zp^4pB?^#WzX#PeUzVgDRWATW zmC}&bB@F{>J6=Bp>$)`@b-)HHa4kC(USUuf5JRpxbZEVqX3hB?s0{BKxINqvhvR9B z($NVfpgi8R^s>WXy~ZQPSmSu)+ScOf85k1&s7Q(7zODg+gWI?ElcqMW;NXTh;qS<@ zp{gKEy{^?-U>v0W7lMmR918b>vHGe;n9bwlc!Bklaz=FH;Co^33Q1-oSp5UFx}xAj zKaN4xW_Y<kqmjt@@)ewr*^pORjd;2^FgHJ(UQesb zhFmjX&08*5sKNY|GlCfz-AmyBVr6|5o~w5{1GCQ4)PvF+uYe(*1`cM=dA*h>YC}t= zzzjX5!E?S=6O`p`R50@c9q!@b$A~5XEpz74%FnE@a_hd_$?H(K9!-Oqp`Wcw1qYgU zP~XIh6W&fm7Q|z7F*ZbX-%Ix#@?|)Q!7#1CCGF+gQi5ShXBZovq-aUPBN$T5ko^Wb z-aQ=>O>}H_y$LULQ?lC6aDnOp^H<-0-)gD|#?&WyFJ%&m?=QGq+r5a+UeX2iiqJc{8?LS(2DyQ0Ar## zo{(;Zsc~4`J_m^mJ`w&xmlnN;qh!3P&v`LCiSzY;s|b2VQfB>AcFXAa3UB7=SGSl* zf8%+ECS`5-o~BIhlB20gsf{gSdffh`Uyl++-nT0&sZ4(0U|2>XB8VCg6Q*GuDPkQ?Px00hG(z5fKB zpCOVy8z(^V?Nfj(=jK7|Q1D_BFa0bwvSTq;Dl-r4J~3bio0i@6>Dda5ax}3Qo*_=3 z4(v1|arJo71z29Epm-F+3X4q2_V@Y?CLtk!(59RA%Rf!`i9^Lk z_U{gM*Jft)5w|!Ja$EjLY#|;2wCxOW(;@)#Wl4Zb2yh{8kx@^MZ;Z|Wg!WDqq4?9J zq~1iA^3$hJ3#FKoNYr*LgtfV}E-;?58?V_;j=VcpWi{4LiSUfb}Au2W1 zj-?iC_(a^Gi7vrUdwV7}G0{r20z%Y`Rd4Lp-D)uc(DJ^3Q*cx8>24%(n zo_9@yi5K{UJOQ+y-J4H~TV7u7iTGy=e9o3DGY>|Ln3eAeIAx8xV3g)qd;md|vXitA z9#)E1`Q+M&9aZSPl$@+AIWRs_Vst0pK5Iyq%mch{upj-&7figb7MV{>i4cSwQw+#w zVAq^p|_89r|w|F6b};itGWAqnnu3{b#F$1Ow86 z6j1A0dj=?nNlDDXKM9a{b~{^jOF;>W1(1@FVCS1neIVP`OpOEb+YIpjP5_mWlw1FQ z?VV>-l-btj%YX_riXyh6Bo)bE0D+PupyVJ?kf35B3y8!5R7`--l0nI#M3N-QV5@)< zr3fXlM9Bq|P(YEHeZcOyciubiJF{kHt@&{I)N5HyJv`5O_St9e-~YdV-Mh`uzpVQ1 zF9413i>}ad9P<;s8cz1Z^HS&M;I=QYvbNIMgMiOumOnTfPw0p)T9s>K+ z7cuO{;S{65p_UHI_JroHjbGn1gRF7T&mlMNGN86CIznd)PT+v8jwka zo+l5{)cIKtbj}j{#5cY*Nhwzho1>F>A71iQ$-5g3LSH`SX&r0$j%mm;kK=w_YT^Wc zd&1c*@kS)%VFg`o)rD#B==tw|yMCmI*|eYTVlhI3<3 z4NN^YWo4|3das*q{M(bOu(zQG9F$Z(gKy8YnKoe9;9#+*Ix&jrfM;}T^q+y3 zaS%>Ow2~lMQmXpz`F&6rQjq#9R@7ur3c>gQ&=g+9N57pg>TF$I=TcC?Of`<(+z>+$*Tp+i?g9oT(mz}Nc#m0|YeV_dKPs}as zg)OXVbT|18bftq;C^m|HUMu?AHt))IWFT@LG&lH zrPU>xt`dHk2Rhb4b1h#+yr7H%hyvRbRr5cfbqSs7*Q$O6Bc-GNruyN*{hP^MU%&tV z=st>{tS1+I>-q<9<^Zw(#ue(QOzpXXm`KzpCp&t1eXQ8XAANO2zwcpZO0@3CG$wr5 z_^`ZHbR`~wBrkf^#B9Inpk5eQPS~jK+Q9WNEvEeKz?1>pmMv!2r4O0RG0+o)oNAI( zJZ;x?6agY7n*TAX)#n{v{g+Wq>7gz}Q0`tk(VU987}NtAJ{`)deY!uq z2m+kyjT>o7i=tA(!i`>l*B;46c3;%;V z$zSROLFO^fr!%{RFkyS)JcMk(-k-JKi>uYv&w5Rf+!WIP4Ue@)r7WoJZ?qFe{gG5Q3>jSNek zTS-5)4eHfan_t1^|HA1l3QtgoYrt(h1EnB%l;+SW2-#>SVK53@NokZ{J1&;_|Gt+n zeD8m{!D9ZmoQePa+y1qq^KJoNVu*OvWW+9?9!u{r%k`)2tFqgIutmOKxU)bLfikx0 z_0n?<`_jW-^06!y{vn%X?YL14dBO!eme&;7eqo_mhT!J&^3JV`n%}Ql9_`w#cJ4Bl z%S63JfU8;CT!994xj|6tS4zvJAjDt&kk?Olcf`xF?d?P*nWd6kMhR8xR3&~EP8(f= zit3t=D&;u2xe*+$Nr)KlsO(cyGv!O={u$eBV_D9 zr#qC>0B2GMc@}3+X6@;uRTS|wY&ooMB^(O9dtWLPk$ik^44XI| z_!8Wf+_8J)Q0Qt*LM#m-v&VXMus8o~pA)%{f{OaK;or zNw#m-hDVxBsnk!o@sl+1Z&Ib^*$X=}{%o!y57s@mtoO3B?3gu)a6M>78L4b^=I9>i zEwYKXCy&lEF0FL!IpLFGeNPQqzI&d5j_`?AJ);t3pLmK%YF>z^(8I>h?bg1gEzLfY zxoaacazQ?koMpxl#^&GhEQ8IK#K{4*rKz*lz7agNT4JfxmEU<9sIUA4kK0l+1K~dy zxr*y^7Mo;>&yf97r(Q|5ik#-|u@N4&{+(D0|(DH7N zhgav`X8UUT47pXT<}R&mb5*8n-`g~p->`yPE7NFrN*tGqw^O%?ip*LQC5C`iV$_aM zi*VDIHe;ETZz4Y#&dAj-Z*~1s|10bM9(RWq+N@Vs6Dli6>$}upH zEq!UjkA-CN&1>w>9oAGBjqj;}!L2{n;-CsXe5C3-nRt}e`fR08HS+O?NWR#h>)MKn z{R8yFUWV!JbgpwN7+68_ji+XSmVfDW|ICv3G!y%l{be_!M(~SG&6PbAn=}KqXs%E> zS%o^0P}#vMPSp}WHzU4%oX^z^i;ko4CUfN)VMsPswiJw^S${_kyw|k$?`BW0l zt<6nK;KoKserwyr7YxRV1@0^xd~&0cisRPlOE;Lql`S5t^8MV`w|a)9iBQEPmU3b( z>eanx+az*py<^_gtgKd@4X%izzdL^2{$8+%>qP5>RDAb{+{>E9ok7yXGjA&d_3O$g zNz3e^p*9G`WDt^W*&KfB93ShIJJ_dMf>YxUoMs-VafXdtt}J*OH=yQm^m(<+%(TJN zh*0g@Mqe4u_=MZXC6cQCH0#IL3^7f5IS6i|i&zjA%(`OEHFrqz@L`V!deZkxq!TZm zO^o+s9%3I?l~0T^i;f%?U-q+})Cdix7t38 zW+SgGdOs-hA=Ottcsv+sww*!xv_Tzjlw5*S?_9=OfK`pNt$$ucpxl?;6VqEgD_?Ja zkU2m#yE0rMN+U{|Jey$OyU2J7M;Ac%Foq0 zP1hRVyi})uZ?4QSzAMaiF?20mr}D+VGJ~E&jMu$1v!;J@@{+?Z37C=IzJIV<)Gvzz zkGSs)*OxW3oZ`I)PxlINSEU=Ys}M+;xxFXIn& z1nwh!>V_qS!PVIuPK^Agx)iyJe9w1l0;v{B(whZ6tutgDjOy7Li4AS~#1$X>>lo3i z_T59qcWp0uMhhNwo~X@_jF$;YZoS0V6*+LgB5t-Pt!{ORZEc&gd!&11WzLkRy#wut zG&atsXu-8?GbulQYD-Ilf$=c=B0FOn+#*?lerbg~44#MFIYqU&t8REVo0J>=G~juM zO9;;;PvufN*=&YbX47bf#4EIG4F^+-wd3=1bQ7bO z(KDy|I=uREczOLS0r*UYxQiAUrUTK0v|x3QaaZ@R_Doj zX$56k?POx|l8uKEsf5mTHDZAj=@~W3KJLCPb~1#8iI{i~`aHghxha(0fiySc2vIr)}m@wyJBfJc$Y-#ikXIB=m;)v0lS9Y~USiMXo%uQ#m1w@j;TG~$vyx%yU-~2uUr|*X^6lN1)%0LU~B`> zK#E||mc9UbW#KcflR~43zdmT9n2ze@NbOPrBq~xrO@sNiIuuV41;ir*X#)CDvgC6C z3q)fOi9t2#!>p;TZKiuU)QbNuXl(vnboT%x_s_xTHvK~Kqgv|XJY3(*UuPl$p`jVh zJE~C3RyxV<TTdGCl3#< zJo+Fh6}hkZL_dWvvUlfNBbHyc&p|Tq6kAhjVxQ})Io5G+0*DYR5m#sc{DK!T;FXRV zJ{`(&TFAZ-S`4laH5TU|9kl;hqS={uy|K{@TK0-3Iha2AFP^2Zmc6s2vi9!$3!P>2 zBdRIoq}%)Pp_Y8vM21;!smS-~%_hYGVYGuge+-zKNZ0yRsVD16E=!P8RNSljk2l?t zjC|xlO6)SaKnvXqdPQo+AO4?o)U4WDfs09n+wBB3=Q^ay0jzt-+Doepn9L7XId{mV zPSDu?tG}84F-ceNI&Z0`xfvu61BUuH&I2NNH2gdk}t zK!Jl`_WlR-l~k;fQ*klU*3`LMDi<~-9Q|9dNl@>1U4D`gri(RbCf%tZDB*duqK*3UQ=mMVje(KAS^R36=iG0Vhi8Ve#5jZ z%HXu0G`(QlC-eub>1Y>FW(otvCDOO+*=elulu5Z;t~jt{kg=3CtGhfWqYb4h-LO z=d>dECcVUY&(=ttmsPC08PuPT_Xn z@_2r8!`eQ$Z|%ztA3y<@>F2lA2EN?Tkvq&OiuPDWLW20(I6rL`#@&>}p}vp-)HA5u zQ^P>E7iL$jdJum=w8{Xg9NF-iEq&S5e4mcdl)MaM0fuG)Mz-T1KR$E%bVnBmwQOQR z4Qc{G!w`OUki;>PK9g;0-0c$`*=A&uVJO%Zff6|rVbQ~6zp)-EAkH$tWZkH?5c;W{eV%HbYUo(}zS8 zS%`(TB(Y=fyn*2h#hw z;ppxjnFh6*TV^tk8*~nxvy$Zs59L6oBijXS1YoX#hSIRsFVSJ}O|gr5>XC4dC??88 zB6SetM*YrJiCEV$?BvoL;*_iTb_|~NP8>r!=|#26YKKdcG*tt+MbyrN1%(g{;1Qml z+N4u@u8TI)&W&}5_(*!=r^}-uH&VB<<)+-*NcSZGia;jCOR}56dw-pI5KY2X&h^WR zV4k!&<5%0H<|lz0Kz%^(W=Htm#Y@U-QIaqYNQZI&qmZ6J)qe$V&1~r$_MDUt)m6y% z`(7(jYtiG8@==G_?+x4k!F(ot515r}Qd`TqD`nw}L2n)d(!9a4XRB?~e?m|kEDOrP z6$dk74$tr zNx2w*y%d~w&VeMTin;io;^YbwxB{=)@v3hy7pXL^HP0%R)(Ik+`0iUJ7O)>kzx@mz z+`$uecicfCSc}CP>5B?mF7mIlrvpf2Z&pfO^!V$aOtS9eu5^%lVc zZg?qL$muKkpFD&ar^&7t)wpGlNkRSb_1=Yf3}5fz2~Q6^bF75=fWz0THiG9^CCPMZ~4fWwx%_Zu!+acDF^PqGS}aiXdxylb$r+*XS-T-<-H&Mko7(ALl=6xizP8^ z3ryFrmmTOUf_`PGh=e=n1fzC6@%C-Tl7(yl;o?{tA*2S_;JQIdXC>PJ(C~@KI8*R% zsC8Ni9)y8Ury_A}ySnLqH@yr4H5x5rA$~TFbrTynb#oTz|ZFS>!)~RFnhpMW-cX?LfMD|(tMR6pZKp?CH4g6)`QUB4~KgAr{_nMuR(JT zCWSC8!0WH^l?n}LbuchysGy)(b!eg)ym0}CKvKiKbY1x38~JU&?Z2#$0PH`&3kD4~ zNCmrR&z@_rtv>9-KSGVeQ+f9>m=D+Dl^(A%UB5ufESNTj=uND>72Q&}(0&AdY|va|%4spPML zC;$l+=%WjCk1>PNJpkFixNqi9U2=|m@j?)Al29ad%LP{yMKt3G7Pd=PvVp0|U;zwG zBT7!F@%rTCXn`hFx_(9+-lgTaFv5=^Su?^)8o4VkFRx)nK9-PHiwD&DB<%cDud^_! zY%CMzTg<mI8!@@=C?$>e^sk$p^d){*S?wbd$AY@} z^vcumv`%am1>R}#)>XI&`C+7Lkt_62RrCkkM`sn3!Jn5GsK^Q7l->`02;z;}ObKF` z76GBGqXa7lwy;}IQm&|Yqn;EbgyHb!v>wr)I=6+-)Bn4sMDMk<1x?Tx=wq!&Jh7Ab z#BjrrTgel-mbEbxV&!#|+4ca@Nvd=nyFy~d0QlTvPC26Z2QVPmxEBAh1Ej( zhXXHy)CEV{AiqAGo0~g?*9^|mx+x9hh*^9jB%Ys*Z^rTfJ$0hlYA|-v$n$nd>$lel zG_;J;WKd*Mumgo_R}ldQDrJ#eP}&@-h5bA`54X_013`tI&EQUJ+AIUgo}m)hi3f~H zL|Mq0?8I%qzIk_|IYzvGya;Ap8G>&?CcG21i;&c2LM|CRJ0oRA2{$sIa`T2Dt7!Iu{@%GHcN!S zf7hhYnS`T73&gQ#N&cx%-&r7W!O1CaX1ud?oK$Hg9#o0H%$C$`xds{u(^i(kJvQJM zgCG?>N7he!&!ift{cd{uo>f~m>vgPn6GxGuGDMXI%N}g+1y(Wp*z@U2Gs=Q}<3wH5 z&>ek%K)I;bytLUnuVb~g>z9rLt$K=SaKf4wmj#Mubv=o78M1jsT7jb%1gl2Nm2`@M zU>d{K;7cSRVRr07piaWa5q%+AM&d+geyv6sf#06(%ZUE*iG!&O3}Lod7j?Y9Rj3`4 z@EuO9=J78$zzw@ijkT5zTB#)ItrpP2wFL8D#IC_Jx?zD8)}m3oTWR`XX(McR!Oo<8 z<`bbClu^i;bzfkV9J-3smJU~d?DZt%;Q5?PDFqgxqIZ2Vk_dg8Yz4R4 zLmx>ldO$GtsqDTL>W~#g*f#C)TkmLb;qGFNgBCMxgUVY(Xy+&U{GC{==sQ{-l+z>9#>P&Z5Mj@tNv^cK`()I7Bz9;H^1Na2 z7S`HwiapZs5QwYoI}2Xwb(tvhN- ztL9Bo!-t5@kR!nkh>sG;0nLzyzS`*5JDhBMwWq?NlVHVKSB-Bgf4j{><*g|oD&8hQx{_u=_^Pq zW;=5?6HSAKd_^NwBgeeLH2f4CO2t-U#e7?=%{!xA1DIeSd6O74mz7rS`b~Vl~@J_7iN~RFdsJhE@sWg zgRN2{AK5G}wG6wky))2Z7{O{Z^u-cU>kKtrwGTjionJ)s&>)H%q4tOF|Ah5Q_aeahEz&c0bO5u(<<_i z25RvE#Mk4x3Pxzo-35EticHvkl!ik!6csDb3=1;oQHnsUNVTQH(aZ!zMFa4C0{5!U z(t!~5%&N83Zd?mQyk5VLx(vcmJEZWG zuG#^EB`qV!`@vh|J8c#gnh~n48NvpZ1&NiQtZd(F;F~+WA#LR#k4@cP)6=4ny~}$Y zCTl0b;B6?Xz_ybh0Qr{z7*kO>0N=Zonwn}%Ck1AC;5UG+AEtN!`Yu}(EsHB{hbg9l zV6yTWs>m)Ag+vp`#TxS=d#<=S*9rzl!NWPFV*=D=h^*3aa4kfreRxD$rpD($J=z%7 zRspa%L%Dt6y_E&QY-yQ&GfWL+NnXoId2j;NvbRmp+Ti4%XXf&ro>%3l=^$M?QUpVlDkUINBvk3WSWrQvhTcm+YNSJGHl%kj zKqx9Tv`CE*0&fTI@0Bm_jrZw|H^%>ralKIvC+F<5_gZt#HP;T;)mEdSW~L@1Bcpk! zuA)aqb_PL4c3S(~S@17*>(zI`|D-)tAA9P%+Ijj|x!aOyS$RHpa`kkAJ!SW{b@za| zx`+x2-xa*a&u;JO`P@TVNXYqrKSR*f{h81gGp{~y6{_dzCLUyDv{t15PJL7;gprYj zQa)6`IkOmnkSCLdhxXO++RtsjC-{{DbFT-`1KC)6$9G-U^;av z(7hE9ESzX-avIzQIPP)(?4%?=`OJ{RaPr~08aKtsr}oQ`Q^%h^yS)bEK{}pa|9^2B zxA#I{2A{C7aJh!nHTl5$6=9V38gE!9ac^nsJfbt6t1${%=Q8yv@Gz&Kf0(sV{z#p% z6L*S?eV_EjxqXr|fwv^5ee=@2Ct!LlfqpzDmH7r`riOhoI9b2#K{ZZsaq)g3*Y%{= zug?@c%6qfDIrGdlSC{3@AD)Zx8ODo zGG1xhn-w1)|K9)J^Rb>3QQO~N!}eNczK7G#9};l*`ZZkZQQ{F17b4<1E$g@5usE0M zSWfj@{S;a38(nI$OX5EwuifgGCzP(Bj3lAKd-Hk??zZFAu=u9Eg|xVo6rQ7lt?2DF zjImLJ+!&haeM zuR!W;3t_#{Z(0rSMw{=yv&@+x?G>l`{z~UWjbm@a&Knk&yX{U>D6g9e4KM@VOc`EL$6dpYmylQp2sR=#?0iDTTN;2b_n6y*f*6iq&iMcCPB5ZVu@6kO9M> zg-dsz?`kNJ^2SY1y?(ymHkF|*=c%y!v&?Kh5b5k<&3~33wYu&;H%5N`r z{@a-Con2|^O_P+wp=+Hno9WXZEnNsZD_o-`#*)^hx;ZaXB8o;GrmgwUWxUC^u3s)L zIcUkGSQE&9@ljh~^s|9-tiFz%p@r{n3bZ#-_9xPEX2;iOCdensdeW`^M)_KAs`wV+ zvFRYX!Q8WUqYGXxemrXVKRc+&DEO`x! zZ7h7`B*(UQ&_yl&<}?=D$=+lcXtCcV$d-vSz5AxvWNihar{CW%lv*8d$Dit8 z8EVd_OdFGbei98G!@W4W5puBcwkJ!$^6Z7Hmj;3+$$4mwlK4%Y_O)gjh+n#%ZU{u1=!SB0)S=^qF=P-Vsyl?ALN9{*G1`dbU19FjWlp zbhOM2z365cxS@&;V)dK5j9wFW80pwJSRN^wosf5)5JRu6x35e!)-lr4$IrTv#?5)W zvdxPPx424_uW=adS}p9yv}m!-Of}+K9NXI47kx`382L*$vU?A+va~Hnetb3M++3@hNyXGW)hzJ@tCwrE*ie+_cl32B z4$BZ?O_AnMq;eVxeB7~Pv#cIcwtQCh)%4So7bzStW2aKHI&Epsr6=VIdvo!uxM(9I z*nGUvtER0!nc(*FQJ853q8c?9ry&??RA!p8%-c*HtFSH*`k+nRFnk2JG==643)Y;f z+HKkpXRKn^AFFj5e_HJ3*%fEh+LJ1-agj}a)xX^ITHb@mt2e=m6&bai2vIAPf#uon z>@8-cVe@(Al_uf-g@P%W_h#AiM*+L5!nh)B=#J`4p|sa>GTM~I z)RC=ra_Op9lj%k-1kP=h`S$Qe;NE;vuUOg3f&QVgy6NTOcf*jzFRv)OUyxJwEb6ma zG6@cBI4~y5mrD{gF-XI_2Os9%vIXD8ePgl=wA$|;-^RT#vc^`_nDXDc_083AVQDZA zYM8h$g)V}bLU)EVgi;*tmF16E!@LTF_EAeK0U%qX{+N;eQD0x59R-%z{ksw_lS^*U zlA{ACx=W~RX$XIoO!oq#7w=gzMQ%8+Vb_ijuFR}%w=v5|z5eL@;Rng-rMihuG{SB6 z$Imx3EbiAOV+j7n$qZNU?V1osWiVk)vX!u03o_?$s<8E&ou$0!RNf4b*-+~tGeP*h zGC1nrpZ8^@rTkUS{h4yC32ZuYJMfiY)0;LkL*ejr0CCmK8HJG-Qq`Z{9VHb`Zfh*G(;KdCv!z zF7&3EUAuNoKDsaoME=fa2!m$-9dkyR^#eml^X`NrEB>hUh@gO$kn;|wb@^ve~P7T$%4#~Y!1hgqdf#ben_A6emJ-3u8-zrCRmHN4lbF^X(2 zU{o;uVq<&_ruwrlL#EfO5eYZSun&vTB23yRfIlT+6z?RPqm9DG)*Es19viAz-C&7w zgPED|ynxZ$^roHTP=0v3cTjJ2UD8zb%({4u@5WPoVFVs+N0h)#8&5O7m9TlE7TWOuz`u9Y6KBj=T=_Cw7Ng~MI*GxDOVt7y%=ucuJ7dzl zD$1-Grg<;4U8pw^8ikB7QAgMP}*>0<#oAtf&OSUPc3n8^zOpf^FrH%$Lqg8 z44vIwZ<=8;3$|3o&)R1%u-@DEpFD6sy8cf(aoX;!UJLW;;%@q6`#RAdb~S$(>a#i) zyOO;5G+JOln8IWAYcTE09At(J?#IS7T72Lv2%G@MhJJkBC$(6w#6x^qDCglBCgJMZ zwDBN{u$NadUzFzBGQKUazk+P-@q%V(7;g@-K8n?yn%DYPgP#uQ_kt3XPLywm~soE=fv$^Bf`GMdjW6VflB8<*}sWPkyv+7twNq&G*+Sv?mX-QaWhgb2t)pcd7bj zGsBg#!y%!mTKS;;`WA-eYAM{EHi{f%tG0es;ooNBF2;^IQ?5pnFEntFU|$n<z4c-0Z7~-^*7V&DHTfrC~Bl>#@jGn+szB9(&b9;f1^>`+CZ8@ zyD)S@|KIk`mbh1cfF^VCasw9+Pp35-vB`n{@F0pO*_vrL;L?S%zMuJiQE;nP<%3d#k2KoUsPeQ5kj3;$Y1@6aX+Kl0?`7$)E7bc4ixR$7m;!S>HYo_&tik8*o>s|p z0qQnz5gxpc<-(3tjxHtwu1(RD(LTMJ~ym~-5qWY@S*p_GI<9@D-c#i z^&h!!v@yMPYC0`dP zyd1zxJ?3eejSSZNGGKUWiXe^kt?BBs*z2|YME}vurJ*hGfv0q-(Wx3|%+Dsai4skP zl6A%hep*F41z$2V$+yS+Ed~tl?OffzhuY6n*vC(^#+Uyq#I=QwG>wN56PdC zc?jt)3D_=c*-WfLgdu2uMv@u!Et+-7pFip?)tn3(&m{LM= z@>0bN;9)`XiFn69jt2l}SGOD;2B3qQjAyEh6)t%0$kjamtrVTWG-cc^GaD&N-L#oj zUd+V8vVte-XlwTgyWkgbhu3z!+i&>%lPxH>SZdkN!_Sxn(f*m8-8yhOyNUm1cDG${ z70*7fm4@G2m=3`0G$LCHg_`~<>CT=aQ=xURJw^6N`Dm1gEzC*;(|^L?{L;2;S@9sI zCQgx0r9dmqZa-yvY4FxeJDNv$-B1K%lKK<~eYmIpEV%bxPtJ@#2%7eq+=nH14-7*n zG@_CE$ZcUAsd)x{M8WV@rtcrBs?;1A{NX**l8NO_|%;3sVXOzXjFtHlxLj^x?c8r1j1X!I@F5!GO+ap zT*a}E(cc{UPtlnD;NNVt#~RXW_Jd^VR-`s^xK(+ddByKRKdq@7!cfVS>T2YZV{r7z zvv?hVSXbWN>ZgYN6#LAM6eUq>fE@EwR-7XHsvLPoUsdiL8QG<&rZgdpr|FD!w4B{x zsa5iBOeI0k$j2BqMuw#o+i03K`{5`#I%j3iY?E144KAh7wSow#sYQ40Tb=Da~hsTu4mk zw464(TnfP4&-Set;k%9snHd#r8)7+uNQbIRzVw)u}j-5Q`Z? zd_2*CbbSy1&C*uczgK7zgbz{k5W*fpAaUx*{fXv)I+JGZy1C0_pBos+sOejiPLnO_ z`M_YX0``u+CkH&ii%2Aj{kM2ZTNM0_s0;< zM7l!vn>1geuFLb!IAeG%oyNGE`xK1(m}O`~J>~?G$=Oeet|t+#4+& zf#u)q-%kw!>VVKp5s5P5E4rA`*kznm7LVYQhXVql{^~5vbw6{``~%0On*jCSHgp`l z8KcyZFbCFS)q7DpHsJ1Mc9Z{; z;#5Kb0oJgyE4Y0-G48qOQH^oFU&8J2x@XZ1hiF`D%1ZaNiLQP0wc_>x>z1msDFN1frHDa(o#(- zwg0)%`mB(D7UgW7;pwCGQPo9I!+p5XztAv%>N0XOZ9y z<`Iz)i{?NRMg3cB8SY3=2UDGipJi4S$XAp@a=Q;TriAbx8dXtZuD8n^jS{>2aQs<; z^xcWxj>R~$ehGoO78#dVWlCC9ZOCC~`+_`b zW~}5*GXB@k%gUV0->Tx)&uT)%|-GQ^cxv)qvvnuFn!!t*ngJM99SbFc7e zy30Sq^<{TQ-JlXS_2x3W5J(FX(4q@Et*yQ=6L2*Ke*|3e$rU z_3&%)Nmm48!Ri!8`>c%#(nhr^KZtBlb*W#|_Aq-t+#f@GrTG@$l~yk02h;X01hhC8 z;WBJsxLp64eu_9w!Q=ErMD?=$!Z+Hk(Y*H5&*~YYJF+~FD)TkdeCy2R_V4gmR>V0T zb-#rQpeH>wS}fk;B%R^2?NOa_vkTLyMcTGX0L@jweAQ;e4S z&})gdDZHO7h?E^c!_SgeC}~;Y`VMH}oSB`vDXc$oq@h_b26JbcYw$HT;CP0qeA;B> zOD!(I(rPABAX_CNlpGs-f$-m~RmMem^C~e%RPDbtS9R^yUX`XBP`m{D#k}d%4r} z--I)>Xv^Tl)}wz={~eZJZatzhna;dJP0^T!0NQW~QZ5C@r7usPKAj8m+nVnTnGvF$ z^lQ8>@2Q(wCk_2Eh0jj+`#D}t?Be7KnA9nOA53Ms&AlrTaoA3HHK*ub9NFUWa-`hY z5|Y3pAj-O5=XA8vAKG3Yf@9s<8rljnHd_0K*?OE%oUa}{>O7!s*RuJh=`K;Y!EcO_ zj-JJ_IOUG)_Q#QX2%~cRD0?4t-2Gu(Ofq+)&$_JeVe=-jz*Uodu~)9A%QY+w1sh}h z(;d}%$otokZv7mBqxVoj<)UrK^R~*{!8nW9o;Cj~T`gsvoUxk?N4CdlPKAlaCNr7H zCgr`F?DX$IH02P-Q_w%s^+7>BrPB75{5lR3ENm62?JR@zVMDK}X}>ml0THzPauDdg z&Zk#q=dHl$BW>F&V}JgK)S{1M5;+!DY1c-%`L}s?J~Pb)KJMC@wnE%JtisHqrY&DJ z@EVq&e$3SSoo@))zd)5RM?H=Ve`6@eYMoQ&}m-3l!ZtuD|OV6*a^rIUJjwo^sG2R6^C<#m4&q5@FM49K1 zg%(TezTTBqqFp8d=^s)Q*%(q>vWzAATuHt3u?_3ovvU!O>RP6qmb@S9^LVaYrIRi$ zHumzs8fhgth&!YPKQWH1?;F)G208ftTX%^J-Uf$pJ(I&}nFV37e3XNtWq9=aBrC~C z38c#WdIr9T{3~|sA+ol*#%(WQ zKw-w^X)V4n@Ka9!Eb0Qz=fwp!uXw7tA$@%<#_@{0_PN9Wt~BDZqyxwKBYY|rhA=ep zem9TXb;HYX&z7^@d`o*Hu5Zdendhx(O^yE^0fg`Hg42RmnWdZm?aH{X*%Esl!oBGU zObY_%(i9>8gO0xN78)dU@$hVh=*ZoXsdG(ofB4Y-0ikN{_cM!gsF_$ovFGq&3qM$a zX_L}Vlc_#FnD&1gxVz!7x0{CC@+$o;85Ij(9-T*+h|Z0IDf4GmL%j^Oldln-S$=3l zF<5WnVN&B1uGxrp8E|89v5rEl#GvhSVY3y$gpWwc1gM0n$J#h#U`P)%pLzRHZBom>C!YScujoW zrL_*f>QjNmBH9CerjM$1qN(U>n2hcRsKYM(3vm^M$C6VfLwIQNyEy%JY55$46Mw#C zyajM-TzWcxQBhGGoIxJ@MDcK%eKRnr3D0L~obME&{xnWqNh(w> zI|nBuV^xQOtS$7A(jUl*ppHf-;jwaxeF)&%^c-UDdWL&eH7@vt7;O4wl3ds0o9Qh~ zr9$#1w=f}-{614|Z*PrjJT`=YGC;R^FmcD&quFn3LB#Ek3KkS4N@6E~mU;(JLsZK9 z@v3J!ehVqj@|VMZSl_ccLXIar`TnDk!k9~mANRcb)-QM3y497392*om4aZSaahtkC zcNwm)9SaDxIBvdB_;ukYYQ+BT z&g$nQT*wi|KpV)_eP@hFRjsD|*u(*MEAF-*-<0a;>oD_D*cKQSY`8qVjr&n|);0(U!Kbeg8BiMI)oXba&0 zOEvUeVcFTI+L|d8)UPC}qCbQSWahvddwMkWFC(^iWV~0oSI|hwt!Is1D+?2au;Bty zq0pq!TObEsSMM9E#|R!Nr(`eX7w@R(uGJL5PJfqR>*1V@D;P&WD}m${oc^gf_UKq{7B%^YQ3{PO#EF7?Q>s=<#p zsGhfX#OU*cPe;JbXlPWC$euuicsQf)GXo{T+`G$DseVf5pl<^!av zX2!nA0xjRcyb~YVZnBds+eQV~wWbp<21mIoh1632xgx{z)cp7bk52!5Vmx>8i>`LV06Xxn#sifmm zH+t~0qZ~>X>$?xPxNI4uy5&Tyx$m#MD=;mB_{Kf!jF;%J!y@bWSU`+V_Se5Y$g?izNxcz`4sl2wB71FW_ z^nyH7$dM9BXBWFqTdh|Nidzf!8U!@1@>u4JnV0Axs4eq1Z*3)a43f+5J7$#ri5PTl z@po@9^l7uX5ucm?8?L4!faDeIHWm`ZbqUbaCC9yc8s))5V#6H0q|&%+(_UgeTW5^O z!+C^?(#yP?XQ|(ECSI3wH-OwpgeQkWSd|!F-;lqpb}?Tg%-z;@Dd9*&uK7HqDv6qr zH#y{>S0I3@5yE3>c}2{?VYuJ}ococIQR(BGN#^e1mx>f)$5-SgTp`1De! zww0+>lA}&plaZFJn_1xL-&Z)87xl<~nNzFKK{JAt@*Zr?Mk{oIP{Ro*fxz<3o39xU zIy*a~g4)qDuf#o2(Hk;ony^#(BT6DW7MIX5F4)mv1i)mkMx8Sz*?u z*!gENuC=;9o^OYAq#1yhL zkW(2%@TOO)aT*^wqc_#)BZ&5WtF%jD^Q^|0P~%AQsV!& zy|c@+WXPSie6z~oDXL@R+kN>%;aKGWQrNWY(n(IZ{;xQEBD5tr{WB>zv&V%6=@jV> z`+Z>cofk(6(=oI&Fov!E8>A=J>TMYp%{OOBgb6{IHTO~@mgLq3tg~#8!Dfh*xW}4c zijego$Sz&1%w3WR&OS~br?{VPaH{^{i-4D3JrEXK{Ks|QPj6Pr8-R=PDyxrsRAe&R#O?I~?_H^FrMw^3*1$t$=d0l1q=-PpZYz4vY7%#j<6V_#HRJ7uP_X z+v0^j%nvN%xIsz@5if{s1iT*5XwEG;rNjjB=odZFr;EOE@ySFEv}j)F7lgKQCedrt zZ65h6OU#3w&3@?xBF5BTX=gL2WlL~nGTraH zTLC;ku)3#uRFh|eUDaqP{=&w^w_?*;HpyEPD4ymsqsE7P>3=ZG@fL4uNzEa6^Aqf? z-_D;Qhx&tokZ|eC>U#)`m%_1t#E__bU;zPYUhIRUx1+ibgeYSDWCIeEvW72`Cr8** zTBcmPFCYA-c7daz9OGcjtA&yx(AEEo#l%50)W29g4 z3g2)uPdoD4G}l)G;*_>k7gdZT{ez`8nf$-h{O+%>%J1?F2y@t6kSD)^ zd(w{ft{Z4yBsMGO$SU26ww|No#!^s_3Wnz%wU%AaNZA~BU5UXJmxj8?xIy_^l~hB1 zcU%zRRzAbGs(9D*bo(WW7ZuuPqfV{9`Yb%3|I7S^s*#|jKhdebKWRZW`ZA66U!Nl~ z!HFw3#|RVAYeMQ&#gyE-O_u-_{F*;wlmZ6c;pS4^{0;MlvebY5IvkcqTsUh(7k;{| ztDl8X6q9{IrB*)KrT>l;$_tz~y^L0#+QFlPrt*wtA`>X!Q3kDQ?>F<8O!}S7)UAj&C&cx=MpL88Q zpXU%a)fha~@C*KmymZDUtWt-}Qsn*W-kUGh>`i}LUQefTQUA_Xyzdu=Wc~f3^@)Ta zer@4uLl}zm#r|To&v99fSLus|8E#+dYTtSXUq-h|UV$hTfFPuJ4c9EwShalBR|EMN$u{BTEMEWJ#b^?19;%Qq1UAM>rSvu(=((|`t zbc@||o)svOE8gbq|L=G9&WBnU7$shh#&7~GJVi+gcE9j?YJV}3;8Wl$zX{i)CaS()?BogcIAz&*t@o_x$_ z$S(cP8Bt>kx(z%yab7DwJ2&UMNtMN+JT+P=-@n=I!6aXk(@e{hSBiwQY3zq(vR#F;G%^ z+2A`Yd2eXO22n!$pxfgVsNsN`&%LD6iuc}y$Kn3Hh*Bt3;t`l&7PX5cIS9cpbM7pU zc5lhENI2b902asf&*%Pot<+YGkPpn_5R0H4LzDXFIdDE>ZSU1FD;H2_P1Hj`I>AeL zT5I|I3x!^h9_O(Ba-x}wFy9scXq6w|o`i}}^$Q5Q-c;LQ@3o21*G1z;PWrzKn*Fi2)NDXxAuSRfv)WQ~_fF1AkHtO?7SWSi zzkUI6@%lY>%iui(KNMvEipO_=LXre3y*%$ov;U0t%FnWRl1aY8x;-CoHut~3?xW@F zCf(mR0kb#BnqGA@6LKU#e)awP|bU@zdt9h#9QQCg>0r}dgLbs@y{m(acK5h#%XEFuI>AgYzh`G%{xZX$5H+v2<#_OUf~dQT`V+^fHR=w+`I=C)MV)zQy{NGI+Ti@ z6wZtfuWUO0pCbG`&RyX8aHz(C(`9grsBoUam2 zSNXJ!8tn`WK(SyNL8U=%{Iz&8H$(552lY!>eLb_cJ*+eTjaI=k?4g|h_TBq&hbAo1 zj?YIxQ%0c9_;A9Gr&lY<-@mWI$;G7sS`&KuFW-8QjP;#3FfW|>a82~b8NE_qmLMIM zq+S-o{ef_h4<<|bifhYW0aXqwFujSc35tr6%w6fY**+k>imm?~B^HC6ggO8MrpMaW zcY2+UFeVFbl3e1sJ~^(52>=ZVul$%#?)F_iq^R|9UxQh~X$e)Hqg!RytEuni^^Ha{ zIh3chx{Ei)&P4QCpBU50=?r-g9w<}@7=#&b!xG@-)z3;yYl;uH`W13mI8RQ=h3MuO zfGIUMpJbUBMA+?2m-4Uy=G>t|9X9mtOfW%<*SP$8m)psr%dXd%Nds$vXBZ(~xM^t1{xY9QOJD^tC$b58i?dLB07GQ4JfNmcXhdE|44J;>rzZA$liqJ@U zvVQVNWM^iUuAlsbdt0~oS$}3Fhz;2Vd)S~8P!$^ZR*!~RECv{YyNe1ldE>cs5`lf} zF-QP0)~z7qo76ZYkX+9se+;SCAm%i7H|FihB^8C~tW6RbJEA~Xk0+G_NXQJ-AEHg5 zNI(Mha+D|rl}R$F`F6iQq4jV_r~$Mgk@`~Tv_TxbEhS~5r?1aR!kQ*VMv1EvH5z() zdbcGKQ<9IvX~fxMYtYb>%A`=1499vgU_T}Ga%mw(fEj9@iA8FA%2i9;B@P&2(-;Zrivans6 zMJu)-%?7B5o4_Xd#=q(Kj#L-~mhXXR_lTC+mWGt35 z0`-~V1k<35A51z@cMj-Cb8{ZP5B0|)DuGG-1coYB*qS7+j#YeP@Fsf^XaOu-x8>xZ zpg#Wfkb=*$rO5!Ori#`yyl_&FMp5MQbaUhCcokRs?vD>F-C%{iVm+zZ#P(gxua3zB zo~g^1#j@>{i%3qQz`(%AAx56*pamcfgv^u`5WRgQ;6p8s0CwMMgm(9Chn*okQFgud zcolgOB!QQ4=lP{mrRS&+2BcW5LsPIV%DQUMl6{9q0%+!>xYLRO!9ED~v(!YF{5UMJ z4~@&^S1VD!dw|dhtUW&@1Qx+Eu=K@(Db@{o)fD3Ac(gV|L_}=9zNV`5#OhV?vK^Q-^jk7opp1Wmy2 zFeV%D03x1Cx}>RI?J{Lr-ncGJS^}WUgm3%SNrMiD_e(}Zrrs{@_&j4Llh#dPNVRxan~=VpPju(*SiWksA-F< zq}4#L6a;>?93y}D&l-^1)WF^GXYO+yp!10>_+QRQITXYH+NjdzVU^D9-F_6Vg`k;z zTn^|DIkf%?Mh4Z{3i=S0f+k;zQPQfA1ozKZYjQ?FKP3NRhEL{0I&m5;2xPNEgS`H=gM)a!yZ1FFF}>{#LRBXmTJ`QVeFsw)=_uJMkbob)vjhWL?mgx*JW^ zjsiywjY&zRgc`Ov*I7=uA?>MN-m>pNpKSke2V};8NGkx+?l=x~A;2U{k+{zcpO+9Q z3pqLz3Hos@c*nuquw!HN>;&$97&T*0%R2HEVWrx2Mt(T>A%56!YrEk9V3_hXZ!Zjp z40FIcE^fUvT9QPy`c)8)0-aIEwKNboy01M;zX`B(jD}#t_u1UK<2V+2Fv#PtKTXsQ z)EcRB9bO9)PS8=lSoX3Kn`N!;S-MHewxBar@j*1}jlciACMHOlL2)Sc z9fQHPDgJJeQ?Wyzv|d#X>nKba!~!S20SJDug8lIy(QHDra@#Rf)g&ZNLhM?;^Xp(8 ziL@V*46}A3Kxs%3eHPU&FVwspXAYtktD&~fq}$s`Z;bPT_zLjDlkf_^m~n}bfFD3* zJ@Wg^%N{|Som@fkTr?$~tGK4Es8VR-PubS6X5~!$d+31H(Vqo@GB?fPPrQHuHE!X6$0{wRTb4nVUz$jbaf))WxD~ zj|HhV-27OPkcKmUKAMH0)9f^<)n6YFAh3V=_urk>W45sG=RxE=08F4?7gD&1?cph# z7^J@K%KX~?sx4EK?8bNcJF7#y0yOTP5!u>#eEJ2E<7xrMj_0;Ol3qOLcc5kV{{4Fo zLq!VZ=-9Zpr@XPN!uIStB&Yl?2^&#`1s`mv=|c;wV%7^OWFdv(4s0$y`zRFCUvrOM z@$z7E|4356{p<*OBw6vpy4vqU;DY>xgeK6bCE_x9Pt*u8yMu1m;L8<@+@Fir>6tAu zw(x6<4Eges!hPH}DFw5Nf86e(Q2r*siU~5#cKh_n@;sgQVkAneAL~mId&4}eRx;K| z71kDK#EXR^K|;^~WI^*TVt7+bY>3AnP&7&XkkRgrj-t{E_iz zSLP`LEM~stf*a*=d`i0v2btSlmdbuCDgdiOnaqie;8pOAl{QM>%W)}zX1;eXv|R0 z@n>l)V6$(6RgT}R%FVLJ)G8JUdbQLDjWgyvjNEJC`NK0}uLpG@-?%|f9*w@q7BJDL zI!k8=Tt&rY$eFm*fPE* zrKF_b+DFe~n0xFIi8p>N!9{6utBciOqlp1o+(Fl!mDc4G?vAzBVGU%1G@Y}{tCMPX zU53J@tN(PE0oha2dKcKilVf-k%9}PJqBJ-F?L?YCR=+?=I^T6Q*1=YHftT30?}YU* zY>=}Ig6;%QQ1)cD6n;rF$^v9jGeS?7CTIIwj*iNr2s> z-%jH?I$O#?6pztk{=2mL5qKEtc@gl#y@tiicwiFQU*)nL{`;Why;%Mr<8t*2Z}!6- zWJn6*LbXu*SuN98aZ-JDWK17ltptLl>cS>qbIH#&3;X>PS|pYa0mzay>ex~>ZXmH@ z5@`VT*ohf(TG=N?eZ$4Vph1^=ywL}F0c3Vf#}S?Y6eL6Y*~ne>_EKVnnE6ofV-)n& z?KJ}YxY8}J&wRMEH2BS+$Zr_JyM`_6H*U|h%DHlmCu6;kQ480M&n#MZw=5cv6B}k^ z0Nt^sTP@3;Dm335ewM;qgdq0~Aux`@-aZ-7#JX_Xf&N4)xy0OTYLH}NoM~k=K3uRM zQ5G|#2&rSbLX%$I=?Bt>-2OcnH{xcLkpQ+@Jf!;FJV+r)pkp*OA|06bJLfv%w*t-A zVEIpLi>ty< zU&A)bZzc($inA=lZjWSZrX?Den~ysUKY;$pLnycr97XV5F<0 z?LE_Ca^+(6RlavrFH`4WsS7LNZyKws#prVp1qG>`yth*N8b=GPCv39{woXtxH9+lB zFy+5Mu}^7HF?~qSpV5Wit8K32BfiUrYrwsCc(0g-F+}_bIU-onm&0t6g6q)FHA=EP zcNB;ROVsaxEhy?^zb~j+>n7->=EM9!;|4gWqtEKzU@`c^8Aa+n6(LqsQ$zR~t4%cm z6d1Yg@4&$>1u-N6Du<0!a|V1)_%7(&7FE?Nqyf7!SVZJy^CCPgK1#5x3>QYH^aG2J zb5;os_SXOSY% zw-dU=XuyqtV*aBQK=J^@je;0@ay3QW4}JepEF~m-$Zlcc)-urAC24wh{4G3>K!&YQ z{2%lwd=c12&3P&+Du5tntHje>o}=%wIdSp$N*tu#_&Gqq5&+$Q2*N&by|AS71MrlX z$29LxzoaYCrE6;U!%3}OMra$i^cKm&cHb-n6A+CQz2G?#DjA}Fg zKVeNX(gqU%D~k~renu7newZ?#ao#2oY$5Q&515L&fyA$untx1>+-SKzE+_=|ke`_<4>4<5H_0N-Hu)y>{W0yXK?XUuV1+4>06I?*I+^UCu zyGiJ0R$rTGojKSmE-8;288I*piwAv+09Uv-@v;Dx7tJNZDmyJH(APBw z`g9Y+&NHQkLP{!~_Wz;HJw5;`qYA2*b3l=d2cprB*~b7UmsdMujDT=}0O}K|T`xdW zsOjjCU<;_;!Xc^CQtAh2ag&RxAi1Kxj~i<5lD0tL2Spv>Ss>;Vw7Vt9C$_Ne?tnc{ zG{6l*39xxIhhqDD?2%(_?xSS2xYJ{%n@rfo8`rO?< zx?>}95{%Q4iIAXaHlt$>{fR(8L=rA_PNk%7Ax>hBfkWVtBaD03Nl4+cOE z>>uC`yn|h6%Mbz5ZYq<{ztI42niv?Z|BZvjMl8Dm>OF2->4+AjHv)~*(`OzZJDsK) z(N31YAV~E_u>RNSt$)nCU~cuz)&sTpqg1&|E2xQSbs(yKh=^#nupO7mGCeQUsv4C zzPBJgYGLq!MN-1*v6WF|m=?F{mizHM$W1z{l@+)dP9-%oJgn7``@#SS$WTTD)0DiM zACS5Ls#Mp(7bs1q@|iLU?1mN9zkLKCzbnIM8djVzsr>1{exkali1ip-fITzJL38>u zCFFw-%qgJ{1I(HM-nYvFfotX%#){ZRr28)y-BDpy2ySW@7Pm*O)na<8Rhlncz598x zJi$bwtgkWvI^HKwaH4+zQx^j{uK{RW^Wj{XcQMuO8ra9%JD-pN!=JUk-MNuxR3-=d z91Bb#uXue>I$82TJ=R!{J+SS<92n-rkIpS!IPQu3KHPWLP>B z#<^9Q( zk)m6wh}RfL`?v0~)pS+^Il$s7cN^#isyQ?Tz;w1ir~c|B`Ex`V@lz=AAx=}JLyRvr z>G868nr6O{VTMeRc5=aZQD^Ns4#C_f{s+o2mj5!>qlj9QzFkT7!Md%z|*K!M|~D_on0e_ez77^`t8hUzcP;b_MBR_Eut>Qo%k z&6@=b#Nfc>3%@So-DAju*zQNsO@X)?v>RUub13%#6+X zYnf>BDrPEVS@l~EAQ4@kUy$1ZC7oodrmwBX&2GqU`hF05JyhgpN`bJ7ItxYVO?|TZ zruqIRp@sQ0w#(C$ss_Yx(FZrGh}Xpo0sxWLbbH@-W_bDb)cWDr;g8&#KY{I_SBEB{ z3E!~u(`+7yBVr%gcj_mqn?Tj9oLG%TN$8>-_@E80AX`gWw5GYBIt>b8_YiWqU>goQ z=F$~71n=f|Bo%}HbayNo%V$X?R`{;s^!1vSLDZ_1mG+EB;TA_TOGW?&D6#o4p zkN4isWeX(g`Vs(SMwmCa({*lZX#=+c9}9yWQi$xG-HHD|_iA;QdMgr!yXl;mAygCs zIVjzwi}$Pi{56d+iM`$RpXTj7_)FR=enWp)aKnGa8g?GU&RQq@x6_6kM=LWu^Kct)>DYf`BSh^-;^AKqEV)uPs}Y(sInL` zoIA{lpBSEC3)sW^eosoYQpXW4w$Cq zisiiY_6`8qOm(_Wam_qb7*b!o%$Pf>-v2B3d-CR}v6g5*S>q9Jpc4?OhH%c#z>XhY z4ap4`^}qSNhG>Wi|1;MIp6t8Cte~{n6vs6O^#`4np>XuTLi8G#4^RDw4V2x^vdlxD zdYo-X04D!_`-YmP1cG0(EIP07e1K}T3Zm0YS(85B0zpmEh%~_Mz^ix~knesE&;miw zQp2_lO^G5%$QU0%^K3KG#-)2Nh3Sn^g(*cbQDw>k4aYTS@^hw zgjt)-@0W2=p-R^f(6G9FiRV^;`K;OE!1g33wEX`y(%b0UViwm68f45E;FORq4Nu$jP)rjj@C%LX)B>FK>uO@D;zJuSN znAwQ{!0P$xRS?=cW%;`e)P6Rb;-+$XTi~fVlKc+?`9i5jRQo(PFX)WgqEb8|aLX^mr z`)!OYEG$F6(g8F^A|?+rpUrD}$$d?>*BMs!V0?t-8;}hl^SkdPg1=N%Hh)D77;>nl z5k9tJ*~-eg`L~R5v4Ltg({xKarWbbZI~qDP{2#v!MbHL+L@m1VAr2boPGDwgyquwE zdJQ#m6}0<@YhpJWM}_@6zK^U_v1Rb4jCaHG;0D^;RtviOuUYKq#_wiuY2X#wBpWf} zN5QD{K8JM-B@WOkX|jBOdu{uP%YV6<+HEc>MA0h2TNs6J+596%H>8ztX;*bw@VNKD z4b60M^6>D4e%V@HRlwW=*1#pjjHf`kE3EsDvio0<4M&vs@no(|IEb+dxMSI9;r8jg z$fMshuu_pS9;%Xx*jT zqRbT;2Vz^`sT>5z>fYap1mc~_$y*=yq$~v;UL1V+Z$d+vK@}1NA1-Wi^NrEB58-|4ntAtGAhXQ}80A}_ zE*XUEC4Zoq74GTl4}upa2qFcm-${CFlVB}6&&+O-(#*TIO|i^_y`mbpd`q<+XB6ic zXdIVq0LhXNI-+1~9ut z9S!-XtW@zi;mP1I0=whgC!5eNhB0x}nN2-C5cCg=RB`uN-4kjF;)d?S3{^$C?->u@o{l92HKlf@$w$U3niqn z0YpP_VX8Y~{Be;E38I8%#koW_e}!gPVGMS;E6R(4kEYlm;VY>gH@9#}rzmt4$O4AH z3DdV%(+RDq8a#+HK;5!Y5O$Ii_6RnFTfnYY4M22lPAP09VXIrX2Ij3;Y~V>)u~tRzmZ12?*|r`ny{XRm}ifpb|X8ArOE0V?}_2qgLgXX|4(o z&v$*c^u&tHy|IBpRPXk@-~0dyCjVeL3aC^;KmToXZZy*hWX$gJe9IZwNom_1Ht)m1ov|$_gaV))ZrdT5n9c;aeJI~e7*wb; z0OQ{Z<2H@CmroDtx#NJpj2f-q}lm}SiEDw;~+GoRj^}ZC{ zbfw2A1pcEN(omcO-O%tsu2|^Zq}kqgjoLd$a4ILr1+gf{4;0`?Q{9I|C*^ww0L7V& zef5ee1;hgfx&HnCW3kvGkTO9+(*ITgwLOLE=X{|AdG}F_7v*LHf%(bE=0)hgc;Uhg zb!JtNI?V$68f7$(jnK8~F3Rm)W;%a9)SDmo^xUef8rl6-@bI>Ok;ooA!qod``)Sv& z!qq@%hW%xRBIQ)&izxMozNfwI?r+|kikJ_{fr3E!t^koqUt7x$ClLT@fuL=uhQ?vg zeK);7!X5m_;8Y5NW9{bp+N!tR*5m)OPhkuiia~ zbSu2xfkM}a^YtqG)}nd+Kl*xf6aW8;JOA5kJ^#o0ng8PZ<_$$8r~&|N?YB1V$T3x< z-nY5LmuNT-#e+c_iMk8YiA1R`<;{O!UO0QHvGHIs^gxo>{hNPBlb|pLu;Lr^fI;N1 z-9(!r@*6;@v{3B&kLI%;VlZtz4Fn%oXPsSh#E2>W(nc~#3Pw5u$;L-3VlmexJd~gS z3MsT5mWBvY15k)@8&=Ukf~_sWz?9Op1!72z4br69JU|TuAa_iH91$5FZYGkGnR)0t z{eH~nUH`WCBqSv4&e8M1*Iy9_tXdE7mvboC%jY=P*}ngjQ2%VQQk51E2q+MA21wZD z?u%#6e9|r%Jw-QamDNPM=lx(Ie6XK?f3U9-mGHrc42|_OfQBcUYg%tc;%4yb@I*|J{H=`N>^*uWM_uog z9nt4n4x4OW4(o60_kI<0N1Sitl|LViRoT%V6z$ANYZlC8!^?Bq*JzAy*7cAiTPg3? ztS_v7m#YtaF1en4Z{)9hXvDB*SzT`D`zm|%XLMUPCCSQifFWp z&UVBT1)Y8+tRDX<*saKUf|z~&a3O1X*JpO2-&Gc!mB~CAl=(+g4cot4>Bfesdqlux zq!`#z*9u=RoY3c|zQr}*9ftm)~%)NQ_zq{JpN zH@$AGMXIQGoeFxs`&S%pwQ8;zwO@4N%(T~dO~PUQXc)?$yGUX#_kC+u+)Pz9zt3eM z#O1Zp;ft>?u(26`98}a9IvpPNcESK3%Emi;ptR&VPcfw|!*qe)$2$AsVXo}yerFf5 z!_S+xB2)+c#)2l6Vh%ACbJrXwT9I$B5zuMI?wD1rG?J&DZ`7;h3u<0pb=hS$6|1f7 zv$QOqc=WhVn#wW1tL-UP5qsC>g*#Ft=fzi^p@pvickxCUb8XSg{tQl~c3LHu*Ob0j zB;;Sd3V60>rSq+-ndYc9ci+sR@WS}}PV$3x)ZeT1uY%8(`UK)5B-27?{ny1}5J*$mR^aA?^cooXL4=?Vkbzzt8Yt-YYE8Iy5 zp?Pk-%SRG}5}k^pjrYdG<+y#Ob=Uh6s~1?rpK>9_VpZz#nr%L>FrHFb&Wk1OW#yU; z=bJ>l*`edfOZ!rNm-ZLAcvw749C8$;>Xw-gBL&K;?~L?oU?=7%@G9J4yJG>QG#YbtP4$QON zTFnZ3^G2yMb8H)9;N0z;bh|rB_s%VZ{0_iY!#yj0QX}7BZ=*R>$r7=4lRb?dMB1)JYFe#)WXcz_><`x{4J%^#7rYYAE( zN2f#GltU@0FwA>ECCe;!mG0OnM_RKfWl`G&(dyoJJ1$z0N}1iAFAte3ZX^9QIq++b z2y2)2cdLgLN8=66BrCEcxaV=T1htkg*ADHA%evJ1p^nyNkbcUMf$hV`=0^p?^mgQ) ziy!sJ+_zCN>QKZ_uhxdzP-$+@c-NB1lh4TCpug*+n2@4mB^X%uMAh6Y!cc=%oMtvD z=5>+SwTIIg0pCps+jAq8x%k(EF37w5){pkHHeBvdO1WpMTpDDkaiJo6JykS2Bc??5 z`kB)q8LNC}xm&Ym3d%Yy2=tu(xU4REB5pmvRiu#P?eM_xAG=eZLsmr&DVzm8WqKCx zCylja=6QnFx5Q`6^IpJ(PAf6cw~Xfi}V0CMR7SaSXi7y&8) zIX=(CBzbSX%o5|~wnm%W{Dn;xWKioAJ_4BzU&Dp!*^aIY(z28MW%Q(CKB=o&p3!8y z7M6jNTUnC8j99snmUp_ykX9%AZ?A2u==zLhdy8q941Fvv+MC^6Jq(wWhEnsqY;r#IBzitn~W&F>m;&_>fxWh=6b8 zC$nq$&bx!>{Mbc;$r^6NH4a{-V|{yhonw{2z@0k6=|RqrBQv?(#iLpLP zH}_f zVn;?{sXSx-=*S-#9*a{ypPF_xa%Ql83!rroNv4qBq1%4VK!j~^ee;{cCzevAp*qm-&hpGbL)K zlVhwp*+7N!#zX?F{LI0iI&!rq-yav9nT;vN|7211lD&Ql!<+~rpYX>Q9c4YHT0T$? ze`gNR^0@c#L8!B8T(9)?jE_zF#aeGe!iXxva4|cudCogtUCbZ8A}f?J8C}n0d^I#? zlJNOc4aP}o$c3SV{vvVtW8lPte74mA(RVja!NV(-iKkF`K@N(0+%9wLR+54AM+%I4 zlxP^Gj){i=hR;ok%SM~r@7J53%rYJ{00aN?ry}_=bT5nz z4eE%Q`3dxbtXdE0D`v5`SVEW^H&ZLc2wb!$U&_UE3CHT+;rQ5`t}E%Owu$dQ`HUW5 zT{_i-!_~VHrY&|YL7Zfw*|-wN&wv>y8_Utm8m7UPrsqp7Zxh~%r^C>^)-89SpognR zKW=Af)MbwK-TfQn{J)u{bLfP0ZKQzm*pDX?n;Y+hc{!vo2AYMK zE-*Q9n>L+C#C#lpHAq&`o@=hINWH0;!ZeyEl31t%jPNpUua)~3` zxc<`E7BtOx@_G_T{Hg%@!2`0C-U(1=?L4$hM@QQ>-|}FAgC`@(P&P0!k_HqHYuP%E zQ2F|00|SFlZw@}b?<-vZ<{E%$=zQ~^1U&v01R%*?-Hn1_Fp}=Q$RwR4RLcqypTm5y zDwk1DrW`L*Y3&Ry4=;l)9<2PDlT#6>O8=+?bMatnxdLAG%EtgF8`~> z?sZyYFia!IBitUA1_v-dv7u=nuTNhOAR{C=u10c z-2{Ov1ht!{jA#mkHVL{^>4YSRsJ?-Mb-)nv$V0{n2Yxz{=>X)In*x_2!<#=QVrmW4 z(#*cGB)>W8`#F2dmrvf>e7`8V>vyqgiGJ0EG;+8fpLODddmkLXINbEvQFgJESJ2~2 zuf|2ms#&TR);GQs^0p8Ue9xqGii~4k@{Q5*P?319B%Kls5|<6hcaC|h97ujHK_(<` z${zs>@PXd7-v2D-*8<_j#!CnaJpb&Js=yFp%MwXW^(emSNceeKt`6@p8~*Hzvv&iV z<+S<61sL;2-oB2TP&my-*VB9RkpAFzd)ED+Sh$Ynr?i7)6JfH^PGc+x@1x<@>`175 zf5po0ISnnwYui7KZrbt3M85)Q7QFKOifk*JoSo(`;E8Nx01(25ywwfWzYfJOgat9IzI@+tMvcFUUnQ!#{-pf_w`k z3`k2;%C5agdjvq*LypsSd-zHUFI4IYw6>u)FG zm#kn^gW*(Hp$i>`rd^;pM66CZb`jUCl~~t%ir+F21cyYQG_b*QTXf_I$M9ez#z}Lf zX9TV4BKYOQuUMEZ2u$WQ8^FX1kLB3L8^g@n-p4reF35!bg);X$RC>ZiT?xbml#MPe zCzp4W{mx%FkkI{*Jf>rSJeGnkiywOR32WqWHF)0Az)GWqyhQf!#A|}3Hy>2|qaDMb zQ_Tl{&M@sx=4Uc={%HqJ3*JHFu*{eL^b^yLa%kS^F0#*tmoew511?hwo-@uk^=+6) z?4t#+@5BEMLLu1WknEHP?ne`_YY7!x}nv(^;K0_pr$lJGq2J+ z7p8ly5R6OhDGK7bY*;OWMbTklrr#44zk~zhGJc%=GmPIV+B^nCv^~OWfXmj}uRb7t z`=$w`(Su1I7?8jQa|Nm@D)#)$-h~;ik0LWDmG%M?^0UJj?yj1QjL$p(BTFuk3Q

        nxARa}bfm)I0`Y8EN3wUBJESG2=q< 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 literal 34775 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 SZmAx9_|;1)3IsWm`~MA!@^oha diff --git a/report/query_ore_range_selective_gt_100_chart.png b/report/query_ore_range_selective_gt_100_chart.png index 8f09b46352d23b94266557b8d60e8958e4889929..5bfa8d6fd37f51422482e8cc4cbbf323c490f79f 100644 GIT binary patch literal 47788 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�y>6YdfC(>ifm=Ayyk+>B@qHEE@^Jm+23G{}sQK@L$klfpN^dKgLcv56 zufL7qIC${x;#3cb>X<0wlt3-AHOPSASqHpq98`jL5#R>fh!97Pk!mKbFVNz_M|^)C z6jV_Ee(p!8;8=|*3-fBxi-wKq1QkF zDEV1r*GVDX$WP|r3J2Me$YsCwO#K=j$va_ymFCNHhC41dxU4E% zXWIgITRYEg&KMzR$BEj+n^PlbD4ha;x$KPOBslGsP;mL)aL(cXQ$Fy+1!!J{)S&|7 z*sOPOw-p|*VVizFh8O@5hw|UL5O_89e)SJC2SL_C|7IcoH(w1pZL*(BFwv^z+^~j+ PK(46jT*|#*9{7I%EJ*Z- literal 53221 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 diff --git a/report/query_ore_range_selective_gt_count_chart.png b/report/query_ore_range_selective_gt_count_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..18584c83d5f4994dc18005a56c72a4c47743434d GIT binary patch literal 40790 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 Z?pyR+KG(LSme5a%-I2bXbxY^z{{!Z%V>ti- literal 0 HcmV?d00001 diff --git a/report_benchmarks.py b/report_benchmarks.py index f1941c2..958759a 100755 --- a/report_benchmarks.py +++ b/report_benchmarks.py @@ -278,6 +278,14 @@ def get_query_sql_and_param(self, query_type: str, query_name: str) -> Tuple[str "SELECT id,value::jsonb FROM {TABLE} WHERE value > $1 LIMIT 10", "2147000000" ), + "range_selective_gt_count": ( + "SELECT count(*) FROM {TABLE} WHERE value > $1", + "2140000000" + ), + "range_highly_selective_gt_count": ( + "SELECT count(*) FROM {TABLE} WHERE value > $1", + "2147000000" + ), "range_lt_hybrid_ordered_10": ( "SELECT id,value::jsonb FROM {TABLE} " "WHERE value < $1 " @@ -413,30 +421,47 @@ def get_query_description(self, query_type: str, query_name: str) -> Tuple[str, "Query: WHERE value < 5000 LIMIT 100." ), "range_selective_gt_100": ( - "Selective range query (~0.17% selectivity) returning up to 100 results", + "Selective range query (~0.17% selectivity) with LIMIT 100", "Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. " "Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. " "Query: WHERE value > 2_140_000_000 LIMIT 100. The threshold sits 7.5M " - "values below `i32::MAX`, so on `Faker.fake::()` uniform random data " - "only ~0.17% of rows match. At this selectivity the planner switches from " - "the Seq Scan + LIMIT shape it picked for the non-selective baselines " - "(`range_gt_*` with threshold 5000) to Index Scan — walking the b-tree " - "from the top and returning the first 100 matches is cheaper than " - "scanning the whole table. This is the same functional-btree path the " - "EQL query-performance guide §4 documents; the non-selective baselines " - "demonstrate that the planner correctly *avoids* the index when " - "selectivity is too low for the lookup to win." + "values below `i32::MAX`, so ~0.17% of rows match on `Faker.fake::()` " + "uniform random data. Engages the ORE btree at every tier (10k → 10M) — " + "walking the b-tree from the top and returning the first 100 matches is " + "cheaper than scanning the table once the planner knows the predicate is " + "selective. **Note on stats**: this requires up-to-date planner stats on " + "the functional index expression (`ANALYZE
        ` after re-ingest). " + "Without current stats the planner falls back to default `>` selectivity " + "(~14%) and picks Seq Scan, which is silent but produces misleading " + "timing. The bench's `prepare:_table` now ANALYZE's automatically." ), "range_highly_selective_gt_10": ( - "Highly selective range query (~0.011% selectivity) returning up to 10 results", + "Highly selective range query (~0.011% selectivity) with LIMIT 10", + "Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. " + "Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. " + "Query: WHERE value > 2_147_000_000 LIMIT 10. Threshold sits 483k values " + "below `i32::MAX` (~0.011% selectivity). Engages the ORE btree at every " + "tier (with current stats — see the note on `range_selective_gt_100`). " + "Useful as the upper-bound demonstration of how cheap a selective range " + "lookup becomes when the functional index engages." + ), + "range_selective_gt_count": ( + "Selective range count (~0.17% selectivity), no LIMIT", + "Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. " + "Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. " + "Query: `SELECT count(*) FROM tbl WHERE value > 2_140_000_000`. With no " + "LIMIT the planner must process every matching row, which at low " + "selectivity strongly favours Index Scan over Seq Scan. The companion " + "to `range_selective_gt_100` — removes any LIMIT-related cost-model " + "edge cases and demonstrates the index path in pure form." + ), + "range_highly_selective_gt_count": ( + "Highly selective range count (~0.011% selectivity), no LIMIT", "Table: `integer_encrypted_{rows}` with Block-ORE-encrypted integer values. " "Index: functional btree on `eql_v2.ore_block_u64_8_256(value)`. " - "Query: WHERE value > 2_147_000_000 LIMIT 10. The threshold sits 483k " - "values below `i32::MAX`. Even at 10k rows the planner picks Index Scan: " - "with 0.011% selectivity it expects ~1 matching row, which it finds at " - "the top of the b-tree in a single page read. Useful as the upper-bound " - "demonstration of how cheap a selective range lookup becomes when the " - "functional index engages." + "Query: `SELECT count(*) FROM tbl WHERE value > 2_147_000_000`. Tighter " + "selectivity than `range_selective_gt_count`; near-floor cost for an " + "indexed lookup." ), "range_lt_hybrid_ordered_10": ( "Ordered range query (hybrid form: natural WHERE, extractor ORDER BY)", diff --git a/results/query/combo_metadata_10000.json b/results/query/combo_metadata_10000.json index 7ebff3b..5d13fe6 100644 --- a/results/query/combo_metadata_10000.json +++ b/results/query/combo_metadata_10000.json @@ -29,7 +29,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1789,10,1555,1603}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1603,1789,1164,10,1555}'::smallint[])", "Index Name": "combo_encrypted_10000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -40,7 +40,7 @@ "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1789,10,1555,1603}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1603,1789,1164,10,1555}'::smallint[])", "Relation Name": "combo_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.73 @@ -65,12 +65,12 @@ "parameters": [ { "bf": [ - 1164, 36, + 1603, 1789, + 1164, 10, - 1555, - 1603 + 1555 ], "i": { "c": "name", @@ -80,7 +80,7 @@ } ], "query": "SELECT id FROM combo_encrypted_10000 WHERE name LIKE $1 ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10", - "rows_returned": 0 + "rows_returned": 9 }, { "explain": [ @@ -115,7 +115,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,36,1555,10,1164,1603}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,10,1555,1789,1603,36}'::smallint[])", "Index Name": "combo_encrypted_10000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -126,7 +126,7 @@ "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,36,1555,10,1164,1603}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,10,1555,1789,1603,36}'::smallint[])", "Relation Name": "combo_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.49 @@ -152,12 +152,12 @@ "parameters": [ { "bf": [ - 1789, - 36, - 1555, - 10, 1164, - 1603 + 10, + 1555, + 1789, + 1603, + 36 ], "i": { "c": "name", @@ -167,7 +167,7 @@ } ], "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_10000 WHERE name LIKE $1 GROUP BY 1", - "rows_returned": 0 + "rows_returned": 9 }, { "explain": [ @@ -218,7 +218,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1603,10,36,1789,1164}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1164,10,1555}'::smallint[])", "Index Name": "combo_encrypted_10000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -229,7 +229,7 @@ "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1603,10,36,1789,1164}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1164,10,1555}'::smallint[])", "Relation Name": "combo_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.49 @@ -266,12 +266,12 @@ "parameters": [ { "bf": [ - 1555, - 1603, - 10, 36, 1789, - 1164 + 1603, + 1164, + 10, + 1555 ], "i": { "c": "name", @@ -281,7 +281,7 @@ } ], "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_10000 WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", - "rows_returned": 0 + "rows_returned": 9 } ], "target_rows": "10000" diff --git a/results/query/combo_metadata_100000.json b/results/query/combo_metadata_100000.json index 4da5bab..d5c4dbe 100644 --- a/results/query/combo_metadata_100000.json +++ b/results/query/combo_metadata_100000.json @@ -29,7 +29,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1164,36,1603,10,1789}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{10,1789,1555,36,1603,1164}'::smallint[])", "Index Name": "combo_encrypted_100000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -40,7 +40,7 @@ "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1164,36,1603,10,1789}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{10,1789,1555,36,1603,1164}'::smallint[])", "Relation Name": "combo_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -65,12 +65,12 @@ "parameters": [ { "bf": [ + 10, + 1789, 1555, - 1164, 36, 1603, - 10, - 1789 + 1164 ], "i": { "c": "name", @@ -80,7 +80,7 @@ } ], "query": "SELECT id FROM combo_encrypted_100000 WHERE name LIKE $1 ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 }, { "explain": [ @@ -115,7 +115,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,10,1603,36,1164,1555}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1603,10,1164,36,1555,1789}'::smallint[])", "Index Name": "combo_encrypted_100000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -126,7 +126,7 @@ "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,10,1603,36,1164,1555}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1603,10,1164,36,1555,1789}'::smallint[])", "Relation Name": "combo_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.61 @@ -152,12 +152,12 @@ "parameters": [ { "bf": [ - 1789, - 10, 1603, - 36, + 10, 1164, - 1555 + 36, + 1555, + 1789 ], "i": { "c": "name", @@ -167,7 +167,7 @@ } ], "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_100000 WHERE name LIKE $1 GROUP BY 1", - "rows_returned": 0 + "rows_returned": 42 }, { "explain": [ @@ -218,7 +218,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1555,1164,10}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1555,10,1164}'::smallint[])", "Index Name": "combo_encrypted_100000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -229,7 +229,7 @@ "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1555,1164,10}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{36,1789,1603,1555,10,1164}'::smallint[])", "Relation Name": "combo_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.61 @@ -270,8 +270,8 @@ 1789, 1603, 1555, - 1164, - 10 + 10, + 1164 ], "i": { "c": "name", @@ -281,7 +281,7 @@ } ], "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_100000 WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 } ], "target_rows": "100000" diff --git a/results/query/combo_metadata_1000000.json b/results/query/combo_metadata_1000000.json index 8925b66..2a28c27 100644 --- a/results/query/combo_metadata_1000000.json +++ b/results/query/combo_metadata_1000000.json @@ -29,7 +29,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{10,36,1555,1164,1603,1789}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1603,1789,1164,10,1555,36}'::smallint[])", "Index Name": "combo_encrypted_1000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -40,7 +40,7 @@ "Total Cost": 311.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{10,36,1555,1164,1603,1789}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1603,1789,1164,10,1555,36}'::smallint[])", "Relation Name": "combo_encrypted_1000000", "Startup Cost": 311.97, "Total Cost": 316.48 @@ -65,12 +65,12 @@ "parameters": [ { "bf": [ + 1603, + 1789, + 1164, 10, - 36, 1555, - 1164, - 1603, - 1789 + 36 ], "i": { "c": "name", @@ -80,7 +80,7 @@ } ], "query": "SELECT id FROM combo_encrypted_1000000 WHERE name LIKE $1 ORDER BY eql_v2.ore_block_u64_8_256(age) LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 }, { "explain": [ @@ -115,7 +115,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,1555,1603,1164,36,10}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,36,1789,1603,1164,10}'::smallint[])", "Index Name": "combo_encrypted_1000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -126,7 +126,7 @@ "Total Cost": 311.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1789,1555,1603,1164,36,10}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,36,1789,1603,1164,10}'::smallint[])", "Relation Name": "combo_encrypted_1000000", "Startup Cost": 311.97, "Total Cost": 316.24 @@ -152,11 +152,11 @@ "parameters": [ { "bf": [ - 1789, 1555, + 36, + 1789, 1603, 1164, - 36, 10 ], "i": { @@ -167,7 +167,7 @@ } ], "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_1000000 WHERE name LIKE $1 GROUP BY 1", - "rows_returned": 0 + "rows_returned": 235 }, { "explain": [ @@ -218,7 +218,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1555,10,1603,1789}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1164,1603,36,10,1789}'::smallint[])", "Index Name": "combo_encrypted_1000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -229,7 +229,7 @@ "Total Cost": 311.97 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,36,1555,10,1603,1789}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1555,1164,1603,36,10,1789}'::smallint[])", "Relation Name": "combo_encrypted_1000000", "Startup Cost": 311.97, "Total Cost": 316.24 @@ -266,11 +266,11 @@ "parameters": [ { "bf": [ + 1555, 1164, + 1603, 36, - 1555, 10, - 1603, 1789 ], "i": { @@ -281,7 +281,7 @@ } ], "query": "SELECT eql_v2.hmac_256(category), count(*) FROM combo_encrypted_1000000 WHERE name LIKE $1 GROUP BY 1 ORDER BY count(*) DESC LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 } ], "target_rows": "1000000" diff --git a/results/query/combo_metadata_10000000.json b/results/query/combo_metadata_10000000.json index b7ea404..0b818a4 100644 --- a/results/query/combo_metadata_10000000.json +++ b/results/query/combo_metadata_10000000.json @@ -29,7 +29,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,1555,36,10,1603}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,10,1603,1555,36}'::smallint[])", "Index Name": "combo_encrypted_10000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -40,7 +40,7 @@ "Total Cost": 2296.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,1555,36,10,1603}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,10,1603,1555,36}'::smallint[])", "Relation Name": "combo_encrypted_10000000", "Startup Cost": 2296.1, "Total Cost": 2300.61 @@ -67,10 +67,10 @@ "bf": [ 1164, 1789, - 1555, - 36, 10, - 1603 + 1603, + 1555, + 36 ], "i": { "c": "name", @@ -115,7 +115,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1603,10,36,1555,1789}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,1555,10,36,1603}'::smallint[])", "Index Name": "combo_encrypted_10000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -126,7 +126,7 @@ "Total Cost": 2296.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1603,10,36,1555,1789}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,1789,1555,10,36,1603}'::smallint[])", "Relation Name": "combo_encrypted_10000000", "Startup Cost": 2296.1, "Total Cost": 2300.36 @@ -153,11 +153,11 @@ { "bf": [ 1164, - 1603, + 1789, + 1555, 10, 36, - 1555, - 1789 + 1603 ], "i": { "c": "name", @@ -218,7 +218,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,10,1789,1555,1603,36}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1603,1555,10,1164,1789,36}'::smallint[])", "Index Name": "combo_encrypted_10000000_name_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -229,7 +229,7 @@ "Total Cost": 2296.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1164,10,1789,1555,1603,36}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(name))::smallint[] @> '{1603,1555,10,1164,1789,36}'::smallint[])", "Relation Name": "combo_encrypted_10000000", "Startup Cost": 2296.1, "Total Cost": 2300.36 @@ -266,11 +266,11 @@ "parameters": [ { "bf": [ - 1164, + 1603, + 1555, 10, + 1164, 1789, - 1555, - 1603, 36 ], "i": { diff --git a/results/query/combo_rows_10000.json b/results/query/combo_rows_10000.json index 90774d1..77c8f88 100644 --- a/results/query/combo_rows_10000.json +++ b/results/query/combo_rows_10000.json @@ -1,4 +1,4 @@ -{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_10000","iteration_count":[160,320,480,640,800,960,1120,1280,1440,1600],"measured_values":[146417959.0,206098125.0,270088834.0,381511125.0,439131416.0,527801167.0,668827375.0,767082542.0,791853167.0,878831750.0],"unit":"ns","throughput":[],"typical":{"estimate":568033.0723538961,"lower_bound":553055.7739319025,"upper_bound":590997.9708040277,"unit":"ns"},"mean":{"estimate":611229.0651746031,"lower_bound":563545.1071481523,"upper_bound":684635.1901190476,"unit":"ns"},"median":{"estimate":579398.1018229167,"lower_bound":549583.9381944444,"upper_bound":620611.9698660714,"unit":"ns"},"median_abs_dev":{"estimate":43814.749746768044,"lower_bound":543.6243660779318,"upper_bound":72193.58153221395,"unit":"ns"},"slope":{"estimate":568033.0723538961,"lower_bound":553055.7739319025,"upper_bound":590997.9708040277,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_10000","iteration_count":[135,270,405,540,675,810,945,1080,1215,1350],"measured_values":[94778958.0,209857250.0,275710209.0,347717500.0,484739958.0,547366292.0,613569416.0,692999167.0,752440208.0,811897333.0],"unit":"ns","throughput":[],"typical":{"estimate":638197.3271188071,"lower_bound":618936.808557261,"upper_bound":672346.6746328914,"unit":"ns"},"mean":{"estimate":670954.0284282775,"lower_bound":642090.0214566726,"upper_bound":703153.995667982,"unit":"ns"},"median":{"estimate":662520.3298059965,"lower_bound":631606.8242798354,"upper_bound":702066.3555555556,"unit":"ns"},"median_abs_dev":{"estimate":44774.86034036511,"lower_bound":7316.120000668477,"upper_bound":86634.96017250855,"unit":"ns"},"slope":{"estimate":638197.3271188071,"lower_bound":618936.808557261,"upper_bound":672346.6746328914,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_10000","iteration_count":[146,292,438,584,730,876,1022,1168,1314,1460],"measured_values":[90269708.0,165228166.0,246806042.0,327458125.0,446367208.0,496945625.0,619194375.0,732895042.0,832469292.0,904509084.0],"unit":"ns","throughput":[],"typical":{"estimate":612334.4935954456,"lower_bound":590503.0214177407,"upper_bound":623587.3718320127,"unit":"ns"},"mean":{"estimate":597349.6104696672,"lower_bound":579862.6177382176,"upper_bound":614282.9098091975,"unit":"ns"},"median":{"estimate":608663.6331702544,"lower_bound":565386.8202054794,"upper_bound":622882.1515410959,"unit":"ns"},"median_abs_dev":{"estimate":32387.129172582,"lower_bound":3507.4896596474346,"upper_bound":41423.75237917034,"unit":"ns"},"slope":{"estimate":612334.4935954456,"lower_bound":590503.0214177407,"upper_bound":623587.3718320127,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_10000","iteration_count":[84,168,252,336,420,504,588,672,756,840],"measured_values":[94558375.0,180183292.0,288286292.0,361396542.0,433502458.0,510542000.0,705482209.0,853377042.0,856637750.0,2694443041.0],"unit":"ns","throughput":[],"typical":{"estimate":1682612.7474335188,"lower_bound":1089849.8882459,"upper_bound":2473305.4242325015,"unit":"ns"},"mean":{"estimate":1327341.6564125093,"lower_bound":1083009.4327683295,"upper_bound":1759939.7461394556,"unit":"ns"},"median":{"estimate":1129406.8287037038,"lower_bound":1053866.8279761905,"upper_bound":1206949.767361111,"unit":"ns"},"median_abs_dev":{"estimate":94352.72157847577,"lower_bound":13564.516017515012,"upper_bound":186433.0983597937,"unit":"ns"},"slope":{"estimate":1682612.7474335188,"lower_bound":1089849.8882459,"upper_bound":2473305.4242325015,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_10000","iteration_count":[80,160,240,320,400,480,560,640,720,800],"measured_values":[68843917.0,241441041.0,260454666.0,394839792.0,370265375.0,451311209.0,397054500.0,476663625.0,549455667.0,619173667.0],"unit":"ns","throughput":[],"typical":{"estimate":818219.8528246753,"lower_bound":768517.2702997143,"upper_bound":933151.7095553013,"unit":"ns"},"mean":{"estimate":954546.5478169642,"lower_bound":818768.5416244791,"upper_bound":1114628.8907291666,"unit":"ns"},"median":{"estimate":893106.2,"lower_bound":759376.99890625,"upper_bound":1087053.0177083334,"unit":"ns"},"median_abs_dev":{"estimate":206298.3119141915,"lower_bound":27199.71502554605,"upper_bound":397252.0121651795,"unit":"ns"},"slope":{"estimate":818219.8528246753,"lower_bound":768517.2702997143,"upper_bound":933151.7095553013,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_10000","iteration_count":[105,210,315,420,525,630,735,840,945,1050],"measured_values":[115803417.0,360273125.0,269562708.0,283642958.0,318347666.0,391719334.0,501856375.0,588216292.0,681796125.0,729282834.0],"unit":"ns","throughput":[],"typical":{"estimate":701778.1665553494,"lower_bound":670580.8208674552,"upper_bound":746786.7524171646,"unit":"ns"},"mean":{"estimate":837681.1967845804,"lower_bound":677646.3528478459,"upper_bound":1065693.702502947,"unit":"ns"},"median":{"estimate":697406.2852380952,"lower_bound":652287.2548752835,"upper_bound":912183.5333333334,"unit":"ns"},"median_abs_dev":{"estimate":73908.0981812023,"lower_bound":12942.876388789418,"upper_bound":345615.47844267025,"unit":"ns"},"slope":{"estimate":701778.1665553494,"lower_bound":670580.8208674552,"upper_bound":746786.7524171646,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"COMBO","benchmarks":["COMBO/combo/bloom_ore_order_limit/10000","COMBO/combo/filtered_group_by/10000","COMBO/combo/top_n_filtered_group_by/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO"} diff --git a/results/query/combo_rows_100000.json b/results/query/combo_rows_100000.json index 509315f..ce3f11b 100644 --- a/results/query/combo_rows_100000.json +++ b/results/query/combo_rows_100000.json @@ -1,4 +1,4 @@ -{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_100000","iteration_count":[102,204,306,408,510,612,714,816,918,1020],"measured_values":[81692000.0,168270250.0,286616000.0,394058500.0,441431709.0,578398083.0,611154708.0,697627375.0,847460209.0,903977125.0],"unit":"ns","throughput":[],"typical":{"estimate":892739.4099821746,"lower_bound":868883.1437278176,"upper_bound":919251.7500684905,"unit":"ns"},"mean":{"estimate":885919.2492300809,"lower_bound":853711.6870296451,"upper_bound":917859.000428338,"unit":"ns"},"median":{"estimate":875902.2269607843,"lower_bound":840406.5707282913,"upper_bound":936653.5947712419,"unit":"ns"},"median_abs_dev":{"estimate":72873.57111277143,"lower_bound":8628.97515724624,"upper_bound":90622.41212430038,"unit":"ns"},"slope":{"estimate":892739.4099821746,"lower_bound":868883.1437278176,"upper_bound":919251.7500684905,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_100000","iteration_count":[94,188,282,376,470,564,658,752,846,940],"measured_values":[84322667.0,162365375.0,280871042.0,383382917.0,428982791.0,581765666.0,574045166.0,656666209.0,708494584.0,970898708.0],"unit":"ns","throughput":[],"typical":{"estimate":933345.961094225,"lower_bound":868538.7294319943,"upper_bound":1004365.7648076456,"unit":"ns"},"mean":{"estimate":933652.645324637,"lower_bound":889309.9013268321,"upper_bound":980029.017254306,"unit":"ns"},"median":{"estimate":904889.4957446809,"lower_bound":868435.9767287234,"upper_bound":1019635.4175531915,"unit":"ns"},"median_abs_dev":{"estimate":80556.57475646613,"lower_bound":7708.040924591133,"upper_bound":116395.94874441004,"unit":"ns"},"slope":{"estimate":933345.961094225,"lower_bound":868538.7294319943,"upper_bound":1004365.7648076456,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_100000","iteration_count":[98,196,294,392,490,588,686,784,882,980],"measured_values":[103889500.0,227002459.0,355665875.0,433149708.0,524839250.0,649535834.0,746227667.0,710565500.0,750023750.0,885476875.0],"unit":"ns","throughput":[],"typical":{"estimate":964537.5642194541,"lower_bound":906148.8123223974,"upper_bound":1091322.9167593631,"unit":"ns"},"mean":{"estimate":1045679.1532150956,"lower_bound":973429.889843902,"upper_bound":1112214.7494721818,"unit":"ns"},"median":{"estimate":1079447.9715743442,"lower_bound":906333.5459183673,"upper_bound":1131414.2950680272,"unit":"ns"},"median_abs_dev":{"estimate":77283.20192539762,"lower_bound":12734.282424941699,"upper_bound":201339.57948367126,"unit":"ns"},"slope":{"estimate":964537.5642194541,"lower_bound":906148.8123223974,"upper_bound":1091322.9167593631,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_100000","iteration_count":[29,58,87,116,145,174,203,232,261,290],"measured_values":[88275542.0,195222792.0,262384917.0,347524416.0,429947083.0,518904875.0,594623792.0,703940083.0,788381958.0,880631416.0],"unit":"ns","throughput":[],"typical":{"estimate":3010727.917241379,"lower_bound":2974855.0862118113,"upper_bound":3034521.013935459,"unit":"ns"},"mean":{"estimate":3038976.3680747123,"lower_bound":2985287.7508232757,"upper_bound":3119738.8151436783,"unit":"ns"},"median":{"estimate":3018269.557471264,"lower_bound":2980526.2172413794,"upper_bound":3039104.351293104,"unit":"ns"},"median_abs_dev":{"estimate":35644.71969131781,"lower_bound":9040.354001742955,"upper_bound":88836.2701651689,"unit":"ns"},"slope":{"estimate":3010727.917241379,"lower_bound":2974855.0862118113,"upper_bound":3034521.013935459,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_100000","iteration_count":[84,168,252,336,420,504,588,672,756,840],"measured_values":[87863208.0,176645458.0,247898791.0,345002750.0,438618458.0,536872834.0,599180750.0,671862291.0,789477000.0,824211584.0],"unit":"ns","throughput":[],"typical":{"estimate":1017185.009554731,"lower_bound":995832.5986622074,"upper_bound":1043204.7887466308,"unit":"ns"},"mean":{"estimate":1026182.0399305556,"lower_bound":1008370.8763988096,"upper_bound":1042624.0969474206,"unit":"ns"},"median":{"estimate":1035537.8224206349,"lower_bound":999795.0758928572,"upper_bound":1047895.3607142856,"unit":"ns"},"median_abs_dev":{"estimate":24052.35174798536,"lower_bound":1302.2722802134192,"upper_bound":48104.70349597072,"unit":"ns"},"slope":{"estimate":1017185.009554731,"lower_bound":995832.5986622074,"upper_bound":1043204.7887466308,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_100000","iteration_count":[90,180,270,360,450,540,630,720,810,900],"measured_values":[79279125.0,166239625.0,247244250.0,326025500.0,427356708.0,499861250.0,567216000.0,657583291.0,741717750.0,838660083.0],"unit":"ns","throughput":[],"typical":{"estimate":920253.4797402597,"lower_bound":910437.8058782124,"upper_bound":929482.5186850519,"unit":"ns"},"mean":{"estimate":916232.7473161377,"lower_bound":905177.4503955358,"upper_bound":927199.2287962962,"unit":"ns"},"median":{"estimate":915710.1851851852,"lower_bound":905626.3888888889,"upper_bound":927699.0044444444,"unit":"ns"},"median_abs_dev":{"estimate":14857.573625114223,"lower_bound":1786.0274428751075,"upper_bound":32658.107648869387,"unit":"ns"},"slope":{"estimate":920253.4797402597,"lower_bound":910437.8058782124,"upper_bound":929482.5186850519,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"COMBO","benchmarks":["COMBO/combo/bloom_ore_order_limit/100000","COMBO/combo/filtered_group_by/100000","COMBO/combo/top_n_filtered_group_by/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO"} diff --git a/results/query/combo_rows_1000000.json b/results/query/combo_rows_1000000.json index bf69d5e..dd7c652 100644 --- a/results/query/combo_rows_1000000.json +++ b/results/query/combo_rows_1000000.json @@ -1,4 +1,4 @@ -{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_1000000","iteration_count":[24,48,72,96,120,144,168,192,216,240],"measured_values":[89788500.0,177893250.0,259239000.0,353130417.0,445761958.0,526935792.0,619411042.0,763300084.0,845923750.0,978290208.0],"unit":"ns","throughput":[],"typical":{"estimate":3881464.502813853,"lower_bound":3688621.232432209,"upper_bound":3983511.534024745,"unit":"ns"},"mean":{"estimate":3775525.4318419313,"lower_bound":3690623.2442692625,"upper_bound":3872973.9261574075,"unit":"ns"},"median":{"estimate":3710396.1791666667,"lower_bound":3673123.4107142854,"upper_bound":3916313.657407407,"unit":"ns"},"median_abs_dev":{"estimate":61582.889467310095,"lower_bound":20509.940551500767,"upper_bound":237061.12723910206,"unit":"ns"},"slope":{"estimate":3881464.502813853,"lower_bound":3688621.232432209,"upper_bound":3983511.534024745,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_1000000","iteration_count":[23,46,69,92,115,138,161,184,207,230],"measured_values":[88459333.0,180779000.0,276735125.0,334886917.0,423262083.0,512034250.0,599376709.0,672848250.0,755510333.0,837561417.0],"unit":"ns","throughput":[],"typical":{"estimate":3677235.0560135515,"lower_bound":3654627.9488250227,"upper_bound":3725156.938484906,"unit":"ns"},"mean":{"estimate":3748869.8775293306,"lower_bound":3677348.1392684607,"upper_bound":3831802.7621852146,"unit":"ns"},"median":{"estimate":3695466.4840579713,"lower_bound":3649177.672826087,"upper_bound":3846057.9565217393,"unit":"ns"},"median_abs_dev":{"estimate":73798.79910009961,"lower_bound":9224.430079712387,"upper_bound":212937.00929635152,"unit":"ns"},"slope":{"estimate":3677235.0560135515,"lower_bound":3654627.9488250227,"upper_bound":3725156.938484906,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_1000000","iteration_count":[24,48,72,96,120,144,168,192,216,240],"measured_values":[87076958.0,191752250.0,275891125.0,360484500.0,438056125.0,546512875.0,639772125.0,737577750.0,806952375.0,893461250.0],"unit":"ns","throughput":[],"typical":{"estimate":3764692.7984848483,"lower_bound":3729178.667925056,"upper_bound":3812254.0507990867,"unit":"ns"},"mean":{"estimate":3776397.321279762,"lower_bound":3717162.0494047618,"upper_bound":3840590.2584015373,"unit":"ns"},"median":{"estimate":3775137.5868055555,"lower_bound":3693179.166666667,"upper_bound":3831821.1805555555,"unit":"ns"},"median_abs_dev":{"estimate":80850.60377294803,"lower_bound":19474.56840425707,"upper_bound":177757.55934417236,"unit":"ns"},"slope":{"estimate":3764692.7984848483,"lower_bound":3729178.667925056,"upper_bound":3812254.0507990867,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[89227459.0,185395542.0,307156667.0,371222875.0,477400542.0,572873333.0,744229333.0,769211292.0,923407875.0,2539248750.0],"unit":"ns","throughput":[],"typical":{"estimate":34907192.723376624,"lower_bound":24079574.137381002,"upper_bound":49771263.919181034,"unit":"ns"},"mean":{"estimate":28176778.48232143,"lower_bound":23649267.018750004,"upper_bound":36311561.950476184,"unit":"ns"},"median":{"estimate":23953939.9875,"lower_bound":23201429.6875,"upper_bound":26088003.976190478,"unit":"ns"},"median_abs_dev":{"estimate":1795388.6614754805,"lower_bound":124635.26098728272,"upper_bound":3204093.2843909725,"unit":"ns"},"slope":{"estimate":34907192.723376624,"lower_bound":24079574.137381002,"upper_bound":49771263.919181034,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_1000000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[65915458.0,167379541.0,215495042.0,289673167.0,369709459.0,418530875.0,504520875.0,580379042.0,709293791.0,721680500.0],"unit":"ns","throughput":[],"typical":{"estimate":6134353.346103896,"lower_bound":5973174.103603603,"upper_bound":6354742.7256711405,"unit":"ns"},"mean":{"estimate":6109604.172804233,"lower_bound":5888889.899063657,"upper_bound":6360782.48920056,"unit":"ns"},"median":{"estimate":6024430.90625,"lower_bound":5909564.856150793,"upper_bound":6306575.061342592,"unit":"ns"},"median_abs_dev":{"estimate":130358.29044734412,"lower_bound":20779.21519776201,"upper_bound":711754.2712513357,"unit":"ns"},"slope":{"estimate":6134353.346103896,"lower_bound":5973174.103603603,"upper_bound":6354742.7256711405,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_1000000","iteration_count":[17,34,51,68,85,102,119,136,153,170],"measured_values":[82365125.0,182798541.0,255316666.0,334692125.0,428338500.0,502938709.0,617395666.0,666919708.0,779334291.0,856690500.0],"unit":"ns","throughput":[],"typical":{"estimate":5034384.477310925,"lower_bound":4959462.670666887,"upper_bound":5101944.278840731,"unit":"ns"},"mean":{"estimate":5034469.962394957,"lower_bound":4950309.54964986,"upper_bound":5133224.451943277,"unit":"ns"},"median":{"estimate":5022742.803921569,"lower_bound":4917296.519607843,"upper_bound":5113777.37815126,"unit":"ns"},"median_abs_dev":{"estimate":142901.09252329334,"lower_bound":24512.813764811024,"upper_bound":245246.29712836107,"unit":"ns"},"slope":{"estimate":5034384.477310925,"lower_bound":4959462.670666887,"upper_bound":5101944.278840731,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"COMBO","benchmarks":["COMBO/combo/bloom_ore_order_limit/1000000","COMBO/combo/filtered_group_by/1000000","COMBO/combo/top_n_filtered_group_by/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO"} diff --git a/results/query/combo_rows_10000000.json b/results/query/combo_rows_10000000.json index bc7906b..b907598 100644 --- a/results/query/combo_rows_10000000.json +++ b/results/query/combo_rows_10000000.json @@ -1,4 +1,4 @@ -{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[626326542.0,633927959.0,631995333.0,628628625.0,621896333.0,627993541.0,633978500.0,645376625.0,627172375.0,614016166.0],"unit":"ns","throughput":[],"typical":{"estimate":209710399.96666664,"lower_bound":208106764.5208333,"upper_bound":211340422.23333335,"unit":"ns"},"mean":{"estimate":209710399.96666664,"lower_bound":208106764.5208333,"upper_bound":211340422.23333335,"unit":"ns"},"median":{"estimate":209437027.6666667,"lower_bound":208178118.0,"upper_bound":211309319.66666666,"unit":"ns"},"median_abs_dev":{"estimate":2298308.1937968363,"lower_bound":359839.3686115668,"upper_bound":4707275.425729148,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[131402583.0,260607875.0,397579042.0,539936125.0,661189083.0,780457542.0,971929167.0,1055383459.0,1292750500.0,1404550417.0],"unit":"ns","throughput":[],"typical":{"estimate":45818719.5991342,"lower_bound":44119294.933814086,"upper_bound":46880506.603140615,"unit":"ns"},"mean":{"estimate":44879830.50199737,"lower_bound":44023724.25654861,"upper_bound":45856430.13701256,"unit":"ns"},"median":{"estimate":44127360.65555556,"lower_bound":43704478.3125,"upper_bound":46282341.28571428,"unit":"ns"},"median_abs_dev":{"estimate":1083278.8277446276,"lower_bound":149103.83355704692,"upper_bound":2446814.988168678,"unit":"ns"},"slope":{"estimate":45818719.5991342,"lower_bound":44119294.933814086,"upper_bound":46880506.603140615,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[90244542.0,179547667.0,265855083.0,350190250.0,431286042.0,542338083.0,623397208.0,717961958.0,835194334.0,915013583.0],"unit":"ns","throughput":[],"typical":{"estimate":45236994.53116883,"lower_bound":44346796.180207655,"upper_bound":45793236.84199584,"unit":"ns"},"mean":{"estimate":44796695.269722216,"lower_bound":44239516.305,"upper_bound":45340110.76916666,"unit":"ns"},"median":{"estimate":44879769.5625,"lower_bound":44151076.625,"upper_bound":45436475.075,"unit":"ns"},"median_abs_dev":{"estimate":683468.6729785055,"lower_bound":185064.52242694795,"upper_bound":1549691.1230708174,"unit":"ns"},"slope":{"estimate":45236994.53116883,"lower_bound":44346796.180207655,"upper_bound":45793236.84199584,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/bloom_ore_order_limit/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_bloom_ore_order_limit_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[618442584.0,634203000.0,632617959.0,623987500.0,638118125.0,617624458.0,626994083.0,620209750.0,623137541.0,619477750.0],"unit":"ns","throughput":[],"typical":{"estimate":208493758.3333333,"lower_bound":207159608.22666666,"upper_bound":209968911.49416667,"unit":"ns"},"mean":{"estimate":208493758.3333333,"lower_bound":207159608.22666666,"upper_bound":209968911.49416667,"unit":"ns"},"median":{"estimate":207854173.5,"lower_bound":206442055.6666667,"upper_bound":210872653.0,"unit":"ns"},"median_abs_dev":{"estimate":2274483.0593198463,"lower_bound":436666.7108476236,"upper_bound":3887541.946682319,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/filtered_group_by/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_filtered_group_by_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[124790417.0,247090292.0,380447750.0,540322333.0,668313000.0,774443709.0,891690416.0,1063415000.0,1220735709.0,1339746667.0],"unit":"ns","throughput":[],"typical":{"estimate":44193135.75757576,"lower_bound":43270939.158396944,"upper_bound":44760931.18505747,"unit":"ns"},"mean":{"estimate":43429726.74198413,"lower_bound":42537296.94476191,"upper_bound":44287222.871642865,"unit":"ns"},"median":{"estimate":43666804.41666667,"lower_bound":42029127.02380952,"upper_bound":44790530.54166667,"unit":"ns"},"median_abs_dev":{"estimate":1901740.4025123608,"lower_bound":258909.32447343954,"upper_bound":2314833.9061534847,"unit":"ns"},"slope":{"estimate":44193135.75757576,"lower_bound":43270939.158396944,"upper_bound":44760931.18505747,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"COMBO/combo/top_n_filtered_group_by/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO/combo_top_n_filtered_group_by_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[125427875.0,247546333.0,383149708.0,504254125.0,719146333.0,768212792.0,939495084.0,1047918416.0,1153029666.0,1275928791.0],"unit":"ns","throughput":[],"typical":{"estimate":43366547.53419913,"lower_bound":42608505.09330601,"upper_bound":44538606.52822581,"unit":"ns"},"mean":{"estimate":43191884.86261905,"lower_bound":42230489.852986105,"upper_bound":44453487.643728174,"unit":"ns"},"median":{"estimate":42625339.11111111,"lower_bound":42021177.083333336,"upper_bound":43721331.79365079,"unit":"ns"},"median_abs_dev":{"estimate":1052801.2630673759,"lower_bound":98305.76805472742,"upper_bound":2315922.1639508293,"unit":"ns"},"slope":{"estimate":43366547.53419913,"lower_bound":42608505.09330601,"upper_bound":44538606.52822581,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"COMBO","benchmarks":["COMBO/combo/bloom_ore_order_limit/10000000","COMBO/combo/filtered_group_by/10000000","COMBO/combo/top_n_filtered_group_by/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/COMBO"} diff --git a/results/query/exact_metadata_10000.json b/results/query/exact_metadata_10000.json index c7e362b..9427ddb 100644 --- a/results/query/exact_metadata_10000.json +++ b/results/query/exact_metadata_10000.json @@ -8,7 +8,7 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1164, + "Plan Width": 1157, "Plans": [ { "Alias": "string_encrypted_10000", @@ -19,7 +19,7 @@ "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1164, + "Plan Width": 1157, "Relation Name": "string_encrypted_10000", "Scan Direction": "Forward", "Startup Cost": 0.0, @@ -56,7 +56,7 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1164, + "Plan Width": 1157, "Plans": [ { "Alias": "string_encrypted_10000", @@ -67,7 +67,7 @@ "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1164, + "Plan Width": 1157, "Relation Name": "string_encrypted_10000", "Scan Direction": "Forward", "Startup Cost": 0.0, diff --git a/results/query/exact_metadata_100000.json b/results/query/exact_metadata_100000.json index 1078a12..376fc2a 100644 --- a/results/query/exact_metadata_100000.json +++ b/results/query/exact_metadata_100000.json @@ -8,7 +8,7 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1163, + "Plan Width": 1159, "Plans": [ { "Alias": "string_encrypted_100000", @@ -19,7 +19,7 @@ "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1163, + "Plan Width": 1159, "Relation Name": "string_encrypted_100000", "Scan Direction": "Forward", "Startup Cost": 0.0, @@ -56,7 +56,7 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1163, + "Plan Width": 1159, "Plans": [ { "Alias": "string_encrypted_100000", @@ -67,7 +67,7 @@ "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1163, + "Plan Width": 1159, "Relation Name": "string_encrypted_100000", "Scan Direction": "Forward", "Startup Cost": 0.0, diff --git a/results/query/exact_metadata_1000000.json b/results/query/exact_metadata_1000000.json index 71b27e3..ce3e2a8 100644 --- a/results/query/exact_metadata_1000000.json +++ b/results/query/exact_metadata_1000000.json @@ -18,16 +18,16 @@ "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 2, + "Plan Rows": 5000, "Plan Width": 1161, "Relation Name": "string_encrypted_1000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 12.04 + "Total Cost": 19855.5 } ], "Startup Cost": 0.0, - "Total Cost": 6.02 + "Total Cost": 3.97 } } ], @@ -66,16 +66,16 @@ "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 2, + "Plan Rows": 5000, "Plan Width": 1161, "Relation Name": "string_encrypted_1000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 12.04 + "Total Cost": 19855.5 } ], "Startup Cost": 0.0, - "Total Cost": 6.02 + "Total Cost": 3.97 } } ], diff --git a/results/query/exact_metadata_10000000.json b/results/query/exact_metadata_10000000.json index 77d6c38..5754a00 100644 --- a/results/query/exact_metadata_10000000.json +++ b/results/query/exact_metadata_10000000.json @@ -8,7 +8,7 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1163, + "Plan Width": 1162, "Plans": [ { "Alias": "string_encrypted_10000000", @@ -18,16 +18,16 @@ "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 50000, - "Plan Width": 1163, + "Plan Rows": 8, + "Plan Width": 1162, "Relation Name": "string_encrypted_10000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 198371.0 + "Total Cost": 36.14 } ], "Startup Cost": 0.0, - "Total Cost": 3.97 + "Total Cost": 4.52 } } ], @@ -56,7 +56,7 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1163, + "Plan Width": 1162, "Plans": [ { "Alias": "string_encrypted_10000000", @@ -66,16 +66,16 @@ "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 50000, - "Plan Width": 1163, + "Plan Rows": 8, + "Plan Width": 1162, "Relation Name": "string_encrypted_10000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 198371.0 + "Total Cost": 36.14 } ], "Startup Cost": 0.0, - "Total Cost": 3.97 + "Total Cost": 4.52 } } ], diff --git a/results/query/exact_rows_10000.json b/results/query/exact_rows_10000.json index a0057df..816e07e 100644 --- a/results/query/exact_rows_10000.json +++ b/results/query/exact_rows_10000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[198,396,594,792,990,1188,1386,1584,1782,1980],"measured_values":[71512458.0,141498083.0,216657166.0,308509750.0,454837792.0,538419792.0,640361708.0,698709458.0,930403459.0,934956459.0],"unit":"ns","throughput":[],"typical":{"estimate":466202.67840745114,"lower_bound":434888.3454106513,"upper_bound":490632.12576489535,"unit":"ns"},"mean":{"estimate":428285.31161335576,"lower_bound":395545.96582702023,"upper_bound":460930.9101683502,"unit":"ns"},"median":{"estimate":447159.88446969696,"lower_bound":364742.7037037037,"upper_bound":465816.17247474747,"unit":"ns"},"median_abs_dev":{"estimate":61281.57914900419,"lower_bound":6527.977538650689,"upper_bound":98281.12024615458,"unit":"ns"},"slope":{"estimate":466202.67840745114,"lower_bound":434888.3454106513,"upper_bound":490632.12576489535,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[201,402,603,804,1005,1206,1407,1608,1809,2010],"measured_values":[86041750.0,166495083.0,254637834.0,355712792.0,439380709.0,531887125.0,618092833.0,725005916.0,794543083.0,892925334.0],"unit":"ns","throughput":[],"typical":{"estimate":441957.2414162952,"lower_bound":437514.74253731343,"upper_bound":445469.89465919614,"unit":"ns"},"mean":{"estimate":435880.88422253804,"lower_bound":428993.6466548212,"upper_bound":442005.6899715707,"unit":"ns"},"median":{"estimate":439257.5644791913,"lower_bound":428068.407960199,"upper_bound":442637.78001658374,"unit":"ns"},"median_abs_dev":{"estimate":6045.4322426887065,"lower_bound":1347.2090506262507,"upper_bound":17162.484040081083,"unit":"ns"},"slope":{"estimate":441957.2414162952,"lower_bound":437514.74253731343,"upper_bound":445469.89465919614,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[68325792.0,142823291.0,279628125.0,383402958.0,456567750.0,548634250.0,649210625.0,764523542.0,855832250.0,927099959.0],"unit":"ns","throughput":[],"typical":{"estimate":424265.2347343566,"lower_bound":416853.6070134333,"upper_bound":429614.6236661699,"unit":"ns"},"mean":{"estimate":403482.9225176767,"lower_bound":372411.2975550505,"upper_bound":426812.9215872475,"unit":"ns"},"median":{"estimate":421487.20659090905,"lower_bound":370115.1981060606,"upper_bound":432238.5101010101,"unit":"ns"},"median_abs_dev":{"estimate":12733.249970909334,"lower_bound":1682.6805466264693,"upper_bound":67483.22052170613,"unit":"ns"},"slope":{"estimate":424265.2347343566,"lower_bound":416853.6070134333,"upper_bound":429614.6236661699,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[190,380,570,760,950,1140,1330,1520,1710,1900],"measured_values":[77627125.0,161380333.0,244385625.0,324247792.0,398446041.0,462832416.0,564957292.0,637447417.0,742243541.0,804344709.0],"unit":"ns","throughput":[],"typical":{"estimate":423481.61140123033,"lower_bound":417013.81576650415,"upper_bound":428937.16146485094,"unit":"ns"},"mean":{"estimate":421560.0767642022,"lower_bound":416212.05220924184,"upper_bound":426381.3104985746,"unit":"ns"},"median":{"estimate":424012.20368421054,"lower_bound":413990.3505263158,"upper_bound":426763.3146616541,"unit":"ns"},"median_abs_dev":{"estimate":6845.328237405358,"lower_bound":1067.9154790933337,"upper_bound":14897.678416811577,"unit":"ns"},"slope":{"estimate":423481.61140123033,"lower_bound":417013.81576650415,"upper_bound":428937.16146485094,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[207,414,621,828,1035,1242,1449,1656,1863,2070],"measured_values":[69605292.0,153778750.0,262115625.0,392969250.0,450985875.0,525830334.0,651438833.0,742552042.0,813430666.0,896136125.0],"unit":"ns","throughput":[],"typical":{"estimate":438271.2021707761,"lower_bound":431059.1118336843,"upper_bound":446068.9946122984,"unit":"ns"},"mean":{"estimate":423101.88975346985,"lower_bound":397187.2796296295,"upper_bound":444408.1960873399,"unit":"ns"},"median":{"estimate":434325.57367149764,"lower_bound":397410.05797101447,"upper_bound":448400.9915458937,"unit":"ns"},"median_abs_dev":{"estimate":19507.04146201411,"lower_bound":2748.7998382360533,"upper_bound":59711.669175413124,"unit":"ns"},"slope":{"estimate":438271.2021707761,"lower_bound":431059.1118336843,"upper_bound":446068.9946122984,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[215,430,645,860,1075,1290,1505,1720,1935,2150],"measured_values":[96176792.0,170847375.0,284474000.0,390858750.0,464007458.0,627755625.0,666678667.0,970461084.0,794557834.0,918344875.0],"unit":"ns","throughput":[],"typical":{"estimate":455526.525871338,"lower_bound":423339.53656073904,"upper_bound":506918.9956491929,"unit":"ns"},"mean":{"estimate":450341.1158678479,"lower_bound":426550.28985455894,"upper_bound":480715.8529863417,"unit":"ns"},"median":{"estimate":442010.4098560355,"lower_bound":421129.5241343669,"upper_bound":466983.0918604651,"unit":"ns"},"median_abs_dev":{"estimate":20274.382244708922,"lower_bound":5302.520529814924,"upper_bound":61494.36259476841,"unit":"ns"},"slope":{"estimate":455526.525871338,"lower_bound":423339.53656073904,"upper_bound":506918.9956491929,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[229,458,687,916,1145,1374,1603,1832,2061,2290],"measured_values":[93595417.0,178995291.0,272054209.0,357632792.0,398736125.0,460774750.0,679734250.0,741038750.0,842538125.0,951882041.0],"unit":"ns","throughput":[],"typical":{"estimate":399758.6593773039,"lower_bound":374058.59299437614,"upper_bound":412890.1905689825,"unit":"ns"},"mean":{"estimate":392256.46350627294,"lower_bound":374259.1545002426,"upper_bound":407625.43458637444,"unit":"ns"},"median":{"estimate":400250.17485443957,"lower_bound":369530.2849344978,"upper_bound":412191.31244541483,"unit":"ns"},"median_abs_dev":{"estimate":14271.599874248495,"lower_bound":3190.190877678714,"upper_bound":43625.66917976905,"unit":"ns"},"slope":{"estimate":399758.6593773039,"lower_bound":374058.59299437614,"upper_bound":412890.1905689825,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[228,456,684,912,1140,1368,1596,1824,2052,2280],"measured_values":[91814333.0,172843917.0,280237666.0,363445250.0,457242541.0,540411500.0,649079041.0,719653750.0,822811292.0,935739625.0],"unit":"ns","throughput":[],"typical":{"estimate":402416.9404761905,"lower_bound":396916.8624175488,"upper_bound":407127.36576489714,"unit":"ns"},"mean":{"estimate":399871.4852154692,"lower_bound":394068.19321244076,"upper_bound":404782.88396130956,"unit":"ns"},"median":{"estimate":401035.05501949316,"lower_bound":395037.6461988304,"upper_bound":406691.1284461153,"unit":"ns"},"median_abs_dev":{"estimate":8638.726236544251,"lower_bound":1270.796622906686,"upper_bound":14016.007034938057,"unit":"ns"},"slope":{"estimate":402416.9404761905,"lower_bound":396916.8624175488,"upper_bound":407127.36576489714,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000","EXACT/exact_decrypt/eql_cast/10000","EXACT/exact/eql_hash/10000","EXACT/exact_decrypt/eql_hash/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_100000.json b/results/query/exact_rows_100000.json index 4a7e6f2..689c722 100644 --- a/results/query/exact_rows_100000.json +++ b/results/query/exact_rows_100000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[188,376,564,752,940,1128,1316,1504,1692,1880],"measured_values":[93366000.0,182205542.0,344652459.0,338281583.0,387788333.0,472617833.0,534928084.0,606405959.0,702502750.0,771316084.0],"unit":"ns","throughput":[],"typical":{"estimate":417946.1081237911,"lower_bound":409900.81639505056,"upper_bound":438692.735,"unit":"ns"},"mean":{"estimate":450881.45600198413,"lower_bound":418551.09557792975,"upper_bound":493382.11531345,"unit":"ns"},"median":{"estimate":417089.09559692675,"lower_bound":409510.54338905774,"upper_bound":484589.2074468085,"unit":"ns"},"median_abs_dev":{"estimate":18163.65306784546,"lower_bound":3644.4070350151947,"upper_bound":89771.2976929696,"unit":"ns"},"slope":{"estimate":417946.1081237911,"lower_bound":409900.81639505056,"upper_bound":438692.735,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[91153750.0,178714875.0,279080083.0,368932792.0,497818375.0,545853208.0,547540625.0,707920792.0,825983375.0,903759875.0],"unit":"ns","throughput":[],"typical":{"estimate":407241.62781582057,"lower_bound":388958.55429924245,"upper_bound":421707.8277736038,"unit":"ns"},"mean":{"estimate":411441.99810966814,"lower_bound":396199.5535209235,"upper_bound":424513.31396590907,"unit":"ns"},"median":{"estimate":413930.19242424244,"lower_bound":406170.17045454547,"upper_bound":420005.9656565656,"unit":"ns"},"median_abs_dev":{"estimate":9690.005549104359,"lower_bound":2620.7060500640955,"upper_bound":34390.38056558507,"unit":"ns"},"slope":{"estimate":407241.62781582057,"lower_bound":388958.55429924245,"upper_bound":421707.8277736038,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[233,466,699,932,1165,1398,1631,1864,2097,2330],"measured_values":[89358083.0,180525250.0,277494959.0,390343584.0,486179875.0,603144459.0,646676667.0,774669708.0,852040000.0,917469834.0],"unit":"ns","throughput":[],"typical":{"estimate":406456.56984560506,"lower_bound":398542.9299837191,"upper_bound":417376.2644745446,"unit":"ns"},"mean":{"estimate":404763.5897758703,"lower_bound":395828.45712923224,"upper_bound":414048.1598712446,"unit":"ns"},"median":{"estimate":401651.13900810684,"lower_bound":391942.0729613734,"upper_bound":417321.7811158798,"unit":"ns"},"median_abs_dev":{"estimate":20906.213813604456,"lower_bound":2390.410148463029,"upper_bound":24745.17168277408,"unit":"ns"},"slope":{"estimate":406456.56984560506,"lower_bound":398542.9299837191,"upper_bound":417376.2644745446,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[228,456,684,912,1140,1368,1596,1824,2052,2280],"measured_values":[109518083.0,190642583.0,234206042.0,341604625.0,466639000.0,539989583.0,856091583.0,774185792.0,826181000.0,927713709.0],"unit":"ns","throughput":[],"typical":{"estimate":421871.3360674413,"lower_bound":397429.98134659295,"upper_bound":462015.7702658495,"unit":"ns"},"mean":{"estimate":418980.94588171813,"lower_bound":389509.29672758287,"upper_bound":453062.71814688615,"unit":"ns"},"median":{"estimate":408112.2168859649,"lower_bound":388594.39723440545,"upper_bound":449209.15460526315,"unit":"ns"},"median_abs_dev":{"estimate":22027.53457187166,"lower_bound":4974.224063736717,"upper_bound":87595.8121099951,"unit":"ns"},"slope":{"estimate":421871.3360674413,"lower_bound":397429.98134659295,"upper_bound":462015.7702658495,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[209,418,627,836,1045,1254,1463,1672,1881,2090],"measured_values":[88676583.0,182810875.0,266267250.0,347445416.0,441557375.0,518371375.0,591088792.0,851950042.0,792352875.0,897431459.0],"unit":"ns","throughput":[],"typical":{"estimate":435215.425551482,"lower_bound":413948.4521356477,"upper_bound":465833.6764812597,"unit":"ns"},"mean":{"estimate":430202.48523923446,"lower_bound":417059.38460925047,"upper_bound":449842.44975279114,"unit":"ns"},"median":{"estimate":423416.4066985646,"lower_bound":415604.56459330145,"upper_bound":431007.6255980861,"unit":"ns"},"median_abs_dev":{"estimate":10221.398552840108,"lower_bound":1575.794505516896,"upper_bound":22311.061767057323,"unit":"ns"},"slope":{"estimate":435215.425551482,"lower_bound":413948.4521356477,"upper_bound":465833.6764812597,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[204,408,612,816,1020,1224,1428,1632,1836,2040],"measured_values":[83172042.0,171326417.0,255884292.0,354268583.0,431707333.0,517243666.0,608368458.0,682856291.0,752097917.0,828631917.0],"unit":"ns","throughput":[],"typical":{"estimate":415701.3076394194,"lower_bound":410383.7300404113,"upper_bound":424077.94793091656,"unit":"ns"},"mean":{"estimate":418599.1899647914,"lower_bound":413510.8978541521,"upper_bound":423777.5144560281,"unit":"ns"},"median":{"estimate":419167.2668504902,"lower_bound":409639.3883442266,"upper_bound":424306.5131886088,"unit":"ns"},"median_abs_dev":{"estimate":8107.065380298789,"lower_bound":1338.8622696128004,"upper_bound":16663.069135887035,"unit":"ns"},"slope":{"estimate":415701.3076394194,"lower_bound":410383.7300404113,"upper_bound":424077.94793091656,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[226,452,678,904,1130,1356,1582,1808,2034,2260],"measured_values":[93364917.0,202550958.0,267745417.0,371966834.0,459546667.0,526503583.0,853001083.0,740539208.0,794877583.0,891703208.0],"unit":"ns","throughput":[],"typical":{"estimate":416188.6774508677,"lower_bound":394116.7661292219,"upper_bound":463182.1678322619,"unit":"ns"},"mean":{"estimate":419670.468237112,"lower_bound":398778.3964798427,"upper_bound":449582.8801232793,"unit":"ns"},"median":{"estimate":408134.36814159295,"lower_bound":392850.00835791545,"upper_bound":429794.66261061945,"unit":"ns"},"median_abs_dev":{"estimate":19870.58310289038,"lower_bound":2615.923010195284,"upper_bound":35606.77425214541,"unit":"ns"},"slope":{"estimate":416188.6774508677,"lower_bound":394116.7661292219,"upper_bound":463182.1678322619,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[225,450,675,900,1125,1350,1575,1800,2025,2250],"measured_values":[92639709.0,185077708.0,291126708.0,357404625.0,465255125.0,558717084.0,636550208.0,725172208.0,802724416.0,877607458.0],"unit":"ns","throughput":[],"typical":{"estimate":400602.5433997114,"lower_bound":395155.3080970942,"upper_bound":409414.37318602734,"unit":"ns"},"mean":{"estimate":407234.2719234568,"lower_bound":400636.86547895055,"upper_bound":414437.1666666667,"unit":"ns"},"median":{"estimate":407721.3288888889,"lower_bound":397116.25,"upper_bound":413560.1111111111,"unit":"ns"},"median_abs_dev":{"estimate":8882.226790308969,"lower_bound":1580.7975119352398,"upper_bound":21337.086268524312,"unit":"ns"},"slope":{"estimate":400602.5433997114,"lower_bound":395155.3080970942,"upper_bound":409414.37318602734,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/100000","EXACT/exact_decrypt/eql_cast/100000","EXACT/exact/eql_hash/100000","EXACT/exact_decrypt/eql_hash/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_1000000.json b/results/query/exact_rows_1000000.json index 5ed537d..84a2b0e 100644 --- a/results/query/exact_rows_1000000.json +++ b/results/query/exact_rows_1000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[211,422,633,844,1055,1266,1477,1688,1899,2110],"measured_values":[91634833.0,173143959.0,250143709.0,372888416.0,475567000.0,522383209.0,609983167.0,638784916.0,755315750.0,868157875.0],"unit":"ns","throughput":[],"typical":{"estimate":406864.3293284914,"lower_bound":394613.27258125285,"upper_bound":421823.44775445724,"unit":"ns"},"mean":{"estimate":414557.22637478367,"lower_bound":401736.3713984804,"upper_bound":427712.3521897803,"unit":"ns"},"median":{"estimate":412037.09873617697,"lower_bound":397743.94418114796,"upper_bound":434288.30805687205,"unit":"ns"},"median_abs_dev":{"estimate":23097.808326740807,"lower_bound":1140.6355795126829,"upper_bound":39670.48044539221,"unit":"ns"},"slope":{"estimate":406864.3293284914,"lower_bound":394613.27258125285,"upper_bound":421823.44775445724,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[206,412,618,824,1030,1236,1442,1648,1854,2060],"measured_values":[108305083.0,165342833.0,253347209.0,339703792.0,429666792.0,532694584.0,620666250.0,644561750.0,758502250.0,834618916.0],"unit":"ns","throughput":[],"typical":{"estimate":410745.3810112218,"lower_bound":402154.10064292647,"upper_bound":423005.94922257325,"unit":"ns"},"mean":{"estimate":423322.3550990137,"lower_bound":406400.9248678533,"upper_bound":448427.9279045307,"unit":"ns"},"median":{"estimate":411104.41181229777,"lower_bound":405154.813592233,"upper_bound":430420.42302357836,"unit":"ns"},"median_abs_dev":{"estimate":11738.240230779356,"lower_bound":2331.5691854672623,"upper_bound":29670.21541564313,"unit":"ns"},"slope":{"estimate":410745.3810112218,"lower_bound":402154.10064292647,"upper_bound":423005.94922257325,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[235,470,705,940,1175,1410,1645,1880,2115,2350],"measured_values":[86695708.0,180949625.0,280568291.0,381990042.0,550605625.0,594632125.0,649014542.0,768371500.0,868793042.0,960433250.0],"unit":"ns","throughput":[],"typical":{"estimate":411744.95215252833,"lower_bound":403773.76684182114,"upper_bound":424360.99521615397,"unit":"ns"},"mean":{"estimate":407130.19561634585,"lower_bound":393139.6166517224,"upper_bound":423930.1953664303,"unit":"ns"},"median":{"estimate":407533.69255319145,"lower_bound":391484.2046099291,"upper_bound":415216.5780141844,"unit":"ns"},"median_abs_dev":{"estimate":16724.07056372663,"lower_bound":1553.0951489518604,"upper_bound":37457.42567967859,"unit":"ns"},"slope":{"estimate":411744.95215252833,"lower_bound":403773.76684182114,"upper_bound":424360.99521615397,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[227,454,681,908,1135,1362,1589,1816,2043,2270],"measured_values":[79840709.0,149346416.0,218238458.0,292993458.0,451726334.0,577208208.0,680581667.0,836782667.0,836718250.0,956531542.0],"unit":"ns","throughput":[],"typical":{"estimate":417429.10166485497,"lower_bound":393055.580539134,"upper_bound":434177.3087087189,"unit":"ns"},"mean":{"estimate":386564.1865262919,"lower_bound":356017.8250122369,"upper_bound":415914.9790830755,"unit":"ns"},"median":{"estimate":403775.24503181595,"lower_bound":328956.86343612336,"upper_bound":424843.8471994966,"unit":"ns"},"median_abs_dev":{"estimate":56773.92389778826,"lower_bound":5136.190775950958,"upper_bound":80847.82367121706,"unit":"ns"},"slope":{"estimate":417429.10166485497,"lower_bound":393055.580539134,"upper_bound":434177.3087087189,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[85525167.0,203149917.0,266998542.0,344325167.0,461200500.0,540747500.0,633073208.0,741516917.0,877515917.0,850649083.0],"unit":"ns","throughput":[],"typical":{"estimate":414972.3141789717,"lower_bound":397929.595686847,"upper_bound":432943.23001230013,"unit":"ns"},"mean":{"estimate":415635.1304923172,"lower_bound":402260.994721135,"upper_bound":430706.5187558889,"unit":"ns"},"median":{"estimate":412245.6918895412,"lower_bound":393065.2591324201,"upper_bound":433200.6131405378,"unit":"ns"},"median_abs_dev":{"estimate":22368.719909896383,"lower_bound":3764.8883091873304,"upper_bound":40539.97523065211,"unit":"ns"},"slope":{"estimate":414972.3141789717,"lower_bound":397929.595686847,"upper_bound":432943.23001230013,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[186,372,558,744,930,1116,1302,1488,1674,1860],"measured_values":[77597917.0,148384625.0,240476875.0,308694834.0,369037458.0,467185666.0,610703750.0,2128099125.0,1075778208.0,834367708.0],"unit":"ns","throughput":[],"typical":{"estimate":646617.4921938276,"lower_bound":431541.2142833727,"upper_bound":976823.487394012,"unit":"ns"},"mean":{"estimate":546783.9418721198,"lower_bound":419063.67564516125,"upper_bound":756831.8219834868,"unit":"ns"},"median":{"estimate":424793.6451612903,"lower_bound":408038.251344086,"upper_bound":545612.0505376344,"unit":"ns"},"median_abs_dev":{"estimate":36843.638796378546,"lower_bound":3067.3949258654284,"upper_bound":168813.94837150164,"unit":"ns"},"slope":{"estimate":646617.4921938276,"lower_bound":431541.2142833727,"upper_bound":976823.487394012,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[123,246,369,492,615,738,861,984,1107,1230],"measured_values":[61339167.0,491076417.0,422012375.0,258918084.0,282731125.0,366530458.0,416504833.0,452488333.0,474436041.0,549299875.0],"unit":"ns","throughput":[],"typical":{"estimate":491107.66442825465,"lower_bound":453111.76952927513,"upper_bound":593539.1409250896,"unit":"ns"},"mean":{"estimate":693999.3154907086,"lower_bound":467882.84123403026,"upper_bound":1013513.4465543941,"unit":"ns"},"median":{"estimate":490199.5938830817,"lower_bound":453215.5655487805,"upper_bound":821178.6937669376,"unit":"ns"},"median_abs_dev":{"estimate":49319.326968309375,"lower_bound":9830.084564200683,"upper_bound":500062.5049172378,"unit":"ns"},"slope":{"estimate":491107.66442825465,"lower_bound":453111.76952927513,"upper_bound":593539.1409250896,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[176,352,528,704,880,1056,1232,1408,1584,1760],"measured_values":[79154125.0,172735166.0,234648250.0,309587167.0,430295542.0,453317208.0,481580208.0,527791833.0,539647542.0,684373667.0],"unit":"ns","throughput":[],"typical":{"estimate":391562.27126623376,"lower_bound":368413.3837068727,"upper_bound":428646.6060324434,"unit":"ns"},"mean":{"estimate":423815.86129531934,"lower_bound":394720.84598462866,"upper_bound":452203.9646365158,"unit":"ns"},"median":{"estimate":434516.0788352273,"lower_bound":382872.59004667203,"upper_bound":466690.8856060606,"unit":"ns"},"median_abs_dev":{"estimate":66191.01479513031,"lower_bound":7401.767699416227,"upper_bound":80840.81477558413,"unit":"ns"},"slope":{"estimate":391562.27126623376,"lower_bound":368413.3837068727,"upper_bound":428646.6060324434,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/1000000","EXACT/exact_decrypt/eql_cast/1000000","EXACT/exact/eql_hash/1000000","EXACT/exact_decrypt/eql_hash/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_10000000.json b/results/query/exact_rows_10000000.json index 6556a69..bfd444e 100644 --- a/results/query/exact_rows_10000000.json +++ b/results/query/exact_rows_10000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000000","iteration_count":[227,454,681,908,1135,1362,1589,1816,2043,2270],"measured_values":[91835750.0,184594542.0,284729500.0,368900333.0,464166375.0,569422959.0,613883291.0,719495917.0,894980250.0,950960791.0],"unit":"ns","throughput":[],"typical":{"estimate":413590.76409405575,"lower_bound":398154.11068175564,"upper_bound":426557.980471688,"unit":"ns"},"mean":{"estimate":410210.5598274596,"lower_bound":402012.7795851689,"upper_bound":418658.7905873715,"unit":"ns"},"median":{"estimate":407776.5330396476,"lower_bound":401238.0459801762,"upper_bound":418501.9947136564,"unit":"ns"},"median_abs_dev":{"estimate":15293.357810647156,"lower_bound":647.4436798271373,"upper_bound":23568.659104810544,"unit":"ns"},"slope":{"estimate":413590.76409405575,"lower_bound":398154.11068175564,"upper_bound":426557.980471688,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000000","iteration_count":[218,436,654,872,1090,1308,1526,1744,1962,2180],"measured_values":[92050500.0,179539750.0,256964459.0,347411333.0,458492042.0,536267625.0,686394833.0,771073125.0,807880167.0,945175416.0],"unit":"ns","throughput":[],"typical":{"estimate":426757.5260693435,"lower_bound":412275.6875033712,"upper_bound":437127.16722408496,"unit":"ns"},"mean":{"estimate":419324.2769522717,"lower_bound":408837.4988597642,"upper_bound":430272.3676965924,"unit":"ns"},"median":{"estimate":416211.6591743119,"lower_bound":405085.5418577982,"upper_bound":433566.70458715595,"unit":"ns"},"median_abs_dev":{"estimate":17477.01124628064,"lower_bound":1351.1705464247182,"upper_bound":31667.526411986324,"unit":"ns"},"slope":{"estimate":426757.5260693435,"lower_bound":412275.6875033712,"upper_bound":437127.16722408496,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000000","iteration_count":[225,450,675,900,1125,1350,1575,1800,2025,2250],"measured_values":[91673916.0,178183416.0,282165750.0,341845959.0,463483208.0,528920459.0,620579000.0,712809875.0,864823750.0,768659375.0],"unit":"ns","throughput":[],"typical":{"estimate":388679.94375757576,"lower_bound":362070.59159062424,"upper_bound":414704.14528428094,"unit":"ns"},"mean":{"estimate":396375.6700858907,"lower_bound":381196.4527923281,"upper_bound":408988.03249655204,"unit":"ns"},"median":{"estimate":395984.31638888887,"lower_bound":386923.628015873,"upper_bound":412731.48,"unit":"ns"},"median_abs_dev":{"estimate":20353.1825999588,"lower_bound":1504.4037242914965,"upper_bound":34907.74061208229,"unit":"ns"},"slope":{"estimate":388679.94375757576,"lower_bound":362070.59159062424,"upper_bound":414704.14528428094,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000000","iteration_count":[209,418,627,836,1045,1254,1463,1672,1881,2090],"measured_values":[81315792.0,180539208.0,261114083.0,341729042.0,401789833.0,495999042.0,591945417.0,679239208.0,756699500.0,827866167.0],"unit":"ns","throughput":[],"typical":{"estimate":400721.8641024048,"lower_bound":396543.48163860536,"upper_bound":405367.58597353334,"unit":"ns"},"mean":{"estimate":403546.9036788942,"lower_bound":395903.23007203615,"upper_bound":412016.89280303026,"unit":"ns"},"median":{"estimate":403448.21345029236,"lower_bound":392589.4944976077,"upper_bound":411346.7192982456,"unit":"ns"},"median_abs_dev":{"estimate":11308.299056765385,"lower_bound":2933.9120434469505,"upper_bound":22924.09084564763,"unit":"ns"},"slope":{"estimate":400721.8641024048,"lower_bound":396543.48163860536,"upper_bound":405367.58597353334,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[125234541.0,178240833.0,312955750.0,395838084.0,492416750.0,539834834.0,542035791.0,630620417.0,1005461625.0,923858750.0],"unit":"ns","throughput":[],"typical":{"estimate":424977.5786633458,"lower_bound":381855.445933832,"upper_bound":472319.45449840126,"unit":"ns"},"mean":{"estimate":441303.1753669276,"lower_bound":404062.63236029574,"upper_bound":481844.9371058926,"unit":"ns"},"median":{"estimate":435774.48630136985,"lower_bound":385388.1836948249,"upper_bound":480998.8112633181,"unit":"ns"},"median_abs_dev":{"estimate":51444.752847175376,"lower_bound":11053.353164722666,"upper_bound":114039.32799491778,"unit":"ns"},"slope":{"estimate":424977.5786633458,"lower_bound":381855.445933832,"upper_bound":472319.45449840126,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000000","iteration_count":[218,436,654,872,1090,1308,1526,1744,1962,2180],"measured_values":[89166583.0,177308708.0,271284708.0,366404125.0,432414125.0,617699791.0,695511708.0,724191791.0,797675833.0,929894959.0],"unit":"ns","throughput":[],"typical":{"estimate":425731.82848802576,"lower_bound":411362.71176241577,"upper_bound":443877.6105410007,"unit":"ns"},"mean":{"estimate":422378.8659318116,"lower_bound":409972.9989844546,"upper_bound":437575.8756323722,"unit":"ns"},"median":{"estimate":415028.0043004587,"lower_bound":406671.34862385324,"upper_bound":437981.2997214941,"unit":"ns"},"median_abs_dev":{"estimate":12470.188381228372,"lower_bound":1822.424431559878,"upper_bound":35541.87236198723,"unit":"ns"},"slope":{"estimate":425731.82848802576,"lower_bound":411362.71176241577,"upper_bound":443877.6105410007,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000000","iteration_count":[229,458,687,916,1145,1374,1603,1832,2061,2290],"measured_values":[77008791.0,151795167.0,248707958.0,314361125.0,494198458.0,562001583.0,630408791.0,724880584.0,851822958.0,906719750.0],"unit":"ns","throughput":[],"typical":{"estimate":398941.52575284976,"lower_bound":386945.17016593885,"upper_bound":408224.0008892707,"unit":"ns"},"mean":{"estimate":381176.14522457885,"lower_bound":360246.3868159959,"upper_bound":401472.9873404034,"unit":"ns"},"median":{"estimate":394472.64566437923,"lower_bound":343189.0010917031,"upper_bound":409025.89737991267,"unit":"ns"},"median_abs_dev":{"estimate":38017.82124120592,"lower_bound":2186.6028135818283,"upper_bound":56202.77249466861,"unit":"ns"},"slope":{"estimate":398941.52575284976,"lower_bound":386945.17016593885,"upper_bound":408224.0008892707,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000000","iteration_count":[224,448,672,896,1120,1344,1568,1792,2016,2240],"measured_values":[88018459.0,176816834.0,271716917.0,361635500.0,423640333.0,528281167.0,635637125.0,710688000.0,898289917.0,921683500.0],"unit":"ns","throughput":[],"typical":{"estimate":410802.8950950835,"lower_bound":394445.8379796935,"upper_bound":426719.93732814735,"unit":"ns"},"mean":{"estimate":402590.45927791955,"lower_bound":393387.2778229166,"upper_bound":413980.30863555835,"unit":"ns"},"median":{"estimate":400100.1674107143,"lower_bound":393066.34449404763,"upper_bound":407903.2492559524,"unit":"ns"},"median_abs_dev":{"estimate":9231.821856414957,"lower_bound":1290.517233338733,"upper_bound":22198.63721122384,"unit":"ns"},"slope":{"estimate":410802.8950950835,"lower_bound":394445.8379796935,"upper_bound":426719.93732814735,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000000","EXACT/exact_decrypt/eql_cast/10000000","EXACT/exact/eql_hash/10000000","EXACT/exact_decrypt/eql_hash/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/group_by_rows_10000.json b/results/query/group_by_rows_10000.json index 75527f7..59127d5 100644 --- a/results/query/group_by_rows_10000.json +++ b/results/query/group_by_rows_10000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_10000","iteration_count":[36,72,108,144,180,216,252,288,324,360],"measured_values":[91988458.0,195456625.0,268968584.0,401485083.0,466407542.0,554994708.0,658303708.0,722662625.0,905021875.0,900919625.0],"unit":"ns","throughput":[],"typical":{"estimate":2604731.1566378064,"lower_bound":2526196.759729272,"upper_bound":2713124.618955801,"unit":"ns"},"mean":{"estimate":2612641.7386386683,"lower_bound":2549709.74794957,"upper_bound":2682058.418896605,"unit":"ns"},"median":{"estimate":2580286.4777777777,"lower_bound":2509245.2256944445,"upper_bound":2714675.347222222,"unit":"ns"},"median_abs_dev":{"estimate":110285.58304224761,"lower_bound":17946.371617499735,"upper_bound":188569.36825477044,"unit":"ns"},"slope":{"estimate":2604731.1566378064,"lower_bound":2526196.759729272,"upper_bound":2713124.618955801,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_10000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[85361083.0,204149625.0,269259250.0,343580709.0,438174209.0,510711917.0,633174000.0,737631750.0,775936458.0,874722792.0],"unit":"ns","throughput":[],"typical":{"estimate":1424165.5428571429,"lower_bound":1397850.1880379696,"upper_bound":1458381.4691629957,"unit":"ns"},"mean":{"estimate":1439004.0149001537,"lower_bound":1398727.2186465056,"upper_bound":1492951.1726385367,"unit":"ns"},"median":{"estimate":1412154.2016129033,"lower_bound":1383679.3951612904,"upper_bound":1467395.5813172045,"unit":"ns"},"median_abs_dev":{"estimate":52512.738537067395,"lower_bound":9284.476449280523,"upper_bound":96801.49487780103,"unit":"ns"},"slope":{"estimate":1424165.5428571429,"lower_bound":1397850.1880379696,"upper_bound":1458381.4691629957,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_10000","iteration_count":[33,66,99,132,165,198,231,264,297,330],"measured_values":[99136083.0,181717041.0,271579250.0,347354709.0,425327375.0,550124084.0,608875709.0,696998667.0,789057375.0,920706500.0],"unit":"ns","throughput":[],"typical":{"estimate":2695065.6280204644,"lower_bound":2638354.7555903867,"upper_bound":2752993.8873430877,"unit":"ns"},"mean":{"estimate":2721100.875559163,"lower_bound":2655990.2787157292,"upper_bound":2798608.429267676,"unit":"ns"},"median":{"estimate":2699991.7929292927,"lower_bound":2635810.7670454546,"upper_bound":2778404.4646464647,"unit":"ns"},"median_abs_dev":{"estimate":98357.85988940451,"lower_bound":7460.25961452413,"upper_bound":192666.55379198492,"unit":"ns"},"slope":{"estimate":2695065.6280204644,"lower_bound":2638354.7555903867,"upper_bound":2752993.8873430877,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_10000","iteration_count":[59,118,177,236,295,354,413,472,531,590],"measured_values":[93392375.0,181769417.0,266154167.0,345692459.0,427384375.0,518270208.0,677911875.0,701348417.0,930560708.0,877597666.0],"unit":"ns","throughput":[],"typical":{"estimate":1558084.9730134273,"lower_bound":1476328.885478699,"upper_bound":1657456.0115979556,"unit":"ns"},"mean":{"estimate":1537189.8363310464,"lower_bound":1486487.0023833232,"upper_bound":1598698.7693818938,"unit":"ns"},"median":{"estimate":1495574.7649717513,"lower_bound":1464798.5550847459,"upper_bound":1590925.9497578694,"unit":"ns"},"median_abs_dev":{"estimate":56619.494124464094,"lower_bound":12451.157278100494,"upper_bound":144125.58343723376,"unit":"ns"},"slope":{"estimate":1558084.9730134273,"lower_bound":1476328.885478699,"upper_bound":1657456.0115979556,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_10000","iteration_count":[34,68,102,136,170,204,238,272,306,340],"measured_values":[85553375.0,171206542.0,260006458.0,412368750.0,471071458.0,629587958.0,607270833.0,691034375.0,918281625.0,920446167.0],"unit":"ns","throughput":[],"typical":{"estimate":2768411.993659282,"lower_bound":2620947.196028179,"upper_bound":2933898.1619242057,"unit":"ns"},"mean":{"estimate":2727268.9769152664,"lower_bound":2598893.5887044817,"upper_bound":2866940.8239460783,"unit":"ns"},"median":{"estimate":2629376.3653361346,"lower_bound":2533413.093137255,"upper_bound":3000920.343137255,"unit":"ns"},"median_abs_dev":{"estimate":166595.11158969864,"lower_bound":8147.306951312775,"upper_bound":358179.1618822252,"unit":"ns"},"slope":{"estimate":2768411.993659282,"lower_bound":2620947.196028179,"upper_bound":2933898.1619242057,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_10000","iteration_count":[61,122,183,244,305,366,427,488,549,610],"measured_values":[97692250.0,200143042.0,278411083.0,355983667.0,468607417.0,546215458.0,635268375.0,729563708.0,761541500.0,888017583.0],"unit":"ns","throughput":[],"typical":{"estimate":1464548.1670427932,"lower_bound":1430256.5114684487,"upper_bound":1504736.3693301366,"unit":"ns"},"mean":{"estimate":1507682.5314298724,"lower_bound":1465711.8025591986,"upper_bound":1551864.0016912569,"unit":"ns"},"median":{"estimate":1493699.7800546447,"lower_bound":1458949.4549180327,"upper_bound":1561442.1666666667,"unit":"ns"},"median_abs_dev":{"estimate":53880.33369728514,"lower_bound":5381.576626589165,"upper_bound":126233.89500056743,"unit":"ns"},"slope":{"estimate":1464548.1670427932,"lower_bound":1430256.5114684487,"upper_bound":1504736.3693301366,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_10000","iteration_count":[34,68,102,136,170,204,238,272,306,340],"measured_values":[92583166.0,179758334.0,330706875.0,450811708.0,532411959.0,561462125.0,634575167.0,729335667.0,826571791.0,958434625.0],"unit":"ns","throughput":[],"typical":{"estimate":2794385.310160428,"lower_bound":2717159.333094742,"upper_bound":2930318.948106892,"unit":"ns"},"mean":{"estimate":2867545.952662232,"lower_bound":2727751.2079960317,"upper_bound":3027984.2645339924,"unit":"ns"},"median":{"estimate":2737649.8063725494,"lower_bound":2681381.1286764704,"upper_bound":3131835.0529411766,"unit":"ns"},"median_abs_dev":{"estimate":113154.36757787323,"lower_bound":28077.639098213174,"upper_bound":414545.57630512444,"unit":"ns"},"slope":{"estimate":2794385.310160428,"lower_bound":2717159.333094742,"upper_bound":2930318.948106892,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_10000","iteration_count":[60,120,180,240,300,360,420,480,540,600],"measured_values":[88672708.0,174902583.0,289230500.0,383723333.0,481973500.0,582998459.0,817059375.0,796312917.0,818116333.0,960387250.0],"unit":"ns","throughput":[],"typical":{"estimate":1636612.961818182,"lower_bound":1558251.42009901,"upper_bound":1754480.9929153924,"unit":"ns"},"mean":{"estimate":1608714.219183201,"lower_bound":1539602.2337962962,"upper_bound":1698270.687688492,"unit":"ns"},"median":{"estimate":1603611.875,"lower_bound":1515030.2462962964,"upper_bound":1632910.6774305555,"unit":"ns"},"median_abs_dev":{"estimate":52781.78787064422,"lower_bound":4589.161710192626,"upper_bound":178834.76706504807,"unit":"ns"},"slope":{"estimate":1636612.961818182,"lower_bound":1558251.42009901,"upper_bound":1754480.9929153924,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/low_cardinality_groups_encrypted/10000","GROUP_BY/group_by/low_cardinality_groups_plaintext/10000","GROUP_BY/group_by/top_n_groups_encrypted/10000","GROUP_BY/group_by/top_n_groups_plaintext/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_100000.json b/results/query/group_by_rows_100000.json index 8e10535..b95c6ca 100644 --- a/results/query/group_by_rows_100000.json +++ b/results/query/group_by_rows_100000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[113679333.0,229558917.0,346893083.0,453830916.0,560018833.0,702506292.0,867565083.0,945768750.0,1110376083.0,1177259917.0],"unit":"ns","throughput":[],"typical":{"estimate":29772091.87987013,"lower_bound":29051233.65140643,"upper_bound":30392888.14090909,"unit":"ns"},"mean":{"estimate":29247394.28875,"lower_bound":28693175.679166667,"upper_bound":29866961.90083333,"unit":"ns"},"median":{"estimate":29089426.208333336,"lower_bound":28419833.25,"upper_bound":30137639.004166666,"unit":"ns"},"median_abs_dev":{"estimate":841701.796050556,"lower_bound":208582.78959691708,"upper_bound":1796871.7556491485,"unit":"ns"},"slope":{"estimate":29772091.87987013,"lower_bound":29051233.65140643,"upper_bound":30392888.14090909,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_100000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[97312042.0,198201959.0,300188417.0,416788000.0,502233500.0,576191125.0,714113417.0,815159209.0,879460542.0,970984084.0],"unit":"ns","throughput":[],"typical":{"estimate":9915532.667532468,"lower_bound":9761307.980727956,"upper_bound":10143085.461699184,"unit":"ns"},"mean":{"estimate":9958787.312869048,"lower_bound":9808270.872952381,"upper_bound":10114145.672321428,"unit":"ns"},"median":{"estimate":9958189.258333333,"lower_bound":9731204.2,"upper_bound":10189490.1125,"unit":"ns"},"median_abs_dev":{"estimate":339727.34090488515,"lower_bound":45918.315432787604,"upper_bound":448664.3206383655,"unit":"ns"},"slope":{"estimate":9915532.667532468,"lower_bound":9761307.980727956,"upper_bound":10143085.461699184,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[110845917.0,227097458.0,345157292.0,469219833.0,633803750.0,709241791.0,820501166.0,929714667.0,1036978500.0,1139476084.0],"unit":"ns","throughput":[],"typical":{"estimate":29097827.516233765,"lower_bound":28727454.809322033,"upper_bound":29797244.221098267,"unit":"ns"},"mean":{"estimate":29107899.436934523,"lower_bound":28562223.044937503,"upper_bound":29797116.552537944,"unit":"ns"},"median":{"estimate":28929270.838541664,"lower_bound":28486902.1,"upper_bound":29427677.18154762,"unit":"ns"},"median_abs_dev":{"estimate":622200.8499049757,"lower_bound":183937.44639696163,"upper_bound":1354393.0799347155,"unit":"ns"},"slope":{"estimate":29097827.516233765,"lower_bound":28727454.809322033,"upper_bound":29797244.221098267,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_100000","iteration_count":[9,18,27,36,45,54,63,72,81,90],"measured_values":[92935875.0,192073542.0,273620458.0,376508500.0,479038000.0,561697500.0,638258916.0,762104250.0,835612667.0,910486250.0],"unit":"ns","throughput":[],"typical":{"estimate":10320166.305339105,"lower_bound":10191206.142504409,"upper_bound":10497505.140296979,"unit":"ns"},"mean":{"estimate":10378531.04016755,"lower_bound":10254394.339467593,"upper_bound":10503585.855864197,"unit":"ns"},"median":{"estimate":10364006.944444444,"lower_bound":10134091.037037037,"upper_bound":10584781.25,"unit":"ns"},"median_abs_dev":{"estimate":334096.64893804304,"lower_bound":15251.713807006689,"upper_bound":377759.25901935936,"unit":"ns"},"slope":{"estimate":10320166.305339105,"lower_bound":10191206.142504409,"upper_bound":10497505.140296979,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120182458.0,227850667.0,382197500.0,452489792.0,522169875.0,684518000.0,713885250.0,773198208.0,894605250.0,1021482000.0],"unit":"ns","throughput":[],"typical":{"estimate":25778858.765584417,"lower_bound":25049542.33182731,"upper_bound":27166761.407232706,"unit":"ns"},"mean":{"estimate":27333297.024404764,"lower_bound":25934033.666815475,"upper_bound":28824584.945833337,"unit":"ns"},"median":{"estimate":27194552.875,"lower_bound":25193597.916666664,"upper_bound":29263473.9375,"unit":"ns"},"median_abs_dev":{"estimate":2487916.8895556447,"lower_bound":178632.0462286463,"upper_bound":4395031.747860085,"unit":"ns"},"slope":{"estimate":25778858.765584417,"lower_bound":25049542.33182731,"upper_bound":27166761.407232706,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_100000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[98176666.0,197353167.0,292479291.0,385008125.0,470750000.0,586870250.0,689746833.0,752345209.0,857049583.0,988499292.0],"unit":"ns","throughput":[],"typical":{"estimate":9670325.595584415,"lower_bound":9504531.543639153,"upper_bound":9824569.788711706,"unit":"ns"},"mean":{"estimate":9692161.597099207,"lower_bound":9578866.077131944,"upper_bound":9796420.096741669,"unit":"ns"},"median":{"estimate":9765240.266666666,"lower_bound":9520101.5625,"upper_bound":9853526.185714286,"unit":"ns"},"median_abs_dev":{"estimate":164695.16416707748,"lower_bound":25700.233025730096,"upper_bound":311647.1475921571,"unit":"ns"},"slope":{"estimate":9670325.595584415,"lower_bound":9504531.543639153,"upper_bound":9824569.788711706,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[109242792.0,235555917.0,387093083.0,498659125.0,522243083.0,600860125.0,718247333.0,882676333.0,986063833.0,1035897292.0],"unit":"ns","throughput":[],"typical":{"estimate":26802166.202597402,"lower_bound":26024370.68494777,"upper_bound":27900796.096813727,"unit":"ns"},"mean":{"estimate":27785055.27441468,"lower_bound":26450109.364138644,"upper_bound":29281158.690694444,"unit":"ns"},"median":{"estimate":27350680.013888888,"lower_bound":25881922.307142854,"upper_bound":29444489.625,"unit":"ns"},"median_abs_dev":{"estimate":2336753.4419409996,"lower_bound":202328.49566107616,"upper_bound":3932052.0148389973,"unit":"ns"},"slope":{"estimate":26802166.202597402,"lower_bound":26024370.68494777,"upper_bound":27900796.096813727,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_100000","iteration_count":[9,18,27,36,45,54,63,72,81,90],"measured_values":[89829792.0,178766167.0,269837000.0,376179375.0,453549209.0,556424917.0,649650917.0,717962666.0,818612875.0,932561500.0],"unit":"ns","throughput":[],"typical":{"estimate":10202676.708513709,"lower_bound":10071385.97891963,"upper_bound":10319883.077687444,"unit":"ns"},"mean":{"estimate":10149071.745573193,"lower_bound":10041637.810943563,"upper_bound":10262949.249232803,"unit":"ns"},"median":{"estimate":10092601.550617285,"lower_bound":9981088.0,"upper_bound":10332979.787037037,"unit":"ns"},"median_abs_dev":{"estimate":209080.4622582671,"lower_bound":16500.795459830202,"upper_bound":313251.8721627416,"unit":"ns"},"slope":{"estimate":10202676.708513709,"lower_bound":10071385.97891963,"upper_bound":10319883.077687444,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/low_cardinality_groups_encrypted/100000","GROUP_BY/group_by/low_cardinality_groups_plaintext/100000","GROUP_BY/group_by/top_n_groups_encrypted/100000","GROUP_BY/group_by/top_n_groups_plaintext/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_1000000.json b/results/query/group_by_rows_1000000.json index 7bc520d..e9589f8 100644 --- a/results/query/group_by_rows_1000000.json +++ b/results/query/group_by_rows_1000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_1000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[93405292.0,189117208.0,280829542.0,373702625.0,460283541.0,557063417.0,658897917.0,755014875.0,834733666.0,930283250.0],"unit":"ns","throughput":[],"typical":{"estimate":93300199.88051948,"lower_bound":92822606.07234727,"upper_bound":93906599.81767084,"unit":"ns"},"mean":{"estimate":93418165.39599207,"lower_bound":92952403.40944445,"upper_bound":93872214.04916666,"unit":"ns"},"median":{"estimate":93415474.125,"lower_bound":92843902.83333333,"upper_bound":94128273.85714285,"unit":"ns"},"median_abs_dev":{"estimate":918367.1282040662,"lower_bound":151636.8659079038,"upper_bound":1351338.514508936,"unit":"ns"},"slope":{"estimate":93300199.88051948,"lower_bound":92822606.07234727,"upper_bound":93906599.81767084,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[108842583.0,217438458.0,319358917.0,427207792.0,525743750.0,654958916.0,791166041.0,858827375.0,965721041.0,1083424459.0],"unit":"ns","throughput":[],"typical":{"estimate":36107025.896103896,"lower_bound":35689502.91479938,"upper_bound":36668647.71442495,"unit":"ns"},"mean":{"estimate":36038240.915780425,"lower_bound":35656725.94435185,"upper_bound":36486797.59068387,"unit":"ns"},"median":{"estimate":35949311.295833334,"lower_bound":35600649.333333336,"upper_bound":36313174.722222224,"unit":"ns"},"median_abs_dev":{"estimate":504240.89954793267,"lower_bound":108869.86943384257,"upper_bound":1008481.7990958653,"unit":"ns"},"slope":{"estimate":36107025.896103896,"lower_bound":35689502.91479938,"upper_bound":36668647.71442495,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_1000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[93738167.0,191265541.0,284848167.0,380612708.0,470314250.0,575247166.0,667095292.0,752894209.0,841390458.0,932468125.0],"unit":"ns","throughput":[],"typical":{"estimate":94146324.45714286,"lower_bound":93601674.27976191,"upper_bound":95086951.82918149,"unit":"ns"},"mean":{"estimate":94555662.58869047,"lower_bound":94008724.1475,"upper_bound":95106161.31520833,"unit":"ns"},"median":{"estimate":94530582.5625,"lower_bound":93738167.0,"upper_bound":95392973.75,"unit":"ns"},"median_abs_dev":{"estimate":1157288.2051540304,"lower_bound":259409.35249456653,"upper_bound":1521529.2895374584,"unit":"ns"},"slope":{"estimate":94146324.45714286,"lower_bound":93601674.27976191,"upper_bound":95086951.82918149,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[113915167.0,222917042.0,333246500.0,451843542.0,555447792.0,666167250.0,800078833.0,892618709.0,998159209.0,1110697375.0],"unit":"ns","throughput":[],"typical":{"estimate":37206072.3056277,"lower_bound":37018206.686286084,"upper_bound":37569397.98837079,"unit":"ns"},"mean":{"estimate":37312826.82041005,"lower_bound":37080131.3550926,"upper_bound":37582832.80734126,"unit":"ns"},"median":{"estimate":37091346.56666666,"lower_bound":37018340.277777776,"upper_bound":37653628.5,"unit":"ns"},"median_abs_dev":{"estimate":135772.4593270607,"lower_bound":6142.494057610688,"upper_bound":660295.9839773987,"unit":"ns"},"slope":{"estimate":37206072.3056277,"lower_bound":37018206.686286084,"upper_bound":37569397.98837079,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_1000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[91807875.0,181678750.0,298732125.0,370949375.0,465330666.0,1596057458.0,1078899500.0,745505000.0,910224125.0,1635991958.0],"unit":"ns","throughput":[],"typical":{"estimate":137159559.82597402,"lower_bound":98389810.09469697,"upper_bound":176448418.26509187,"unit":"ns"},"mean":{"estimate":124608951.29722221,"lower_bound":96314736.32122223,"upper_bound":161712298.90654153,"unit":"ns"},"median":{"estimate":96382750.0,"lower_bound":92437004.1,"upper_bound":154128500.0,"unit":"ns"},"median_abs_dev":{"estimate":6914949.235568449,"lower_bound":424596.6544269114,"upper_bound":80877496.48913741,"unit":"ns"},"slope":{"estimate":137159559.82597402,"lower_bound":98389810.09469697,"upper_bound":176448418.26509187,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[94020167.0,146903625.0,238489334.0,299776000.0,431504666.0,473521583.0,531436458.0,753184292.0,657080542.0,727156458.0],"unit":"ns","throughput":[],"typical":{"estimate":39262170.45064935,"lower_bound":36931330.39702233,"upper_bound":43204644.75605536,"unit":"ns"},"mean":{"estimate":40146287.33055556,"lower_bound":37871365.93744444,"upper_bound":42734310.04333333,"unit":"ns"},"median":{"estimate":38709939.45833333,"lower_bound":36725906.25,"upper_bound":43379152.91666667,"unit":"ns"},"median_abs_dev":{"estimate":3105674.8946299106,"lower_bound":328294.6243549436,"upper_bound":6953555.265796385,"unit":"ns"},"slope":{"estimate":39262170.45064935,"lower_bound":36931330.39702233,"upper_bound":43204644.75605536,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_1000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[92915209.0,192756750.0,283755083.0,399292875.0,488676458.0,581079916.0,664538375.0,753644291.0,853289375.0,964962042.0],"unit":"ns","throughput":[],"typical":{"estimate":95758116.86233766,"lower_bound":94905681.13740458,"upper_bound":96835998.41392833,"unit":"ns"},"mean":{"estimate":95872949.93853174,"lower_bound":94756176.70087896,"upper_bound":97089360.7308125,"unit":"ns"},"median":{"estimate":95656214.28571428,"lower_bound":94507733.46527778,"upper_bound":97115747.9,"unit":"ns"},"median_abs_dev":{"estimate":1676542.5827354193,"lower_bound":258732.89860657704,"upper_bound":3375669.156382403,"unit":"ns"},"slope":{"estimate":95758116.86233766,"lower_bound":94905681.13740458,"upper_bound":96835998.41392833,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[111430792.0,226973375.0,341314875.0,455492834.0,583437834.0,672188084.0,790675292.0,1068964292.0,1073733833.0,1141009042.0],"unit":"ns","throughput":[],"typical":{"estimate":39412768.375757575,"lower_bound":37819700.0098401,"upper_bound":41567635.399683245,"unit":"ns"},"mean":{"estimate":38708668.006613754,"lower_bound":37722722.65822884,"upper_bound":40153613.415513225,"unit":"ns"},"median":{"estimate":37940805.58333333,"lower_bound":37586339.138888896,"upper_bound":38900777.23703703,"unit":"ns"},"median_abs_dev":{"estimate":657254.6125147219,"lower_bound":81364.88887549072,"upper_bound":1877368.854050032,"unit":"ns"},"slope":{"estimate":39412768.375757575,"lower_bound":37819700.0098401,"upper_bound":41567635.399683245,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/low_cardinality_groups_encrypted/1000000","GROUP_BY/group_by/low_cardinality_groups_plaintext/1000000","GROUP_BY/group_by/top_n_groups_encrypted/1000000","GROUP_BY/group_by/top_n_groups_plaintext/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_10000000.json b/results/query/group_by_rows_10000000.json index 011ac07..6b12864 100644 --- a/results/query/group_by_rows_10000000.json +++ b/results/query/group_by_rows_10000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[2282320333.0,2223679875.0,2135665333.0,2108067625.0,1447996125.0,1264820667.0,1297686417.0,1382452833.0,1284177042.0,1266832833.0],"unit":"ns","throughput":[],"typical":{"estimate":1669369908.3,"lower_bound":1406129304.1,"upper_bound":1940243458.2,"unit":"ns"},"mean":{"estimate":1669369908.3,"lower_bound":1406129304.1,"upper_bound":1940243458.2,"unit":"ns"},"median":{"estimate":1415224479.0,"lower_bound":1282259625.0,"upper_bound":2165873750.0,"unit":"ns"},"median_abs_dev":{"estimate":221497069.08304095,"lower_bound":20028999.019414186,"upper_bound":709304954.5669198,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[536556959.0,725182792.0,543144959.0,556719041.0,535736125.0,546697000.0,534537416.0,540182292.0,525512333.0,534422959.0],"unit":"ns","throughput":[],"typical":{"estimate":557869187.6,"lower_bound":535490400.0,"upper_bound":596728984.3475,"unit":"ns"},"mean":{"estimate":557869187.6,"lower_bound":535490400.0,"upper_bound":596728984.3475,"unit":"ns"},"median":{"estimate":538369625.5,"lower_bound":534537416.0,"upper_bound":549932000.0,"unit":"ns"},"median_abs_dev":{"estimate":6465618.485212326,"lower_bound":1058296.911111474,"upper_bound":20797478.770270944,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1308763750.0,1338264708.0,1299100750.0,1352410291.0,1407803625.0,1422844584.0,1401692417.0,1322723125.0,1379087667.0,1288296334.0],"unit":"ns","throughput":[],"typical":{"estimate":1352098725.1,"lower_bound":1324117151.9775,"upper_bound":1380946968.4975,"unit":"ns"},"mean":{"estimate":1352098725.1,"lower_bound":1324117151.9775,"upper_bound":1380946968.4975,"unit":"ns"},"median":{"estimate":1345337499.5,"lower_bound":1308763750.0,"upper_bound":1401692417.0,"unit":"ns"},"median_abs_dev":{"estimate":61387421.818855405,"lower_bound":15172495.211434364,"upper_bound":79036724.08341765,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[568703916.0,573948709.0,589475250.0,644714750.0,555414459.0,769295916.0,586040667.0,584806500.0,569942958.0,562132834.0],"unit":"ns","throughput":[],"typical":{"estimate":600447595.9,"lower_bound":571101882.1,"upper_bound":643323703.6875,"unit":"ns"},"mean":{"estimate":600447595.9,"lower_bound":571101882.1,"upper_bound":643323703.6875,"unit":"ns"},"median":{"estimate":579377604.5,"lower_bound":566037896.0,"upper_bound":615377708.5,"unit":"ns"},"median_abs_dev":{"estimate":15397789.620834589,"lower_bound":3460944.313555956,"upper_bound":52458865.26196897,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_encrypted/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_encrypted_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[2233089833.0,2009730000.0,1336109166.0,1284293209.0,1309175750.0,1287950750.0,1277164416.0,1295465709.0,1365978042.0,1256754583.0],"unit":"ns","throughput":[],"typical":{"estimate":1465571145.8,"lower_bound":1293736333.4,"upper_bound":1694576195.9,"unit":"ns"},"mean":{"estimate":1465571145.8,"lower_bound":1293736333.4,"upper_bound":1694576195.9,"unit":"ns"},"median":{"estimate":1302320729.5,"lower_bound":1282557583.0,"upper_bound":1672919583.0,"unit":"ns"},"median_abs_dev":{"estimate":43695742.3992455,"lower_bound":8282174.102962017,"upper_bound":499355115.37887454,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/low_cardinality_groups_plaintext/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_low_cardinality_groups_plaintext_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[428560541.0,429533542.0,433347542.0,429138458.0,427634166.0,428794625.0,437798167.0,431361125.0,429356583.0,429225208.0],"unit":"ns","throughput":[],"typical":{"estimate":430474995.7,"lower_bound":428962199.6,"upper_bound":432464120.6675,"unit":"ns"},"mean":{"estimate":430474995.7,"lower_bound":428962199.6,"upper_bound":432464120.6675,"unit":"ns"},"median":{"estimate":429290895.5,"lower_bound":428794625.0,"upper_bound":431440542.0,"unit":"ns"},"median_abs_dev":{"estimate":909297.0963567495,"lower_bound":161696.0596293211,"upper_bound":3877926.297453046,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_encrypted/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_encrypted_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1279084625.0,1525057667.0,1253108417.0,1248775125.0,1226363417.0,1238075166.0,1252042834.0,1375722000.0,1378001166.0,1339752625.0],"unit":"ns","throughput":[],"typical":{"estimate":1311598304.2,"lower_bound":1262254388.5775,"upper_bound":1371546541.6,"unit":"ns"},"mean":{"estimate":1311598304.2,"lower_bound":1262254388.5775,"upper_bound":1371546541.6,"unit":"ns"},"median":{"estimate":1266096521.0,"lower_bound":1245059000.0,"upper_bound":1375722000.0,"unit":"ns"},"median_abs_dev":{"estimate":50226379.565003514,"lower_bound":3379091.4516091347,"upper_bound":161547336.31946146,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/top_n_groups_plaintext/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_top_n_groups_plaintext_10000000","iteration_count":[2,2,2,2,2,2,2,2,2,2],"measured_values":[924582125.0,924613625.0,918011875.0,956007833.0,916910958.0,923533542.0,925552750.0,913883084.0,914487292.0,917499625.0],"unit":"ns","throughput":[],"typical":{"estimate":461754135.45,"lower_bound":458941653.585,"upper_bound":465812200.0,"unit":"ns"},"mean":{"estimate":461754135.45,"lower_bound":458941653.585,"upper_bound":465812200.0,"unit":"ns"},"median":{"estimate":460386354.25,"lower_bound":457996729.25,"upper_bound":462533718.75,"unit":"ns"},"median_abs_dev":{"estimate":2854993.472863734,"lower_bound":371437.62465566397,"upper_bound":6012205.313462019,"unit":"ns"},"slope":null,"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/low_cardinality_groups_encrypted/10000000","GROUP_BY/group_by/low_cardinality_groups_plaintext/10000000","GROUP_BY/group_by/top_n_groups_encrypted/10000000","GROUP_BY/group_by/top_n_groups_plaintext/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/match_metadata_10000.json b/results/query/match_metadata_10000.json index 4e2da23..d5e6f61 100644 --- a/results/query/match_metadata_10000.json +++ b/results/query/match_metadata_10000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1164,1603,1555,36,10}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{36,1603,1164,10,1555,1789}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 56.22 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1164,1603,1555,36,10}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{36,1603,1164,10,1555,1789}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 56.22, "Total Cost": 60.73 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 1789, - 1164, + 36, 1603, + 1164, + 10, 1555, - 36, - 10 + 1789 ], "i": { "c": "value", @@ -65,7 +65,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 }, { "explain": [ @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,523,2024,1098,835,1967,1665,1196,242,461,518,574,513,1987,1846,702,543,1381,1061,1609,44,1988,820,1185,765,450,97,1659,1715}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1381,1185,1609,835,1715,513,1967,543,461,1098,237,523,1987,820,1196,1846,1665,242,765,290,1061,702,44,1659,97,574,518,2024,450,1988}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -99,7 +99,7 @@ "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,523,2024,1098,835,1967,1665,1196,242,461,518,574,513,1987,1846,702,543,1381,1061,1609,44,1988,820,1185,765,450,97,1659,1715}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1381,1185,1609,835,1715,513,1967,543,461,1098,237,523,1987,820,1196,1846,1665,242,765,290,1061,702,44,1659,97,574,518,2024,450,1988}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ - 290, - 237, - 523, - 2024, - 1098, + 1381, + 1185, + 1609, 835, + 1715, + 513, 1967, - 1665, - 1196, - 242, + 543, 461, - 518, - 574, - 513, + 1098, + 237, + 523, 1987, + 820, + 1196, 1846, - 702, - 543, - 1381, + 1665, + 242, + 765, + 290, 1061, - 1609, + 702, 44, - 1988, - 820, - 1185, - 765, - 450, - 97, 1659, - 1715 + 97, + 574, + 518, + 2024, + 450, + 1988 ], "i": { "c": "value", @@ -156,7 +156,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 }, { "explain": [ @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1967,1061,1185,97,242,237,702,820,1987,1659,1098,2024,1665,44,523,1715,461,1196,450,835,765,543,1846,1988,518,290,1381,574,1609,513}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1196,1659,2024,543,1967,518,1381,242,1185,450,290,835,820,1987,765,1846,237,461,44,1609,523,1715,1988,1098,702,97,574,1665,1061,513}'::smallint[])", "Index Name": "string_encrypted_10000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -190,7 +190,7 @@ "Total Cost": 264.6 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1967,1061,1185,97,242,237,702,820,1987,1659,1098,2024,1665,44,523,1715,461,1196,450,835,765,543,1846,1988,518,290,1381,574,1609,513}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1196,1659,2024,543,1967,518,1381,242,1185,450,290,835,820,1987,765,1846,237,461,44,1609,523,1715,1988,1098,702,97,574,1665,1061,513}'::smallint[])", "Relation Name": "string_encrypted_10000", "Startup Cost": 264.6, "Total Cost": 269.11 @@ -208,35 +208,35 @@ "parameters": [ { "bf": [ + 1196, + 1659, + 2024, + 543, 1967, - 1061, - 1185, - 97, + 518, + 1381, 242, - 237, - 702, + 1185, + 450, + 290, + 835, 820, 1987, - 1659, - 1098, - 2024, - 1665, + 765, + 1846, + 237, + 461, 44, + 1609, 523, 1715, - 461, - 1196, - 450, - 835, - 765, - 543, - 1846, 1988, - 518, - 290, - 1381, + 1098, + 702, + 97, 574, - 1609, + 1665, + 1061, 513 ], "i": { @@ -247,7 +247,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_10000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 } ], "target_rows": "10000" diff --git a/results/query/match_metadata_100000.json b/results/query/match_metadata_100000.json index 0e0184f..b69b72a 100644 --- a/results/query/match_metadata_100000.json +++ b/results/query/match_metadata_100000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1603,10,1789,1555,1164,36}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,36,1555,1789,1603,10}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1603,10,1789,1555,1164,36}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,36,1555,1789,1603,10}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 1603, - 10, - 1789, - 1555, 1164, - 36 + 36, + 1555, + 1789, + 1603, + 10 ], "i": { "c": "value", @@ -65,7 +65,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 }, { "explain": [ @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{513,1967,574,523,97,1987,820,242,765,290,1098,1196,450,543,835,1988,44,1846,518,237,1659,1609,1381,1061,1665,1185,702,2024,1715,461}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1659,513,820,290,1196,237,242,1061,450,543,1665,765,835,1609,1185,1381,461,574,1988,1967,1846,523,97,44,1715,518,1987,2024,1098,702}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -96,17 +96,17 @@ "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 454.35 + "Total Cost": 458.47 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{513,1967,574,523,97,1987,820,242,765,290,1098,1196,450,543,835,1988,44,1846,518,237,1659,1609,1381,1061,1665,1185,702,2024,1715,461}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1659,513,820,290,1196,237,242,1061,450,543,1665,765,835,1609,1185,1381,461,574,1988,1967,1846,523,97,44,1715,518,1987,2024,1098,702}'::smallint[])", "Relation Name": "string_encrypted_100000", - "Startup Cost": 454.35, - "Total Cost": 458.86 + "Startup Cost": 458.48, + "Total Cost": 462.99 } ], - "Startup Cost": 454.35, - "Total Cost": 458.86 + "Startup Cost": 458.48, + "Total Cost": 462.99 } } ], @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ + 1659, 513, - 1967, - 574, - 523, - 97, - 1987, 820, - 242, - 765, 290, - 1098, 1196, + 237, + 242, + 1061, 450, 543, + 1665, + 765, 835, + 1609, + 1185, + 1381, + 461, + 574, 1988, - 44, + 1967, 1846, + 523, + 97, + 44, + 1715, 518, - 237, - 1659, - 1609, - 1381, - 1061, - 1665, - 1185, - 702, + 1987, 2024, - 1715, - 461 + 1098, + 702 ], "i": { "c": "value", @@ -156,7 +156,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 }, { "explain": [ @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{44,1098,1381,290,237,461,1609,242,1665,1715,1967,1988,2024,1196,1846,1659,1061,1987,450,1185,97,820,523,765,543,513,702,518,574,835}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,835,702,523,1061,518,290,242,1846,1659,1185,97,1609,1987,1988,450,1098,1381,1967,513,461,1665,543,44,1196,574,765,237,2024,1715}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -187,17 +187,17 @@ "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 454.35 + "Total Cost": 458.47 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{44,1098,1381,290,237,461,1609,242,1665,1715,1967,1988,2024,1196,1846,1659,1061,1987,450,1185,97,820,523,765,543,513,702,518,574,835}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,835,702,523,1061,518,290,242,1846,1659,1185,97,1609,1987,1988,450,1098,1381,1967,513,461,1665,543,44,1196,574,765,237,2024,1715}'::smallint[])", "Relation Name": "string_encrypted_100000", - "Startup Cost": 454.35, - "Total Cost": 458.86 + "Startup Cost": 458.48, + "Total Cost": 462.99 } ], - "Startup Cost": 454.35, - "Total Cost": 458.86 + "Startup Cost": 458.48, + "Total Cost": 462.99 } } ], @@ -208,36 +208,36 @@ "parameters": [ { "bf": [ - 44, - 1098, - 1381, + 820, + 835, + 702, + 523, + 1061, + 518, 290, - 237, - 461, - 1609, 242, - 1665, - 1715, - 1967, - 1988, - 2024, - 1196, 1846, 1659, - 1061, - 1987, - 450, 1185, 97, - 820, - 523, - 765, - 543, + 1609, + 1987, + 1988, + 450, + 1098, + 1381, + 1967, 513, - 702, - 518, + 461, + 1665, + 543, + 44, + 1196, 574, - 835 + 765, + 237, + 2024, + 1715 ], "i": { "c": "value", @@ -247,7 +247,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_100000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 } ], "target_rows": "100000" diff --git a/results/query/match_metadata_1000000.json b/results/query/match_metadata_1000000.json index 67499fe..970c969 100644 --- a/results/query/match_metadata_1000000.json +++ b/results/query/match_metadata_1000000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,1789,1603,36,1555,10}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,36,1164,10,1555,1603}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 307.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,1789,1603,36,1555,10}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,36,1164,10,1555,1603}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 307.85, "Total Cost": 312.36 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 1164, 1789, - 1603, 36, + 1164, + 10, 1555, - 10 + 1603 ], "i": { "c": "value", @@ -65,7 +65,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 }, { "explain": [ @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,702,461,543,1098,44,523,1665,518,450,2024,1987,242,1609,1185,1967,1196,1381,835,765,1846,1659,1061,820,1988,574,513,97,1715}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1061,1967,702,820,1988,835,523,290,237,1098,1185,1715,574,1665,97,44,1659,450,765,513,1987,242,518,2024,1846,543,1609,1196,1381,461}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -96,17 +96,17 @@ "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 1530.98 + "Total Cost": 1526.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{290,237,702,461,543,1098,44,523,1665,518,450,2024,1987,242,1609,1185,1967,1196,1381,835,765,1846,1659,1061,820,1988,574,513,97,1715}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1061,1967,702,820,1988,835,523,290,237,1098,1185,1715,574,1665,97,44,1659,450,765,513,1987,242,518,2024,1846,543,1609,1196,1381,461}'::smallint[])", "Relation Name": "string_encrypted_1000000", - "Startup Cost": 1530.98, - "Total Cost": 1535.49 + "Startup Cost": 1526.85, + "Total Cost": 1531.36 } ], - "Startup Cost": 1530.98, - "Total Cost": 1535.49 + "Startup Cost": 1526.85, + "Total Cost": 1531.36 } } ], @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ + 1061, + 1967, + 702, + 820, + 1988, + 835, + 523, 290, 237, - 702, - 461, - 543, 1098, - 44, - 523, + 1185, + 1715, + 574, 1665, - 518, + 97, + 44, + 1659, 450, - 2024, + 765, + 513, 1987, 242, + 518, + 2024, + 1846, + 543, 1609, - 1185, - 1967, 1196, 1381, - 835, - 765, - 1846, - 1659, - 1061, - 820, - 1988, - 574, - 513, - 97, - 1715 + 461 ], "i": { "c": "value", @@ -156,7 +156,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 }, { "explain": [ @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1381,1846,450,1185,765,1609,574,543,1665,702,513,1659,1715,1988,1098,835,97,242,290,461,237,44,820,1987,2024,1061,1196,1967,518}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1987,518,1061,450,1715,1846,1659,1609,44,1381,574,97,242,702,290,1967,237,1185,1988,543,1196,765,461,2024,820,513,1098,1665,835}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -187,17 +187,17 @@ "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 1530.98 + "Total Cost": 1526.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1381,1846,450,1185,765,1609,574,543,1665,702,513,1659,1715,1988,1098,835,97,242,290,461,237,44,820,1987,2024,1061,1196,1967,518}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1987,518,1061,450,1715,1846,1659,1609,44,1381,574,97,242,702,290,1967,237,1185,1988,543,1196,765,461,2024,820,513,1098,1665,835}'::smallint[])", "Relation Name": "string_encrypted_1000000", - "Startup Cost": 1530.98, - "Total Cost": 1535.49 + "Startup Cost": 1526.85, + "Total Cost": 1531.36 } ], - "Startup Cost": 1530.98, - "Total Cost": 1535.49 + "Startup Cost": 1526.85, + "Total Cost": 1531.36 } } ], @@ -209,35 +209,35 @@ { "bf": [ 523, - 1381, - 1846, + 1987, + 518, + 1061, 450, - 1185, - 765, + 1715, + 1846, + 1659, 1609, + 44, + 1381, 574, - 543, - 1665, - 702, - 513, - 1659, - 1715, - 1988, - 1098, - 835, 97, 242, + 702, 290, - 461, + 1967, 237, - 44, - 820, - 1987, - 2024, - 1061, + 1185, + 1988, + 543, 1196, - 1967, - 518 + 765, + 461, + 2024, + 820, + 513, + 1098, + 1665, + 835 ], "i": { "c": "value", @@ -247,7 +247,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_1000000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 } ], "target_rows": "1000000" diff --git a/results/query/match_metadata_10000000.json b/results/query/match_metadata_10000000.json index d173c0c..997dbda 100644 --- a/results/query/match_metadata_10000000.json +++ b/results/query/match_metadata_10000000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1555,1603,36,10,1164}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{36,1789,1603,1555,10,1164}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -29,17 +29,17 @@ "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 2258.97 + "Total Cost": 2254.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,1555,1603,36,10,1164}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{36,1789,1603,1555,10,1164}'::smallint[])", "Relation Name": "string_encrypted_10000000", - "Startup Cost": 2258.97, - "Total Cost": 2263.48 + "Startup Cost": 2254.85, + "Total Cost": 2259.36 } ], - "Startup Cost": 2258.97, - "Total Cost": 2263.48 + "Startup Cost": 2254.85, + "Total Cost": 2259.36 } } ], @@ -50,10 +50,10 @@ "parameters": [ { "bf": [ + 36, 1789, - 1555, 1603, - 36, + 1555, 10, 1164 ], @@ -65,7 +65,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 }, { "explain": [ @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{702,1381,835,97,765,450,1988,44,1061,523,242,461,1609,1846,1196,237,1715,2024,290,1659,543,1987,820,513,574,1098,1967,1185,1665,518}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{461,450,513,765,1846,2024,1665,543,97,242,1609,835,1061,290,1987,1381,1715,237,1967,574,1185,44,523,702,1196,1988,1098,820,518,1659}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -96,17 +96,17 @@ "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 11294.85 + "Total Cost": 11270.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{702,1381,835,97,765,450,1988,44,1061,523,242,461,1609,1846,1196,237,1715,2024,290,1659,543,1987,820,513,574,1098,1967,1185,1665,518}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{461,450,513,765,1846,2024,1665,543,97,242,1609,835,1061,290,1987,1381,1715,237,1967,574,1185,44,523,702,1196,1988,1098,820,518,1659}'::smallint[])", "Relation Name": "string_encrypted_10000000", - "Startup Cost": 11294.85, - "Total Cost": 11299.36 + "Startup Cost": 11270.1, + "Total Cost": 11274.61 } ], - "Startup Cost": 11294.85, - "Total Cost": 11299.36 + "Startup Cost": 11270.1, + "Total Cost": 11274.61 } } ], @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ - 702, - 1381, - 835, - 97, - 765, - 450, - 1988, - 44, - 1061, - 523, - 242, 461, - 1609, + 450, + 513, + 765, 1846, - 1196, - 237, - 1715, 2024, - 290, - 1659, + 1665, 543, + 97, + 242, + 1609, + 835, + 1061, + 290, 1987, - 820, - 513, - 574, - 1098, + 1381, + 1715, + 237, 1967, + 574, 1185, - 1665, - 518 + 44, + 523, + 702, + 1196, + 1988, + 1098, + 820, + 518, + 1659 ], "i": { "c": "value", @@ -156,7 +156,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE value LIKE $1 LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 }, { "explain": [ @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,237,1987,1846,1196,44,1659,1098,1381,513,835,1665,1715,2024,461,518,765,1967,702,1988,290,574,543,450,97,1061,1185,242,1609,523}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{574,702,1846,237,1659,44,242,1967,1196,518,290,1381,1665,450,1609,835,2024,513,1098,765,820,1715,1185,1987,97,1061,1988,523,543,461}'::smallint[])", "Index Name": "string_encrypted_10000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -187,17 +187,17 @@ "Plan Rows": 1, "Plan Width": 0, "Startup Cost": 0.0, - "Total Cost": 11294.85 + "Total Cost": 11270.1 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,237,1987,1846,1196,44,1659,1098,1381,513,835,1665,1715,2024,461,518,765,1967,702,1988,290,574,543,450,97,1061,1185,242,1609,523}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{574,702,1846,237,1659,44,242,1967,1196,518,290,1381,1665,450,1609,835,2024,513,1098,765,820,1715,1185,1987,97,1061,1988,523,543,461}'::smallint[])", "Relation Name": "string_encrypted_10000000", - "Startup Cost": 11294.85, - "Total Cost": 11299.36 + "Startup Cost": 11270.1, + "Total Cost": 11274.61 } ], - "Startup Cost": 11294.85, - "Total Cost": 11299.36 + "Startup Cost": 11270.1, + "Total Cost": 11274.61 } } ], @@ -208,36 +208,36 @@ "parameters": [ { "bf": [ - 820, - 237, - 1987, + 574, + 702, 1846, - 1196, - 44, + 237, 1659, - 1098, + 44, + 242, + 1967, + 1196, + 518, + 290, 1381, - 513, - 835, 1665, - 1715, + 450, + 1609, + 835, 2024, - 461, - 518, + 513, + 1098, 765, - 1967, - 702, - 1988, - 290, - 574, - 543, - 450, + 820, + 1715, + 1185, + 1987, 97, 1061, - 1185, - 242, - 1609, - 523 + 1988, + 523, + 543, + 461 ], "i": { "c": "value", @@ -247,7 +247,7 @@ } ], "query": "SELECT id,value::jsonb FROM string_encrypted_10000000 WHERE eql_v2.bloom_filter(value) @> eql_v2.bloom_filter($1) LIMIT 10", - "rows_returned": 0 + "rows_returned": 10 } ], "target_rows": "10000000" diff --git a/results/query/match_rows_10000.json b/results/query/match_rows_10000.json index 4f47328..66a0058 100644 --- a/results/query/match_rows_10000.json +++ b/results/query/match_rows_10000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[186,372,558,744,930,1116,1302,1488,1674,1860],"measured_values":[96156416.0,200133375.0,287863750.0,367963959.0,496185750.0,651821917.0,710938709.0,794994833.0,946918333.0,1008257250.0],"unit":"ns","throughput":[],"typical":{"estimate":546922.1844435135,"lower_bound":532899.3622828784,"upper_bound":559830.3080035473,"unit":"ns"},"mean":{"estimate":537106.8347851596,"lower_bound":522612.60490591393,"upper_bound":552392.5032578085,"unit":"ns"},"median":{"estimate":536131.8323252688,"lower_bound":516969.9784946237,"upper_bound":553867.9384707287,"unit":"ns"},"median_abs_dev":{"estimate":21546.548554569057,"lower_bound":3306.1082679177457,"upper_bound":43781.55423842545,"unit":"ns"},"slope":{"estimate":546922.1844435135,"lower_bound":532899.3622828784,"upper_bound":559830.3080035473,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[190,380,570,760,950,1140,1330,1520,1710,1900],"measured_values":[80470625.0,161462167.0,255442583.0,327427792.0,418534042.0,725839333.0,667327292.0,723167083.0,796085833.0,986949667.0],"unit":"ns","throughput":[],"typical":{"estimate":497854.2304716336,"lower_bound":463362.49564076395,"upper_bound":537002.5200523238,"unit":"ns"},"mean":{"estimate":476717.6413360484,"lower_bound":444176.8966650741,"upper_bound":519214.97060026624,"unit":"ns"},"median":{"estimate":456846.07660818717,"lower_bound":430826.04210526316,"upper_bound":501749.84360902256,"unit":"ns"},"median_abs_dev":{"estimate":42969.95162195546,"lower_bound":7217.376264076476,"upper_bound":85095.79385440557,"unit":"ns"},"slope":{"estimate":497854.2304716336,"lower_bound":463362.49564076395,"upper_bound":537002.5200523238,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[148,296,444,592,740,888,1036,1184,1332,1480],"measured_values":[92991625.0,198976583.0,287640208.0,462257542.0,619157917.0,691900625.0,680737125.0,786934084.0,884663709.0,950002500.0],"unit":"ns","throughput":[],"typical":{"estimate":683971.9172692173,"lower_bound":656172.5531142653,"upper_bound":739451.9944489099,"unit":"ns"},"mean":{"estimate":697286.3948970399,"lower_bound":657834.4464285715,"upper_bound":743202.8489285713,"unit":"ns"},"median":{"estimate":664401.1086711711,"lower_bound":647838.3063063063,"upper_bound":779167.3704954955,"unit":"ns"},"median_abs_dev":{"estimate":28962.835081414967,"lower_bound":5602.824367759667,"upper_bound":102962.57364014833,"unit":"ns"},"slope":{"estimate":683971.9172692173,"lower_bound":656172.5531142653,"upper_bound":739451.9944489099,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[151,302,453,604,755,906,1057,1208,1359,1510],"measured_values":[100486833.0,190426541.0,333700791.0,450230125.0,473185292.0,541488750.0,611939541.0,797851250.0,859114583.0,1003776917.0],"unit":"ns","throughput":[],"typical":{"estimate":642201.9257246065,"lower_bound":614281.8416242257,"upper_bound":667205.4834462149,"unit":"ns"},"mean":{"estimate":653882.5320645433,"lower_bound":623837.7359907496,"upper_bound":686637.336240618,"unit":"ns"},"median":{"estimate":646319.8084069169,"lower_bound":614110.5811258279,"upper_bound":700699.6314569537,"unit":"ns"},"median_abs_dev":{"estimate":28718.13135094602,"lower_bound":3708.5949657818283,"upper_bound":103023.37826103563,"unit":"ns"},"slope":{"estimate":642201.9257246065,"lower_bound":614281.8416242257,"upper_bound":667205.4834462149,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[151,302,453,604,755,906,1057,1208,1359,1510],"measured_values":[100905167.0,175870334.0,284923542.0,345379375.0,433485459.0,500393375.0,638360417.0,747961083.0,699806250.0,882334166.0],"unit":"ns","throughput":[],"typical":{"estimate":575084.3897652017,"lower_bound":543705.272594527,"upper_bound":603351.7037203513,"unit":"ns"},"mean":{"estimate":590023.0640026805,"lower_bound":565021.307406181,"upper_bound":615432.536268882,"unit":"ns"},"median":{"estimate":583339.6807947019,"lower_bound":563231.7471302429,"upper_bound":619173.0819536424,"unit":"ns"},"median_abs_dev":{"estimate":38269.977327525645,"lower_bound":7542.235457091854,"upper_bound":73299.15509978904,"unit":"ns"},"slope":{"estimate":575084.3897652017,"lower_bound":543705.272594527,"upper_bound":603351.7037203513,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[161,322,483,644,805,966,1127,1288,1449,1610],"measured_values":[93222166.0,226374792.0,301143750.0,438270417.0,519979625.0,640907916.0,718565417.0,779664791.0,787736333.0,951799083.0],"unit":"ns","throughput":[],"typical":{"estimate":605351.6877147697,"lower_bound":577866.925795053,"upper_bound":646373.4370243851,"unit":"ns"},"mean":{"estimate":627322.2335874494,"lower_bound":598372.0399294404,"upper_bound":655658.4493414487,"unit":"ns"},"median":{"estimate":630538.6721384206,"lower_bound":591179.5546583851,"upper_bound":663465.7515527951,"unit":"ns"},"median_abs_dev":{"estimate":53585.756806488745,"lower_bound":16643.220682784602,"upper_bound":82912.73537278727,"unit":"ns"},"slope":{"estimate":605351.6877147697,"lower_bound":577866.925795053,"upper_bound":646373.4370243851,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[120,240,360,480,600,720,840,960,1080,1200],"measured_values":[77065500.0,153482000.0,245133416.0,344342584.0,452260375.0,563286375.0,584602292.0,655268417.0,808079500.0,1136732667.0],"unit":"ns","throughput":[],"typical":{"estimate":781649.9082034632,"lower_bound":701815.1218852459,"upper_bound":870626.9820220355,"unit":"ns"},"mean":{"estimate":729016.2210380291,"lower_bound":682949.4107523148,"upper_bound":787902.4538252314,"unit":"ns"},"median":{"estimate":706667.7464285714,"lower_bound":662391.8838541666,"upper_bound":765281.9733796297,"unit":"ns"},"median_abs_dev":{"estimate":65718.88142964548,"lower_bound":11140.96337887499,"upper_bound":118424.05822644163,"unit":"ns"},"slope":{"estimate":781649.9082034632,"lower_bound":701815.1218852459,"upper_bound":870626.9820220355,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[125109875.0,216524333.0,340327834.0,512088375.0,546225208.0,659323042.0,766419209.0,886398084.0,1010660625.0,1099322250.0],"unit":"ns","throughput":[],"typical":{"estimate":27831069.542207792,"lower_bound":27490797.417786676,"upper_bound":28482684.775641024,"unit":"ns"},"mean":{"estimate":28412125.769464284,"lower_bound":27504268.88283036,"upper_bound":29570559.10946428,"unit":"ns"},"median":{"estimate":27591498.1875,"lower_bound":27372114.60714286,"upper_bound":29675687.5,"unit":"ns"},"median_abs_dev":{"estimate":565349.3585680436,"lower_bound":90222.44590823518,"upper_bound":2380114.9700489,"unit":"ns"},"slope":{"estimate":27831069.542207792,"lower_bound":27490797.417786676,"upper_bound":28482684.775641024,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[86,172,258,344,430,516,602,688,774,860],"measured_values":[83178125.0,168454875.0,270565667.0,846581334.0,996244250.0,581016708.0,857481125.0,1167595834.0,1286472709.0,1561668583.0],"unit":"ns","throughput":[],"typical":{"estimate":1679960.9322863184,"lower_bound":1462568.4075212667,"upper_bound":1866745.9568914245,"unit":"ns"},"mean":{"estimate":1549859.8522083794,"lower_bound":1243623.944134436,"upper_bound":1877939.1306251155,"unit":"ns"},"median":{"estimate":1543248.3469915097,"lower_bound":1048704.1356589147,"upper_bound":2006967.030523256,"unit":"ns"},"median_abs_dev":{"estimate":675910.7943532853,"lower_bound":69473.11050439642,"upper_bound":966134.5208320635,"unit":"ns"},"slope":{"estimate":1679960.9322863184,"lower_bound":1462568.4075212667,"upper_bound":1866745.9568914245,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[27629583.0,65703792.0,89717542.0,111573958.0,133032042.0,184793292.0,279107875.0,244564708.0,280590458.0,290486541.0],"unit":"ns","throughput":[],"typical":{"estimate":31139890.67012987,"lower_bound":29081664.398924418,"upper_bound":34311720.23886369,"unit":"ns"},"mean":{"estimate":30635461.99603175,"lower_bound":28723701.09741667,"upper_bound":33074263.59698413,"unit":"ns"},"median":{"estimate":30238217.916666664,"lower_bound":27893489.5,"upper_bound":31825389.0,"unit":"ns"},"median_abs_dev":{"estimate":2619970.786056216,"lower_bound":449323.46090625034,"upper_bound":4629779.8756849775,"unit":"ns"},"slope":{"estimate":31139890.67012987,"lower_bound":29081664.398924418,"upper_bound":34311720.23886369,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[84,168,252,336,420,504,588,672,756,840],"measured_values":[89670917.0,164704917.0,262482958.0,359658834.0,397272667.0,492188583.0,592584458.0,764988833.0,703602875.0,889571750.0],"unit":"ns","throughput":[],"typical":{"estimate":1022906.7730055659,"lower_bound":961625.2578741171,"upper_bound":1079286.6506129603,"unit":"ns"},"mean":{"estimate":1021824.0073237906,"lower_bound":984342.3015254156,"upper_bound":1060252.1181712963,"unit":"ns"},"median":{"estimate":1024697.8684807257,"lower_bound":963136.856547619,"upper_bound":1067510.9166666667,"unit":"ns"},"median_abs_dev":{"estimate":66736.85506518396,"lower_bound":8450.23298747849,"upper_bound":115628.46026385104,"unit":"ns"},"slope":{"estimate":1022906.7730055659,"lower_bound":961625.2578741171,"upper_bound":1079286.6506129603,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[105557459.0,233408542.0,341762292.0,469255292.0,539739875.0,669648333.0,824812583.0,955156167.0,1006337500.0,1124124750.0],"unit":"ns","throughput":[],"typical":{"estimate":28509411.933116883,"lower_bound":27934639.47232143,"upper_bound":29246432.270202022,"unit":"ns"},"mean":{"estimate":28362624.753819443,"lower_bound":27687092.851736113,"upper_bound":29001293.12019965,"unit":"ns"},"median":{"estimate":28291654.875,"lower_bound":27470406.597222224,"upper_bound":29328455.75,"unit":"ns"},"median_abs_dev":{"estimate":1424195.7275904715,"lower_bound":149079.04119082072,"upper_bound":1948527.3084942251,"unit":"ns"},"slope":{"estimate":28509411.933116883,"lower_bound":27934639.47232143,"upper_bound":29246432.270202022,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000","MATCH/match_decrypt/eql_cast_firstname/10000","MATCH/match/eql_cast_lastname/10000","MATCH/match_decrypt/eql_cast_lastname/10000","MATCH/match/eql_bloom/10000","MATCH/match_decrypt/eql_bloom/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_100000.json b/results/query/match_rows_100000.json index 0128407..a200218 100644 --- a/results/query/match_rows_100000.json +++ b/results/query/match_rows_100000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[102,204,306,408,510,612,714,816,918,1020],"measured_values":[85870666.0,169186000.0,366713500.0,506636625.0,519994417.0,579638375.0,665843833.0,777235875.0,964516375.0,1167021042.0],"unit":"ns","throughput":[],"typical":{"estimate":1040447.7623376623,"lower_bound":966494.5243212669,"upper_bound":1107891.1264975439,"unit":"ns"},"mean":{"estimate":1015795.6441903984,"lower_bound":934648.0344956134,"upper_bound":1101430.2969607846,"unit":"ns"},"median":{"estimate":986045.9204656864,"lower_bound":894495.4011437909,"upper_bound":1144138.2764705883,"unit":"ns"},"median_abs_dev":{"estimate":154785.0369418855,"lower_bound":18571.250764412165,"upper_bound":242072.94355933936,"unit":"ns"},"slope":{"estimate":1040447.7623376623,"lower_bound":966494.5243212669,"upper_bound":1107891.1264975439,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[107,214,321,428,535,642,749,856,963,1070],"measured_values":[80976291.0,171906292.0,297691000.0,348354167.0,479176042.0,569649625.0,582572958.0,682846042.0,875720333.0,845937084.0],"unit":"ns","throughput":[],"typical":{"estimate":835215.1810171137,"lower_bound":797725.1378815706,"upper_bound":885521.9314491611,"unit":"ns"},"mean":{"estimate":835982.7624373238,"lower_bound":800430.2493971407,"upper_bound":873012.3895684988,"unit":"ns"},"median":{"estimate":808606.0175233645,"lower_bound":787759.1754005341,"upper_bound":898335.8102284528,"unit":"ns"},"median_abs_dev":{"estimate":61248.61908621782,"lower_bound":9418.234345690233,"upper_bound":94981.78545688256,"unit":"ns"},"slope":{"estimate":835215.1810171137,"lower_bound":797725.1378815706,"upper_bound":885521.9314491611,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[124501500.0,198601833.0,276745458.0,403362459.0,464522542.0,574118917.0,682784542.0,764193583.0,789162417.0,927965542.0],"unit":"ns","throughput":[],"typical":{"estimate":1508499.1713028906,"lower_bound":1465410.9270733525,"upper_bound":1559343.4803292744,"unit":"ns"},"mean":{"estimate":1579078.4286271122,"lower_bound":1503156.3295850616,"upper_bound":1686797.3305222732,"unit":"ns"},"median":{"estimate":1542021.6454973118,"lower_bound":1493169.3096774193,"upper_bound":1601627.685483871,"unit":"ns"},"median_abs_dev":{"estimate":73719.22094650446,"lower_bound":9134.449089121536,"upper_bound":154851.90078949885,"unit":"ns"},"slope":{"estimate":1508499.1713028906,"lower_bound":1465410.9270733525,"upper_bound":1559343.4803292744,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[88759375.0,179045084.0,281794375.0,397242708.0,460299750.0,587296541.0,701652917.0,764773083.0,936305500.0,962286250.0],"unit":"ns","throughput":[],"typical":{"estimate":1582984.8587767072,"lower_bound":1539353.6057334007,"upper_bound":1631337.871035511,"unit":"ns"},"mean":{"estimate":1544454.9919130825,"lower_bound":1498500.6749714378,"upper_bound":1589863.3756474012,"unit":"ns"},"median":{"estimate":1546977.90625,"lower_bound":1479467.744623656,"upper_bound":1601785.1129032257,"unit":"ns"},"median_abs_dev":{"estimate":86692.96499476302,"lower_bound":22130.29154904437,"upper_bound":130853.41629966963,"unit":"ns"},"slope":{"estimate":1582984.8587767072,"lower_bound":1539353.6057334007,"upper_bound":1631337.871035511,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[67,134,201,268,335,402,469,536,603,670],"measured_values":[100477750.0,178903709.0,312792625.0,367492416.0,520031875.0,526958208.0,630936916.0,831624417.0,783777416.0,897947583.0],"unit":"ns","throughput":[],"typical":{"estimate":1385212.9347547975,"lower_bound":1327199.109416944,"upper_bound":1477588.9724933028,"unit":"ns"},"mean":{"estimate":1416220.4402339493,"lower_bound":1353379.859530917,"upper_bound":1482116.6996808369,"unit":"ns"},"median":{"estimate":1358260.814498934,"lower_bound":1325530.7932835822,"upper_bound":1551538.0914179105,"unit":"ns"},"median_abs_dev":{"estimate":78491.51557167126,"lower_bound":4032.6617862416538,"upper_bound":173286.01938325964,"unit":"ns"},"slope":{"estimate":1385212.9347547975,"lower_bound":1327199.109416944,"upper_bound":1477588.9724933028,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[63,126,189,252,315,378,441,504,567,630],"measured_values":[93472250.0,196729125.0,281274708.0,357047292.0,466036750.0,618969667.0,641437542.0,695609959.0,795013542.0,970039333.0],"unit":"ns","throughput":[],"typical":{"estimate":1472414.0679447537,"lower_bound":1412393.427324206,"upper_bound":1537762.2384024577,"unit":"ns"},"mean":{"estimate":1484364.7355763416,"lower_bound":1440270.1731577378,"upper_bound":1532162.6414886147,"unit":"ns"},"median":{"estimate":1481584.1269841269,"lower_bound":1416854.3333333333,"upper_bound":1539744.973015873,"unit":"ns"},"median_abs_dev":{"estimate":91098.82957933919,"lower_bound":6730.20374718172,"upper_bound":128900.61325377894,"unit":"ns"},"slope":{"estimate":1472414.0679447537,"lower_bound":1412393.427324206,"upper_bound":1537762.2384024577,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[75,150,225,300,375,450,525,600,675,750],"measured_values":[83049500.0,183102958.0,252012250.0,336468084.0,418309459.0,442338000.0,584502625.0,631205542.0,736529875.0,827671125.0],"unit":"ns","throughput":[],"typical":{"estimate":1085485.1128311688,"lower_bound":1054125.55879397,"upper_bound":1110164.902084942,"unit":"ns"},"mean":{"estimate":1102815.7442148149,"lower_bound":1067608.6598966666,"upper_bound":1137595.3618888888,"unit":"ns"},"median":{"estimate":1110332.5,"lower_bound":1077785.3683333332,"upper_bound":1120054.4444444445,"unit":"ns"},"median_abs_dev":{"estimate":15530.03045495357,"lower_bound":4498.49693293573,"upper_bound":96021.34067572495,"unit":"ns"},"slope":{"estimate":1085485.1128311688,"lower_bound":1054125.55879397,"upper_bound":1110164.902084942,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101477791.0,243552958.0,315298000.0,437772166.0,535636625.0,661706875.0,735360583.0,874781459.0,980594708.0,1024302125.0],"unit":"ns","throughput":[],"typical":{"estimate":26719571.507142857,"lower_bound":26100909.314230163,"upper_bound":27353006.296006944,"unit":"ns"},"mean":{"estimate":27024820.58219246,"lower_bound":26281516.01031746,"upper_bound":27941008.865406748,"unit":"ns"},"median":{"estimate":27010286.569444444,"lower_bound":25941193.229166664,"upper_bound":27454020.192708336,"unit":"ns"},"median_abs_dev":{"estimate":960937.1345024575,"lower_bound":90452.30214831792,"upper_bound":2043587.1787284538,"unit":"ns"},"slope":{"estimate":26719571.507142857,"lower_bound":26100909.314230163,"upper_bound":27353006.296006944,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[31,62,93,124,155,186,217,248,279,310],"measured_values":[91988042.0,186928709.0,289205250.0,369885500.0,494362708.0,559358166.0,682145917.0,751933833.0,832365625.0,926013542.0],"unit":"ns","throughput":[],"typical":{"estimate":3031661.8243820695,"lower_bound":2995330.0758255483,"upper_bound":3094956.0514292275,"unit":"ns"},"mean":{"estimate":3041780.6244636457,"lower_bound":2999883.7267685933,"upper_bound":3090531.9181025024,"unit":"ns"},"median":{"estimate":3011140.572580645,"lower_bound":2983389.336917563,"upper_bound":3109733.870967742,"unit":"ns"},"median_abs_dev":{"estimate":41471.455182551195,"lower_bound":3435.653894704404,"upper_bound":118711.95373545212,"unit":"ns"},"slope":{"estimate":3031661.8243820695,"lower_bound":2995330.0758255483,"upper_bound":3094956.0514292275,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[83622333.0,177442500.0,287943750.0,416223125.0,439420084.0,537814041.0,594673583.0,697360625.0,753686500.0,838782916.0],"unit":"ns","throughput":[],"typical":{"estimate":28834479.21212121,"lower_bound":28242615.452261224,"upper_bound":30116221.50363636,"unit":"ns"},"mean":{"estimate":29654832.923981488,"lower_bound":28540893.86464815,"upper_bound":31056216.201666664,"unit":"ns"},"median":{"estimate":29175682.487499997,"lower_bound":27959430.533333335,"upper_bound":30783750.0,"unit":"ns"},"median_abs_dev":{"estimate":1537563.4944102848,"lower_bound":93050.45633024942,"upper_bound":2908545.453402993,"unit":"ns"},"slope":{"estimate":28834479.21212121,"lower_bound":28242615.452261224,"upper_bound":30116221.50363636,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[58286042.0,364186250.0,322643125.0,279122500.0,408477458.0,462647333.0,491612333.0,638363375.0,605499917.0,656854792.0],"unit":"ns","throughput":[],"typical":{"estimate":3669557.105064935,"lower_bound":3441198.97587822,"upper_bound":4118576.5018145163,"unit":"ns"},"mean":{"estimate":4297499.418414682,"lower_bound":3471401.3991765874,"upper_bound":5498786.805819444,"unit":"ns"},"median":{"estimate":3683455.5529761906,"lower_bound":3363888.427777778,"upper_bound":4683578.255208334,"unit":"ns"},"median_abs_dev":{"estimate":532808.4153235932,"lower_bound":109436.80978044149,"upper_bound":1569876.4124256219,"unit":"ns"},"slope":{"estimate":3669557.105064935,"lower_bound":3441198.97587822,"upper_bound":4118576.5018145163,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[56278375.0,116824000.0,190592792.0,259668833.0,310146958.0,368576375.0,428011959.0,524605875.0,541440500.0,641125542.0],"unit":"ns","throughput":[],"typical":{"estimate":31350290.592207793,"lower_bound":30475649.36634671,"upper_bound":32125331.125475284,"unit":"ns"},"mean":{"estimate":30879510.55259921,"lower_bound":29990463.475277774,"upper_bound":31706951.288988095,"unit":"ns"},"median":{"estimate":30864696.858333334,"lower_bound":29889141.39285714,"upper_bound":32112034.729166664,"unit":"ns"},"median_abs_dev":{"estimate":1551058.0761282132,"lower_bound":327960.761667532,"upper_bound":2535362.81887415,"unit":"ns"},"slope":{"estimate":31350290.592207793,"lower_bound":30475649.36634671,"upper_bound":32125331.125475284,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/100000","MATCH/match_decrypt/eql_cast_firstname/100000","MATCH/match/eql_cast_lastname/100000","MATCH/match_decrypt/eql_cast_lastname/100000","MATCH/match/eql_bloom/100000","MATCH/match_decrypt/eql_bloom/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_1000000.json b/results/query/match_rows_1000000.json index 558f309..e8653ca 100644 --- a/results/query/match_rows_1000000.json +++ b/results/query/match_rows_1000000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[23,46,69,92,115,138,161,184,207,230],"measured_values":[103641125.0,192639708.0,335739667.0,397969584.0,507285000.0,560008125.0,680220833.0,795782125.0,865994167.0,956323209.0],"unit":"ns","throughput":[],"typical":{"estimate":4231448.227216262,"lower_bound":4170588.240380916,"upper_bound":4331901.9524959745,"unit":"ns"},"mean":{"estimate":4324605.870364045,"lower_bound":4203879.888956264,"upper_bound":4471839.3953662,"unit":"ns"},"median":{"estimate":4274938.485636646,"lower_bound":4172873.367391304,"upper_bound":4415946.108695652,"unit":"ns"},"median_abs_dev":{"estimate":154489.3451170846,"lower_bound":25327.093840064008,"upper_bound":322221.37175768916,"unit":"ns"},"slope":{"estimate":4231448.227216262,"lower_bound":4170588.240380916,"upper_bound":4331901.9524959745,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[23,46,69,92,115,138,161,184,207,230],"measured_values":[91423208.0,180469166.0,269897625.0,409295042.0,483743167.0,603061084.0,756654667.0,861702125.0,887234375.0,963096625.0],"unit":"ns","throughput":[],"typical":{"estimate":4375222.15878035,"lower_bound":4221496.983363624,"upper_bound":4562267.380687563,"unit":"ns"},"mean":{"estimate":4269146.9120479645,"lower_bound":4103375.3124637688,"upper_bound":4440455.955603865,"unit":"ns"},"median":{"estimate":4246309.361352657,"lower_bound":3974922.086956522,"upper_bound":4526585.788949275,"unit":"ns"},"median_abs_dev":{"estimate":351329.5402083059,"lower_bound":55631.050894960266,"upper_bound":527068.7174928769,"unit":"ns"},"slope":{"estimate":4375222.15878035,"lower_bound":4221496.983363624,"upper_bound":4562267.380687563,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[9,18,27,36,45,54,63,72,81,90],"measured_values":[87827500.0,177983625.0,274500625.0,368310750.0,438913083.0,540083458.0,649228917.0,742227958.0,812659750.0,810248708.0],"unit":"ns","throughput":[],"typical":{"estimate":9833898.037806638,"lower_bound":9385333.484447984,"upper_bound":10220734.354166666,"unit":"ns"},"mean":{"estimate":9944884.623007055,"lower_bound":9694285.176902121,"upper_bound":10145805.642910052,"unit":"ns"},"median":{"estimate":10017190.969135802,"lower_bound":9758611.111111112,"upper_bound":10235955.35978836,"unit":"ns"},"median_abs_dev":{"estimate":350073.77086828044,"lower_bound":57723.1561335423,"upper_bound":556612.9858448099,"unit":"ns"},"slope":{"estimate":9833898.037806638,"lower_bound":9385333.484447984,"upper_bound":10220734.354166666,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[130014042.0,193642917.0,268809334.0,377929250.0,454683958.0,559050833.0,673769500.0,739060000.0,827960208.0,924109542.0],"unit":"ns","throughput":[],"typical":{"estimate":9294746.352727273,"lower_bound":9214873.85917603,"upper_bound":9438330.316097561,"unit":"ns"},"mean":{"estimate":9680746.73347619,"lower_bound":9209543.269666666,"upper_bound":10466048.94233095,"unit":"ns"},"median":{"estimate":9279304.651666667,"lower_bound":9165964.58,"upper_bound":9625278.57142857,"unit":"ns"},"median_abs_dev":{"estimate":262829.4596508442,"lower_bound":32901.097547888276,"upper_bound":567475.5265972933,"unit":"ns"},"slope":{"estimate":9294746.352727273,"lower_bound":9214873.85917603,"upper_bound":9438330.316097561,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[102971791.0,193223292.0,300590000.0,369000208.0,451371041.0,543249167.0,634583375.0,716801375.0,817880500.0,924021625.0],"unit":"ns","throughput":[],"typical":{"estimate":9132772.672467532,"lower_bound":9043286.765201464,"upper_bound":9243875.939634874,"unit":"ns"},"mean":{"estimate":9363786.050432539,"lower_bound":9114860.536003968,"upper_bound":9657428.008015873,"unit":"ns"},"median":{"estimate":9156283.155555556,"lower_bound":9046448.802857142,"upper_bound":9661164.6,"unit":"ns"},"median_abs_dev":{"estimate":171234.89123563957,"lower_bound":24765.592941990206,"upper_bound":707340.946192189,"unit":"ns"},"slope":{"estimate":9132772.672467532,"lower_bound":9043286.765201464,"upper_bound":9243875.939634874,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[88148583.0,177398167.0,299744875.0,377560625.0,452373917.0,544394417.0,639412334.0,718610583.0,842165875.0,914883042.0],"unit":"ns","throughput":[],"typical":{"estimate":9177598.032727273,"lower_bound":9069820.208286885,"upper_bound":9304128.40691203,"unit":"ns"},"mean":{"estimate":9185931.996456351,"lower_bound":9008808.464718057,"upper_bound":9404731.736320835,"unit":"ns"},"median":{"estimate":9103851.098809524,"lower_bound":8958693.344999999,"upper_bound":9357398.611111112,"unit":"ns"},"median_abs_dev":{"estimate":263281.25984207337,"lower_bound":56034.967316180504,"upper_bound":462687.8168081487,"unit":"ns"},"slope":{"estimate":9177598.032727273,"lower_bound":9069820.208286885,"upper_bound":9304128.40691203,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[97811250.0,189023000.0,275835084.0,372533958.0,461705417.0,544146250.0,671188208.0,724793834.0,840099458.0,928714333.0],"unit":"ns","throughput":[],"typical":{"estimate":4637871.363506493,"lower_bound":4575909.02063492,"upper_bound":4699687.081886793,"unit":"ns"},"mean":{"estimate":4665662.345265874,"lower_bound":4603540.775194445,"upper_bound":4735887.722753969,"unit":"ns"},"median":{"estimate":4650123.07,"lower_bound":4575803.126666667,"upper_bound":4730710.348412698,"unit":"ns"},"median_abs_dev":{"estimate":95126.2829911706,"lower_bound":17529.925620948587,"upper_bound":192278.49457429102,"unit":"ns"},"slope":{"estimate":4637871.363506493,"lower_bound":4575909.02063492,"upper_bound":4699687.081886793,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[98375959.0,190452083.0,303520959.0,389798667.0,459990084.0,565262500.0,656858708.0,744771708.0,870707458.0,915927167.0],"unit":"ns","throughput":[],"typical":{"estimate":31335399.568831168,"lower_bound":30840679.753148615,"upper_bound":31991654.18445693,"unit":"ns"},"mean":{"estimate":31790172.1771164,"lower_bound":31218100.75730159,"upper_bound":32416324.263430554,"unit":"ns"},"median":{"estimate":31572743.027777776,"lower_bound":30972495.84761905,"upper_bound":32520205.35185185,"unit":"ns"},"median_abs_dev":{"estimate":1173047.0136498061,"lower_bound":275257.82259653136,"upper_bound":1720615.667419631,"unit":"ns"},"slope":{"estimate":31335399.568831168,"lower_bound":30840679.753148615,"upper_bound":31991654.18445693,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[5,10,15,20,25,30,35,40,45,50],"measured_values":[105495875.0,213367208.0,331288125.0,437082541.0,538206583.0,637502750.0,743834125.0,850143875.0,993868292.0,1095991166.0],"unit":"ns","throughput":[],"typical":{"estimate":21663995.01714286,"lower_bound":21328491.37617555,"upper_bound":21914239.631276872,"unit":"ns"},"mean":{"estimate":21566603.86475397,"lower_bound":21347909.442119047,"upper_bound":21793029.053131945,"unit":"ns"},"median":{"estimate":21432492.060000002,"lower_bound":21251844.270833336,"upper_bound":21970001.025,"unit":"ns"},"median_abs_dev":{"estimate":382301.34136879706,"lower_bound":3427.629939144774,"upper_bound":585281.3354215106,"unit":"ns"},"slope":{"estimate":21663995.01714286,"lower_bound":21328491.37617555,"upper_bound":21914239.631276872,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[90141500.0,177777666.0,273647875.0,377965583.0,449094042.0,567958667.0,656246917.0,759504750.0,835325584.0,928342458.0],"unit":"ns","throughput":[],"typical":{"estimate":46627073.05974026,"lower_bound":46155360.51730104,"upper_bound":47071696.54195804,"unit":"ns"},"mean":{"estimate":46177606.31079365,"lower_bound":45514733.14591667,"upper_bound":46800921.593856156,"unit":"ns"},"median":{"estimate":46412049.89444444,"lower_bound":45070750.0,"upper_bound":47245697.875,"unit":"ns"},"median_abs_dev":{"estimate":1298377.2921083618,"lower_bound":227979.42884005423,"upper_bound":1794305.2886097094,"unit":"ns"},"slope":{"estimate":46627073.05974026,"lower_bound":46155360.51730104,"upper_bound":47071696.54195804,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[5,10,15,20,25,30,35,40,45,50],"measured_values":[104300875.0,208811584.0,327037333.0,435585708.0,543867125.0,648077834.0,760070875.0,858888958.0,984639042.0,1062274334.0],"unit":"ns","throughput":[],"typical":{"estimate":21573654.03116883,"lower_bound":21377741.148275863,"upper_bound":21785863.657861635,"unit":"ns"},"mean":{"estimate":21499527.6077619,"lower_bound":21265343.631,"upper_bound":21705520.330857143,"unit":"ns"},"median":{"estimate":21659452.59047619,"lower_bound":21176691.174999997,"upper_bound":21779285.4,"unit":"ns"},"median_abs_dev":{"estimate":244825.3783784816,"lower_bound":35437.00573086776,"upper_bound":619189.5837231932,"unit":"ns"},"slope":{"estimate":21573654.03116883,"lower_bound":21377741.148275863,"upper_bound":21785863.657861635,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[103056083.0,182958250.0,294577500.0,380975916.0,460927166.0,582197917.0,656051000.0,721908750.0,851132291.0,1039849333.0],"unit":"ns","throughput":[],"typical":{"estimate":48182783.15324675,"lower_bound":46199266.75864257,"upper_bound":50301967.498489425,"unit":"ns"},"mean":{"estimate":47985272.97003968,"lower_bound":46700288.26217064,"upper_bound":49416180.898333326,"unit":"ns"},"median":{"estimate":47453558.38888889,"lower_bound":46092716.6,"upper_bound":50022267.29166667,"unit":"ns"},"median_abs_dev":{"estimate":2226519.2698913803,"lower_bound":564280.3563320196,"upper_bound":4035147.8085867986,"unit":"ns"},"slope":{"estimate":48182783.15324675,"lower_bound":46199266.75864257,"upper_bound":50301967.498489425,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/1000000","MATCH/match_decrypt/eql_cast_firstname/1000000","MATCH/match/eql_cast_lastname/1000000","MATCH/match_decrypt/eql_cast_lastname/1000000","MATCH/match/eql_bloom/1000000","MATCH/match_decrypt/eql_bloom/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_10000000.json b/results/query/match_rows_10000000.json index 24b960d..be177b8 100644 --- a/results/query/match_rows_10000000.json +++ b/results/query/match_rows_10000000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[124097875.0,236426167.0,361916875.0,478391500.0,595362083.0,731539709.0,854324500.0,947012667.0,1106542042.0,1212078958.0],"unit":"ns","throughput":[],"typical":{"estimate":30258672.92012987,"lower_bound":29891270.39475498,"upper_bound":30532332.267785426,"unit":"ns"},"mean":{"estimate":30203086.13405754,"lower_bound":29918070.675416667,"upper_bound":30496598.037361108,"unit":"ns"},"median":{"estimate":30230856.766666666,"lower_bound":29746807.296875,"upper_bound":30609050.076388888,"unit":"ns"},"median_abs_dev":{"estimate":588696.4410385486,"lower_bound":155387.84560631603,"upper_bound":847404.5525003532,"unit":"ns"},"slope":{"estimate":30258672.92012987,"lower_bound":29891270.39475498,"upper_bound":30532332.267785426,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[90496125.0,183152000.0,271275541.0,405159208.0,452089875.0,558390416.0,629241292.0,740589333.0,817321916.0,901127792.0],"unit":"ns","throughput":[],"typical":{"estimate":30475008.071861472,"lower_bound":30139101.941920955,"upper_bound":31075633.389917694,"unit":"ns"},"mean":{"estimate":30688725.2285582,"lower_bound":30190244.242817134,"upper_bound":31448764.115,"unit":"ns"},"median":{"estimate":30218278.537037037,"lower_bound":30089659.92222222,"upper_bound":30857888.875,"unit":"ns"},"median_abs_dev":{"estimate":322534.4053649807,"lower_bound":21091.30249221997,"upper_bound":947102.9382563919,"unit":"ns"},"slope":{"estimate":30475008.071861472,"lower_bound":30139101.941920955,"upper_bound":31075633.389917694,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[159201083.0,335282208.0,504965125.0,669141583.0,826664208.0,1005075167.0,1139666500.0,1309618958.0,1452983042.0,1643179458.0],"unit":"ns","throughput":[],"typical":{"estimate":82010725.15584415,"lower_bound":81390042.6916835,"upper_bound":82865477.08205467,"unit":"ns"},"mean":{"estimate":82378351.81444445,"lower_bound":81466528.94222224,"upper_bound":83228418.37083332,"unit":"ns"},"median":{"estimate":82412696.85,"lower_bound":81286232.49305555,"upper_bound":83756263.91666667,"unit":"ns"},"median_abs_dev":{"estimate":1907785.9924825407,"lower_bound":179500.01585072296,"upper_bound":2674919.4746106863,"unit":"ns"},"slope":{"estimate":82010725.15584415,"lower_bound":81390042.6916835,"upper_bound":82865477.08205467,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[166090125.0,322616167.0,492160083.0,658604416.0,806752625.0,968308792.0,1178159334.0,1347459750.0,1480635375.0,1629558625.0],"unit":"ns","throughput":[],"typical":{"estimate":82355758.71688312,"lower_bound":81401384.0867347,"upper_bound":83404036.92377351,"unit":"ns"},"mean":{"estimate":82152492.31845239,"lower_bound":81393851.85997023,"upper_bound":82965254.4630506,"unit":"ns"},"median":{"estimate":82142100.66666666,"lower_bound":80692399.33333333,"upper_bound":83239895.07142857,"unit":"ns"},"median_abs_dev":{"estimate":1744029.1744872965,"lower_bound":41138.01034464696,"upper_bound":2399315.0736786313,"unit":"ns"},"slope":{"estimate":82355758.71688312,"lower_bound":81401384.0867347,"upper_bound":83404036.92377351,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[162843209.0,348708084.0,503287750.0,709332292.0,842617000.0,970002792.0,1140293667.0,1325774708.0,1462071375.0,1623471000.0],"unit":"ns","throughput":[],"typical":{"estimate":82106700.33116883,"lower_bound":81397617.8600599,"upper_bound":83576462.01081875,"unit":"ns"},"mean":{"estimate":83295192.40595238,"lower_bound":81818746.00595239,"upper_bound":85012164.21014881,"unit":"ns"},"median":{"estimate":82155233.44642857,"lower_bound":81226187.5,"upper_bound":85529156.33333334,"unit":"ns"},"median_abs_dev":{"estimate":1707473.9865612707,"lower_bound":165576.87096042765,"upper_bound":4369483.060026169,"unit":"ns"},"slope":{"estimate":82106700.33116883,"lower_bound":81397617.8600599,"upper_bound":83576462.01081875,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[165465208.0,324199125.0,489651583.0,651964917.0,813501542.0,972908500.0,1127946041.0,1302071208.0,1552942375.0,1666645458.0],"unit":"ns","throughput":[],"typical":{"estimate":82793200.63766234,"lower_bound":81044929.03536977,"upper_bound":84411322.58880308,"unit":"ns"},"mean":{"estimate":82086633.37210318,"lower_bound":81254194.63975297,"upper_bound":83190581.05443452,"unit":"ns"},"median":{"estimate":81437532.5625,"lower_bound":81075708.33333333,"upper_bound":82732604.0,"unit":"ns"},"median_abs_dev":{"estimate":555660.3391725607,"lower_bound":107829.81113813596,"upper_bound":2027902.6902875283,"unit":"ns"},"slope":{"estimate":82793200.63766234,"lower_bound":81044929.03536977,"upper_bound":84411322.58880308,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[111041958.0,219267250.0,308583125.0,420331041.0,533163250.0,630845208.0,728483625.0,872527375.0,936985875.0,1068536417.0],"unit":"ns","throughput":[],"typical":{"estimate":35329332.39393939,"lower_bound":34829339.860888906,"upper_bound":35818395.11420144,"unit":"ns"},"mean":{"estimate":35483036.581468254,"lower_bound":34976477.192579366,"upper_bound":36026446.54277083,"unit":"ns"},"median":{"estimate":35295586.33333333,"lower_bound":34703180.55555555,"upper_bound":36355307.291666664,"unit":"ns"},"median_abs_dev":{"estimate":888296.5736962474,"lower_bound":250478.09082812734,"upper_bound":1495309.4795862772,"unit":"ns"},"slope":{"estimate":35329332.39393939,"lower_bound":34829339.860888906,"upper_bound":35818395.11420144,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[122998417.0,249862375.0,362520542.0,478672125.0,594595625.0,724144917.0,868100000.0,954454959.0,1107127042.0,1248087625.0],"unit":"ns","throughput":[],"typical":{"estimate":61169065.22077922,"lower_bound":60081365.00552076,"upper_bound":61910788.43001761,"unit":"ns"},"mean":{"estimate":60959589.73918651,"lower_bound":60288830.85333085,"upper_bound":61637557.648115076,"unit":"ns"},"median":{"estimate":60959649.41666667,"lower_bound":59834015.625,"upper_bound":62007142.85714286,"unit":"ns"},"median_abs_dev":{"estimate":1610939.1885876132,"lower_bound":267728.9225343615,"upper_bound":1905412.0039846748,"unit":"ns"},"slope":{"estimate":61169065.22077922,"lower_bound":60081365.00552076,"upper_bound":61910788.43001761,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[684310958.0,624505459.0,673523292.0,627330834.0,632473542.0,625673708.0,615057875.0,617592584.0,610422000.0,603910333.0],"unit":"ns","throughput":[],"typical":{"estimate":210493352.83333334,"lower_bound":205849658.05166668,"upper_bound":216161639.01583335,"unit":"ns"},"mean":{"estimate":210493352.83333334,"lower_bound":205849658.05166668,"upper_bound":216161639.01583335,"unit":"ns"},"median":{"estimate":208363194.5,"lower_bound":204669097.3333333,"upper_bound":216809021.0,"unit":"ns"},"median_abs_dev":{"estimate":4331343.669903293,"lower_bound":698150.150105372,"upper_bound":12506904.750058047,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[679046625.0,694819208.0,701414167.0,707026209.0,707030750.0,807709250.0,709258125.0,726795667.0,723585500.0,781076917.0],"unit":"ns","throughput":[],"typical":{"estimate":241258747.2666667,"lower_bound":234207558.3666667,"upper_bound":249760260.5408333,"unit":"ns"},"mean":{"estimate":241258747.2666667,"lower_bound":234207558.3666667,"upper_bound":249760260.5408333,"unit":"ns"},"median":{"estimate":236048145.8333333,"lower_bound":233640902.8333333,"upper_bound":250777069.5,"unit":"ns"},"median_abs_dev":{"estimate":7108150.6270051,"lower_bound":552628.5148888532,"upper_bound":19264049.586194783,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[734535792.0,701544291.0,609766334.0,636766292.0,621721292.0,620038584.0,627025042.0,632955458.0,659997375.0,627256250.0],"unit":"ns","throughput":[],"typical":{"estimate":215720223.66666666,"lower_bound":208707633.6525,"upper_bound":224320887.5333333,"unit":"ns"},"mean":{"estimate":215720223.66666666,"lower_bound":208707633.6525,"upper_bound":224320887.5333333,"unit":"ns"},"median":{"estimate":210035284.66666666,"lower_bound":207240430.66666666,"upper_bound":223051763.8333333,"unit":"ns"},"median_abs_dev":{"estimate":4559447.6062536165,"lower_bound":1367688.0975186825,"upper_bound":19331837.022191294,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[769165000.0,718551833.0,726085125.0,730922292.0,689377708.0,682644209.0,686239166.0,706592041.0,726438250.0,698718667.0],"unit":"ns","throughput":[],"typical":{"estimate":237824476.36666664,"lower_bound":232957038.9666667,"upper_bound":243310805.03500003,"unit":"ns"},"mean":{"estimate":237824476.36666664,"lower_bound":232957038.9666667,"upper_bound":243310805.03500003,"unit":"ns"},"median":{"estimate":237523979.0,"lower_bound":229792569.33333334,"upper_bound":242834569.5,"unit":"ns"},"median_abs_dev":{"estimate":7960738.521468647,"lower_bound":1282521.1304307058,"upper_bound":16279328.739184096,"unit":"ns"},"slope":null,"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000000","MATCH/match_decrypt/eql_cast_firstname/10000000","MATCH/match/eql_cast_lastname/10000000","MATCH/match_decrypt/eql_cast_lastname/10000000","MATCH/match/eql_bloom/10000000","MATCH/match_decrypt/eql_bloom/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/ore_metadata_10000.json b/results/query/ore_metadata_10000.json index d8af5e3..22a049a 100644 --- a/results/query/ore_metadata_10000.json +++ b/results/query/ore_metadata_10000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcb371609a9d6c573eed7e891d65e32763a0777fe30e584652309016ccaf8c0b4e4101f904e3cbeedebd563ec8f9bba67000d22aecbe5b547dd4e291e7a913ab7de63374518292d0046f8248fbf7c2abe5e8d96c0c07f4006b44f6b28fc569cee4c70913e19a951f1b30c21047b44bc16ea55ffaef4d32b98f01a0e0b24286638e29b77706c07bd44000b951b5976af1bbc9665f7e342ada753179ccd9003f14119b0199d54835f99e140f5e4431a7524fff57064614978f575978d4ba7c81a776ecd4f632e402d63d7fa4be00559e25b737cae53bb7ebd547de3bf796fa7823a3aebb321a191d501068035259eeec5cb805e3cf3d651f159698f511a3394b871299d5275978baf403a46ae93a636b33cd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce6505e5d0db03c5dd653e9ad5bbbf37b01663a79c310597f2cca4feea88f7f863fdf7e0a642334bc851ef546007bab4c16748773788325e7693c2983f64e84420fefe66ebd55fba175369ff1cb035880cace69ada40eaa9c4e562258c34290667bbe9f9e089e37dee0a7fa68a1d6ecbb0e227b1711af6f0c662e7b9f665d2460a0460e1c7c84171e8115895dca66cfde0a3d5c59e35674c512b243ce1e9d6a2ec34d88a8d54d49cb3ed640b680b20d58dd07744ee54fcccb4e383b625ffacc120fe18629047851013df66e79cccf101ba839bb63c98bfa01121a41bf239c283e288df5d9730e3f463e905c464c9f7be623a47c2b4f9f948270cd132c67cbb3ef0e32320e83d411a6b4427aed3f657e7d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcb371609a9d6c573eed7e891d65e32763a0777fe30e584652309016ccaf8c0b4e4101f904e3cbeedebd563ec8f9bba67000d22aecbe5b547dd4e291e7a913ab7de63374518292d0046f8248fbf7c2abe5e8d96c0c07f4006b44f6b28fc569cee4c70913e19a951f1b30c21047b44bc16ea55ffaef4d32b98f01a0e0b24286638e29b77706c07bd44000b951b5976af1bbc9665f7e342ada753179ccd9003f14119b0199d54835f99e140f5e4431a7524fff57064614978f575978d4ba7c81a776ecd4f632e402d63d7fa4be00559e25b737cae53bb7ebd547de3bf796fa7823a3aebb321a191d501068035259eeec5cb805e3cf3d651f159698f511a3394b871299d5275978baf403a46ae93a636b33cd" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce6505e5d0db03c5dd653e9ad5bbbf37b01663a79c310597f2cca4feea88f7f863fdf7e0a642334bc851ef546007bab4c16748773788325e7693c2983f64e84420fefe66ebd55fba175369ff1cb035880cace69ada40eaa9c4e562258c34290667bbe9f9e089e37dee0a7fa68a1d6ecbb0e227b1711af6f0c662e7b9f665d2460a0460e1c7c84171e8115895dca66cfde0a3d5c59e35674c512b243ce1e9d6a2ec34d88a8d54d49cb3ed640b680b20d58dd07744ee54fcccb4e383b625ffacc120fe18629047851013df66e79cccf101ba839bb63c98bfa01121a41bf239c283e288df5d9730e3f463e905c464c9f7be623a47c2b4f9f948270cd132c67cbb3ef0e32320e83d411a6b4427aed3f657e7d" ], "v": 2 } @@ -59,7 +59,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc846ca961e9c7d073e4b69bb55d2d389f16d58a6d5fbea545a848998537d5026fe275212f67f28a6157e1747db9eb445488d3e56ab96df32df2090cf3a11c95bf0beb228000a33380009da004dd79117bd926f4a8ac0d7c82898a8a3b73e31c229035b21f79d827929aabc6b37077d26b88a1edd8c4e6d5e0681558d1cbebd09ffec80d242137bd9f745ffc6b89fde4a526a0239da0cb97d29db6b2f95e9e0d3ce1ec8d22cc092c95b9453b291a802142c9b0e2162ddc7d9ae4eb3e27081699918005f53afdb84d5dbe2916b02c1dbb14f838f2811d0ec550f07e0ab51a3595556cea1ae203c1c9066cac83d049092fef5912a7d22dc6a89818a0581d00bc975f4870d3f0412c3d9c7fad7d138855e56c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcf77977b33152775a0849e0fb9e90d1b5724a136449d77f85f9623e8a6ee61f10e0d8f485ea13f3e7522cfed28560e0a59a0c03c4b547b09f9da863d6889b7453b1c0c0e5b54222a6259b22ed2b98f752603ce6628b08da4e993c6165b3d7fdaf8ae72965268d0e524c2f0603d44d47e9c0fb410e16e2b1a4ee3cdd465a2c541aad8cc6273d11c66daf989bbd1b1536b816041cb55ab273f1882f078247272f15ccd5e7a1293dcfc299aa809bb595a54eb89afe5f91948671bf96d684828b23d22f6ce70c119dadf107c6882a2c9c7fc478dc285f3c3268ceb2fea1f52e991aae7182e4422c8e41c3e1b07844a705c7687118ea35ab9c896c944fdf4298ad5825005f80ecbaaad437e4bd489ff0d1441e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -84,7 +84,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc846ca961e9c7d073e4b69bb55d2d389f16d58a6d5fbea545a848998537d5026fe275212f67f28a6157e1747db9eb445488d3e56ab96df32df2090cf3a11c95bf0beb228000a33380009da004dd79117bd926f4a8ac0d7c82898a8a3b73e31c229035b21f79d827929aabc6b37077d26b88a1edd8c4e6d5e0681558d1cbebd09ffec80d242137bd9f745ffc6b89fde4a526a0239da0cb97d29db6b2f95e9e0d3ce1ec8d22cc092c95b9453b291a802142c9b0e2162ddc7d9ae4eb3e27081699918005f53afdb84d5dbe2916b02c1dbb14f838f2811d0ec550f07e0ab51a3595556cea1ae203c1c9066cac83d049092fef5912a7d22dc6a89818a0581d00bc975f4870d3f0412c3d9c7fad7d138855e56c" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcf77977b33152775a0849e0fb9e90d1b5724a136449d77f85f9623e8a6ee61f10e0d8f485ea13f3e7522cfed28560e0a59a0c03c4b547b09f9da863d6889b7453b1c0c0e5b54222a6259b22ed2b98f752603ce6628b08da4e993c6165b3d7fdaf8ae72965268d0e524c2f0603d44d47e9c0fb410e16e2b1a4ee3cdd465a2c541aad8cc6273d11c66daf989bbd1b1536b816041cb55ab273f1882f078247272f15ccd5e7a1293dcfc299aa809bb595a54eb89afe5f91948671bf96d684828b23d22f6ce70c119dadf107c6882a2c9c7fc478dc285f3c3268ceb2fea1f52e991aae7182e4422c8e41c3e1b07844a705c7687118ea35ab9c896c944fdf4298ad5825005f80ecbaaad437e4bd489ff0d1441e" ], "v": 2 } @@ -105,7 +105,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc57f85ffccf8e70b0898a351a513249073689e3f752ccf5980e9a9f53238814cf822bfd393e5a011182187e00da33bb8e6816d22227c1bea13e524cbd9a9a680a44d56bcedb7f86701ed51a92e89385df2b1c75b0f37f923eb260624b5d284a0ffc7ea45fde7e851f983f4b08643d36fb7fcb1bf05d594a5a4ae8f78d65fa246681c47ea1923a30a28600082254cfb4a371204ff38164bfcb55e812a6827ed264429a54cb049ca7b40bd569a3ef78dedb9eca1ec189311e985499160fecd9b7a91388def686639bf0ab60f9ae38f5a6243f7ba78a20e0a12b482c5e4d2820140406f08d55a5d121fcbcb0e4b1ce0cb777e218d05d46ccbcf520504b84d2cf59a25e57c4dbeb6178d720ec23120460764d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bceda16bf25f19b2ba0c94d71aae8910336edbe8f825a9f1be66459c95f7d5ce637ffd968733af28c55772302718b1537642462eae63269ca3e1b1806a4285ea492b8b37638b391569cf41a9958e7c039252ea8645bcdb8b1104998e7eec88bb77ca2eca6e5c67125bff1dbb77ba8545eec1a301162fef42843b650e8f058ba0c1a91e9cb871057791d996b8de16fcb07d261a98f909f2be733592615197af1670d7d9d0691d9615721cd2a76f48db165128a311ba268e1cf2c26039f0b2c48bcaca64d340d0dbd03b7cbe0c44cdf32e9deb4fc11ceea9c799693678136e8a8934a696410c4dd99dc339af41270c2b5fa709e60ba4768d1440d612f7895df7724840a5c6f493f382091b10f8aadc17d266\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -130,7 +130,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc57f85ffccf8e70b0898a351a513249073689e3f752ccf5980e9a9f53238814cf822bfd393e5a011182187e00da33bb8e6816d22227c1bea13e524cbd9a9a680a44d56bcedb7f86701ed51a92e89385df2b1c75b0f37f923eb260624b5d284a0ffc7ea45fde7e851f983f4b08643d36fb7fcb1bf05d594a5a4ae8f78d65fa246681c47ea1923a30a28600082254cfb4a371204ff38164bfcb55e812a6827ed264429a54cb049ca7b40bd569a3ef78dedb9eca1ec189311e985499160fecd9b7a91388def686639bf0ab60f9ae38f5a6243f7ba78a20e0a12b482c5e4d2820140406f08d55a5d121fcbcb0e4b1ce0cb777e218d05d46ccbcf520504b84d2cf59a25e57c4dbeb6178d720ec23120460764d" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bceda16bf25f19b2ba0c94d71aae8910336edbe8f825a9f1be66459c95f7d5ce637ffd968733af28c55772302718b1537642462eae63269ca3e1b1806a4285ea492b8b37638b391569cf41a9958e7c039252ea8645bcdb8b1104998e7eec88bb77ca2eca6e5c67125bff1dbb77ba8545eec1a301162fef42843b650e8f058ba0c1a91e9cb871057791d996b8de16fcb07d261a98f909f2be733592615197af1670d7d9d0691d9615721cd2a76f48db165128a311ba268e1cf2c26039f0b2c48bcaca64d340d0dbd03b7cbe0c44cdf32e9deb4fc11ceea9c799693678136e8a8934a696410c4dd99dc339af41270c2b5fa709e60ba4768d1440d612f7895df7724840a5c6f493f382091b10f8aadc17d266" ], "v": 2 } @@ -151,7 +151,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce5c3c861e0d404bee8c16e5ebce826e0d8e85dd403f45a75081065aefadf5fc7c59b86264a4847de423f3625a82374ebf02cb1fb0b4b0001fc8d58ae7cf9a3fc6041ad3d2d4fdd03e1a6c86f9b23525ad50aa6911b529a79e5578e20381b28f95691a92f787294ee30604140fffe39a8cb6075aba4c7a2811c54806fadc353a79e9a9a6252965bcfbe5faa4ece57440ba74f2e58b7b6c49adc3e8cfffe43b1d3b0268747f275d14e68ffb3eca6a6590aea2bf07f64018b090e4944355fda0616d6e296e8042fcd4579f5568c5deeb407ac9a78f485a653c609e0a7d010933314ad2fdbc047a4b0057d99c082e15983941f75332acb480a95b683749cfebf77eb6503281f91e69eab8462513b6bc21ee2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc981f0239ae333c99d66e5d01c963193aaa470df62b2cf1d8fadc9dacfefbf678db1d341af31e204af6bedb5687884f5926aecccff21542589f17ccd5d92f58039d7cb9bc26558dcbe00ad147970e8efd3c8dfe3c269ecd91a9eebd4169d2509d9c9593ce79991fa754adee5102cb0f6bd53e197d022d06f31e56e1a7c964b87fd1e2de5c0e3a5c7bc2bf8dde1b96b79bde395c2bae3528d2b8f03bbe012db7858b2fcdfd76140c593eefbfbcb6f096f7e267094ebcbfcf2b97e1d63355f7402900e78841ae4d014f529dc4ac6726ceefd7f53b331dac99225d26122bc018fb3ef32ef60e18632be85cce7c73801c2094c8eb1f0c966755c54c626568cf3c01bd6f9968d16011a17308379262242d3faf\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -176,7 +176,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce5c3c861e0d404bee8c16e5ebce826e0d8e85dd403f45a75081065aefadf5fc7c59b86264a4847de423f3625a82374ebf02cb1fb0b4b0001fc8d58ae7cf9a3fc6041ad3d2d4fdd03e1a6c86f9b23525ad50aa6911b529a79e5578e20381b28f95691a92f787294ee30604140fffe39a8cb6075aba4c7a2811c54806fadc353a79e9a9a6252965bcfbe5faa4ece57440ba74f2e58b7b6c49adc3e8cfffe43b1d3b0268747f275d14e68ffb3eca6a6590aea2bf07f64018b090e4944355fda0616d6e296e8042fcd4579f5568c5deeb407ac9a78f485a653c609e0a7d010933314ad2fdbc047a4b0057d99c082e15983941f75332acb480a95b683749cfebf77eb6503281f91e69eab8462513b6bc21ee2" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc981f0239ae333c99d66e5d01c963193aaa470df62b2cf1d8fadc9dacfefbf678db1d341af31e204af6bedb5687884f5926aecccff21542589f17ccd5d92f58039d7cb9bc26558dcbe00ad147970e8efd3c8dfe3c269ecd91a9eebd4169d2509d9c9593ce79991fa754adee5102cb0f6bd53e197d022d06f31e56e1a7c964b87fd1e2de5c0e3a5c7bc2bf8dde1b96b79bde395c2bae3528d2b8f03bbe012db7858b2fcdfd76140c593eefbfbcb6f096f7e267094ebcbfcf2b97e1d63355f7402900e78841ae4d014f529dc4ac6726ceefd7f53b331dac99225d26122bc018fb3ef32ef60e18632be85cce7c73801c2094c8eb1f0c966755c54c626568cf3c01bd6f9968d16011a17308379262242d3faf" ], "v": 2 } @@ -205,7 +205,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b97e769d90c4aa9a8664f6041d91455ab95f38d16a8d06669d4393487ea6b1fde1e9532e3d075810c7cb75e2312c1ccba071e065a23c2c3d3a795fb836994b62dd2cba44bf078dcbe8ede1f0da70b421fcb6a55bdd32f285afe0a8220222afee937aedbb92a2b194a84788b6d45abcff27fa4549e99bcb6c1455f529609f6140fb5cbc35040f21dfd54508018a0a25bd0c4c9d35e526b7ad0843121738b0feee112e30d6cb8d6a50f1dd5c5bb7c50353132130126f16db97a124be86b4b499375ac323ae8f3b4262a34287177780d745228248f4271ef33e241274647edd2e7bb9ddcedb3a20db9a682cba094412acfce00bdc7d690e9502058a1b91da23040b9c8851684336236c699500b7d827d84454\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b91dae460933df85e4969c1af944c2e28978bc4808c2e4f10131b732b607dac7eb48f29e66b0599ad7182328009dd2b61f89ba48fd10657e90a6c1f16fd41e97fbaf99a11818257f963c1bc6eecde30663acdc615d65a0653b21704d00ff0a3173de2d878f31fcfdc9c34c77ebc71b41f1e4f0dd617395e5797ae691fc2e5864765f567790a9db72d781467b7f6e1b83cef0fb5a34b54983d0a195334289bf80c6f03ea0c7a1011e4c0177758c82b54eb4b5cd429895f5f79bba741349e330d04b4c5fea589b5765cc5a8584e55c86728e0cc19ef5c808bec946522e12d6c97d690da317f5f493c51d0eb8ee79a859e2864d057a50c5cfc93cc0807e18b9aaa251e349afc80ff526bcbf63b9dc41ffc567\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -216,7 +216,7 @@ "Total Cost": 16.91 } ], - "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b97e769d90c4aa9a8664f6041d91455ab95f38d16a8d06669d4393487ea6b1fde1e9532e3d075810c7cb75e2312c1ccba071e065a23c2c3d3a795fb836994b62dd2cba44bf078dcbe8ede1f0da70b421fcb6a55bdd32f285afe0a8220222afee937aedbb92a2b194a84788b6d45abcff27fa4549e99bcb6c1455f529609f6140fb5cbc35040f21dfd54508018a0a25bd0c4c9d35e526b7ad0843121738b0feee112e30d6cb8d6a50f1dd5c5bb7c50353132130126f16db97a124be86b4b499375ac323ae8f3b4262a34287177780d745228248f4271ef33e241274647edd2e7bb9ddcedb3a20db9a682cba094412acfce00bdc7d690e9502058a1b91da23040b9c8851684336236c699500b7d827d84454\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b91dae460933df85e4969c1af944c2e28978bc4808c2e4f10131b732b607dac7eb48f29e66b0599ad7182328009dd2b61f89ba48fd10657e90a6c1f16fd41e97fbaf99a11818257f963c1bc6eecde30663acdc615d65a0653b21704d00ff0a3173de2d878f31fcfdc9c34c77ebc71b41f1e4f0dd617395e5797ae691fc2e5864765f567790a9db72d781467b7f6e1b83cef0fb5a34b54983d0a195334289bf80c6f03ea0c7a1011e4c0177758c82b54eb4b5cd429895f5f79bba741349e330d04b4c5fea589b5765cc5a8584e55c86728e0cc19ef5c808bec946522e12d6c97d690da317f5f493c51d0eb8ee79a859e2864d057a50c5cfc93cc0807e18b9aaa251e349afc80ff526bcbf63b9dc41ffc567\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Relation Name": "integer_encrypted_10000", "Startup Cost": 16.92, "Total Cost": 226.86 @@ -238,7 +238,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b97e769d90c4aa9a8664f6041d91455ab95f38d16a8d06669d4393487ea6b1fde1e9532e3d075810c7cb75e2312c1ccba071e065a23c2c3d3a795fb836994b62dd2cba44bf078dcbe8ede1f0da70b421fcb6a55bdd32f285afe0a8220222afee937aedbb92a2b194a84788b6d45abcff27fa4549e99bcb6c1455f529609f6140fb5cbc35040f21dfd54508018a0a25bd0c4c9d35e526b7ad0843121738b0feee112e30d6cb8d6a50f1dd5c5bb7c50353132130126f16db97a124be86b4b499375ac323ae8f3b4262a34287177780d745228248f4271ef33e241274647edd2e7bb9ddcedb3a20db9a682cba094412acfce00bdc7d690e9502058a1b91da23040b9c8851684336236c699500b7d827d84454" + "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b91dae460933df85e4969c1af944c2e28978bc4808c2e4f10131b732b607dac7eb48f29e66b0599ad7182328009dd2b61f89ba48fd10657e90a6c1f16fd41e97fbaf99a11818257f963c1bc6eecde30663acdc615d65a0653b21704d00ff0a3173de2d878f31fcfdc9c34c77ebc71b41f1e4f0dd617395e5797ae691fc2e5864765f567790a9db72d781467b7f6e1b83cef0fb5a34b54983d0a195334289bf80c6f03ea0c7a1011e4c0177758c82b54eb4b5cd429895f5f79bba741349e330d04b4c5fea589b5765cc5a8584e55c86728e0cc19ef5c808bec946522e12d6c97d690da317f5f493c51d0eb8ee79a859e2864d057a50c5cfc93cc0807e18b9aaa251e349afc80ff526bcbf63b9dc41ffc567" ], "v": 2 } @@ -259,7 +259,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e365e1efa586a135a120a71549033398f2cbce5b88891afc9d3a622967aa8d8dc53b113eaf91f7e0fe64b07e4809682e3b02d669a9ea612ff80f029011631431896c4512ad6391d90c7827c6faa85e075cb13d2b5674e86d899e6f3bd910ba29df139ba69d18cbf9ae9dfe04592c10d1fcad9a67ab809095c71f799a08037dfd15c2849c19a43d11c03a535751da2c46b581f8a33a8feb983049bf6468551c1f7de504a324f2655f7405b318fd2f8284c5d43ad52934069c2e69a7c9d0aa2e0116866002104f3fedf883ea021aafd8440838f441c1246ad022cfe7f46c402f36d88bc44059f55ecaf8b83a1166da49675be7aadb67a15af6ec4fa71ddfef80fb72c9e167c4f075207100662462a5ccaae1c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e3670b0657354ad4a7421ca41d370e370ff590a6b30fe2af4027fa71292f0e45ac799af17fb03cafe6be194889d475340b068b3fae2b2c12943b5c72e09c2e8299fc9549f3d90e06beb4b7e115ff92c5d982130fceb631a012c1322f858a5426a8765e9803d47a570d7d4b3bc9c311122d9c8dd1235314b4b423d38be0ca0203f990b9610edfe06e1f081c5a36c43316ef6394f9e76b4460031fcb6f0e20a2c90b0801c50a2663bf5f442d47d59266e3279dfaf34b249b4e60518b671af379d156f42f6311b475dbaae20f9db0a1db11a29231de62e70bf65889b9395cb4b00fc9056dfc254cea86d313be589ed5a46fe921ad46fb991ff6bc3b6784eef66189b75e6d0e00661387099c3b52495247cc159\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -288,7 +288,7 @@ "t": "integer_encrypted_10000" }, "ob": [ - "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e365e1efa586a135a120a71549033398f2cbce5b88891afc9d3a622967aa8d8dc53b113eaf91f7e0fe64b07e4809682e3b02d669a9ea612ff80f029011631431896c4512ad6391d90c7827c6faa85e075cb13d2b5674e86d899e6f3bd910ba29df139ba69d18cbf9ae9dfe04592c10d1fcad9a67ab809095c71f799a08037dfd15c2849c19a43d11c03a535751da2c46b581f8a33a8feb983049bf6468551c1f7de504a324f2655f7405b318fd2f8284c5d43ad52934069c2e69a7c9d0aa2e0116866002104f3fedf883ea021aafd8440838f441c1246ad022cfe7f46c402f36d88bc44059f55ecaf8b83a1166da49675be7aadb67a15af6ec4fa71ddfef80fb72c9e167c4f075207100662462a5ccaae1c" + "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e3670b0657354ad4a7421ca41d370e370ff590a6b30fe2af4027fa71292f0e45ac799af17fb03cafe6be194889d475340b068b3fae2b2c12943b5c72e09c2e8299fc9549f3d90e06beb4b7e115ff92c5d982130fceb631a012c1322f858a5426a8765e9803d47a570d7d4b3bc9c311122d9c8dd1235314b4b423d38be0ca0203f990b9610edfe06e1f081c5a36c43316ef6394f9e76b4460031fcb6f0e20a2c90b0801c50a2663bf5f442d47d59266e3279dfaf34b249b4e60518b671af379d156f42f6311b475dbaae20f9db0a1db11a29231de62e70bf65889b9395cb4b00fc9056dfc254cea86d313be589ed5a46fe921ad46fb991ff6bc3b6784eef66189b75e6d0e00661387099c3b52495247cc159" ], "v": 2 } @@ -309,7 +309,7 @@ { "Alias": "integer_encrypted_10000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bca312a3e2e91346fccfa7e1e73602090d983d69dadc05e5db49676b273551a87fc355b31dc329804542f93d17c67a463498b75ff7ec9503249fac50bc3a8029b9440d50832ebf92d5c23ef249c4f08a7fccf67d8e82bc15a9ad391669869dba89b8a6c082544bc8a5a3095186eccf71494a2beec0115605b56a0603d26e2c5e2bd4de6f8c3e1b9f07bd4bb6ba6f972899977547dc254b31f019886c76ce8ac1aea86f7d397773651ea1a24c8ba34bf18d1ff9df0ae42bedee88abb323942e6b7b266dba24babd21e6f757dfa02ff5b88be00f15909ff72a17c74ced3f6b2376ff8ca7c50958342bead3f9a2dcaee0e108f1f465fc354acc8f5cd4a09902cc52707da38f7311e51ef77d82ea93de2537ed\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc14347b7005145baed64bf5fd2b8c091f589680a0075cc7b0ffc370b8403d88e39ef58e2e11513beaeb537b61e17653181c5098ad15b1b4938d2295de2d7182221083e77a080cf8d5811fcbbbb8915865d1c1ca4f1ee713737a75b21e2874b003d9a5e9ec064049a77b210642d44390b830b7ed1001be4cdeed88ba168bc01d5714ddac2c8ba033bd00da6aa4eea70669b3ca6214f798d3abca3debbbdc0aac1bd8110a55015cd6dc522f8e1fe161cb6de2b1f60456d5041488cd50dc15f9ddec1076b2202a0291c2a34a28459ffc061ef95890d8829788296cb6a4c54c8ed3e6c886fce7a37ed38c84c42f83f79eb0581b6592858e80879d01d855bcb646e76612af9987ffdf73d0d65127b8409d5388\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -338,13 +338,141 @@ "t": "integer_encrypted_10000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bca312a3e2e91346fccfa7e1e73602090d983d69dadc05e5db49676b273551a87fc355b31dc329804542f93d17c67a463498b75ff7ec9503249fac50bc3a8029b9440d50832ebf92d5c23ef249c4f08a7fccf67d8e82bc15a9ad391669869dba89b8a6c082544bc8a5a3095186eccf71494a2beec0115605b56a0603d26e2c5e2bd4de6f8c3e1b9f07bd4bb6ba6f972899977547dc254b31f019886c76ce8ac1aea86f7d397773651ea1a24c8ba34bf18d1ff9df0ae42bedee88abb323942e6b7b266dba24babd21e6f757dfa02ff5b88be00f15909ff72a17c74ced3f6b2376ff8ca7c50958342bead3f9a2dcaee0e108f1f465fc354acc8f5cd4a09902cc52707da38f7311e51ef77d82ea93de2537ed" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc14347b7005145baed64bf5fd2b8c091f589680a0075cc7b0ffc370b8403d88e39ef58e2e11513beaeb537b61e17653181c5098ad15b1b4938d2295de2d7182221083e77a080cf8d5811fcbbbb8915865d1c1ca4f1ee713737a75b21e2874b003d9a5e9ec064049a77b210642d44390b830b7ed1001be4cdeed88ba168bc01d5714ddac2c8ba033bd00da6aa4eea70669b3ca6214f798d3abca3debbbdc0aac1bd8110a55015cd6dc522f8e1fe161cb6de2b1f60456d5041488cd50dc15f9ddec1076b2202a0291c2a34a28459ffc061ef95890d8829788296cb6a4c54c8ed3e6c886fce7a37ed38c84c42f83f79eb0581b6592858e80879d01d855bcb646e76612af9987ffdf73d0d65127b8409d5388" ], "v": 2 } ], "query": "SELECT id,value::jsonb FROM integer_encrypted_10000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10", "rows_returned": 10 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b91a80367663852bdfcbc395253c06c9c19d4bb4234c922426de81be8473af8ab59a928fbff4b7f6f70d275c6b00206fb739b00718ed29aeebbbad1fa73bd2ed0789d978867c805e75a42d2517e204e9a807d88bd71a40c8c975cf9bafef627ffefdd245ebb16b7959f956a5916e058dc6f757866458c67afb9f17f60aa1fa4366d91f9ed39cc0d642c80329c3d762ed4a70d7818ac373604b2a15f1efcdb7af4605006becd7e953169cf2c0a1ef5c970875ce3c033f1d15e9ae7c04ef0e0674774397cddbaedbb588d1ad491ea5e1d74bb13f55290e2e9ea95cce66ee2f7e36963557a39358de046dd56a7d263254b0abde73b81fcab424245c1a5aaaf4c6d29ea997cecf2ccc24eeb8fa1181ee17c050\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 16.91 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b91a80367663852bdfcbc395253c06c9c19d4bb4234c922426de81be8473af8ab59a928fbff4b7f6f70d275c6b00206fb739b00718ed29aeebbbad1fa73bd2ed0789d978867c805e75a42d2517e204e9a807d88bd71a40c8c975cf9bafef627ffefdd245ebb16b7959f956a5916e058dc6f757866458c67afb9f17f60aa1fa4366d91f9ed39cc0d642c80329c3d762ed4a70d7818ac373604b2a15f1efcdb7af4605006becd7e953169cf2c0a1ef5c970875ce3c033f1d15e9ae7c04ef0e0674774397cddbaedbb588d1ad491ea5e1d74bb13f55290e2e9ea95cce66ee2f7e36963557a39358de046dd56a7d263254b0abde73b81fcab424245c1a5aaaf4c6d29ea997cecf2ccc24eeb8fa1181ee17c050\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 16.92, + "Total Cost": 214.36 + } + ], + "Startup Cost": 214.49, + "Strategy": "Plain", + "Total Cost": 214.5 + } + } + ], + "id": "ORE/ore/range_selective_gt_count/10000", + "indexes_used": [ + "integer_encrypted_10000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000" + }, + "ob": [ + "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b91a80367663852bdfcbc395253c06c9c19d4bb4234c922426de81be8473af8ab59a928fbff4b7f6f70d275c6b00206fb739b00718ed29aeebbbad1fa73bd2ed0789d978867c805e75a42d2517e204e9a807d88bd71a40c8c975cf9bafef627ffefdd245ebb16b7959f956a5916e058dc6f757866458c67afb9f17f60aa1fa4366d91f9ed39cc0d642c80329c3d762ed4a70d7818ac373604b2a15f1efcdb7af4605006becd7e953169cf2c0a1ef5c970875ce3c033f1d15e9ae7c04ef0e0674774397cddbaedbb588d1ad491ea5e1d74bb13f55290e2e9ea95cce66ee2f7e36963557a39358de046dd56a7d263254b0abde73b81fcab424245c1a5aaaf4c6d29ea997cecf2ccc24eeb8fa1181ee17c050" + ], + "v": 2 + } + ], + "query": "SELECT count(*) FROM integer_encrypted_10000 WHERE value > $1", + "rows_returned": 1 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_10000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36ca01feb59b53a7fd3ec6c294403e0cae2f48e415c42c793a57bca9c9401973eb8ec69c36c2666090eec127850a13fa5739a8b2a4355604b79b3cfedb0230770970707cb62140e7e842ebfd292cfe957f0fa584e76cb7234fdaa826b1f97a98f10afbbc2cae030607a9450893cbd7b464ed9d61c8beeb67a0bc3e125d8911d9091e2b3525dd5ceae3cb99153363aebed8d9184296d198d25b68c82ba42bf1e193d97bbd2f3c58c359d48efd3aa1468f83b720cfba85742b14e70818e39a881303cf1e38f2a3b5c86b7380485e0fb0a79de67098e2c9aa8a7f3f587b86d4f87b2931f5a69d65ebd8d01fc3c65496cbc73d02888eb69744d8c06f28f1a6ffb93d854a252ba483dbf1d79cc7ba4a6829b3c4\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 16.91 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36ca01feb59b53a7fd3ec6c294403e0cae2f48e415c42c793a57bca9c9401973eb8ec69c36c2666090eec127850a13fa5739a8b2a4355604b79b3cfedb0230770970707cb62140e7e842ebfd292cfe957f0fa584e76cb7234fdaa826b1f97a98f10afbbc2cae030607a9450893cbd7b464ed9d61c8beeb67a0bc3e125d8911d9091e2b3525dd5ceae3cb99153363aebed8d9184296d198d25b68c82ba42bf1e193d97bbd2f3c58c359d48efd3aa1468f83b720cfba85742b14e70818e39a881303cf1e38f2a3b5c86b7380485e0fb0a79de67098e2c9aa8a7f3f587b86d4f87b2931f5a69d65ebd8d01fc3c65496cbc73d02888eb69744d8c06f28f1a6ffb93d854a252ba483dbf1d79cc7ba4a6829b3c4\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_10000", + "Startup Cost": 16.92, + "Total Cost": 214.36 + } + ], + "Startup Cost": 214.49, + "Strategy": "Plain", + "Total Cost": 214.5 + } + } + ], + "id": "ORE/ore/range_highly_selective_gt_count/10000", + "indexes_used": [ + "integer_encrypted_10000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000" + }, + "ob": [ + "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36ca01feb59b53a7fd3ec6c294403e0cae2f48e415c42c793a57bca9c9401973eb8ec69c36c2666090eec127850a13fa5739a8b2a4355604b79b3cfedb0230770970707cb62140e7e842ebfd292cfe957f0fa584e76cb7234fdaa826b1f97a98f10afbbc2cae030607a9450893cbd7b464ed9d61c8beeb67a0bc3e125d8911d9091e2b3525dd5ceae3cb99153363aebed8d9184296d198d25b68c82ba42bf1e193d97bbd2f3c58c359d48efd3aa1468f83b720cfba85742b14e70818e39a881303cf1e38f2a3b5c86b7380485e0fb0a79de67098e2c9aa8a7f3f587b86d4f87b2931f5a69d65ebd8d01fc3c65496cbc73d02888eb69744d8c06f28f1a6ffb93d854a252ba483dbf1d79cc7ba4a6829b3c4" + ], + "v": 2 + } + ], + "query": "SELECT count(*) FROM integer_encrypted_10000 WHERE value > $1", + "rows_returned": 1 } ], "target_rows": "10000" diff --git a/results/query/ore_metadata_100000.json b/results/query/ore_metadata_100000.json index b21a516..f1f7a69 100644 --- a/results/query/ore_metadata_100000.json +++ b/results/query/ore_metadata_100000.json @@ -13,7 +13,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bca47ad7534549731c44e6f8ae43f935528296fe8d3533fe139de063f95576d9b55dbdda14c67c41e5fba98e168b989ff6d69ab07c4facafffc88a9c07d08b03a392cd10c4eddcc204656c32fe8322644e9d1668a79977496654e3679ea13c53bc94a0d230f1011e831d43ddf27a31c39e12508fbd608bb1dc684c649dd97bf573aeb0a5078fe6e72c00230490ed497305581711594898b52e4ad8ad040692f613b8594678f4c2ae77b9b2e64f691626ed188e9045730c0df6031ffdd36fd3ca6d212874284261cc54a165fc2d832ebf4c5e66a2387dc40e05f258034a674550b1b9e9ed526c8cdc80ae6883d36a103a05a3ced71df03b5a404a40f752d0524e97eb2e09f5399b6d4fad3034fcdefcef8d\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcbfbaaf8c7a29ce322f2feca2f5d3c6e328479bb189afe2e41b80a02090795ddbb699a2e1bffcd2230148afe271b8c45a54f37c24a512ac8a25770563056b21c1d266bc81d1f57e26823716a03123c9ab2eb62ad6638179e7fa5e5e429a09c6462b4f91bf55a6a67dee3ec8989db162b9043b601675f777bfbdb67ae8099a830b561298bdf02bcde34e856ee07d24b63ecb4aa992f069413c89977f7f843a352873a8d9b8dcee7f144d2777d467d872804291cdfbc6a23e2e0a5d2e6577a575de6c23eacec41b5fb2a12749cec33753d81e6e51d58ad801dcb4f8f2ea4e52591bf9f3ed15f7ab4f3ae314bfa07216e11091fbd9752548b51cbd1b595653eb340ad259388bbdb8187a324e364151bf267c\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -38,7 +38,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bca47ad7534549731c44e6f8ae43f935528296fe8d3533fe139de063f95576d9b55dbdda14c67c41e5fba98e168b989ff6d69ab07c4facafffc88a9c07d08b03a392cd10c4eddcc204656c32fe8322644e9d1668a79977496654e3679ea13c53bc94a0d230f1011e831d43ddf27a31c39e12508fbd608bb1dc684c649dd97bf573aeb0a5078fe6e72c00230490ed497305581711594898b52e4ad8ad040692f613b8594678f4c2ae77b9b2e64f691626ed188e9045730c0df6031ffdd36fd3ca6d212874284261cc54a165fc2d832ebf4c5e66a2387dc40e05f258034a674550b1b9e9ed526c8cdc80ae6883d36a103a05a3ced71df03b5a404a40f752d0524e97eb2e09f5399b6d4fad3034fcdefcef8d" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcbfbaaf8c7a29ce322f2feca2f5d3c6e328479bb189afe2e41b80a02090795ddbb699a2e1bffcd2230148afe271b8c45a54f37c24a512ac8a25770563056b21c1d266bc81d1f57e26823716a03123c9ab2eb62ad6638179e7fa5e5e429a09c6462b4f91bf55a6a67dee3ec8989db162b9043b601675f777bfbdb67ae8099a830b561298bdf02bcde34e856ee07d24b63ecb4aa992f069413c89977f7f843a352873a8d9b8dcee7f144d2777d467d872804291cdfbc6a23e2e0a5d2e6577a575de6c23eacec41b5fb2a12749cec33753d81e6e51d58ad801dcb4f8f2ea4e52591bf9f3ed15f7ab4f3ae314bfa07216e11091fbd9752548b51cbd1b595653eb340ad259388bbdb8187a324e364151bf267c" ], "v": 2 } @@ -59,7 +59,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcc8d0e399915c1409fbe0693675ccdf11458ba4640908d8197d60f34cf19ad8ae8795552ae5ac3976d25075691f279e335e9abcff0102d9d2ace321522e17591b35726bca2c1efa066d734337789854fd221d52799ebc7842fd15d7fc500f27027ce0cf3cd9273fa6a217ffc95881800ab06d6c75adf5b21cbf8b7ba6f8e962d79ae0b9fda4729a8f027c1b0f0651935bc5639fc10d3c3b5230824c6178cc45fecd0bbf22dbd5268049788ab40b3b5a334d6e81d475617b8cf23046eb1068fe3e115047cef9ef39f4e34278fd33f05b6cb875bdd160d57a0061bd8ebaacf429f9a96fafcd18d2a901ab3b987a57147a3bd39d0e5c3a9bb87a75e24ef2ad1c006eb08af175e138160fad88f898f057d696\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc3943e443c9ca6f4a982f878e9289d6a48ac5f9ef9aa8d64610a04e000b51a7a85953d8d28eb42c358a9bcb0b42258c2aa8df440203737f4ecbc1d7dcfd885d9a18e8a0c1f7e6faf95ed6107733228ec20d2f416ef1b95dc6a92d119ac82e0f83bb9e9a8adcac7b037e751ce2182b695ed8903ab442c10b38a96249e1b0775ccd94ae45b14329e72262fb9c5e28b917f68c32a7b22df72e08df89f928b2342ed47719918426305f4f80b36ec1313156ea576bbbc3c51666af80c1bec0a677dfdb264d13cd09c2b84b1eb7d3555811ba9e436f2c22429952e9f2e4e5258e62f70d3290cf6ecbd6e7ceb95dfe74ef647c9a8a09e9366682d1e0b9d532a305bfd5c1ece2f3d9ad55c2b32df39f76a540a267\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -84,7 +84,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcc8d0e399915c1409fbe0693675ccdf11458ba4640908d8197d60f34cf19ad8ae8795552ae5ac3976d25075691f279e335e9abcff0102d9d2ace321522e17591b35726bca2c1efa066d734337789854fd221d52799ebc7842fd15d7fc500f27027ce0cf3cd9273fa6a217ffc95881800ab06d6c75adf5b21cbf8b7ba6f8e962d79ae0b9fda4729a8f027c1b0f0651935bc5639fc10d3c3b5230824c6178cc45fecd0bbf22dbd5268049788ab40b3b5a334d6e81d475617b8cf23046eb1068fe3e115047cef9ef39f4e34278fd33f05b6cb875bdd160d57a0061bd8ebaacf429f9a96fafcd18d2a901ab3b987a57147a3bd39d0e5c3a9bb87a75e24ef2ad1c006eb08af175e138160fad88f898f057d696" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc3943e443c9ca6f4a982f878e9289d6a48ac5f9ef9aa8d64610a04e000b51a7a85953d8d28eb42c358a9bcb0b42258c2aa8df440203737f4ecbc1d7dcfd885d9a18e8a0c1f7e6faf95ed6107733228ec20d2f416ef1b95dc6a92d119ac82e0f83bb9e9a8adcac7b037e751ce2182b695ed8903ab442c10b38a96249e1b0775ccd94ae45b14329e72262fb9c5e28b917f68c32a7b22df72e08df89f928b2342ed47719918426305f4f80b36ec1313156ea576bbbc3c51666af80c1bec0a677dfdb264d13cd09c2b84b1eb7d3555811ba9e436f2c22429952e9f2e4e5258e62f70d3290cf6ecbd6e7ceb95dfe74ef647c9a8a09e9366682d1e0b9d532a305bfd5c1ece2f3d9ad55c2b32df39f76a540a267" ], "v": 2 } @@ -105,7 +105,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcdcffe978b21683de0de0c34696ae1e7af3620b38927983ed81e4f0a065da02e5df334f1bd8a45773dcd6cde85981d31d68e57fbfd5ed1fe323c0d7927ddae1fec43c67f1613027cdff914a690c2a2ec1aab26220e32cfc55846614b8e3e400035ac430c1fedd962fc35c40bc56a064e9a5584fba907c54662db4c092da217fee9ea90c53009a4cdbdabcee3ecf0314f9b11a0dc17ec276ca15c9c5b605ad14b4e6ef140b436ec03c1f4e21131f1bf4ccef35cadbd3e34054ae2dab502bcec0c14ab401f134c0fad17bc2db1c36840e4a81a3140bd0ff75feee8a040f7bb6f48cb75154629e7ab32688a47b460cae90074ecc9740fde20a9ce14882b427996dfa631adde672809609a140b1d657de6213\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcaa6d7dda1508dcb025ba4530f8c3283179584ab0db22d5f36e29f6ecec3892e371e95c1cb17c18fd442b575b22772c54a8f37e09eecc2b7ebd17426304de2d8c3d51b8b751081eb9681847729ec9fe0f6126b2d97d6606391df657ebd98df675340fe7813d96d776ceeefdbeabd6b602ba4d42e0d56c08a164cb88a1c14d81d49e4a88c62d536e581ecbe33674dbe0e97a9d22a8b3349e133bc2c0641086d916143b94c13c91426c0bc9ff4c365f07bdcd95a441f89de86a5d67b6ac1c0c03e7d9d744a045ccc675536d3d1e929381be28eda544056e9c8106f7062e69e6442dba0aa8af37a4c53298a24e7b08c0ca08434d405bb77041336f27d8aec49fb16f101fec1a03dd72fc9f28a6e5084d02dd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -130,7 +130,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcdcffe978b21683de0de0c34696ae1e7af3620b38927983ed81e4f0a065da02e5df334f1bd8a45773dcd6cde85981d31d68e57fbfd5ed1fe323c0d7927ddae1fec43c67f1613027cdff914a690c2a2ec1aab26220e32cfc55846614b8e3e400035ac430c1fedd962fc35c40bc56a064e9a5584fba907c54662db4c092da217fee9ea90c53009a4cdbdabcee3ecf0314f9b11a0dc17ec276ca15c9c5b605ad14b4e6ef140b436ec03c1f4e21131f1bf4ccef35cadbd3e34054ae2dab502bcec0c14ab401f134c0fad17bc2db1c36840e4a81a3140bd0ff75feee8a040f7bb6f48cb75154629e7ab32688a47b460cae90074ecc9740fde20a9ce14882b427996dfa631adde672809609a140b1d657de6213" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcaa6d7dda1508dcb025ba4530f8c3283179584ab0db22d5f36e29f6ecec3892e371e95c1cb17c18fd442b575b22772c54a8f37e09eecc2b7ebd17426304de2d8c3d51b8b751081eb9681847729ec9fe0f6126b2d97d6606391df657ebd98df675340fe7813d96d776ceeefdbeabd6b602ba4d42e0d56c08a164cb88a1c14d81d49e4a88c62d536e581ecbe33674dbe0e97a9d22a8b3349e133bc2c0641086d916143b94c13c91426c0bc9ff4c365f07bdcd95a441f89de86a5d67b6ac1c0c03e7d9d744a045ccc675536d3d1e929381be28eda544056e9c8106f7062e69e6442dba0aa8af37a4c53298a24e7b08c0ca08434d405bb77041336f27d8aec49fb16f101fec1a03dd72fc9f28a6e5084d02dd" ], "v": 2 } @@ -151,7 +151,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc0fc2aba22d9169f6b28d24ca48b501dca3db2a5e16d50e4f7f14473c2138ce0768831cfe327fb1b6cf7f233d3073a6f71fcc86a1cea7478f892fc2039d2f98a4b3fde24cd6792d1d8379215fbeb931c41780d00691592a0d7b1b921b9a04101c70140d87534627f2a92c7fa32d36be3ea3da049bc5e5cf203af86eacf599a7b85e328dbb7d03c22a60556c07ab23547da67943a66e7c5211bce92361f2d2add82ccfb15e6113160936f5c77efd2ad3ad91a585ac53c9bd1d7ed93d359ab6bcaebca1c92b97ce6a9ab37ad67ca277d41c137b8a0cbc08dba59590bf723a804be8fa60762c91b8e9c035ef15484204d84d052e1340c9da3d002839f93015b48c3e50816eebc7f77825d62b76d5ed31fa3e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc1c2266c60d3f36b6fec5b21c89ab896040fdcebe88c40452415319fbf1105cdc7fcb7a7b777f1357c695bf6c21c1002124c4e8195aade6ea2e0cc76a6aad644587ac052d449bdeb7eb2b6a4689bc34cea01fc52422cb7a2e816c8e27b87d26c1af5ee9d9a3dd1e66b3d65b59d4808307ff87f869f4e7e2b38c974414242243d321317ab87c8b111901468c4f8f94f377ca888e719e08a6dfa57b3b1be60a1e263b350f4eacde5727edabb2a2be584febfafe0d22ece42e758b818ba3afa824f43b905fa626164dfacacd011d54c8594feaf7ac4faf0c2f43944f8f6f739d27293e75a09c7aeaf4e5d326ae9e4f5c3d01009b14effabb4e6b28e60998e387b55f09d06171bd6d4187011f6abf4292b954\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", @@ -176,7 +176,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc0fc2aba22d9169f6b28d24ca48b501dca3db2a5e16d50e4f7f14473c2138ce0768831cfe327fb1b6cf7f233d3073a6f71fcc86a1cea7478f892fc2039d2f98a4b3fde24cd6792d1d8379215fbeb931c41780d00691592a0d7b1b921b9a04101c70140d87534627f2a92c7fa32d36be3ea3da049bc5e5cf203af86eacf599a7b85e328dbb7d03c22a60556c07ab23547da67943a66e7c5211bce92361f2d2add82ccfb15e6113160936f5c77efd2ad3ad91a585ac53c9bd1d7ed93d359ab6bcaebca1c92b97ce6a9ab37ad67ca277d41c137b8a0cbc08dba59590bf723a804be8fa60762c91b8e9c035ef15484204d84d052e1340c9da3d002839f93015b48c3e50816eebc7f77825d62b76d5ed31fa3e" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc1c2266c60d3f36b6fec5b21c89ab896040fdcebe88c40452415319fbf1105cdc7fcb7a7b777f1357c695bf6c21c1002124c4e8195aade6ea2e0cc76a6aad644587ac052d449bdeb7eb2b6a4689bc34cea01fc52422cb7a2e816c8e27b87d26c1af5ee9d9a3dd1e66b3d65b59d4808307ff87f869f4e7e2b38c974414242243d321317ab87c8b111901468c4f8f94f377ca888e719e08a6dfa57b3b1be60a1e263b350f4eacde5727edabb2a2be584febfafe0d22ece42e758b818ba3afa824f43b905fa626164dfacacd011d54c8594feaf7ac4faf0c2f43944f8f6f739d27293e75a09c7aeaf4e5d326ae9e4f5c3d01009b14effabb4e6b28e60998e387b55f09d06171bd6d4187011f6abf4292b954" ], "v": 2 } @@ -197,7 +197,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b953531b3b060ae34090ce80ad8482fc3f7762b9c33883b4da2c2f076642d3ed31a6aeff2b3575f09ff7f6310123141304841cc74996d88850fc4ed1f989f4a1693019e01ac64f4c7f46a67c7a1aa6e5e810b697da0815820d5c58f730940200e6676e103c4bd6746b27e374fef5fc76de8f5efe5f547f0c42e8fc48d4a0ce0dfb5f299cb6b36b9d5b76aeb113732d9b8d2acfe5afb7d9e6d59c140578ab4a9d48f298ceddf20a7bf028c04ce603ea91f30a2c09e03e7b20561ab94b23f0dd629b98cfeafbf8400e34f14ab8272b5a00358d9b060a0844768cc814e8a764148f29f3063d95818f26c5b7fae5e61e5d954045faa5cf50958bf6b96b5850afae14f3ab58ea7120338014aa91e85a496c5b13\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9358a15a5e641746b7c6b66e189423d4c88a64df34327a742e1ece8193d81f95d623e0dfd605ded1cdb56a0690278539530b9d2c2437dcc5bf6c7811fe180ca2b2290c0ed9dec1a8c7c9370dc255211b22c425a0a074c63b77b441a0b4eacdfbe703fa8abf7ca3d5a53d4f9c796d8129d90bc964f7a9f92f38560e4c5bd3a1e774bf50bcad83d1ad8346da0b6228f28030edf79ee04a6445ccef6208586fba71e916b61706536965a95cceab3c54a89478da21a3d6c88d86845a142501a1f80d9a18d33fbee14ec3b393ae83304e7d3b4f64ee3a20e45395ba1ca08b86bdc553e22b4583c26b8e66db16f0eeafaf24ef3295156365e60099fba4b0c2f4a946c9cfc7415acb93a1061ecc738114f45caa0\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_100000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -226,7 +226,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b953531b3b060ae34090ce80ad8482fc3f7762b9c33883b4da2c2f076642d3ed31a6aeff2b3575f09ff7f6310123141304841cc74996d88850fc4ed1f989f4a1693019e01ac64f4c7f46a67c7a1aa6e5e810b697da0815820d5c58f730940200e6676e103c4bd6746b27e374fef5fc76de8f5efe5f547f0c42e8fc48d4a0ce0dfb5f299cb6b36b9d5b76aeb113732d9b8d2acfe5afb7d9e6d59c140578ab4a9d48f298ceddf20a7bf028c04ce603ea91f30a2c09e03e7b20561ab94b23f0dd629b98cfeafbf8400e34f14ab8272b5a00358d9b060a0844768cc814e8a764148f29f3063d95818f26c5b7fae5e61e5d954045faa5cf50958bf6b96b5850afae14f3ab58ea7120338014aa91e85a496c5b13" + "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9358a15a5e641746b7c6b66e189423d4c88a64df34327a742e1ece8193d81f95d623e0dfd605ded1cdb56a0690278539530b9d2c2437dcc5bf6c7811fe180ca2b2290c0ed9dec1a8c7c9370dc255211b22c425a0a074c63b77b441a0b4eacdfbe703fa8abf7ca3d5a53d4f9c796d8129d90bc964f7a9f92f38560e4c5bd3a1e774bf50bcad83d1ad8346da0b6228f28030edf79ee04a6445ccef6208586fba71e916b61706536965a95cceab3c54a89478da21a3d6c88d86845a142501a1f80d9a18d33fbee14ec3b393ae83304e7d3b4f64ee3a20e45395ba1ca08b86bdc553e22b4583c26b8e66db16f0eeafaf24ef3295156365e60099fba4b0c2f4a946c9cfc7415acb93a1061ecc738114f45caa0" ], "v": 2 } @@ -247,7 +247,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36d31ebf310f4f64f5edf80e48d5106acd24e0a932f1899d44451ec171617bf9462f3b3defdb109a9c8fdd011ecf6056ff152dea945a72395abcb7c3047ebecd7025b972bba9cac08526c182538e90b3968303422a68b4cfc5275cc59708420f3998c08e8a04db9784be0462bfac2daa18038c49e66523aa3300cc1adce2c2d6d5c9c658a3f5447ad97739ddde9a0fc196dd572f73ff74a4fb2774f1613afbf0665b8832dfbdd46f4cea035ad86dfae1bd64becab39499529c7281a1579080976002a94cc889e36c17232a74ee3b43fa84665959170b38495e31073f45698dcb54e08daddec7cf516627647098be4ffd4a52bc80d28b3d570fab7b6b2e4513c448e2b2513c966a52abd60cef02d033dd26\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36be52a8e1a0ba9ecad24828bfb15d8aba9d468853d6224316b9899ee388a0e35b84e9617e64f848ff68574fec6d156cd2c5e65253ed45558cda5b28324f5da2edd5d7858baadc96ee0f670887a7e7ef91815b506074bb0bbb390d2c101f30cd2212650fb306e18af5014af77ac727d7fe921145425de18f46d170d9d09f69c7e94191a4d9f3fc0b90bcd30e25d306a1d4d38276b35483d076745c11eebf13cf73b71ab4204ff2e1e372c01f2b90e9c6f3ae24d60b67d8a63796665e005ce57e9a69e00d1c8de465d52942972eba441695c6a52fc4c8fa6fd89c06044ef8857624f8ccdb2329040d4e9a043a335c8bb7db8f94c790b501c3d67993f6f9ba9d1525574a92f099e499d1e2a5843a986f9124\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_100000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -276,7 +276,7 @@ "t": "integer_encrypted_100000" }, "ob": [ - "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36d31ebf310f4f64f5edf80e48d5106acd24e0a932f1899d44451ec171617bf9462f3b3defdb109a9c8fdd011ecf6056ff152dea945a72395abcb7c3047ebecd7025b972bba9cac08526c182538e90b3968303422a68b4cfc5275cc59708420f3998c08e8a04db9784be0462bfac2daa18038c49e66523aa3300cc1adce2c2d6d5c9c658a3f5447ad97739ddde9a0fc196dd572f73ff74a4fb2774f1613afbf0665b8832dfbdd46f4cea035ad86dfae1bd64becab39499529c7281a1579080976002a94cc889e36c17232a74ee3b43fa84665959170b38495e31073f45698dcb54e08daddec7cf516627647098be4ffd4a52bc80d28b3d570fab7b6b2e4513c448e2b2513c966a52abd60cef02d033dd26" + "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36be52a8e1a0ba9ecad24828bfb15d8aba9d468853d6224316b9899ee388a0e35b84e9617e64f848ff68574fec6d156cd2c5e65253ed45558cda5b28324f5da2edd5d7858baadc96ee0f670887a7e7ef91815b506074bb0bbb390d2c101f30cd2212650fb306e18af5014af77ac727d7fe921145425de18f46d170d9d09f69c7e94191a4d9f3fc0b90bcd30e25d306a1d4d38276b35483d076745c11eebf13cf73b71ab4204ff2e1e372c01f2b90e9c6f3ae24d60b67d8a63796665e005ce57e9a69e00d1c8de465d52942972eba441695c6a52fc4c8fa6fd89c06044ef8857624f8ccdb2329040d4e9a043a335c8bb7db8f94c790b501c3d67993f6f9ba9d1525574a92f099e499d1e2a5843a986f9124" ], "v": 2 } @@ -297,7 +297,7 @@ { "Alias": "integer_encrypted_100000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc32fb06f4dc0ab36ab1c28b25ebd021e08aab8952a40ba32ffb2c8a1e417cd771d03133c8160da2c0efaa4a739ea7f4457b87052666b3f7e18d82b85be132e368d47a2da4af0dab2a70887fafb9b37924f239ce2639d8de1171faf4fd661c3501a4d1d9cc66f9a8767d019a189870d99127441e4956b25e60f159e5e50d6c363943d096aa7e476ce737393d8344b703a0aee037c9718fe7fa9ec646833b65f67102290d0cd8c6d444b823fe27f4edc44652fb3f3c3f42e88acf5c01ffdbb8b38a1c91da2b65db407f6337d5ed460fa8a76499f883082b0c7dff04b17443c3c257734e1c7b26e782b6e3c7b8effac4da10fa0996ecf03f1aaa2bd2663ebf2814cbf57504215241512f4c07c27e1044c377\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc45bfb34f421b183dbc0afce3324395f8bef03f4e86acd2d9873d90821dc67ee31528425717dd7ab738e15f40335adcdc3460689f78a87b3db6030b688cda7c956ced6821448aca5d76a79c74742ab7fc12523bdd5a82c94083a5faf23c56b77c0ab28ef07cb4fac38cd5059659a362986d4f172f43e3ed178b00925553d54b5a63f17f625b6e99cb9af47e1b2cded836d6f8d160fb9c4f329c684bd947b22f2cfec1fca5ee9a194ff77a41f351cfd33a4412fc82acd01de3347123f23dd773f6e4427dbea13f354adc736dc7f592d97d68349758f1c25e889fcce2a04c3d6c3bee1fc2ea724dde039c2f7b817e5ef7549a198ac130d560296230209d4c52ca200438f350a726ffb9231d9b70100fb30e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_100000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, @@ -307,7 +307,7 @@ "Relation Name": "integer_encrypted_100000", "Scan Direction": "Forward", "Startup Cost": 0.67, - "Total Cost": 98196.07 + "Total Cost": 98196.21 } ], "Startup Cost": 0.67, @@ -326,13 +326,141 @@ "t": "integer_encrypted_100000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc32fb06f4dc0ab36ab1c28b25ebd021e08aab8952a40ba32ffb2c8a1e417cd771d03133c8160da2c0efaa4a739ea7f4457b87052666b3f7e18d82b85be132e368d47a2da4af0dab2a70887fafb9b37924f239ce2639d8de1171faf4fd661c3501a4d1d9cc66f9a8767d019a189870d99127441e4956b25e60f159e5e50d6c363943d096aa7e476ce737393d8344b703a0aee037c9718fe7fa9ec646833b65f67102290d0cd8c6d444b823fe27f4edc44652fb3f3c3f42e88acf5c01ffdbb8b38a1c91da2b65db407f6337d5ed460fa8a76499f883082b0c7dff04b17443c3c257734e1c7b26e782b6e3c7b8effac4da10fa0996ecf03f1aaa2bd2663ebf2814cbf57504215241512f4c07c27e1044c377" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc45bfb34f421b183dbc0afce3324395f8bef03f4e86acd2d9873d90821dc67ee31528425717dd7ab738e15f40335adcdc3460689f78a87b3db6030b688cda7c956ced6821448aca5d76a79c74742ab7fc12523bdd5a82c94083a5faf23c56b77c0ab28ef07cb4fac38cd5059659a362986d4f172f43e3ed178b00925553d54b5a63f17f625b6e99cb9af47e1b2cded836d6f8d160fb9c4f329c684bd947b22f2cfec1fca5ee9a194ff77a41f351cfd33a4412fc82acd01de3347123f23dd773f6e4427dbea13f354adc736dc7f592d97d68349758f1c25e889fcce2a04c3d6c3bee1fc2ea724dde039c2f7b817e5ef7549a198ac130d560296230209d4c52ca200438f350a726ffb9231d9b70100fb30e" ], "v": 2 } ], "query": "SELECT id,value::jsonb FROM integer_encrypted_100000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10", "rows_returned": 10 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9cb2fa1de61f20783cf700958dbdc86fe842e6501d43305c38a1e009b32d508c312c90ef12f3ac4761c63cc40f96b16726ab527a83508f025835c1c571285a81aa11ef90d28d65f2f60ca84e39f1b8e8e1fddaec53a536e4c7c4bb61fb061fae99c9c2dcfd81f5e407f2298f9f1042a707e3e4a338928c3797845b44f4a2815cd68515c4c80b6c391ae477bbc321223c9509010c237d2322552bfbbfd7fd507b1015feb169590fa5c6622cd5041cfd866e4fd7765f25198786a4aabcecfeca4ce9f898c47d786639785f602dcc06e5a78547b07f498e8f3d2da57cb9c07aa7aaaec29f1f5fc237fb80c3742d2723e91ca1c6a4d99ccf4207a412828212f02e1872ba17e28d316c8338cd43190be359dfb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_100000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 160.42 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9cb2fa1de61f20783cf700958dbdc86fe842e6501d43305c38a1e009b32d508c312c90ef12f3ac4761c63cc40f96b16726ab527a83508f025835c1c571285a81aa11ef90d28d65f2f60ca84e39f1b8e8e1fddaec53a536e4c7c4bb61fb061fae99c9c2dcfd81f5e407f2298f9f1042a707e3e4a338928c3797845b44f4a2815cd68515c4c80b6c391ae477bbc321223c9509010c237d2322552bfbbfd7fd507b1015feb169590fa5c6622cd5041cfd866e4fd7765f25198786a4aabcecfeca4ce9f898c47d786639785f602dcc06e5a78547b07f498e8f3d2da57cb9c07aa7aaaec29f1f5fc237fb80c3742d2723e91ca1c6a4d99ccf4207a412828212f02e1872ba17e28d316c8338cd43190be359dfb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 160.54, + "Total Cost": 2109.63 + } + ], + "Startup Cost": 2110.88, + "Strategy": "Plain", + "Total Cost": 2110.89 + } + } + ], + "id": "ORE/ore/range_selective_gt_count/100000", + "indexes_used": [ + "integer_encrypted_100000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_100000" + }, + "ob": [ + "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9cb2fa1de61f20783cf700958dbdc86fe842e6501d43305c38a1e009b32d508c312c90ef12f3ac4761c63cc40f96b16726ab527a83508f025835c1c571285a81aa11ef90d28d65f2f60ca84e39f1b8e8e1fddaec53a536e4c7c4bb61fb061fae99c9c2dcfd81f5e407f2298f9f1042a707e3e4a338928c3797845b44f4a2815cd68515c4c80b6c391ae477bbc321223c9509010c237d2322552bfbbfd7fd507b1015feb169590fa5c6622cd5041cfd866e4fd7765f25198786a4aabcecfeca4ce9f898c47d786639785f602dcc06e5a78547b07f498e8f3d2da57cb9c07aa7aaaec29f1f5fc237fb80c3742d2723e91ca1c6a4d99ccf4207a412828212f02e1872ba17e28d316c8338cd43190be359dfb" + ], + "v": 2 + } + ], + "query": "SELECT count(*) FROM integer_encrypted_100000 WHERE value > $1", + "rows_returned": 1 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Simple", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_100000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e368f1931ce1aaed0f0d318ba891c284a36d19dfe4ce9734d5bcccf4b9651d28863dec1c887347ec8025f748b7c81f23a1cd808d61a996f0269c4c72909fbb60650e7f31320af6118e2b428052d5fd7960617cf51b7845f5c6c1ad5c3c67d6b69823cdb08715a368123f2b1b6f04f3611243e36663effedbb3ac9e55822e9d44ad66f5e3cc6b55cb9b997b68039e050f2bf5c6709dca85cd3055974c152606ccd04771d3f5ca11fadbeca51df522fcfe4ef64bccd12ba8e9f96e21764abbb339bd37f3f0b3f8fc767b023e99b8b6dedd952885a1867760b9bb357f786cde2983bdac807ddfbbe166dc6c95524526461e5b8058722912abae104e29277b6e185b05c16823094d0599047663f8259bd3fc6f2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_100000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 500, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 160.42 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e368f1931ce1aaed0f0d318ba891c284a36d19dfe4ce9734d5bcccf4b9651d28863dec1c887347ec8025f748b7c81f23a1cd808d61a996f0269c4c72909fbb60650e7f31320af6118e2b428052d5fd7960617cf51b7845f5c6c1ad5c3c67d6b69823cdb08715a368123f2b1b6f04f3611243e36663effedbb3ac9e55822e9d44ad66f5e3cc6b55cb9b997b68039e050f2bf5c6709dca85cd3055974c152606ccd04771d3f5ca11fadbeca51df522fcfe4ef64bccd12ba8e9f96e21764abbb339bd37f3f0b3f8fc767b023e99b8b6dedd952885a1867760b9bb357f786cde2983bdac807ddfbbe166dc6c95524526461e5b8058722912abae104e29277b6e185b05c16823094d0599047663f8259bd3fc6f2\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_100000", + "Startup Cost": 160.54, + "Total Cost": 2109.63 + } + ], + "Startup Cost": 2110.88, + "Strategy": "Plain", + "Total Cost": 2110.89 + } + } + ], + "id": "ORE/ore/range_highly_selective_gt_count/100000", + "indexes_used": [ + "integer_encrypted_100000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_100000" + }, + "ob": [ + "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e368f1931ce1aaed0f0d318ba891c284a36d19dfe4ce9734d5bcccf4b9651d28863dec1c887347ec8025f748b7c81f23a1cd808d61a996f0269c4c72909fbb60650e7f31320af6118e2b428052d5fd7960617cf51b7845f5c6c1ad5c3c67d6b69823cdb08715a368123f2b1b6f04f3611243e36663effedbb3ac9e55822e9d44ad66f5e3cc6b55cb9b997b68039e050f2bf5c6709dca85cd3055974c152606ccd04771d3f5ca11fadbeca51df522fcfe4ef64bccd12ba8e9f96e21764abbb339bd37f3f0b3f8fc767b023e99b8b6dedd952885a1867760b9bb357f786cde2983bdac807ddfbbe166dc6c95524526461e5b8058722912abae104e29277b6e185b05c16823094d0599047663f8259bd3fc6f2" + ], + "v": 2 + } + ], + "query": "SELECT count(*) FROM integer_encrypted_100000 WHERE value > $1", + "rows_returned": 1 } ], "target_rows": "100000" diff --git a/results/query/ore_metadata_1000000.json b/results/query/ore_metadata_1000000.json index cf5e865..0ad2a29 100644 --- a/results/query/ore_metadata_1000000.json +++ b/results/query/ore_metadata_1000000.json @@ -13,19 +13,19 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc035addeee789fb2e823f5127d1ea3eb2abec3e929c3f195e7794ec84783ac99293e9193130a55e1b1410f10b6329d3c464483505f17295f734aefb6e1337d2b9c98fdaf8a235d84ef4ff1960efc83ff09e1bd8f63dd6faaab9b80ccd1384130d8cf4ac09c2fa90bb31be4e1ddebe36774abd33f2d9c2e51eeaed60f34c42a440d7aa1747824c7baa7b9e8b070ad454113251385cf58966ca6a198532ac2cb83f883562dbd945ba80181f5ab2bddbdfdc35957e867f11ba1f413f9d34594bd08be25ec5a8691863d709c0b1bd322e54fa37a4aa7b1397ccbb7e83bfd3fcc86581a771819df23434b5fd4d43ec3b5d7199c5b80d404129c2e570861640f43ed28a0c970002f9a35e1369df809d1309d87e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc62a3c03889bfda8d82b216c4c6410faf2006e3d1ba7ade1f8a5773f57be7c3889d905819937b3b99776e0b980b91841c9b1a3f100dc7369dbb5ab31b515155266325bfa0d72dca1d2f2397116230d2452b04424d8677fce4568b2aca0d381b807750d9853d700ebb2eb6ee72ac727a61726856e98b5ac66186a66ae9d10fe8e22c22cf2535b2debf2ed031c20f591367d37596733f4c86af0723c4cc47eb19ba05546b15b79775cae964d41415ad63a25b33bef2a82ce8c0fe7ed9e7d2082270a657241339382f54cf688e06dacb697a11d45c1407d15a9f1a3f7e3fa63a2535d8a96499a19775650b806548e0eedcad5c9416620d39a210fa374b0371139a68d0fa07b7ea6fc98d9a579fb5f9cf8332\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 495003, "Plan Width": 36, "Relation Name": "integer_encrypted_1000000", "Startup Cost": 0.0, - "Total Cost": 736191.25 + "Total Cost": 776611.81 } ], "Startup Cost": 0.0, - "Total Cost": 22.09 + "Total Cost": 15.69 } } ], @@ -38,7 +38,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc035addeee789fb2e823f5127d1ea3eb2abec3e929c3f195e7794ec84783ac99293e9193130a55e1b1410f10b6329d3c464483505f17295f734aefb6e1337d2b9c98fdaf8a235d84ef4ff1960efc83ff09e1bd8f63dd6faaab9b80ccd1384130d8cf4ac09c2fa90bb31be4e1ddebe36774abd33f2d9c2e51eeaed60f34c42a440d7aa1747824c7baa7b9e8b070ad454113251385cf58966ca6a198532ac2cb83f883562dbd945ba80181f5ab2bddbdfdc35957e867f11ba1f413f9d34594bd08be25ec5a8691863d709c0b1bd322e54fa37a4aa7b1397ccbb7e83bfd3fcc86581a771819df23434b5fd4d43ec3b5d7199c5b80d404129c2e570861640f43ed28a0c970002f9a35e1369df809d1309d87e" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc62a3c03889bfda8d82b216c4c6410faf2006e3d1ba7ade1f8a5773f57be7c3889d905819937b3b99776e0b980b91841c9b1a3f100dc7369dbb5ab31b515155266325bfa0d72dca1d2f2397116230d2452b04424d8677fce4568b2aca0d381b807750d9853d700ebb2eb6ee72ac727a61726856e98b5ac66186a66ae9d10fe8e22c22cf2535b2debf2ed031c20f591367d37596733f4c86af0723c4cc47eb19ba05546b15b79775cae964d41415ad63a25b33bef2a82ce8c0fe7ed9e7d2082270a657241339382f54cf688e06dacb697a11d45c1407d15a9f1a3f7e3fa63a2535d8a96499a19775650b806548e0eedcad5c9416620d39a210fa374b0371139a68d0fa07b7ea6fc98d9a579fb5f9cf8332" ], "v": 2 } @@ -59,19 +59,19 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcabf433c453472e46375cfb9e11c18e0e3f87e0245b92ddf5108247cb9915ec904903ad62305a9920d42b6890aaebccbc85fc49a32976d85be76bd6c90134b27d4444f4a53289bc92fecfdff9804d948dabc7c704e9f45fe89c47b81710a4fc20f6f274a24618cb01bc9fc89ab94fb800c232512f1fe71f2b607e83af896d4addbbea739c4552e5b465ac7792a211caae25294f851a90ac7aca8391001d9c65b8fb3853c2942b7ec27cd30f5731b657d56e7061d0fd71ad3348733ad44cb48607536f1f9c8fe94a540c405bcc1abfbe88f58171c51a06f1a8e6917a7a5087b5eba87d49f194bb76656a9fde0bce63c2d40df25f1eb5fade7feddbd8c04ebd7776e92ec8e7a769ffe9a5c80e4e63a81412\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc3a5e60fce4b20c5f84cdf50c14bb7a2d93695db169f646450ac3a5839e639cbd8b2fbaadd3d61d8aee86fb79d304fe3eff4cc04dda0fc39bdcded21ce5d97a3278149bf39f3933c1e689331931d97d079476e424b629c12ad329b6b41806200bbb52c37f553a6093a27a8a65eee6261473a9db28624a3847e95e9065dfcee285883f8d2711165d2cee42679e5c28b2be736f603179abcef7a841dff93d11a12f4f3e4aca7c87a8eed898416b23207dc4cd4c7b320f19517754dd16c3967a9c052d2503f8109595ac3c5ca3cf1c8591dcca454c3e3c415a57dcc9219781d4ac55ec1341c6496303e0af009865c1fa553745301a5c839de1d06216e0c31a6c193b692b545994e1d8bd1ed874bdd9f29b21\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 495003, "Plan Width": 36, "Relation Name": "integer_encrypted_1000000", "Startup Cost": 0.0, - "Total Cost": 736191.25 + "Total Cost": 776611.81 } ], "Startup Cost": 0.0, - "Total Cost": 220.86 + "Total Cost": 156.89 } } ], @@ -84,7 +84,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcabf433c453472e46375cfb9e11c18e0e3f87e0245b92ddf5108247cb9915ec904903ad62305a9920d42b6890aaebccbc85fc49a32976d85be76bd6c90134b27d4444f4a53289bc92fecfdff9804d948dabc7c704e9f45fe89c47b81710a4fc20f6f274a24618cb01bc9fc89ab94fb800c232512f1fe71f2b607e83af896d4addbbea739c4552e5b465ac7792a211caae25294f851a90ac7aca8391001d9c65b8fb3853c2942b7ec27cd30f5731b657d56e7061d0fd71ad3348733ad44cb48607536f1f9c8fe94a540c405bcc1abfbe88f58171c51a06f1a8e6917a7a5087b5eba87d49f194bb76656a9fde0bce63c2d40df25f1eb5fade7feddbd8c04ebd7776e92ec8e7a769ffe9a5c80e4e63a81412" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc3a5e60fce4b20c5f84cdf50c14bb7a2d93695db169f646450ac3a5839e639cbd8b2fbaadd3d61d8aee86fb79d304fe3eff4cc04dda0fc39bdcded21ce5d97a3278149bf39f3933c1e689331931d97d079476e424b629c12ad329b6b41806200bbb52c37f553a6093a27a8a65eee6261473a9db28624a3847e95e9065dfcee285883f8d2711165d2cee42679e5c28b2be736f603179abcef7a841dff93d11a12f4f3e4aca7c87a8eed898416b23207dc4cd4c7b320f19517754dd16c3967a9c052d2503f8109595ac3c5ca3cf1c8591dcca454c3e3c415a57dcc9219781d4ac55ec1341c6496303e0af009865c1fa553745301a5c839de1d06216e0c31a6c193b692b545994e1d8bd1ed874bdd9f29b21" ], "v": 2 } @@ -105,19 +105,19 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcfb185e1980702303c643f954653b34c7357713c723e207ed0348fa34b10abd7c02e289d963ba377b5c7efc4b21dc7c1b7c1461a37ac1123462fd512b9ffde212ffeb78136ed8e1145ea64fc75bf8d9b117ea36c05c23168c3c84a2df2149c38ba0e2faafd9aa349783678d28df4ecc90c977513fb33fe57dcdc8ad323fe71810665a52896d94d088912715b9fbf1d4fa0255f24c6bafd8ce9ec470b4284988eccef7f419e59d1dbc7f68f68a4fb28d0ee70c02726f6923f6196c8adb4d7cc881f926e5600d0cb867a2d852a558659762521e9b97aef8283ed807060737357bb04aff873a5830ca19431eb2304d736d1c12c4fbd453db24e5a381f3eb2dffd7ba3cd7dd444d7bb5319153602a5803220f\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc1f10ea56d47b8492c75f1339860acd4db023a4fcd171ec5d4697c28095e685544b67b814c2ed713ac34de8068c7b4ed893a668246f7494028dd7591cb861b84561dbb641380a18cb04cbd414456b7a08c1e10a9813c6cc2c50ccde3fe28aadcd8ef4960cb6114ac2dd81a2e060240adc0ac941879b1280595677c4edef6403049b3f0f043a4b722bad4daa5617cd9311d1015b47e7a1a693ec0cb1e6253bcf60b8d379950b516793044422f1914c421979291af0da9bd487bdaa416bb66e365212f03dd67a8f0824d2399141ac9ac19d7e7d5098b8fe7274c3db4a7ce80579fb9eb78fc9c6701c2496d901bd624ff9e93e67fc0f3a2d1a282a29f662273606e22f2c7d79631cf462aa5ffafa19632d53\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 505002, "Plan Width": 36, "Relation Name": "integer_encrypted_1000000", "Startup Cost": 0.0, - "Total Cost": 736191.25 + "Total Cost": 779111.56 } ], "Startup Cost": 0.0, - "Total Cost": 22.09 + "Total Cost": 15.43 } } ], @@ -130,7 +130,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcfb185e1980702303c643f954653b34c7357713c723e207ed0348fa34b10abd7c02e289d963ba377b5c7efc4b21dc7c1b7c1461a37ac1123462fd512b9ffde212ffeb78136ed8e1145ea64fc75bf8d9b117ea36c05c23168c3c84a2df2149c38ba0e2faafd9aa349783678d28df4ecc90c977513fb33fe57dcdc8ad323fe71810665a52896d94d088912715b9fbf1d4fa0255f24c6bafd8ce9ec470b4284988eccef7f419e59d1dbc7f68f68a4fb28d0ee70c02726f6923f6196c8adb4d7cc881f926e5600d0cb867a2d852a558659762521e9b97aef8283ed807060737357bb04aff873a5830ca19431eb2304d736d1c12c4fbd453db24e5a381f3eb2dffd7ba3cd7dd444d7bb5319153602a5803220f" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc1f10ea56d47b8492c75f1339860acd4db023a4fcd171ec5d4697c28095e685544b67b814c2ed713ac34de8068c7b4ed893a668246f7494028dd7591cb861b84561dbb641380a18cb04cbd414456b7a08c1e10a9813c6cc2c50ccde3fe28aadcd8ef4960cb6114ac2dd81a2e060240adc0ac941879b1280595677c4edef6403049b3f0f043a4b722bad4daa5617cd9311d1015b47e7a1a693ec0cb1e6253bcf60b8d379950b516793044422f1914c421979291af0da9bd487bdaa416bb66e365212f03dd67a8f0824d2399141ac9ac19d7e7d5098b8fe7274c3db4a7ce80579fb9eb78fc9c6701c2496d901bd624ff9e93e67fc0f3a2d1a282a29f662273606e22f2c7d79631cf462aa5ffafa19632d53" ], "v": 2 } @@ -151,19 +151,19 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcf28f42cb49ccd75fa7e54ba418fcd991111d5f4129246ac88a77e5214e642a4d8e97c073f3af5c652c1a165ef4225398c7c94f18c903c437dd465304087d70187cd10a0cbb348a4edc9d7f90a724c418ac57d9cf92471feb1eebac3c604ec5da99a479e9795e1ac97c63e3403b53d8d2400bbdc1639920baa792384076900dbbabc7b6b325ec56694fed33e9cb5c7f3b40a91d4cf56964e266614447f25d4d0796485905d4b0879b044001bf16ba3a55ced53a94b0e00c756aa3dbbc5b260b64c1ce599612c69183dade17ea9fdd5ac44d7d5a4fee1348e425d2e7cae3460949f89f43ae5a195ecae00794c045006bd1bed6b3d094b0b25e3b5694af78aba0032c8554291e77e1860458e907cc5c2687\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce6a8b6086d0750409358d7141ee7450549514d09b6b1a827332087189e81351a040fabc979b3346f720e5114878db511790c234464edff1c5e59cab46a193b96539dc941cdfcac58b29f905f12e479cb1d26cefc26b569cd911b604d60f80556b989eaa5bf3e3d1715072db7f740692572acb594cdef91fcb53780f0ef54d2938ca7505af0d24e96abaad261abc0279f155168079957d8173918856c0d830cf751668ca7f2c1135c748b7446dfdce13a150b6b1e64923f01ea372d4dab76b4b924995eae1e7ecd91fe36476585bf1ab4a0552bd4c39830be772c47f2ee89a7343f2daaa62ce49e6e70d774892737171676dbff0c58468e23b653a9f2ae33a51b79ec16f6ef653b1aeb454c618041a73b\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 505002, "Plan Width": 36, "Relation Name": "integer_encrypted_1000000", "Startup Cost": 0.0, - "Total Cost": 736191.25 + "Total Cost": 779111.56 } ], "Startup Cost": 0.0, - "Total Cost": 220.86 + "Total Cost": 154.28 } } ], @@ -176,7 +176,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcf28f42cb49ccd75fa7e54ba418fcd991111d5f4129246ac88a77e5214e642a4d8e97c073f3af5c652c1a165ef4225398c7c94f18c903c437dd465304087d70187cd10a0cbb348a4edc9d7f90a724c418ac57d9cf92471feb1eebac3c604ec5da99a479e9795e1ac97c63e3403b53d8d2400bbdc1639920baa792384076900dbbabc7b6b325ec56694fed33e9cb5c7f3b40a91d4cf56964e266614447f25d4d0796485905d4b0879b044001bf16ba3a55ced53a94b0e00c756aa3dbbc5b260b64c1ce599612c69183dade17ea9fdd5ac44d7d5a4fee1348e425d2e7cae3460949f89f43ae5a195ecae00794c045006bd1bed6b3d094b0b25e3b5694af78aba0032c8554291e77e1860458e907cc5c2687" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce6a8b6086d0750409358d7141ee7450549514d09b6b1a827332087189e81351a040fabc979b3346f720e5114878db511790c234464edff1c5e59cab46a193b96539dc941cdfcac58b29f905f12e479cb1d26cefc26b569cd911b604d60f80556b989eaa5bf3e3d1715072db7f740692572acb594cdef91fcb53780f0ef54d2938ca7505af0d24e96abaad261abc0279f155168079957d8173918856c0d830cf751668ca7f2c1135c748b7446dfdce13a150b6b1e64923f01ea372d4dab76b4b924995eae1e7ecd91fe36476585bf1ab4a0552bd4c39830be772c47f2ee89a7343f2daaa62ce49e6e70d774892737171676dbff0c58468e23b653a9f2ae33a51b79ec16f6ef653b1aeb454c618041a73b" ], "v": 2 } @@ -197,24 +197,28 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b973c9cba3bed1de176e1e0c737f3e06a87d24c01f532180c5c6077db31a11b5db39e39761370cfda38eade049692bb691af812eb7057175beb7df44a1e4280960b53b78b78d98b66568e00c60af82a8f01eeb4ca38ddb63ccee9b03ed6cf2aee3bc1c9ff7c05c1ae8754ef48c774f9c062b25b984fe11a69cec39ee6752ecd2595afb793db146724c17eb97d35c60e41ced6ebd7927cf90b486116e1968e7f6a4cac146ca749ef16bb38375c397df01f3df43ac1126fadc672d1709aa748f3b7d085f49723bde2c9e9e142f3b7084bb70b8f036275265f3f5ccb89805e1cf4308fce7df350e57c3355a25e958fe8ff0923307e5aa76c1a2ec1f8cfbe9b781402a8d8650468262388a0b9a78afedcf53ed\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9cc6e472988d60f56a47cba7d9f30e0b64788545ad1dae1999c46fa0b156e1d563f48daebc786bb70ddd61e32974a69ff117a5e76328f922ba4b6a728aee7aee75e06f47c38560954532333812d8322f8c433d41947ca9c3d626dd95cdf01ab694e17346cd07c1c1869c471ab70218ed87648af057fb257188b8a25dc0b0f1974c3b3c7c20ecbf543001e7eb4c5e0ef7b997122321b55f36f294c760a1a172897c72096fe39bbc637ee039159d7f5a5383ae1f4d27c5aed077d2b3e70f7f4a598195da798e683799c8b902de06cd5639baaf9dfe6c3ee74434131ad9b6ff51b7e2c2c777714cfe9c8dbbba410f6696b1543feabece5b01e8c58ea66190e540b112a9b4837b01342bc11dd829309f33937\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_1000000_ore_index", + "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 5000, "Plan Width": 36, "Relation Name": "integer_encrypted_1000000", - "Startup Cost": 0.0, - "Total Cost": 736191.25 + "Scan Direction": "Forward", + "Startup Cost": 0.8, + "Total Cost": 22557.45 } ], - "Startup Cost": 0.0, - "Total Cost": 220.86 + "Startup Cost": 0.8, + "Total Cost": 451.93 } } ], "id": "ORE/ore/range_selective_gt_100/1000000", - "indexes_used": [], + "indexes_used": [ + "integer_encrypted_1000000_ore_index" + ], "parameters": [ { "i": { @@ -222,7 +226,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b973c9cba3bed1de176e1e0c737f3e06a87d24c01f532180c5c6077db31a11b5db39e39761370cfda38eade049692bb691af812eb7057175beb7df44a1e4280960b53b78b78d98b66568e00c60af82a8f01eeb4ca38ddb63ccee9b03ed6cf2aee3bc1c9ff7c05c1ae8754ef48c774f9c062b25b984fe11a69cec39ee6752ecd2595afb793db146724c17eb97d35c60e41ced6ebd7927cf90b486116e1968e7f6a4cac146ca749ef16bb38375c397df01f3df43ac1126fadc672d1709aa748f3b7d085f49723bde2c9e9e142f3b7084bb70b8f036275265f3f5ccb89805e1cf4308fce7df350e57c3355a25e958fe8ff0923307e5aa76c1a2ec1f8cfbe9b781402a8d8650468262388a0b9a78afedcf53ed" + "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9cc6e472988d60f56a47cba7d9f30e0b64788545ad1dae1999c46fa0b156e1d563f48daebc786bb70ddd61e32974a69ff117a5e76328f922ba4b6a728aee7aee75e06f47c38560954532333812d8322f8c433d41947ca9c3d626dd95cdf01ab694e17346cd07c1c1869c471ab70218ed87648af057fb257188b8a25dc0b0f1974c3b3c7c20ecbf543001e7eb4c5e0ef7b997122321b55f36f294c760a1a172897c72096fe39bbc637ee039159d7f5a5383ae1f4d27c5aed077d2b3e70f7f4a598195da798e683799c8b902de06cd5639baaf9dfe6c3ee74434131ad9b6ff51b7e2c2c777714cfe9c8dbbba410f6696b1543feabece5b01e8c58ea66190e540b112a9b4837b01342bc11dd829309f33937" ], "v": 2 } @@ -243,24 +247,28 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e362e90356e07af380dcec26319c745d1f2fed64b395086551b2c70af35183d7f698b2d5da79484f9e665ef27d45f2673fe0241c2e74a550eacd6cad81f62657082ec6c0ecb99acbb0b2594f42efca5e9d12d0a59e968716bc97bce90740302854fc4e5c4a509f1dfadeab14f35ceae0f198453666e9b5e2b4ecaceda7d074369b16e0a01b920fae9a8c4a0c4d743cf34e087a2d8f67f7f35d0ce89ee60290ce36132112bb3fb0162ecf5c2bebdc7c6adfb7bdb44d3afd4087837f34e699596e816e7cdefcfbb415f5d49044f7783a2b04e78994d0ffb764389ea1ed6e1c0f9fd615fd7683bc907f5782ceb86426df1600e840e931f4650a1564a11bf0d6376d3605a1380581345c978a908c837b71af201\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36826025d5cccf199ed561780d68e3f75a38dc99751d8f63a595ec23b8f2f37ff3da38d3ec2cc33796b230696cb12da7b98fd2727e7fba44500e9751626a532b4348105c6cf120473fbb73abc2457b147f06c825823fcf3151941e7f4864973da05e29cdb222744a3be998783538888e06673213bd43ebfecd3b17910ef45ffa0c022f5ccba16d575a8f60afc94c4c23a8ba9e4e7b7b104e25053b46a20208237cd7a61df5bb17c36f6e4fb06081d6397884f6a4c9fe0c2468973a1aeff11b9cef9f5b65b017ba46bb9b0cc4c30dbf4369ea81ba25a16dd54de7d478260a946dc800999ca00925622c07ba831d002454865013eb4d8e7a4616395e6e9f7d8b7671a7879332cbd5f470985cb90f3c264995\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_1000000_ore_index", + "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 5000, "Plan Width": 36, "Relation Name": "integer_encrypted_1000000", - "Startup Cost": 0.0, - "Total Cost": 736191.25 + "Scan Direction": "Forward", + "Startup Cost": 0.8, + "Total Cost": 22557.45 } ], - "Startup Cost": 0.0, - "Total Cost": 22.09 + "Startup Cost": 0.8, + "Total Cost": 45.91 } } ], "id": "ORE/ore/range_highly_selective_gt_10/1000000", - "indexes_used": [], + "indexes_used": [ + "integer_encrypted_1000000_ore_index" + ], "parameters": [ { "i": { @@ -268,7 +276,7 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e362e90356e07af380dcec26319c745d1f2fed64b395086551b2c70af35183d7f698b2d5da79484f9e665ef27d45f2673fe0241c2e74a550eacd6cad81f62657082ec6c0ecb99acbb0b2594f42efca5e9d12d0a59e968716bc97bce90740302854fc4e5c4a509f1dfadeab14f35ceae0f198453666e9b5e2b4ecaceda7d074369b16e0a01b920fae9a8c4a0c4d743cf34e087a2d8f67f7f35d0ce89ee60290ce36132112bb3fb0162ecf5c2bebdc7c6adfb7bdb44d3afd4087837f34e699596e816e7cdefcfbb415f5d49044f7783a2b04e78994d0ffb764389ea1ed6e1c0f9fd615fd7683bc907f5782ceb86426df1600e840e931f4650a1564a11bf0d6376d3605a1380581345c978a908c837b71af201" + "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36826025d5cccf199ed561780d68e3f75a38dc99751d8f63a595ec23b8f2f37ff3da38d3ec2cc33796b230696cb12da7b98fd2727e7fba44500e9751626a532b4348105c6cf120473fbb73abc2457b147f06c825823fcf3151941e7f4864973da05e29cdb222744a3be998783538888e06673213bd43ebfecd3b17910ef45ffa0c022f5ccba16d575a8f60afc94c4c23a8ba9e4e7b7b104e25053b46a20208237cd7a61df5bb17c36f6e4fb06081d6397884f6a4c9fe0c2468973a1aeff11b9cef9f5b65b017ba46bb9b0cc4c30dbf4369ea81ba25a16dd54de7d478260a946dc800999ca00925622c07ba831d002454865013eb4d8e7a4616395e6e9f7d8b7671a7879332cbd5f470985cb90f3c264995" ], "v": 2 } @@ -289,21 +297,21 @@ { "Alias": "integer_encrypted_1000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcfe25aa74c45f540ea9869d814b87456326344ecaddb887948106a4a8afd92807632d2dc6494c7ca7dcf2b8f88ca9266b8fc24c8a69d516e89e3d19f4d0cd8fc3f7b4c2919ee8fab6e47b4940e53e2d087adfbe796bfe69d06957aa10be28e290d167b5bcca6c632090aa425874ecf5a30de441cb145253360f9bc3b5b4b7d71d17e635c5e3ae729975e9a85f8ecf3d8a6969eb441f44b90e9aa3082190734dc9276fdaf7f7b31d220226c3d4d8187a3f7a76394691dceeee7ba0c1d94337413f495037588a28d454f595705a1c7b3ac3b2e86e94617b0c2549599ae518cb3ba46dd8bacd2a0a66a31962fff3557cf93fb56c476e2adbdc0f49ee7ebdf01a741bfecd7038cc43e48a35b3e1dfce63417a\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcc7454297a75c940d0951c142be9814e95ec61cd4924e18ceef6e5339422e134138e197fb11a9b5ffaf528ecfdd29106b069eb2006af8da90a4adbf1e870ef0dfdeb2c01cb92b7ea432a9c5f320ff1f7fbb94bb2ee96eaef5d9980765a818a423adec67987cb6bd8ea297fb9c70c8be9c8238514f049602b581d884494a25d1c51b0bf2c7cffd3ed35846e7b19b4a7f7ae42f1871e99ea271f9596c446135319b172fdd89d1c4c718d9443fedfcd83f6199e3eca994f50f771e1b86e0baeded94fee1e70065464c7c38b9395bafd86ae52a3a81641fe4cce0fc7a7d1573dfc0e6e264097915a6688509a5cf1693b73ce4c9baa47dba4f86437f05411bb2d99915740198d4c43c6c2e2921c75cd7ab1943\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_1000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 333333, + "Plan Rows": 505002, "Plan Width": 68, "Relation Name": "integer_encrypted_1000000", "Scan Direction": "Forward", "Startup Cost": 0.8, - "Total Cost": 847836.63 + "Total Cost": 990161.03 } ], "Startup Cost": 0.8, - "Total Cost": 26.24 + "Total Cost": 20.41 } } ], @@ -318,13 +326,197 @@ "t": "integer_encrypted_1000000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcfe25aa74c45f540ea9869d814b87456326344ecaddb887948106a4a8afd92807632d2dc6494c7ca7dcf2b8f88ca9266b8fc24c8a69d516e89e3d19f4d0cd8fc3f7b4c2919ee8fab6e47b4940e53e2d087adfbe796bfe69d06957aa10be28e290d167b5bcca6c632090aa425874ecf5a30de441cb145253360f9bc3b5b4b7d71d17e635c5e3ae729975e9a85f8ecf3d8a6969eb441f44b90e9aa3082190734dc9276fdaf7f7b31d220226c3d4d8187a3f7a76394691dceeee7ba0c1d94337413f495037588a28d454f595705a1c7b3ac3b2e86e94617b0c2549599ae518cb3ba46dd8bacd2a0a66a31962fff3557cf93fb56c476e2adbdc0f49ee7ebdf01a741bfecd7038cc43e48a35b3e1dfce63417a" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcc7454297a75c940d0951c142be9814e95ec61cd4924e18ceef6e5339422e134138e197fb11a9b5ffaf528ecfdd29106b069eb2006af8da90a4adbf1e870ef0dfdeb2c01cb92b7ea432a9c5f320ff1f7fbb94bb2ee96eaef5d9980765a818a423adec67987cb6bd8ea297fb9c70c8be9c8238514f049602b581d884494a25d1c51b0bf2c7cffd3ed35846e7b19b4a7f7ae42f1871e99ea271f9596c446135319b172fdd89d1c4c718d9443fedfcd83f6199e3eca994f50f771e1b86e0baeded94fee1e70065464c7c38b9395bafd86ae52a3a81641fe4cce0fc7a7d1573dfc0e6e264097915a6688509a5cf1693b73ce4c9baa47dba4f86437f05411bb2d99915740198d4c43c6c2e2921c75cd7ab1943" ], "v": 2 } ], "query": "SELECT id,value::jsonb FROM integer_encrypted_1000000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10", "rows_returned": 10 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Finalize", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 2083, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9303e5e42d7aa93e853d4cd2cfd026e2b789aec720254a8e67101993039721b076eb3afb9eb0dfe84b93129133a06d9f8bb6ac7aad0eec110cb7d286dcc591ed6c2430fdb333bcb29dd1c18d029fea02819000a1713c8e1abddd3fb338620b1808d5636b4027888fc67079bfddca56c591a7f8a1cf70a8d0281b6dd446584d5deadd261e420c30908be061542fdde4bbb6f669b6915e473cf9c8955806c044f274e14d4277c6a331b2cc0c01b411263e9b07047af7fa93efd92ed73cba8c9499bc6869ccac4c63ff6aae4fad5545917c50c275cc17c21b7edd5511e505618f6651cc1b3d9eecb932838a4533635e8651f89a2947701a3b39ceb6f134a679a293b6f25034382cbd274fb90b1a488c53693\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_1000000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 5000, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 1598.3 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9303e5e42d7aa93e853d4cd2cfd026e2b789aec720254a8e67101993039721b076eb3afb9eb0dfe84b93129133a06d9f8bb6ac7aad0eec110cb7d286dcc591ed6c2430fdb333bcb29dd1c18d029fea02819000a1713c8e1abddd3fb338620b1808d5636b4027888fc67079bfddca56c591a7f8a1cf70a8d0281b6dd446584d5deadd261e420c30908be061542fdde4bbb6f669b6915e473cf9c8955806c044f274e14d4277c6a331b2cc0c01b411263e9b07047af7fa93efd92ed73cba8c9499bc6869ccac4c63ff6aae4fad5545917c50c275cc17c21b7edd5511e505618f6651cc1b3d9eecb932838a4533635e8651f89a2947701a3b39ceb6f134a679a293b6f25034382cbd274fb90b1a488c53693\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 1599.55, + "Total Cost": 19587.07 + } + ], + "Startup Cost": 19592.28, + "Strategy": "Plain", + "Total Cost": 19592.29 + } + ], + "Single Copy": false, + "Startup Cost": 20592.28, + "Total Cost": 20592.49, + "Workers Planned": 2 + } + ], + "Startup Cost": 20592.49, + "Strategy": "Plain", + "Total Cost": 20592.5 + } + } + ], + "id": "ORE/ore/range_selective_gt_count/1000000", + "indexes_used": [ + "integer_encrypted_1000000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_1000000" + }, + "ob": [ + "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9303e5e42d7aa93e853d4cd2cfd026e2b789aec720254a8e67101993039721b076eb3afb9eb0dfe84b93129133a06d9f8bb6ac7aad0eec110cb7d286dcc591ed6c2430fdb333bcb29dd1c18d029fea02819000a1713c8e1abddd3fb338620b1808d5636b4027888fc67079bfddca56c591a7f8a1cf70a8d0281b6dd446584d5deadd261e420c30908be061542fdde4bbb6f669b6915e473cf9c8955806c044f274e14d4277c6a331b2cc0c01b411263e9b07047af7fa93efd92ed73cba8c9499bc6869ccac4c63ff6aae4fad5545917c50c275cc17c21b7edd5511e505618f6651cc1b3d9eecb932838a4533635e8651f89a2947701a3b39ceb6f134a679a293b6f25034382cbd274fb90b1a488c53693" + ], + "v": 2 + } + ], + "query": "SELECT count(*) FROM integer_encrypted_1000000 WHERE value > $1", + "rows_returned": 1 + }, + { + "explain": [ + { + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Finalize", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_1000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 2083, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36336ff616214277b1f9a6899ff2fb29346bf2f5c3a21d9eb5d5d6cf0dc00240357a33aafcd12627cbf3992b39f610d077f9226a19af9b25cc95151efdb252be4e2d587b5c259e89390549fb08c6c868134b46199626902ea1f21c2fb68c5ce1f9189f75add605ce84b08ba514b0c7db8b9226350fb7af98e052037f121a305d1a73b27f80d20be84baffc513e7a8234d3709825c65b66cd35462d28bc25f3bbb1fb5a1b51007fe9d1546883962b42a5606ad48d38b1c79c768eaf1b21bd8fd52ca8b9d933bcc3878aba92719f35aac23166144ff1c237a89bdb5e3de96c81be1128e7e839832e23cbf82abcbfafecd214a440a0092f03adf2c9f3e46e5712f3323d254efbb3de9f5cbb698fa9013d1ea6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_1000000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 5000, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 1598.3 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36336ff616214277b1f9a6899ff2fb29346bf2f5c3a21d9eb5d5d6cf0dc00240357a33aafcd12627cbf3992b39f610d077f9226a19af9b25cc95151efdb252be4e2d587b5c259e89390549fb08c6c868134b46199626902ea1f21c2fb68c5ce1f9189f75add605ce84b08ba514b0c7db8b9226350fb7af98e052037f121a305d1a73b27f80d20be84baffc513e7a8234d3709825c65b66cd35462d28bc25f3bbb1fb5a1b51007fe9d1546883962b42a5606ad48d38b1c79c768eaf1b21bd8fd52ca8b9d933bcc3878aba92719f35aac23166144ff1c237a89bdb5e3de96c81be1128e7e839832e23cbf82abcbfafecd214a440a0092f03adf2c9f3e46e5712f3323d254efbb3de9f5cbb698fa9013d1ea6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_1000000", + "Startup Cost": 1599.55, + "Total Cost": 19587.07 + } + ], + "Startup Cost": 19592.28, + "Strategy": "Plain", + "Total Cost": 19592.29 + } + ], + "Single Copy": false, + "Startup Cost": 20592.28, + "Total Cost": 20592.49, + "Workers Planned": 2 + } + ], + "Startup Cost": 20592.49, + "Strategy": "Plain", + "Total Cost": 20592.5 + } + } + ], + "id": "ORE/ore/range_highly_selective_gt_count/1000000", + "indexes_used": [ + "integer_encrypted_1000000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_1000000" + }, + "ob": [ + "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36336ff616214277b1f9a6899ff2fb29346bf2f5c3a21d9eb5d5d6cf0dc00240357a33aafcd12627cbf3992b39f610d077f9226a19af9b25cc95151efdb252be4e2d587b5c259e89390549fb08c6c868134b46199626902ea1f21c2fb68c5ce1f9189f75add605ce84b08ba514b0c7db8b9226350fb7af98e052037f121a305d1a73b27f80d20be84baffc513e7a8234d3709825c65b66cd35462d28bc25f3bbb1fb5a1b51007fe9d1546883962b42a5606ad48d38b1c79c768eaf1b21bd8fd52ca8b9d933bcc3878aba92719f35aac23166144ff1c237a89bdb5e3de96c81be1128e7e839832e23cbf82abcbfafecd214a440a0092f03adf2c9f3e46e5712f3323d254efbb3de9f5cbb698fa9013d1ea6" + ], + "v": 2 + } + ], + "query": "SELECT count(*) FROM integer_encrypted_1000000 WHERE value > $1", + "rows_returned": 1 } ], "target_rows": "1000000" diff --git a/results/query/ore_metadata_10000000.json b/results/query/ore_metadata_10000000.json index df779cf..6b137b5 100644 --- a/results/query/ore_metadata_10000000.json +++ b/results/query/ore_metadata_10000000.json @@ -13,19 +13,19 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce9f7ed622e356cf9c68940a09e4fa6c7f53e37fd1a20685f2a2a72ae6d7919eab25bcf13844f317689fd847005d206ec1816218ec9a2dcb8e446dcf2a0eaed8de0d485642d9c06eaf1387f6430753d5d0435e7f068d641d168118ba14c382047edb764caa4062c1d3d353c202f15b1f45d74b553b3a74b49d2d75ed36d6f31c1f349913841fe6a723724c9efb37675e297f1ad661829c03080963461a8413f5a45b1e535f4bcb9ee04e9863c1917c32e5122fa229ac0fd79e87119c2d386d6b82903c0afb914c6826c542f72db96910f3f52f5d7dd5cb377b9802a473b2d60c753b5ed34ead5511b8551bbcb77c7b69d4c46f685f891bf30c1880f3355a9ac89335779f285fc8a4d2730540f91cf1da7\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce035ad53ca2690eed1e71042c260c9e6ee809838442e212025aab171a1e201c10b8f1ed816c170862c88e71d8f1bbb6ea753a69763773f04aa828616f2dd406571a5105ffb7f0fd2645e30ab97bd8db9695307bc53fef51485e3703569531275349e644604a43d3dc36351733b7ab42841f7e31c17334884cab9c34c825f3e4f1eb5ca73ed4ae08cd4472b1de7923671aa4023c454c0477c0b6bb635e84ffa6a933f1b8bbd2247eb853b54615ff841f7df80eb76849f616aef146bd19016cb3248887cbf00ecfd99745dc8bbf3aaeb514286a2cab99df87029a71ff87e63358b9d0688b079fb4c720e5d1461b38f5b2cfb3c42be361bdce13d4ea5b336f9e8e58d8844c007786f9f4c3abb0fb42e9fc9\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 5050002, "Plan Width": 36, "Relation Name": "integer_encrypted_10000000", "Startup Cost": 0.0, - "Total Cost": 7361905.25 + "Total Cost": 7791074.54 } ], "Startup Cost": 0.0, - "Total Cost": 22.09 + "Total Cost": 15.43 } } ], @@ -38,7 +38,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce9f7ed622e356cf9c68940a09e4fa6c7f53e37fd1a20685f2a2a72ae6d7919eab25bcf13844f317689fd847005d206ec1816218ec9a2dcb8e446dcf2a0eaed8de0d485642d9c06eaf1387f6430753d5d0435e7f068d641d168118ba14c382047edb764caa4062c1d3d353c202f15b1f45d74b553b3a74b49d2d75ed36d6f31c1f349913841fe6a723724c9efb37675e297f1ad661829c03080963461a8413f5a45b1e535f4bcb9ee04e9863c1917c32e5122fa229ac0fd79e87119c2d386d6b82903c0afb914c6826c542f72db96910f3f52f5d7dd5cb377b9802a473b2d60c753b5ed34ead5511b8551bbcb77c7b69d4c46f685f891bf30c1880f3355a9ac89335779f285fc8a4d2730540f91cf1da7" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bce035ad53ca2690eed1e71042c260c9e6ee809838442e212025aab171a1e201c10b8f1ed816c170862c88e71d8f1bbb6ea753a69763773f04aa828616f2dd406571a5105ffb7f0fd2645e30ab97bd8db9695307bc53fef51485e3703569531275349e644604a43d3dc36351733b7ab42841f7e31c17334884cab9c34c825f3e4f1eb5ca73ed4ae08cd4472b1de7923671aa4023c454c0477c0b6bb635e84ffa6a933f1b8bbd2247eb853b54615ff841f7df80eb76849f616aef146bd19016cb3248887cbf00ecfd99745dc8bbf3aaeb514286a2cab99df87029a71ff87e63358b9d0688b079fb4c720e5d1461b38f5b2cfb3c42be361bdce13d4ea5b336f9e8e58d8844c007786f9f4c3abb0fb42e9fc9" ], "v": 2 } @@ -59,19 +59,19 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcaa4cb850266e2f346f8fea794a1917aa7ea9eee7fede9bb46574390fb91029c306c2863f3160b1d50a1c22209038b95afeceab30c37721d6be0b1a58a93bcb76bcbe32bb1aefd0644c058db25ca04e297e4d068a0b8154770a4df0950b96dd0b7c15c69de74428d561f73ebb11c691418b8751e55d5e175eeddc212dfd1565fee086c748f11988efad13c1cb0847b010da5b7306c8541003e226ff21554299470f0d33e560263c005d1086470860a48208c87ad25db365bcc4f196b76bb5b392c6745177154bd309c0f9dbf69da7910ab86af23d190a66afe6e5d6c184df20b7c5f4d03ba7c948fa47e31377be3fe4bfe46ac3932a492ae9eed49d131b605e5da48d3390054fd79722aff6a220503c14\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcf22472e31028b9267367f6ae1d7fda813082cc9cede20d048630743a6358ec81ec542cc9f6638716caebf2ce1f3762a70e5907b839e860e32106815dca3b98bb4969532c49f6ad74a4315ffe634396b78b23adbb4846f88d9a3cd0598023a858f9a7753d96f8339f75788a1d5b79f25feced5e50cffeb151ea84df8e7ecb1ce650d5f8df0c69ef1e48f9d6e3957861dcc67a7072167564a1813f95f16d860d59631db8e9ea7428bcf21fd4706f395b021f320f2ce0202437cd94de9512285cfa2ccb8080509ce91e0c4567e5894e9aef6af305ac3deb09565ed88596b21fd8f80021e5ee348af72b7c6e39195a8c5359a5a4b90d1dbd6d0275879c823624b255a7aae72714955c9987ab9437af111958\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 5050002, "Plan Width": 36, "Relation Name": "integer_encrypted_10000000", "Startup Cost": 0.0, - "Total Cost": 7361905.25 + "Total Cost": 7791074.54 } ], "Startup Cost": 0.0, - "Total Cost": 220.86 + "Total Cost": 154.28 } } ], @@ -84,7 +84,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcaa4cb850266e2f346f8fea794a1917aa7ea9eee7fede9bb46574390fb91029c306c2863f3160b1d50a1c22209038b95afeceab30c37721d6be0b1a58a93bcb76bcbe32bb1aefd0644c058db25ca04e297e4d068a0b8154770a4df0950b96dd0b7c15c69de74428d561f73ebb11c691418b8751e55d5e175eeddc212dfd1565fee086c748f11988efad13c1cb0847b010da5b7306c8541003e226ff21554299470f0d33e560263c005d1086470860a48208c87ad25db365bcc4f196b76bb5b392c6745177154bd309c0f9dbf69da7910ab86af23d190a66afe6e5d6c184df20b7c5f4d03ba7c948fa47e31377be3fe4bfe46ac3932a492ae9eed49d131b605e5da48d3390054fd79722aff6a220503c14" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcf22472e31028b9267367f6ae1d7fda813082cc9cede20d048630743a6358ec81ec542cc9f6638716caebf2ce1f3762a70e5907b839e860e32106815dca3b98bb4969532c49f6ad74a4315ffe634396b78b23adbb4846f88d9a3cd0598023a858f9a7753d96f8339f75788a1d5b79f25feced5e50cffeb151ea84df8e7ecb1ce650d5f8df0c69ef1e48f9d6e3957861dcc67a7072167564a1813f95f16d860d59631db8e9ea7428bcf21fd4706f395b021f320f2ce0202437cd94de9512285cfa2ccb8080509ce91e0c4567e5894e9aef6af305ac3deb09565ed88596b21fd8f80021e5ee348af72b7c6e39195a8c5359a5a4b90d1dbd6d0275879c823624b255a7aae72714955c9987ab9437af111958" ], "v": 2 } @@ -105,19 +105,19 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc8132d7923212529301fdc6ac7b34477530d11b3d7ec96fbb24491111827ba4a3c088470e675b26d0b3aa505dd61edb45c65b90ff960e05ebff9737d17c88cbb558c31143c25512d0b1377d41fa5efe8a134c4440068d78d886e67309efe82ea5e601688cc40ba279889879468b0c723cf3120005de8478891920aaf9d8def79d932a8304099244e4f99115dec9f0dfda776b98a8846acaa601597928cc375d2753118e357b12b8a445214de7611c1508a3cbaa2383db1c89b44e1f63133eefe866d93bdfdac4036b45f79dcef01cc656810b3b8ac238854d972f1893d8c1e0da2700f76f7255948f7293c67d933361fb089969df4efcef5339159b540a434b03bc923e2088967a68b93ce0958da998e6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc3f0e300ff67bc4d9fee3701c15fd2a1379f439472f348072a34d3f9e6dfc5ce064217764ce8b4d315ad49b082c9b558dd12a8de0b0c42022f1ebe75a86cf5cedd7f8a9a8446da81e80db2e3c8959ac852eee567cae6de44594030ced59d4ce678e56033858cb3ba2f7553aeebcd6fec71a72837339d1ce83b8ed6a66f88568d6769afa9ef42abbbd8f68dccfc307ad6a1ac90dd2c3f8b146db56bbfafdad3f08d921085fd9663a490327334c5021a249c5f9e3778f9b4ebdfbc85a24b4ae50921d7e553e55e07f7aa2afbdcf19bc9c7f2cfa52237826319241571e936806059603958a1b582ccfd35346335856af92aa6d8a1587b331b3359c39837c88063ba6a17ceefa37b187db9920dd4f8ba88ee5\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 4950001, "Plan Width": 36, "Relation Name": "integer_encrypted_10000000", "Startup Cost": 0.0, - "Total Cost": 7361905.25 + "Total Cost": 7766074.29 } ], "Startup Cost": 0.0, - "Total Cost": 22.09 + "Total Cost": 15.69 } } ], @@ -130,7 +130,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc8132d7923212529301fdc6ac7b34477530d11b3d7ec96fbb24491111827ba4a3c088470e675b26d0b3aa505dd61edb45c65b90ff960e05ebff9737d17c88cbb558c31143c25512d0b1377d41fa5efe8a134c4440068d78d886e67309efe82ea5e601688cc40ba279889879468b0c723cf3120005de8478891920aaf9d8def79d932a8304099244e4f99115dec9f0dfda776b98a8846acaa601597928cc375d2753118e357b12b8a445214de7611c1508a3cbaa2383db1c89b44e1f63133eefe866d93bdfdac4036b45f79dcef01cc656810b3b8ac238854d972f1893d8c1e0da2700f76f7255948f7293c67d933361fb089969df4efcef5339159b540a434b03bc923e2088967a68b93ce0958da998e6" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc3f0e300ff67bc4d9fee3701c15fd2a1379f439472f348072a34d3f9e6dfc5ce064217764ce8b4d315ad49b082c9b558dd12a8de0b0c42022f1ebe75a86cf5cedd7f8a9a8446da81e80db2e3c8959ac852eee567cae6de44594030ced59d4ce678e56033858cb3ba2f7553aeebcd6fec71a72837339d1ce83b8ed6a66f88568d6769afa9ef42abbbd8f68dccfc307ad6a1ac90dd2c3f8b146db56bbfafdad3f08d921085fd9663a490327334c5021a249c5f9e3778f9b4ebdfbc85a24b4ae50921d7e553e55e07f7aa2afbdcf19bc9c7f2cfa52237826319241571e936806059603958a1b582ccfd35346335856af92aa6d8a1587b331b3359c39837c88063ba6a17ceefa37b187db9920dd4f8ba88ee5" ], "v": 2 } @@ -151,19 +151,19 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcb7119eb60232106d51c55cf33e10845b9cab118f2dbd69bd1f8a51a71e69c708eb9ce74d7dc21d89173cc27449d218a91a171d8fd58eda154a787dd1bfa2a724778bf424e2c12e1114db4554bbb670d5fb7891bbde0ed2c974313108074d538713145b575cc0c169dc3a98e0f851c70b8326dc7ba511d564f54639564a2ff6e0f44baeacdfa25bc448f723529a07b966a0a301c32bb00f8c1e1295573f1cabff2137451e37ab5672bf0a862111155910682b8456ee9a9b9cfd6958353b73b6208e17dd215d207a796afb8790e07cdd9c5f92da803eac86a083bb3654de1638eab39c210ba3d70e2aea44bba80a2e4d33a82da6ba938116cefa072c21cad029eda93f4a7dc3d1daf7f4681a89a0ac7c44\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Filter": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc43a1ddec1ade1332d580d84e400ad9bf21691674d9edec0a1ca27d2c2d11e7c071cb97f10b33a98bc723350a42423ab0dd795c5a8347e3988a57f57599d058b161c97821aadcfaa8106ba32a7e21dbe4b46b57f4a2a1d79b56e96fd3d35520a235cda31312ecdcc17aec5b43aded4495b31006a25d72dca981c939e0351b3dfcfe98cf25896c488f13541336442e82cddbc625fb593b534672cac0b3a3dd30bd63be28eae0f3540007fc26fcbf7cb79633325cd94c3ce52b9260e85ec9368c777849d03910f89a6be4afbeb542104f507e5a4d4f9275d2922fa250c56b443739cccf1f5e74f71728219714d637e4773fdbebd76e6ec9a3d5fe303715a9d0f0a604840ba7f9df2af6aa1dc5cf16e406c6\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Node Type": "Seq Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 4950001, "Plan Width": 36, "Relation Name": "integer_encrypted_10000000", "Startup Cost": 0.0, - "Total Cost": 7361905.25 + "Total Cost": 7766074.29 } ], "Startup Cost": 0.0, - "Total Cost": 220.86 + "Total Cost": 156.89 } } ], @@ -176,7 +176,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bcb7119eb60232106d51c55cf33e10845b9cab118f2dbd69bd1f8a51a71e69c708eb9ce74d7dc21d89173cc27449d218a91a171d8fd58eda154a787dd1bfa2a724778bf424e2c12e1114db4554bbb670d5fb7891bbde0ed2c974313108074d538713145b575cc0c169dc3a98e0f851c70b8326dc7ba511d564f54639564a2ff6e0f44baeacdfa25bc448f723529a07b966a0a301c32bb00f8c1e1295573f1cabff2137451e37ab5672bf0a862111155910682b8456ee9a9b9cfd6958353b73b6208e17dd215d207a796afb8790e07cdd9c5f92da803eac86a083bb3654de1638eab39c210ba3d70e2aea44bba80a2e4d33a82da6ba938116cefa072c21cad029eda93f4a7dc3d1daf7f4681a89a0ac7c44" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc43a1ddec1ade1332d580d84e400ad9bf21691674d9edec0a1ca27d2c2d11e7c071cb97f10b33a98bc723350a42423ab0dd795c5a8347e3988a57f57599d058b161c97821aadcfaa8106ba32a7e21dbe4b46b57f4a2a1d79b56e96fd3d35520a235cda31312ecdcc17aec5b43aded4495b31006a25d72dca981c939e0351b3dfcfe98cf25896c488f13541336442e82cddbc625fb593b534672cac0b3a3dd30bd63be28eae0f3540007fc26fcbf7cb79633325cd94c3ce52b9260e85ec9368c777849d03910f89a6be4afbeb542104f507e5a4d4f9275d2922fa250c56b443739cccf1f5e74f71728219714d637e4773fdbebd76e6ec9a3d5fe303715a9d0f0a604840ba7f9df2af6aa1dc5cf16e406c6" ], "v": 2 } @@ -197,24 +197,28 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b90a6e72435955f17eca00bb5f24313355ddd769245e20eb3cf26894ef43403ef5ba9310bcb83c432fa5351944383f549d9f8f0b826c16146da7220bfb64a1fb262f2b0495330e0bd235b375daddc8c3f0bb7c0e0744c137e356ad043adcd0cbe7047298e4b5a14084aa7e52acbf28531f78b25828bdde1af75b0089afef8c1e1c70d8cce9adfac3f687fe207d7b779e3aad4631976390402c9123618ca76ae8d5fe52ddf11d8ad8f27c860cb5b864516351a6f5c65e2ed17e8cf28f9fb9998b51f4e924d5de50227a42d29284139555cfb259e673df19abdb2a6bd8a2e262c8ef98668b023d9add2135c159f4a0980e7a207ad001f0d74b0a7e02c5b159f12b35ab41f1e7454438c7be1d02bd5a0bd7ba\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b94da6a5c9730d37d11cfa0560bc682cabfa753c419e4719a7b1568265a12319e2b810be016244a215aa315ce894faf33a304c17197f68ddc0c5203ca82fd55a34870e5f445a834781ec684e007b489678f925aa5ea2083eda4bace925157a22ee9c1f48d64c33d18907cba79f728961e13d1457e95644139c3df24d89ffeb31d195b06d4893ca4d8a90cbadeed07fdba653fb4c62ee72e9e2c00336ba41dfc6160151c5370f7344881919a877daa7d473d628ed92b04e39da3e29347b705829051cc6cefdc8151e26582eaaa618fee547cf762daa98399af7347ed463730a56f6801c3495c5e0f880f51bf6820df041c0e16f67d4e85b0582a3f4d52fe493c66ab0f6378b831e6fe5edadb596c59260eb\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000000_ore_index", + "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 50000, "Plan Width": 36, "Relation Name": "integer_encrypted_10000000", - "Startup Cost": 0.0, - "Total Cost": 7361905.25 + "Scan Direction": "Forward", + "Startup Cost": 0.94, + "Total Cost": 225527.79 } ], - "Startup Cost": 0.0, - "Total Cost": 220.86 + "Startup Cost": 0.94, + "Total Cost": 451.99 } } ], "id": "ORE/ore/range_selective_gt_100/10000000", - "indexes_used": [], + "indexes_used": [ + "integer_encrypted_10000000_ore_index" + ], "parameters": [ { "i": { @@ -222,7 +226,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b90a6e72435955f17eca00bb5f24313355ddd769245e20eb3cf26894ef43403ef5ba9310bcb83c432fa5351944383f549d9f8f0b826c16146da7220bfb64a1fb262f2b0495330e0bd235b375daddc8c3f0bb7c0e0744c137e356ad043adcd0cbe7047298e4b5a14084aa7e52acbf28531f78b25828bdde1af75b0089afef8c1e1c70d8cce9adfac3f687fe207d7b779e3aad4631976390402c9123618ca76ae8d5fe52ddf11d8ad8f27c860cb5b864516351a6f5c65e2ed17e8cf28f9fb9998b51f4e924d5de50227a42d29284139555cfb259e673df19abdb2a6bd8a2e262c8ef98668b023d9add2135c159f4a0980e7a207ad001f0d74b0a7e02c5b159f12b35ab41f1e7454438c7be1d02bd5a0bd7ba" + "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b94da6a5c9730d37d11cfa0560bc682cabfa753c419e4719a7b1568265a12319e2b810be016244a215aa315ce894faf33a304c17197f68ddc0c5203ca82fd55a34870e5f445a834781ec684e007b489678f925aa5ea2083eda4bace925157a22ee9c1f48d64c33d18907cba79f728961e13d1457e95644139c3df24d89ffeb31d195b06d4893ca4d8a90cbadeed07fdba653fb4c62ee72e9e2c00336ba41dfc6160151c5370f7344881919a877daa7d473d628ed92b04e39da3e29347b705829051cc6cefdc8151e26582eaaa618fee547cf762daa98399af7347ed463730a56f6801c3495c5e0f880f51bf6820df041c0e16f67d4e85b0582a3f4d52fe493c66ab0f6378b831e6fe5edadb596c59260eb" ], "v": 2 } @@ -243,24 +247,28 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Filter": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e362d7a510fc7d46008fe6067002171f9642fae8a000509fee2c127df0e97786422914d978ab9a267c42d6802b197cedd4559d1eb60928041eb30f70beeadee64deec4637be4a8efb1694de349958bec1bb971eae1fa61b8dc6e310804b3081824d4bcb368e19a464a5ea9e42bc2ea057960076d3adf73a65b2d3c9e9e85647a60642cb99df28a65ba53b4161aecb75493963c82402757169b0472e51253b8b505d7d10ba32c7ce5e036e8c3c794313cb63963d4d2ed31503d5ff23821e0a6df22caa1283805c306ba89e0bfee044ed2c9a274c230000dc215364beb1f904b2c4d11a096bd5c272f875742ebb122a8627346963f9f5fdb330379f6957e5b995ab947459e8bdd5b96d0fcc5df978bbd25b91\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", - "Node Type": "Seq Scan", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36b9581b419d45178f30a9a1425f682756e3bdfbb522e3ae4b80e8ce1396a389b264d8022ba559ca8817d1bad7b3dd81c3fae9777aad6410b408d953019daf32eb05ddaa96c7c307d44f5f562258b020e845f7225c1f7a24d2bc579cea64ed2466d3443af5da3191984de5ef5d676a3be46ac355a6e12de53fa351bf664472b87e4f8a84afee754fb4de1d907d8c93dfe73cbc2cfbdbf0d7d0b71f106de7d77b5dfe34a4fc4fc1723d32268d84dfa3c2b3eeba29fbd74be16a38e18ba0d22a1efa91de07ff11fb8be9a6a341f7da6d641af43018f1987d5b2aceb44e68592d1fa032f56cb4dba6226a4cddcb76d6e47b214ec07204ac1fd370df4588df09fb18e9fe9bb541594b3c0e15632acdd041728e\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000000_ore_index", + "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 50000, "Plan Width": 36, "Relation Name": "integer_encrypted_10000000", - "Startup Cost": 0.0, - "Total Cost": 7361905.25 + "Scan Direction": "Forward", + "Startup Cost": 0.94, + "Total Cost": 225527.79 } ], - "Startup Cost": 0.0, - "Total Cost": 22.09 + "Startup Cost": 0.94, + "Total Cost": 46.04 } } ], "id": "ORE/ore/range_highly_selective_gt_10/10000000", - "indexes_used": [], + "indexes_used": [ + "integer_encrypted_10000000_ore_index" + ], "parameters": [ { "i": { @@ -268,7 +276,7 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e362d7a510fc7d46008fe6067002171f9642fae8a000509fee2c127df0e97786422914d978ab9a267c42d6802b197cedd4559d1eb60928041eb30f70beeadee64deec4637be4a8efb1694de349958bec1bb971eae1fa61b8dc6e310804b3081824d4bcb368e19a464a5ea9e42bc2ea057960076d3adf73a65b2d3c9e9e85647a60642cb99df28a65ba53b4161aecb75493963c82402757169b0472e51253b8b505d7d10ba32c7ce5e036e8c3c794313cb63963d4d2ed31503d5ff23821e0a6df22caa1283805c306ba89e0bfee044ed2c9a274c230000dc215364beb1f904b2c4d11a096bd5c272f875742ebb122a8627346963f9f5fdb330379f6957e5b995ab947459e8bdd5b96d0fcc5df978bbd25b91" + "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e36b9581b419d45178f30a9a1425f682756e3bdfbb522e3ae4b80e8ce1396a389b264d8022ba559ca8817d1bad7b3dd81c3fae9777aad6410b408d953019daf32eb05ddaa96c7c307d44f5f562258b020e845f7225c1f7a24d2bc579cea64ed2466d3443af5da3191984de5ef5d676a3be46ac355a6e12de53fa351bf664472b87e4f8a84afee754fb4de1d907d8c93dfe73cbc2cfbdbf0d7d0b71f106de7d77b5dfe34a4fc4fc1723d32268d84dfa3c2b3eeba29fbd74be16a38e18ba0d22a1efa91de07ff11fb8be9a6a341f7da6d641af43018f1987d5b2aceb44e68592d1fa032f56cb4dba6226a4cddcb76d6e47b214ec07204ac1fd370df4588df09fb18e9fe9bb541594b3c0e15632acdd041728e" ], "v": 2 } @@ -289,21 +297,21 @@ { "Alias": "integer_encrypted_10000000", "Async Capable": false, - "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc289c53daf516e8568c88adb4f2d3b23cbbf7a042fdcd1d6cbad70010a62ee830bc54df044bb9e29efe363cab6fc4ee4c3e39d2f8a9ee67cc65c649dee782e170148ef852e50bceb66186e0fea1be6e01145a88d33344152b04143be84e12a338d80e1915b300915d044bfb40037e18ccbfb0519ec06bcdecfe08e4f3e501109828f3c1421d805f26c94939e3a42cba0d0f1b60be9525c804f26323400d823355c5c05a6d8c6f6a275b307e44243dbee6725d69b0cd9a7c34a92203edaec1cc29b595f8e360f7b3c46a996626e1e734f75be6d272d3bdf86dea2c60209b0d4cf1f744cee86267dc086ca4d62f8f45d0c1a753db67911a34e7dd5545b580597778307a13ab6d7bca8c3f6edcd759b75d54\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) < '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc24f6a359f41fa3cb965233c1f31d65223e5fd83fa64ff6710ae83260a215b9d9b4d148c6297672bab63eb4affa1c28e64db59dd5af66b045c7d6be898b226b92ae831f7603e284bb1fefaa90bc751f632bb090d4438d5f600fb7289fd77b5485af1071fa0fc7f1bdcc45fbdffa5bb08e330bcf5987b536e9bba026c6f030ce6564f7107a72dbeaa665eceaacaa37f766d8bf8026a214aaaf8c79467ed8db91eb01414832c4742e38f909e8b234049d6e80c34d6533388ec2305aedc60868a03d63986a148a7952194a8ac88f122b8273a30ac4c14b1cb76adecce5a397aa7db67f507bd3d5b86e8e080e4c7cfb8bf96c59e31254b3fe5685f67c6414e79b01174f5146ddd77969c4a9f330134252ef67\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", "Index Name": "integer_encrypted_10000000_ore_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", - "Plan Rows": 3333333, + "Plan Rows": 4950001, "Plan Width": 68, "Relation Name": "integer_encrypted_10000000", "Scan Direction": "Forward", "Startup Cost": 0.94, - "Total Cost": 13113848.76 + "Total Cost": 19385383.19 } ], "Startup Cost": 0.94, - "Total Cost": 40.28 + "Total Cost": 40.1 } } ], @@ -318,13 +326,215 @@ "t": "integer_encrypted_10000000" }, "ob": [ - "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc289c53daf516e8568c88adb4f2d3b23cbbf7a042fdcd1d6cbad70010a62ee830bc54df044bb9e29efe363cab6fc4ee4c3e39d2f8a9ee67cc65c649dee782e170148ef852e50bceb66186e0fea1be6e01145a88d33344152b04143be84e12a338d80e1915b300915d044bfb40037e18ccbfb0519ec06bcdecfe08e4f3e501109828f3c1421d805f26c94939e3a42cba0d0f1b60be9525c804f26323400d823355c5c05a6d8c6f6a275b307e44243dbee6725d69b0cd9a7c34a92203edaec1cc29b595f8e360f7b3c46a996626e1e734f75be6d272d3bdf86dea2c60209b0d4cf1f744cee86267dc086ca4d62f8f45d0c1a753db67911a34e7dd5545b580597778307a13ab6d7bca8c3f6edcd759b75d54" + "818181813d3ba05650f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f48144b2318d70dbf219e5ccc1d1871c3b4249148392b5dab99ef56f446d7e2b2ee6e9f2875635d6b2b1b5c167a713e05cee6d388100bab0f678d763ff3cbe16bc24f6a359f41fa3cb965233c1f31d65223e5fd83fa64ff6710ae83260a215b9d9b4d148c6297672bab63eb4affa1c28e64db59dd5af66b045c7d6be898b226b92ae831f7603e284bb1fefaa90bc751f632bb090d4438d5f600fb7289fd77b5485af1071fa0fc7f1bdcc45fbdffa5bb08e330bcf5987b536e9bba026c6f030ce6564f7107a72dbeaa665eceaacaa37f766d8bf8026a214aaaf8c79467ed8db91eb01414832c4742e38f909e8b234049d6e80c34d6533388ec2305aedc60868a03d63986a148a7952194a8ac88f122b8273a30ac4c14b1cb76adecce5a397aa7db67f507bd3d5b86e8e080e4c7cfb8bf96c59e31254b3fe5685f67c6414e79b01174f5146ddd77969c4a9f330134252ef67" ], "v": 2 } ], "query": "SELECT id,value::jsonb FROM integer_encrypted_10000000 WHERE value < $1 ORDER BY eql_v2.ore_block_u64_8_256(value) LIMIT 10", "rows_returned": 10 + }, + { + "explain": [ + { + "JIT": { + "Functions": 7, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": false, + "Optimization": false + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Finalize", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 20833, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9c22306bb84f2ee781c0cb8f7d53003060948ab2ed3082927e8862e763fa2342a844ff626ab7fe272b282a43d4e0c68d8c0d6a3874b55845ede4a7703ac1cba89ef0a4218b287cc7c21458d042a0664196c4eb69769dbaa42e692a0a14a23523453cc5186247a554401d396c8659a21420c6d22ea18e03dc07820a4dcf1c15045cefd19f78505615b38ea28d297f05fdda6da1ea2af15e5e09a5adb5f364a00ef6f72370675bb96f4c0ac07a8f7e56a5319f20543b1978620990d71c1089600ce66d6121202d28663652ad230098e1da5856d5874f2438c3a87f3c5cac4d906885bc95325fca5794b131cb8590ff5081e67ec424fb85f94a5c243d8589487a0aa86f4fc09859e72eeed9ad139336d9112\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50000, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 15963.93 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9c22306bb84f2ee781c0cb8f7d53003060948ab2ed3082927e8862e763fa2342a844ff626ab7fe272b282a43d4e0c68d8c0d6a3874b55845ede4a7703ac1cba89ef0a4218b287cc7c21458d042a0664196c4eb69769dbaa42e692a0a14a23523453cc5186247a554401d396c8659a21420c6d22ea18e03dc07820a4dcf1c15045cefd19f78505615b38ea28d297f05fdda6da1ea2af15e5e09a5adb5f364a00ef6f72370675bb96f4c0ac07a8f7e56a5319f20543b1978620990d71c1089600ce66d6121202d28663652ad230098e1da5856d5874f2438c3a87f3c5cac4d906885bc95325fca5794b131cb8590ff5081e67ec424fb85f94a5c243d8589487a0aa86f4fc09859e72eeed9ad139336d9112\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 15976.43, + "Total Cost": 195823.06 + } + ], + "Startup Cost": 195875.15, + "Strategy": "Plain", + "Total Cost": 195875.16 + } + ], + "Single Copy": false, + "Startup Cost": 196875.15, + "Total Cost": 196875.36, + "Workers Planned": 2 + } + ], + "Startup Cost": 196875.36, + "Strategy": "Plain", + "Total Cost": 196875.37 + } + } + ], + "id": "ORE/ore/range_selective_gt_count/10000000", + "indexes_used": [ + "integer_encrypted_10000000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000000" + }, + "ob": [ + "818181819c54c4cd50f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12bbb0bd496b07fcd3fb5f6023b99f693a88b0a0e8c51a1c10c2af20a0e7cfc0a7e40c25d147a0ac4821b8eae3d8d762b9c22306bb84f2ee781c0cb8f7d53003060948ab2ed3082927e8862e763fa2342a844ff626ab7fe272b282a43d4e0c68d8c0d6a3874b55845ede4a7703ac1cba89ef0a4218b287cc7c21458d042a0664196c4eb69769dbaa42e692a0a14a23523453cc5186247a554401d396c8659a21420c6d22ea18e03dc07820a4dcf1c15045cefd19f78505615b38ea28d297f05fdda6da1ea2af15e5e09a5adb5f364a00ef6f72370675bb96f4c0ac07a8f7e56a5319f20543b1978620990d71c1089600ce66d6121202d28663652ad230098e1da5856d5874f2438c3a87f3c5cac4d906885bc95325fca5794b131cb8590ff5081e67ec424fb85f94a5c243d8589487a0aa86f4fc09859e72eeed9ad139336d9112" + ], + "v": 2 + } + ], + "query": "SELECT count(*) FROM integer_encrypted_10000000 WHERE value > $1", + "rows_returned": 1 + }, + { + "explain": [ + { + "JIT": { + "Functions": 7, + "Options": { + "Deforming": true, + "Expressions": true, + "Inlining": false, + "Optimization": false + } + }, + "Plan": { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Partial Mode": "Finalize", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Gather", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 2, + "Plan Width": 8, + "Plans": [ + { + "Async Capable": false, + "Node Type": "Aggregate", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Partial Mode": "Partial", + "Plan Rows": 1, + "Plan Width": 8, + "Plans": [ + { + "Alias": "integer_encrypted_10000000", + "Async Capable": false, + "Node Type": "Bitmap Heap Scan", + "Parallel Aware": true, + "Parent Relationship": "Outer", + "Plan Rows": 20833, + "Plan Width": 0, + "Plans": [ + { + "Async Capable": false, + "Index Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e3636a48cacc6fa21cf8b6d7e9397f66d65db0bf1139c96af507702882ec0a2b2e6788ed111afd249f56cfd3ab4345e84ff9c24a3d868f851280738122f536435565d32364de6a0ce34331f73783093fe7d25b468c99da1ba0f27cdce6fe1cbd01142f5fa9c226ebefde9fdf008cc082e47e151a647218343e65430dc173e30dfd2e73d8194c5260d63c3576f2e31b1a7bb22ca6af9cbb6becdb745325c2dd4241fadc83b7a650ec9be1ec1c808b7a9ce3c7cee5eb0706c4bc89df7f7b3c3bb11352cca1986ab8b1bc3d9d02d2c30039258bf6c0a045f6933e4c532028601e760996e0e463b5cad6bf39064caebf7f8b6a2ae3946bdcb70fbebefb6d729ad9cb1406564f445922fb1653bf5c6183ea56fbd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Index Name": "integer_encrypted_10000000_ore_index", + "Node Type": "Bitmap Index Scan", + "Parallel Aware": false, + "Parent Relationship": "Outer", + "Plan Rows": 50000, + "Plan Width": 0, + "Startup Cost": 0.0, + "Total Cost": 15963.93 + } + ], + "Recheck Cond": "(eql_v2.ore_block_u64_8_256(value) > '(\"{\"\"(\\\\\"\"\\\\\\\\\\\\\\\\x818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e3636a48cacc6fa21cf8b6d7e9397f66d65db0bf1139c96af507702882ec0a2b2e6788ed111afd249f56cfd3ab4345e84ff9c24a3d868f851280738122f536435565d32364de6a0ce34331f73783093fe7d25b468c99da1ba0f27cdce6fe1cbd01142f5fa9c226ebefde9fdf008cc082e47e151a647218343e65430dc173e30dfd2e73d8194c5260d63c3576f2e31b1a7bb22ca6af9cbb6becdb745325c2dd4241fadc83b7a650ec9be1ec1c808b7a9ce3c7cee5eb0706c4bc89df7f7b3c3bb11352cca1986ab8b1bc3d9d02d2c30039258bf6c0a045f6933e4c532028601e760996e0e463b5cad6bf39064caebf7f8b6a2ae3946bdcb70fbebefb6d729ad9cb1406564f445922fb1653bf5c6183ea56fbd\\\\\"\")\"\"}\")'::eql_v2.ore_block_u64_8_256)", + "Relation Name": "integer_encrypted_10000000", + "Startup Cost": 15976.43, + "Total Cost": 195823.06 + } + ], + "Startup Cost": 195875.15, + "Strategy": "Plain", + "Total Cost": 195875.16 + } + ], + "Single Copy": false, + "Startup Cost": 196875.15, + "Total Cost": 196875.36, + "Workers Planned": 2 + } + ], + "Startup Cost": 196875.36, + "Strategy": "Plain", + "Total Cost": 196875.37 + } + } + ], + "id": "ORE/ore/range_highly_selective_gt_count/10000000", + "indexes_used": [ + "integer_encrypted_10000000_ore_index" + ], + "parameters": [ + { + "i": { + "c": "value", + "t": "integer_encrypted_10000000" + }, + "ob": [ + "818181819c74696450f0e2e50041a4028946d3b901f2227b9f40ca2d24ae4855610af3b93ab3fb03fb06a17df7471b16a573428a9f4c92b3cc79a164992485a18ab87494b45830f40b0aaa51599711df6ba2dcc070bb9c12000c1ce2da49187443be7a630b7bba4e4c788d889b7eef636659fb4d6b64dbab777c3973caa72a76ec3c372074623e3636a48cacc6fa21cf8b6d7e9397f66d65db0bf1139c96af507702882ec0a2b2e6788ed111afd249f56cfd3ab4345e84ff9c24a3d868f851280738122f536435565d32364de6a0ce34331f73783093fe7d25b468c99da1ba0f27cdce6fe1cbd01142f5fa9c226ebefde9fdf008cc082e47e151a647218343e65430dc173e30dfd2e73d8194c5260d63c3576f2e31b1a7bb22ca6af9cbb6becdb745325c2dd4241fadc83b7a650ec9be1ec1c808b7a9ce3c7cee5eb0706c4bc89df7f7b3c3bb11352cca1986ab8b1bc3d9d02d2c30039258bf6c0a045f6933e4c532028601e760996e0e463b5cad6bf39064caebf7f8b6a2ae3946bdcb70fbebefb6d729ad9cb1406564f445922fb1653bf5c6183ea56fbd" + ], + "v": 2 + } + ], + "query": "SELECT count(*) FROM integer_encrypted_10000000 WHERE value > $1", + "rows_returned": 1 } ], "target_rows": "10000000" diff --git a/results/query/ore_rows_10000.json b/results/query/ore_rows_10000.json index 4d800c5..53de277 100644 --- a/results/query/ore_rows_10000.json +++ b/results/query/ore_rows_10000.json @@ -1,15 +1,17 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[78,156,234,312,390,468,546,624,702,780],"measured_values":[92258542.0,218875041.0,283341458.0,408968625.0,499860750.0,587835709.0,650305500.0,741827041.0,790681500.0,936459833.0],"unit":"ns","throughput":[],"typical":{"estimate":1199124.614052614,"lower_bound":1166634.4635679636,"upper_bound":1245364.2250577228,"unit":"ns"},"mean":{"estimate":1235203.5752854089,"lower_bound":1192168.7463324175,"upper_bound":1285049.430405067,"unit":"ns"},"median":{"estimate":1205725.2305555556,"lower_bound":1186918.7673992673,"upper_bound":1283428.0411324785,"unit":"ns"},"median_abs_dev":{"estimate":54305.69983524008,"lower_bound":7742.301513027477,"upper_bound":129355.97923295946,"unit":"ns"},"slope":{"estimate":1199124.614052614,"lower_bound":1166634.4635679636,"upper_bound":1245364.2250577228,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118736583.0,213105417.0,335270333.0,483436375.0,513224875.0,676511292.0,791144083.0,895784667.0,1039028167.0,1148699125.0],"unit":"ns","throughput":[],"typical":{"estimate":28345601.76168831,"lower_bound":27658931.259272877,"upper_bound":28757133.876,"unit":"ns"},"mean":{"estimate":28215329.3297123,"lower_bound":27407703.482638888,"upper_bound":28968561.628819447,"unit":"ns"},"median":{"estimate":28221558.160714284,"lower_bound":27315723.984375,"upper_bound":29200811.9375,"unit":"ns"},"median_abs_dev":{"estimate":842306.0621752468,"lower_bound":184417.70730093028,"upper_bound":2330796.682433624,"unit":"ns"},"slope":{"estimate":28345601.76168831,"lower_bound":27658931.259272877,"upper_bound":28757133.876,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[90422958.0,182516750.0,270788166.0,375709750.0,463820334.0,552017958.0,627659333.0,715988458.0,841594625.0,894486791.0],"unit":"ns","throughput":[],"typical":{"estimate":6501412.227087199,"lower_bound":6414908.363684913,"upper_bound":6621617.748803828,"unit":"ns"},"mean":{"estimate":6519728.010992063,"lower_bound":6451424.230373017,"upper_bound":6592318.58699504,"unit":"ns"},"median":{"estimate":6488619.035714285,"lower_bound":6404687.071428572,"upper_bound":6626004.771428571,"unit":"ns"},"median_abs_dev":{"estimate":133283.44754624492,"lower_bound":16968.992098740957,"upper_bound":202927.33433731922,"unit":"ns"},"slope":{"estimate":6501412.227087199,"lower_bound":6414908.363684913,"upper_bound":6621617.748803828,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[87394375.0,170746792.0,267823542.0,378399875.0,492393625.0,560119500.0,681039291.0,719729542.0,814713875.0,884641250.0],"unit":"ns","throughput":[],"typical":{"estimate":45808560.98441558,"lower_bound":44824285.95268585,"upper_bound":47446987.81214981,"unit":"ns"},"mean":{"estimate":45735981.88373016,"lower_bound":44514565.95178571,"upper_bound":47046514.45789682,"unit":"ns"},"median":{"estimate":45122489.159722224,"lower_bound":44167222.25,"upper_bound":47661144.32142857,"unit":"ns"},"median_abs_dev":{"estimate":2208656.9795385003,"lower_bound":463034.46309616417,"upper_bound":3611303.9092907086,"unit":"ns"},"slope":{"estimate":45808560.98441558,"lower_bound":44824285.95268585,"upper_bound":47446987.81214981,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[59,118,177,236,295,354,413,472,531,590],"measured_values":[86958167.0,175703666.0,270500500.0,317091708.0,418897000.0,559524542.0,595445125.0,675200417.0,752627583.0,875299583.0],"unit":"ns","throughput":[],"typical":{"estimate":1455700.1704160247,"lower_bound":1421383.1760677965,"upper_bound":1494838.1702186968,"unit":"ns"},"mean":{"estimate":1460851.0803006454,"lower_bound":1422530.8596933011,"upper_bound":1499760.5902582728,"unit":"ns"},"median":{"estimate":1457811.493946731,"lower_bound":1419989.8305084745,"upper_bound":1505905.0138418078,"unit":"ns"},"median_abs_dev":{"estimate":51167.70388650698,"lower_bound":9734.464016373615,"upper_bound":110709.87414315114,"unit":"ns"},"slope":{"estimate":1455700.1704160247,"lower_bound":1421383.1760677965,"upper_bound":1494838.1702186968,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114010083.0,220618292.0,331637083.0,458678792.0,568480625.0,685388167.0,801192291.0,857171208.0,1072406375.0,1062440459.0],"unit":"ns","throughput":[],"typical":{"estimate":27974923.946103897,"lower_bound":27011769.854508195,"upper_bound":29150703.93548387,"unit":"ns"},"mean":{"estimate":28111621.496507935,"lower_bound":27529513.05305357,"upper_bound":28672095.268452384,"unit":"ns"},"median":{"estimate":28463276.0,"lower_bound":27211511.916666664,"upper_bound":28614010.39285714,"unit":"ns"},"median_abs_dev":{"estimate":764280.9659563014,"lower_bound":81234.77219529635,"upper_bound":1639592.0936497562,"unit":"ns"},"slope":{"estimate":27974923.946103897,"lower_bound":27011769.854508195,"upper_bound":29150703.93548387,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[93600042.0,187636833.0,302814792.0,380504125.0,486270125.0,545579667.0,661933000.0,741755417.0,826797625.0,902916583.0],"unit":"ns","throughput":[],"typical":{"estimate":6612631.169202226,"lower_bound":6524088.473578419,"upper_bound":6763252.733531639,"unit":"ns"},"mean":{"estimate":6722186.204254535,"lower_bound":6599912.161815192,"upper_bound":6863809.9783578515,"unit":"ns"},"median":{"estimate":6693516.375,"lower_bound":6558906.129464285,"upper_bound":6850567.219387755,"unit":"ns"},"median_abs_dev":{"estimate":172597.3245399518,"lower_bound":50928.110910131145,"upper_bound":361920.7571796215,"unit":"ns"},"slope":{"estimate":6612631.169202226,"lower_bound":6524088.473578419,"upper_bound":6763252.733531639,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[138314375.0,293552792.0,412374541.0,560428500.0,683287333.0,825239375.0,989188584.0,1121578416.0,1177961167.0,1320552084.0],"unit":"ns","throughput":[],"typical":{"estimate":45260821.86666667,"lower_bound":44311111.23891273,"upper_bound":46668974.65208333,"unit":"ns"},"mean":{"estimate":46043439.27116402,"lower_bound":45163563.68611112,"upper_bound":46941972.10396429,"unit":"ns"},"median":{"estimate":45975711.80555555,"lower_bound":44918898.12222222,"upper_bound":46903296.64285714,"unit":"ns"},"median_abs_dev":{"estimate":1099633.56926094,"lower_bound":211565.69837728707,"upper_bound":2576778.706597474,"unit":"ns"},"slope":{"estimate":45260821.86666667,"lower_bound":44311111.23891273,"upper_bound":46668974.65208333,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_10000","iteration_count":[73,146,219,292,365,438,511,584,657,730],"measured_values":[84354333.0,170884709.0,254924458.0,358084583.0,421809875.0,514319250.0,586265833.0,735015500.0,778569750.0,981262708.0],"unit":"ns","throughput":[],"typical":{"estimate":1231878.3132182886,"lower_bound":1167653.8648572266,"upper_bound":1292017.859369345,"unit":"ns"},"mean":{"estimate":1198133.8667677757,"lower_bound":1166433.4639950262,"upper_bound":1238089.0077301043,"unit":"ns"},"median":{"estimate":1172344.037671233,"lower_bound":1155643.493150685,"upper_bound":1226317.0650684931,"unit":"ns"},"median_abs_dev":{"estimate":24837.829804930996,"lower_bound":6269.114510618875,"upper_bound":84768.13246287286,"unit":"ns"},"slope":{"estimate":1231878.3132182886,"lower_bound":1167653.8648572266,"upper_bound":1292017.859369345,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[81043417.0,170166666.0,260385875.0,369230958.0,450806084.0,612771000.0,651606917.0,758360167.0,807643917.0,941573083.0],"unit":"ns","throughput":[],"typical":{"estimate":31101965.76969697,"lower_bound":30284066.926660392,"upper_bound":31972503.128703702,"unit":"ns"},"mean":{"estimate":30309891.41900794,"lower_bound":29190424.472777784,"upper_bound":31473662.13329365,"unit":"ns"},"median":{"estimate":30411492.71666667,"lower_bound":28931763.888888888,"upper_bound":31385769.433333334,"unit":"ns"},"median_abs_dev":{"estimate":1602041.4089705776,"lower_bound":422125.4806182754,"upper_bound":3398021.2571855653,"unit":"ns"},"slope":{"estimate":31101965.76969697,"lower_bound":30284066.926660392,"upper_bound":31972503.128703702,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_10000","iteration_count":[118,236,354,472,590,708,826,944,1062,1180],"measured_values":[81416250.0,171749833.0,261726250.0,344574541.0,483893417.0,506544000.0,594336916.0,696676250.0,765980125.0,893712875.0],"unit":"ns","throughput":[],"typical":{"estimate":739860.0528725511,"lower_bound":722557.0380544191,"upper_bound":759211.4395628903,"unit":"ns"},"mean":{"estimate":735889.4607842346,"lower_bound":718253.0975021858,"upper_bound":758096.004477401,"unit":"ns"},"median":{"estimate":728892.1684322034,"lower_bound":718359.7575329567,"upper_bound":747694.1472457626,"unit":"ns"},"median_abs_dev":{"estimate":14680.31304954187,"lower_bound":4302.698475871676,"upper_bound":44480.93963050321,"unit":"ns"},"slope":{"estimate":739860.0528725511,"lower_bound":722557.0380544191,"upper_bound":759211.4395628903,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120432917.0,197296875.0,321600500.0,403502250.0,519249583.0,678252500.0,725890292.0,855623084.0,932023833.0,1098644792.0],"unit":"ns","throughput":[],"typical":{"estimate":26662648.84090909,"lower_bound":25959981.14471941,"upper_bound":27277769.902861446,"unit":"ns"},"mean":{"estimate":26703081.627738096,"lower_bound":25833560.457330354,"upper_bound":27702228.329627976,"unit":"ns"},"median":{"estimate":26350350.2625,"lower_bound":25571771.95535714,"upper_bound":27530281.25,"unit":"ns"},"median_abs_dev":{"estimate":1168710.4924662407,"lower_bound":56080.6253943653,"upper_bound":2498186.7933858186,"unit":"ns"},"slope":{"estimate":26662648.84090909,"lower_bound":25959981.14471941,"upper_bound":27277769.902861446,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[72,144,216,288,360,432,504,576,648,720],"measured_values":[99043834.0,169823792.0,243848375.0,317760292.0,416521458.0,546071875.0,656565250.0,644713375.0,753640791.0,838288083.0],"unit":"ns","throughput":[],"typical":{"estimate":1180361.7586580086,"lower_bound":1142720.0627950898,"upper_bound":1233548.535274468,"unit":"ns"},"mean":{"estimate":1195757.9819295635,"lower_bound":1147850.3929712302,"upper_bound":1251541.4005069442,"unit":"ns"},"median":{"estimate":1163657.4581018519,"lower_bound":1128927.662037037,"upper_bound":1264055.2662037036,"unit":"ns"},"median_abs_dev":{"estimate":58631.78837647346,"lower_bound":6336.666606946034,"upper_bound":136762.1672235137,"unit":"ns"},"slope":{"estimate":1180361.7586580086,"lower_bound":1142720.0627950898,"upper_bound":1233548.535274468,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120404917.0,218335583.0,321049083.0,426384291.0,549905083.0,677487541.0,754409917.0,892284375.0,1033992167.0,1230503000.0],"unit":"ns","throughput":[],"typical":{"estimate":28617087.713636365,"lower_bound":27355313.629390955,"upper_bound":29712837.230307758,"unit":"ns"},"mean":{"estimate":28083186.493323408,"lower_bound":27317759.164880946,"upper_bound":28959827.367829613,"unit":"ns"},"median":{"estimate":27689570.434375,"lower_bound":26943211.32142857,"upper_bound":29164938.395833336,"unit":"ns"},"median_abs_dev":{"estimate":1246747.4489701826,"lower_bound":288093.3180996973,"upper_bound":2341038.6488882564,"unit":"ns"},"slope":{"estimate":28617087.713636365,"lower_bound":27355313.629390955,"upper_bound":29712837.230307758,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_selective_gt_100/10000","ORE/ore_decrypt/range_selective_gt_100/10000","ORE/ore/range_highly_selective_gt_10/10000","ORE/ore_decrypt/range_highly_selective_gt_10/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[72,144,216,288,360,432,504,576,648,720],"measured_values":[76605250.0,151160958.0,229706083.0,333532291.0,392841541.0,456807083.0,545630958.0,643614792.0,710869500.0,776717875.0],"unit":"ns","throughput":[],"typical":{"estimate":1090929.4398989899,"lower_bound":1076743.738491132,"upper_bound":1106848.0803676986,"unit":"ns"},"mean":{"estimate":1085967.6865707673,"lower_bound":1068515.9027450394,"upper_bound":1106599.8780324073,"unit":"ns"},"median":{"estimate":1080687.9667658731,"lower_bound":1060692.804398148,"upper_bound":1104306.6472222223,"unit":"ns"},"median_abs_dev":{"estimate":25174.577214867713,"lower_bound":5222.992074634472,"upper_bound":49766.055802586954,"unit":"ns"},"slope":{"estimate":1090929.4398989899,"lower_bound":1076743.738491132,"upper_bound":1106848.0803676986,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[108461833.0,221612584.0,317734875.0,421536041.0,547739291.0,651759833.0,743879667.0,826327375.0,985687375.0,1091295791.0],"unit":"ns","throughput":[],"typical":{"estimate":26910527.40064935,"lower_bound":26355819.100678734,"upper_bound":27276245.80108359,"unit":"ns"},"mean":{"estimate":26923702.538998015,"lower_bound":26563842.989521828,"upper_bound":27252287.560873013,"unit":"ns"},"median":{"estimate":27136058.979166664,"lower_bound":26456566.76339286,"upper_bound":27380204.861111112,"unit":"ns"},"median_abs_dev":{"estimate":605211.8325578463,"lower_bound":77517.57283128964,"upper_bound":971363.5960360989,"unit":"ns"},"slope":{"estimate":26910527.40064935,"lower_bound":26355819.100678734,"upper_bound":27276245.80108359,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[92904917.0,183225792.0,266286209.0,363924083.0,455236542.0,533848125.0,639622666.0,726454500.0,820491458.0,916645375.0],"unit":"ns","throughput":[],"typical":{"estimate":6499639.045269017,"lower_bound":6447342.124391234,"upper_bound":6529303.7518796995,"unit":"ns"},"mean":{"estimate":6494961.667454649,"lower_bound":6440736.916830783,"upper_bound":6544322.069671203,"unit":"ns"},"median":{"estimate":6507608.069841269,"lower_bound":6426989.580357144,"upper_bound":6543778.285714285,"unit":"ns"},"median_abs_dev":{"estimate":42682.12056724079,"lower_bound":9779.695680542185,"upper_bound":149595.11772629886,"unit":"ns"},"slope":{"estimate":6499639.045269017,"lower_bound":6447342.124391234,"upper_bound":6529303.7518796995,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[118099208.0,252183834.0,377007084.0,532765375.0,599815667.0,759614125.0,900632416.0,1025282375.0,1157813958.0,1262503500.0],"unit":"ns","throughput":[],"typical":{"estimate":42418492.85454545,"lower_bound":41848256.35153256,"upper_bound":42876049.5047081,"unit":"ns"},"mean":{"estimate":42044513.341309525,"lower_bound":41162303.94947917,"upper_bound":42854413.458730154,"unit":"ns"},"median":{"estimate":42142117.36111111,"lower_bound":41009175.06666666,"upper_bound":42881998.44444445,"unit":"ns"},"median_abs_dev":{"estimate":976931.5877518337,"lower_bound":123914.92478756717,"upper_bound":2475007.408261579,"unit":"ns"},"slope":{"estimate":42418492.85454545,"lower_bound":41848256.35153256,"upper_bound":42876049.5047081,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[61,122,183,244,305,366,427,488,549,610],"measured_values":[100683750.0,181408625.0,321511667.0,417218750.0,469795292.0,573121666.0,707593583.0,753785709.0,998994666.0,993006167.0],"unit":"ns","throughput":[],"typical":{"estimate":1651653.049776453,"lower_bound":1576589.4593674308,"upper_bound":1737211.3063314264,"unit":"ns"},"mean":{"estimate":1635984.716332943,"lower_bound":1575743.3416666666,"upper_bound":1698988.2876444184,"unit":"ns"},"median":{"estimate":1639216.1204918032,"lower_bound":1544642.8463114754,"upper_bound":1709912.9098360655,"unit":"ns"},"median_abs_dev":{"estimate":124451.81648230065,"lower_bound":18972.652816938695,"upper_bound":174374.77747554006,"unit":"ns"},"slope":{"estimate":1651653.049776453,"lower_bound":1576589.4593674308,"upper_bound":1737211.3063314264,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101256708.0,228970625.0,347248500.0,424225458.0,608427708.0,700506417.0,828818917.0,889953042.0,1042927916.0,1100330500.0],"unit":"ns","throughput":[],"typical":{"estimate":28476646.318831168,"lower_bound":27819834.966414433,"upper_bound":29296692.818042815,"unit":"ns"},"mean":{"estimate":28288631.458353173,"lower_bound":27349244.162103176,"upper_bound":29130406.392647818,"unit":"ns"},"median":{"estimate":28779351.5625,"lower_bound":27162561.84375,"upper_bound":29285447.748015873,"unit":"ns"},"median_abs_dev":{"estimate":1326662.3654407857,"lower_bound":209963.77999323048,"upper_bound":2515971.8773450702,"unit":"ns"},"slope":{"estimate":28476646.318831168,"lower_bound":27819834.966414433,"upper_bound":29296692.818042815,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[92255459.0,196599292.0,312970416.0,413528041.0,502435875.0,595993208.0,717202875.0,774693792.0,927217041.0,973075542.0],"unit":"ns","throughput":[],"typical":{"estimate":7135490.784415584,"lower_bound":6996750.97407461,"upper_bound":7310589.439393939,"unit":"ns"},"mean":{"estimate":7126470.793010203,"lower_bound":6963084.881682398,"upper_bound":7275465.769115646,"unit":"ns"},"median":{"estimate":7136406.297619048,"lower_bound":6950539.585714285,"upper_bound":7358865.404761905,"unit":"ns"},"median_abs_dev":{"estimate":300496.44082512194,"lower_bound":49860.917294790896,"upper_bound":487129.8402063596,"unit":"ns"},"slope":{"estimate":7135490.784415584,"lower_bound":6996750.97407461,"upper_bound":7310589.439393939,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[122707625.0,281117958.0,373370625.0,501168083.0,662839208.0,814528958.0,921802334.0,1516655625.0,1326025208.0,1336858333.0],"unit":"ns","throughput":[],"typical":{"estimate":48398068.46406926,"lower_bound":43971281.20039683,"upper_bound":54565910.79259259,"unit":"ns"},"mean":{"estimate":46120937.868161365,"lower_bound":43080575.56907408,"upper_bound":50455813.49482804,"unit":"ns"},"median":{"estimate":44375612.483333334,"lower_bound":41764006.916666664,"upper_bound":47181826.759259254,"unit":"ns"},"median_abs_dev":{"estimate":3772465.3166003544,"lower_bound":494147.0094571338,"upper_bound":5983249.236311419,"unit":"ns"},"slope":{"estimate":48398068.46406926,"lower_bound":43971281.20039683,"upper_bound":54565910.79259259,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_10000","iteration_count":[74,148,222,296,370,444,518,592,666,740],"measured_values":[83370125.0,199727542.0,277395958.0,376735500.0,447367625.0,479160000.0,599031458.0,730457917.0,818971042.0,884105083.0],"unit":"ns","throughput":[],"typical":{"estimate":1199804.386030186,"lower_bound":1161804.9911188425,"upper_bound":1230157.0784997072,"unit":"ns"},"mean":{"estimate":1210144.6868570356,"lower_bound":1165497.906575504,"upper_bound":1255228.1267192191,"unit":"ns"},"median":{"estimate":1219393.9692192192,"lower_bound":1156431.386100386,"upper_bound":1253318.342060811,"unit":"ns"},"median_abs_dev":{"estimate":61897.41580290301,"lower_bound":15259.334101615232,"upper_bound":137541.77571445148,"unit":"ns"},"slope":{"estimate":1199804.386030186,"lower_bound":1161804.9911188425,"upper_bound":1230157.0784997072,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[127096292.0,264673417.0,378235875.0,495003041.0,700402083.0,773510375.0,825789958.0,988590792.0,1223288292.0,1242109750.0],"unit":"ns","throughput":[],"typical":{"estimate":31840379.058441557,"lower_bound":30696887.36555475,"upper_bound":33231818.24578908,"unit":"ns"},"mean":{"estimate":31998423.437916666,"lower_bound":31072558.325687494,"upper_bound":32983098.368468743,"unit":"ns"},"median":{"estimate":31646864.625,"lower_bound":30937690.0625,"upper_bound":33104914.645833336,"unit":"ns"},"median_abs_dev":{"estimate":1084208.2645202056,"lower_bound":150861.45067792386,"upper_bound":2662511.317443475,"unit":"ns"},"slope":{"estimate":31840379.058441557,"lower_bound":30696887.36555475,"upper_bound":33231818.24578908,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_10000","iteration_count":[58,116,174,232,290,348,406,464,522,580],"measured_values":[68352917.0,103183875.0,153200417.0,302008792.0,373519125.0,838392042.0,473399250.0,1056715541.0,559766458.0,1064213833.0],"unit":"ns","throughput":[],"typical":{"estimate":1625072.1223914018,"lower_bound":1182881.1678455644,"upper_bound":2000788.9124602152,"unit":"ns"},"mean":{"estimate":1429802.161187055,"lower_bound":1129775.1699549125,"upper_bound":1772003.5610823755,"unit":"ns"},"median":{"estimate":1233247.7758620689,"lower_bound":1027762.0843596058,"upper_bound":1834851.4362068966,"unit":"ns"},"median_abs_dev":{"estimate":374082.10229980695,"lower_bound":78688.27644495788,"upper_bound":912298.5944413933,"unit":"ns"},"slope":{"estimate":1625072.1223914018,"lower_bound":1182881.1678455644,"upper_bound":2000788.9124602152,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[98134208.0,251304459.0,330804708.0,455459833.0,603813917.0,751628833.0,831123750.0,932282917.0,1416620875.0,993113083.0],"unit":"ns","throughput":[],"typical":{"estimate":30454991.854545455,"lower_bound":26614834.230433103,"upper_bound":35257547.21563574,"unit":"ns"},"mean":{"estimate":29648371.099295635,"lower_bound":27427116.656930055,"upper_bound":32303106.51796131,"unit":"ns"},"median":{"estimate":29408416.113839284,"lower_bound":26647033.31875,"upper_bound":31317868.041666668,"unit":"ns"},"median_abs_dev":{"estimate":2780474.6932242075,"lower_bound":752723.0913464968,"upper_bound":6138542.623929085,"unit":"ns"},"slope":{"estimate":30454991.854545455,"lower_bound":26614834.230433103,"upper_bound":35257547.21563574,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[44,88,132,176,220,264,308,352,396,440],"measured_values":[72966834.0,186365708.0,413354083.0,244496417.0,507432042.0,949833917.0,396053250.0,478599875.0,517766125.0,629880000.0],"unit":"ns","throughput":[],"typical":{"estimate":1680034.0468713106,"lower_bound":1378161.129334583,"upper_bound":2344547.663539652,"unit":"ns"},"mean":{"estimate":1958573.0394327198,"lower_bound":1517977.3617920727,"upper_bound":2478705.8778937333,"unit":"ns"},"median":{"estimate":1544941.2954545454,"lower_bound":1348337.2010732323,"upper_bound":2624631.231060606,"unit":"ns"},"median_abs_dev":{"estimate":368059.29892094416,"lower_bound":53289.62366329506,"upper_bound":1313443.9083206297,"unit":"ns"},"slope":{"estimate":1680034.0468713106,"lower_bound":1378161.129334583,"upper_bound":2344547.663539652,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[123593000.0,209077417.0,435705625.0,467093833.0,597752333.0,780116292.0,864227500.0,923904625.0,1079613333.0,1125690833.0],"unit":"ns","throughput":[],"typical":{"estimate":29740881.353896104,"lower_bound":28813093.657908916,"upper_bound":31121270.759383626,"unit":"ns"},"mean":{"estimate":30279637.33842262,"lower_bound":28787302.092499994,"upper_bound":31993762.223750003,"unit":"ns"},"median":{"estimate":29938437.95,"lower_bound":28667817.69375,"upper_bound":31685056.67857143,"unit":"ns"},"median_abs_dev":{"estimate":1502044.6198177524,"lower_bound":589996.7213692144,"upper_bound":4270283.203879814,"unit":"ns"},"slope":{"estimate":29740881.353896104,"lower_bound":28813093.657908916,"upper_bound":31121270.759383626,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_count/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_count_10000","iteration_count":[91,182,273,364,455,546,637,728,819,910],"measured_values":[86678958.0,169379792.0,289815000.0,330726208.0,430946500.0,516899875.0,565912334.0,658830250.0,778187625.0,994426125.0],"unit":"ns","throughput":[],"typical":{"estimate":971996.5273868989,"lower_bound":913138.4512248115,"upper_bound":1038027.5447333154,"unit":"ns"},"mean":{"estimate":958352.7359628467,"lower_bound":923196.1837388802,"upper_bound":1000863.0817621666,"unit":"ns"},"median":{"estimate":946919.1163003664,"lower_bound":908588.4835164836,"upper_bound":1005880.7234432234,"unit":"ns"},"median_abs_dev":{"estimate":40468.71624692134,"lower_bound":2568.584089013907,"upper_bound":89325.45403283738,"unit":"ns"},"slope":{"estimate":971996.5273868989,"lower_bound":913138.4512248115,"upper_bound":1038027.5447333154,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_count/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_count_10000","iteration_count":[104,208,312,416,520,624,728,832,936,1040],"measured_values":[88732125.0,177465792.0,280168542.0,341737417.0,430086625.0,564671667.0,565849000.0,709283208.0,867623375.0,823999750.0],"unit":"ns","throughput":[],"typical":{"estimate":845988.9777472528,"lower_bound":803163.7657493369,"upper_bound":895773.2979817021,"unit":"ns"},"mean":{"estimate":850689.1378853784,"lower_bound":822543.5762809066,"upper_bound":879397.7530929486,"unit":"ns"},"median":{"estimate":852848.6826923077,"lower_bound":809698.5576923077,"upper_bound":897976.0961538461,"unit":"ns"},"median_abs_dev":{"estimate":56703.45978826424,"lower_bound":522.2315849592919,"upper_bound":86256.68282056079,"unit":"ns"},"slope":{"estimate":845988.9777472528,"lower_bound":803163.7657493369,"upper_bound":895773.2979817021,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_selective_gt_100/10000","ORE/ore_decrypt/range_selective_gt_100/10000","ORE/ore/range_highly_selective_gt_10/10000","ORE/ore_decrypt/range_highly_selective_gt_10/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","ORE/ore/range_selective_gt_count/10000","ORE/ore/range_highly_selective_gt_count/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_100000.json b/results/query/ore_rows_100000.json index 538d621..e8d28ee 100644 --- a/results/query/ore_rows_100000.json +++ b/results/query/ore_rows_100000.json @@ -1,15 +1,17 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[64,128,192,256,320,384,448,512,576,640],"measured_values":[91021000.0,191029417.0,253565042.0,359079542.0,445245500.0,524415292.0,566042250.0,699785500.0,805010958.0,869185875.0],"unit":"ns","throughput":[],"typical":{"estimate":1361215.4830357144,"lower_bound":1325703.6743164062,"upper_bound":1387994.7609087927,"unit":"ns"},"mean":{"estimate":1378093.0295386906,"lower_bound":1342409.5117931548,"upper_bound":1413661.317233073,"unit":"ns"},"median":{"estimate":1379080.37109375,"lower_bound":1343158.0416666667,"upper_bound":1409895.796875,"unit":"ns"},"median_abs_dev":{"estimate":33026.049529295415,"lower_bound":6423.827698454434,"upper_bound":99567.25600264035,"unit":"ns"},"slope":{"estimate":1361215.4830357144,"lower_bound":1325703.6743164062,"upper_bound":1387994.7609087927,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114413333.0,237104250.0,337854167.0,480617292.0,601843709.0,725902667.0,795350000.0,997684542.0,1009736584.0,1173773875.0],"unit":"ns","throughput":[],"typical":{"estimate":29391936.61753247,"lower_bound":28584057.69121287,"upper_bound":30362715.632736485,"unit":"ns"},"mean":{"estimate":29374817.34748016,"lower_bound":28769467.0281746,"upper_bound":29994699.457117565,"unit":"ns"},"median":{"estimate":29491189.0625,"lower_bound":28378923.583333336,"upper_bound":30142262.604166664,"unit":"ns"},"median_abs_dev":{"estimate":1217667.6671195766,"lower_bound":157564.01231934872,"upper_bound":1906781.7145603593,"unit":"ns"},"slope":{"estimate":29391936.61753247,"lower_bound":28584057.69121287,"upper_bound":30362715.632736485,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[86141000.0,177450750.0,258633792.0,350071084.0,425466708.0,492939875.0,592645458.0,671839875.0,746727667.0,852827917.0],"unit":"ns","throughput":[],"typical":{"estimate":6488364.911288711,"lower_bound":6419789.330409508,"upper_bound":6563511.642644537,"unit":"ns"},"mean":{"estimate":6559550.393409646,"lower_bound":6469998.406093331,"upper_bound":6650256.979184981,"unit":"ns"},"median":{"estimate":6552928.203846154,"lower_bound":6447437.601343101,"upper_bound":6679183.5,"unit":"ns"},"median_abs_dev":{"estimate":127234.42743440645,"lower_bound":35306.113604729704,"upper_bound":265167.9834069414,"unit":"ns"},"slope":{"estimate":6488364.911288711,"lower_bound":6419789.330409508,"upper_bound":6563511.642644537,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[108687792.0,205712417.0,304807500.0,369040292.0,492482750.0,558598792.0,633952375.0,755005000.0,837231625.0,951811291.0],"unit":"ns","throughput":[],"typical":{"estimate":47085203.83896104,"lower_bound":46385652.1397329,"upper_bound":47880090.51458929,"unit":"ns"},"mean":{"estimate":48507501.868888885,"lower_bound":46930449.910000004,"upper_bound":50306773.98722222,"unit":"ns"},"median":{"estimate":47389188.525,"lower_bound":46339967.91666667,"upper_bound":50801250.0,"unit":"ns"},"median_abs_dev":{"estimate":2311550.159011781,"lower_bound":338695.59855362395,"upper_bound":4787639.819077402,"unit":"ns"},"slope":{"estimate":47085203.83896104,"lower_bound":46385652.1397329,"upper_bound":47880090.51458929,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[72,144,216,288,360,432,504,576,648,720],"measured_values":[85356709.0,165242417.0,249198333.0,339531333.0,437432834.0,507554667.0,597710708.0,715942250.0,793995709.0,874814875.0],"unit":"ns","throughput":[],"typical":{"estimate":1210666.5632395383,"lower_bound":1189168.9982570398,"upper_bound":1224563.9484575253,"unit":"ns"},"mean":{"estimate":1192484.9045061728,"lower_bound":1174285.3607561726,"upper_bound":1210905.2221450615,"unit":"ns"},"median":{"estimate":1185721.8958333335,"lower_bound":1166312.112847222,"upper_bound":1220161.3398919753,"unit":"ns"},"median_abs_dev":{"estimate":43490.64219580328,"lower_bound":5193.328921341744,"upper_bound":50453.04955948773,"unit":"ns"},"slope":{"estimate":1210666.5632395383,"lower_bound":1189168.9982570398,"upper_bound":1224563.9484575253,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120586666.0,241316375.0,350215583.0,486173166.0,596744625.0,726874458.0,840582542.0,867266458.0,1011646083.0,1181879250.0],"unit":"ns","throughput":[],"typical":{"estimate":29019055.45909091,"lower_bound":28146607.887963526,"upper_bound":29966336.61782787,"unit":"ns"},"mean":{"estimate":29477647.83839286,"lower_bound":28784436.09122024,"upper_bound":30039984.70979167,"unit":"ns"},"median":{"estimate":29929018.160714284,"lower_bound":28824130.666666664,"upper_bound":30216551.125,"unit":"ns"},"median_abs_dev":{"estimate":548157.611118257,"lower_bound":106555.79709575685,"upper_bound":1529499.6455084542,"unit":"ns"},"slope":{"estimate":29019055.45909091,"lower_bound":28146607.887963526,"upper_bound":29966336.61782787,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[92924000.0,185604791.0,280591291.0,361676125.0,447265667.0,518370542.0,631512208.0,721253959.0,803561541.0,975932000.0],"unit":"ns","throughput":[],"typical":{"estimate":6545668.745640074,"lower_bound":6346038.979323308,"upper_bound":6775361.401097682,"unit":"ns"},"mean":{"estimate":6519819.079090135,"lower_bound":6397507.099744898,"upper_bound":6653816.091887755,"unit":"ns"},"median":{"estimate":6451252.177295919,"lower_bound":6389509.528571429,"upper_bound":6654743.779761905,"unit":"ns"},"median_abs_dev":{"estimate":186266.43886810952,"lower_bound":13888.063309687983,"upper_bound":363609.86391463404,"unit":"ns"},"slope":{"estimate":6545668.745640074,"lower_bound":6346038.979323308,"upper_bound":6775361.401097682,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[96261458.0,205016416.0,285286584.0,377326875.0,486759916.0,553849792.0,672500041.0,723438875.0,776871292.0,937333750.0],"unit":"ns","throughput":[],"typical":{"estimate":46089026.349350646,"lower_bound":44675913.57497923,"upper_bound":47581632.92863387,"unit":"ns"},"mean":{"estimate":47220544.793234125,"lower_bound":45942344.05017857,"upper_bound":48488646.063431546,"unit":"ns"},"median":{"estimate":47356811.6875,"lower_bound":46040808.59375,"upper_bound":48355854.40714286,"unit":"ns"},"median_abs_dev":{"estimate":1465238.480886815,"lower_bound":432151.9468277693,"upper_bound":3685159.9667419977,"unit":"ns"},"slope":{"estimate":46089026.349350646,"lower_bound":44675913.57497923,"upper_bound":47581632.92863387,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_100000","iteration_count":[48,96,144,192,240,288,336,384,432,480],"measured_values":[82934833.0,170946500.0,244313583.0,352877083.0,454260750.0,532710958.0,655245333.0,663884458.0,754492708.0,867066667.0],"unit":"ns","throughput":[],"typical":{"estimate":1807128.8121753247,"lower_bound":1759713.9353875292,"upper_bound":1873125.9647108843,"unit":"ns"},"mean":{"estimate":1801736.9742096558,"lower_bound":1755846.7795833335,"upper_bound":1850655.8043278765,"unit":"ns"},"median":{"estimate":1793540.7989583332,"lower_bound":1728865.7760416667,"upper_bound":1865327.2994791665,"unit":"ns"},"median_abs_dev":{"estimate":89567.60823225294,"lower_bound":14647.074029372305,"upper_bound":143691.6543470879,"unit":"ns"},"slope":{"estimate":1807128.8121753247,"lower_bound":1759713.9353875292,"upper_bound":1873125.9647108843,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[121803625.0,246616834.0,399813625.0,508872125.0,668128292.0,730964583.0,823149292.0,998328375.0,1121141125.0,1245494833.0],"unit":"ns","throughput":[],"typical":{"estimate":41446135.17316017,"lower_bound":40639838.69836956,"upper_bound":42312069.6743248,"unit":"ns"},"mean":{"estimate":41751963.09231482,"lower_bound":40817907.85979398,"upper_bound":42772047.02101156,"unit":"ns"},"median":{"estimate":41520119.90185185,"lower_bound":40609143.5,"upper_bound":43010375.86805555,"unit":"ns"},"median_abs_dev":{"estimate":1332017.4216769617,"lower_bound":59690.35832278688,"upper_bound":2833639.791359503,"unit":"ns"},"slope":{"estimate":41446135.17316017,"lower_bound":40639838.69836956,"upper_bound":42312069.6743248,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_100000","iteration_count":[103,206,309,412,515,618,721,824,927,1030],"measured_values":[103559208.0,180875583.0,283387250.0,359472917.0,434619791.0,523540417.0,596668209.0,723570042.0,708863292.0,850506584.0],"unit":"ns","throughput":[],"typical":{"estimate":830104.1108561342,"lower_bound":799516.1773778184,"upper_bound":865604.3363999374,"unit":"ns"},"mean":{"estimate":866025.3951502542,"lower_bound":830853.7457697642,"upper_bound":905871.7180290686,"unit":"ns"},"median":{"estimate":859829.9292071197,"lower_bound":827556.4618585298,"upper_bound":897573.8260517799,"unit":"ns"},"median_abs_dev":{"estimate":37481.99626393044,"lower_bound":4160.103555269546,"upper_bound":99708.55310190661,"unit":"ns"},"slope":{"estimate":830104.1108561342,"lower_bound":799516.1773778184,"upper_bound":865604.3363999374,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101471166.0,213202750.0,328312666.0,465729917.0,548426459.0,682970042.0,828975875.0,871250291.0,1027549125.0,1180528167.0],"unit":"ns","throughput":[],"typical":{"estimate":28598535.147402596,"lower_bound":27757852.118654273,"upper_bound":29209715.065920178,"unit":"ns"},"mean":{"estimate":27925314.01979167,"lower_bound":27104566.33729167,"upper_bound":28696976.68606771,"unit":"ns"},"median":{"estimate":27939204.016666666,"lower_bound":27004866.291666664,"upper_bound":29108119.8125,"unit":"ns"},"median_abs_dev":{"estimate":1394791.669796873,"lower_bound":144369.1778250592,"upper_bound":2353805.1848866045,"unit":"ns"},"slope":{"estimate":28598535.147402596,"lower_bound":27757852.118654273,"upper_bound":29209715.065920178,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[63,126,189,252,315,378,441,504,567,630],"measured_values":[100041417.0,175769875.0,248919167.0,335732292.0,379674125.0,442523083.0,608344750.0,717419541.0,783167875.0,823577125.0],"unit":"ns","throughput":[],"typical":{"estimate":1334851.7279736137,"lower_bound":1270710.8579507652,"upper_bound":1384013.0596593108,"unit":"ns"},"mean":{"estimate":1349970.4064972284,"lower_bound":1283188.296949405,"upper_bound":1420342.5903218694,"unit":"ns"},"median":{"estimate":1355868.776643991,"lower_bound":1261173.6560846562,"upper_bound":1402349.9635141091,"unit":"ns"},"median_abs_dev":{"estimate":65037.01301202889,"lower_bound":11514.208426534547,"upper_bound":200837.71478997334,"unit":"ns"},"slope":{"estimate":1334851.7279736137,"lower_bound":1270710.8579507652,"upper_bound":1384013.0596593108,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120477500.0,243370875.0,383850083.0,543718958.0,631783750.0,721164417.0,894571000.0,896211708.0,1062877500.0,1111017792.0],"unit":"ns","throughput":[],"typical":{"estimate":29563192.64090909,"lower_bound":28515119.088150073,"upper_bound":31330284.7182971,"unit":"ns"},"mean":{"estimate":30540378.100238103,"lower_bound":29438852.68224107,"upper_bound":31675949.024404764,"unit":"ns"},"median":{"estimate":30270367.1875,"lower_bound":29027566.625,"upper_bound":31948964.285714287,"unit":"ns"},"median_abs_dev":{"estimate":2221985.487114373,"lower_bound":276387.7696931362,"upper_bound":3215674.1490078713,"unit":"ns"},"slope":{"estimate":29563192.64090909,"lower_bound":28515119.088150073,"upper_bound":31330284.7182971,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/100000","ORE/ore_decrypt/range_gt_10/100000","ORE/ore/range_gt_100/100000","ORE/ore_decrypt/range_gt_100/100000","ORE/ore/range_lt_10/100000","ORE/ore_decrypt/range_lt_10/100000","ORE/ore/range_lt_100/100000","ORE/ore_decrypt/range_lt_100/100000","ORE/ore/range_selective_gt_100/100000","ORE/ore_decrypt/range_selective_gt_100/100000","ORE/ore/range_highly_selective_gt_10/100000","ORE/ore_decrypt/range_highly_selective_gt_10/100000","ORE/ore/range_lt_hybrid_ordered_10/100000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[61,122,183,244,305,366,427,488,549,610],"measured_values":[84963042.0,195267584.0,255369542.0,391074458.0,515380917.0,607069000.0,693593875.0,845030083.0,908624667.0,1042075583.0],"unit":"ns","throughput":[],"typical":{"estimate":1670811.1081541409,"lower_bound":1624524.440861672,"upper_bound":1699713.2528962684,"unit":"ns"},"mean":{"estimate":1605938.4156186571,"lower_bound":1530234.586885246,"upper_bound":1669989.1960792348,"unit":"ns"},"median":{"estimate":1639697.8329430134,"lower_bound":1499113.075136612,"upper_bound":1689773.4983606557,"unit":"ns"},"median_abs_dev":{"estimate":66138.43726548017,"lower_bound":17271.09966382752,"upper_bound":161658.53617847105,"unit":"ns"},"slope":{"estimate":1670811.1081541409,"lower_bound":1624524.440861672,"upper_bound":1699713.2528962684,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[108817792.0,224469083.0,390099125.0,516315167.0,602043500.0,655489625.0,836792625.0,894059042.0,1054077875.0,1179826459.0],"unit":"ns","throughput":[],"typical":{"estimate":29241204.822727274,"lower_bound":28514427.09352941,"upper_bound":30017528.899371214,"unit":"ns"},"mean":{"estimate":29405568.284007944,"lower_bound":28349118.272619046,"upper_bound":30547353.750535708,"unit":"ns"},"median":{"estimate":29387801.223611113,"lower_bound":27685351.541666664,"upper_bound":31077574.41517857,"unit":"ns"},"median_abs_dev":{"estimate":2059051.1592516203,"lower_bound":319827.211740265,"upper_bound":3526346.951312329,"unit":"ns"},"slope":{"estimate":29241204.822727274,"lower_bound":28514427.09352941,"upper_bound":30017528.899371214,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[85457416.0,183861792.0,253169792.0,358935125.0,441596500.0,655553500.0,639330291.0,767503000.0,816201500.0,892910833.0],"unit":"ns","throughput":[],"typical":{"estimate":7128869.579020979,"lower_bound":6885325.481697639,"upper_bound":7513390.540494082,"unit":"ns"},"mean":{"estimate":7048778.101178266,"lower_bound":6780861.6597680105,"upper_bound":7401699.727900182,"unit":"ns"},"median":{"estimate":6939339.877136752,"lower_bound":6721096.126923077,"upper_bound":7202722.065934066,"unit":"ns"},"median_abs_dev":{"estimate":205944.31286683455,"lower_bound":70813.56193255153,"upper_bound":633362.2763427518,"unit":"ns"},"slope":{"estimate":7128869.579020979,"lower_bound":6885325.481697639,"upper_bound":7513390.540494082,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[89169083.0,201183250.0,271543458.0,336430625.0,476808667.0,544305042.0,616937834.0,672194167.0,784681834.0,908324125.0],"unit":"ns","throughput":[],"typical":{"estimate":44341893.47272728,"lower_bound":43205091.44782609,"upper_bound":45530445.2322335,"unit":"ns"},"mean":{"estimate":45031981.03775793,"lower_bound":43665457.928624004,"upper_bound":46593066.68945089,"unit":"ns"},"median":{"estimate":44920892.25,"lower_bound":43060408.13392857,"upper_bound":46519810.1,"unit":"ns"},"median_abs_dev":{"estimate":1617042.9806084146,"lower_bound":117839.45513293147,"upper_bound":4171323.6215917044,"unit":"ns"},"slope":{"estimate":44341893.47272728,"lower_bound":43205091.44782609,"upper_bound":45530445.2322335,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[60,120,180,240,300,360,420,480,540,600],"measured_values":[90831083.0,201185875.0,287375875.0,361909083.0,447793834.0,549282292.0,563773750.0,646471167.0,816425583.0,954525708.0],"unit":"ns","throughput":[],"typical":{"estimate":1486965.4816017316,"lower_bound":1400129.103288595,"upper_bound":1559414.707184196,"unit":"ns"},"mean":{"estimate":1510522.6542242065,"lower_bound":1448419.5582261905,"upper_bound":1569454.7585545138,"unit":"ns"},"median":{"estimate":1512875.3055555555,"lower_bound":1427384.7218749998,"upper_bound":1590876.18,"unit":"ns"},"median_abs_dev":{"estimate":72817.947127223,"lower_bound":4371.350271143203,"upper_bound":185115.73338624724,"unit":"ns"},"slope":{"estimate":1486965.4816017316,"lower_bound":1400129.103288595,"upper_bound":1559414.707184196,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[120500750.0,250018500.0,316287125.0,439056167.0,544930750.0,718367833.0,808927458.0,970008459.0,1033796541.0,1097088958.0],"unit":"ns","throughput":[],"typical":{"estimate":28609157.706493508,"lower_bound":27768025.733674154,"upper_bound":29546396.288912285,"unit":"ns"},"mean":{"estimate":28770112.663005956,"lower_bound":27830779.900411457,"upper_bound":29721818.01146801,"unit":"ns"},"median":{"estimate":28803418.470238097,"lower_bound":27343773.96875,"upper_bound":30125187.5,"unit":"ns"},"median_abs_dev":{"estimate":2030126.0364793113,"lower_bound":154382.70901165958,"upper_bound":2715283.1971190907,"unit":"ns"},"slope":{"estimate":28609157.706493508,"lower_bound":27768025.733674154,"upper_bound":29546396.288912285,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[89618542.0,171344542.0,272284917.0,353463833.0,449937334.0,535563167.0,629267375.0,720451708.0,822998250.0,879647583.0],"unit":"ns","throughput":[],"typical":{"estimate":6892713.036963037,"lower_bound":6810515.819055837,"upper_bound":6974870.288339038,"unit":"ns"},"mean":{"estimate":6869440.122838828,"lower_bound":6790397.888909341,"upper_bound":6937152.29014652,"unit":"ns"},"median":{"estimate":6904380.049450549,"lower_bound":6797381.403846154,"upper_bound":6951888.684615385,"unit":"ns"},"median_abs_dev":{"estimate":85597.9760072547,"lower_bound":10506.788481159747,"upper_bound":190701.6426632147,"unit":"ns"},"slope":{"estimate":6892713.036963037,"lower_bound":6810515.819055837,"upper_bound":6974870.288339038,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[151452416.0,283585375.0,424892625.0,567920500.0,700109417.0,810971334.0,977457625.0,1017248125.0,1237922417.0,1383016834.0],"unit":"ns","throughput":[],"typical":{"estimate":45526421.2969697,"lower_bound":44218021.4877451,"upper_bound":46485022.71826722,"unit":"ns"},"mean":{"estimate":46489377.123955026,"lower_bound":45275893.88247718,"upper_bound":47683468.89329761,"unit":"ns"},"median":{"estimate":46609781.16190477,"lower_bound":45577262.06666666,"upper_bound":47268500.0,"unit":"ns"},"median_abs_dev":{"estimate":1016600.4000617273,"lower_bound":95153.22395069512,"upper_bound":3308366.0460847626,"unit":"ns"},"slope":{"estimate":45526421.2969697,"lower_bound":44218021.4877451,"upper_bound":46485022.71826722,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_100000","iteration_count":[46,92,138,184,230,276,322,368,414,460],"measured_values":[79927834.0,171424208.0,454250542.0,340808125.0,414679750.0,538659875.0,637550083.0,709478000.0,766710542.0,889581750.0],"unit":"ns","throughput":[],"typical":{"estimate":1941784.6038961038,"lower_bound":1879916.8330298201,"upper_bound":2062220.1912675512,"unit":"ns"},"mean":{"estimate":2019310.8280969635,"lower_bound":1843645.9758454107,"upper_bound":2319184.8520341613,"unit":"ns"},"median":{"estimate":1895617.9782608696,"lower_bound":1827586.7527173911,"upper_bound":1956921.2857142857,"unit":"ns"},"median_abs_dev":{"estimate":73913.82289465144,"lower_bound":8412.848817308897,"upper_bound":179696.7456249625,"unit":"ns"},"slope":{"estimate":1941784.6038961038,"lower_bound":1879916.8330298201,"upper_bound":2062220.1912675512,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[124778625.0,285703125.0,354839833.0,495228750.0,615146000.0,711237542.0,857965542.0,974166708.0,1109896250.0,1263102959.0],"unit":"ns","throughput":[],"typical":{"estimate":41128972.22857143,"lower_bound":40455929.91280353,"upper_bound":41717825.84472592,"unit":"ns"},"mean":{"estimate":41508518.52074073,"lower_bound":40438305.97483333,"upper_bound":43039701.16455555,"unit":"ns"},"median":{"estimate":41058500.925925925,"lower_bound":40184349.38888889,"upper_bound":41686247.233333334,"unit":"ns"},"median_abs_dev":{"estimate":743224.0309551358,"lower_bound":186634.5168643501,"upper_bound":2152438.5594199095,"unit":"ns"},"slope":{"estimate":41128972.22857143,"lower_bound":40455929.91280353,"upper_bound":41717825.84472592,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_100000","iteration_count":[104,208,312,416,520,624,728,832,936,1040],"measured_values":[79966000.0,168624833.0,292855417.0,377525292.0,437269542.0,594280708.0,676456000.0,726041084.0,818679042.0,974508583.0],"unit":"ns","throughput":[],"typical":{"estimate":904461.3617132867,"lower_bound":875962.6732075668,"upper_bound":930149.2352831196,"unit":"ns"},"mean":{"estimate":883255.584739011,"lower_bound":845725.8551662087,"upper_bound":917362.1347031823,"unit":"ns"},"median":{"estimate":891084.9086538461,"lower_bound":840902.9653846154,"upper_bound":937027.4836538462,"unit":"ns"},"median_abs_dev":{"estimate":69309.1939540351,"lower_bound":6998.8762286297515,"upper_bound":104511.97597502229,"unit":"ns"},"slope":{"estimate":904461.3617132867,"lower_bound":875962.6732075668,"upper_bound":930149.2352831196,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[104502708.0,223294667.0,320149750.0,452281792.0,564169416.0,659206917.0,731727041.0,875306583.0,1093217208.0,1135834625.0],"unit":"ns","throughput":[],"typical":{"estimate":28193896.17857143,"lower_bound":27035393.30461511,"upper_bound":29253176.268666666,"unit":"ns"},"mean":{"estimate":27690914.35008929,"lower_bound":26989281.524255954,"upper_bound":28471035.90250372,"unit":"ns"},"median":{"estimate":27689394.125,"lower_bound":26679145.833333332,"upper_bound":28302168.2125,"unit":"ns"},"median_abs_dev":{"estimate":952340.2167800814,"lower_bound":138915.7813062541,"upper_bound":2234140.239926708,"unit":"ns"},"slope":{"estimate":28193896.17857143,"lower_bound":27035393.30461511,"upper_bound":29253176.268666666,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[68,136,204,272,340,408,476,544,612,680],"measured_values":[83426625.0,218551959.0,355335500.0,592718458.0,461151541.0,508403291.0,635128500.0,826734666.0,898742459.0,939282542.0],"unit":"ns","throughput":[],"typical":{"estimate":1445946.2454163483,"lower_bound":1366022.099444046,"upper_bound":1569455.2080416353,"unit":"ns"},"mean":{"estimate":1506109.6753373016,"lower_bound":1359302.6012114845,"upper_bound":1689004.2066850783,"unit":"ns"},"median":{"estimate":1424915.6428104574,"lower_bound":1301207.2796568628,"upper_bound":1630786.7640931373,"unit":"ns"},"median_abs_dev":{"estimate":202854.03147472412,"lower_bound":34836.8624471105,"upper_bound":386012.68162852287,"unit":"ns"},"slope":{"estimate":1445946.2454163483,"lower_bound":1366022.099444046,"upper_bound":1569455.2080416353,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[110119083.0,259542875.0,338014958.0,499617125.0,539948000.0,706297333.0,816999875.0,866085041.0,1029913167.0,1199943333.0],"unit":"ns","throughput":[],"typical":{"estimate":28893229.53961039,"lower_bound":27922568.80187761,"upper_bound":29732885.90078125,"unit":"ns"},"mean":{"estimate":29064407.60497024,"lower_bound":28071046.18703125,"upper_bound":30150440.28042262,"unit":"ns"},"median":{"estimate":28893633.023809522,"lower_bound":27529770.75,"upper_bound":30327562.927083336,"unit":"ns"},"median_abs_dev":{"estimate":1830130.7293561841,"lower_bound":422443.05265013635,"upper_bound":3084484.589980077,"unit":"ns"},"slope":{"estimate":28893229.53961039,"lower_bound":27922568.80187761,"upper_bound":29732885.90078125,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_count/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_count_100000","iteration_count":[60,120,180,240,300,360,420,480,540,600],"measured_values":[95285458.0,159484208.0,281896958.0,395559417.0,435420125.0,531963708.0,549417375.0,649144958.0,772566250.0,851366250.0],"unit":"ns","throughput":[],"typical":{"estimate":1416316.247965368,"lower_bound":1373451.4893459915,"upper_bound":1470024.4244897927,"unit":"ns"},"mean":{"estimate":1457060.5792328042,"lower_bound":1391818.9770767195,"upper_bound":1525468.5636574074,"unit":"ns"},"median":{"estimate":1441039.3287037038,"lower_bound":1352385.3291666666,"upper_bound":1566094.211111111,"unit":"ns"},"median_abs_dev":{"estimate":148747.96666405705,"lower_bound":24060.126572847425,"upper_bound":192038.13526064152,"unit":"ns"},"slope":{"estimate":1416316.247965368,"lower_bound":1373451.4893459915,"upper_bound":1470024.4244897927,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_count/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_count_100000","iteration_count":[90,180,270,360,450,540,630,720,810,900],"measured_values":[86660792.0,183449209.0,320459875.0,380692583.0,547042625.0,570976417.0,664739917.0,681692125.0,679639292.0,753798917.0],"unit":"ns","throughput":[],"typical":{"estimate":948347.475064935,"lower_bound":880062.9842293906,"upper_bound":1076453.055446015,"unit":"ns"},"mean":{"estimate":1017799.4347217815,"lower_bound":943741.2292557321,"upper_bound":1092512.4078015871,"unit":"ns"},"median":{"estimate":1037152.4988095239,"lower_bound":900979.2716049383,"upper_bound":1122126.0805555554,"unit":"ns"},"median_abs_dev":{"estimate":122027.3854306643,"lower_bound":1817.9150599479851,"upper_bound":243319.64200076822,"unit":"ns"},"slope":{"estimate":948347.475064935,"lower_bound":880062.9842293906,"upper_bound":1076453.055446015,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/100000","ORE/ore_decrypt/range_gt_10/100000","ORE/ore/range_gt_100/100000","ORE/ore_decrypt/range_gt_100/100000","ORE/ore/range_lt_10/100000","ORE/ore_decrypt/range_lt_10/100000","ORE/ore/range_lt_100/100000","ORE/ore_decrypt/range_lt_100/100000","ORE/ore/range_selective_gt_100/100000","ORE/ore_decrypt/range_selective_gt_100/100000","ORE/ore/range_highly_selective_gt_10/100000","ORE/ore_decrypt/range_highly_selective_gt_10/100000","ORE/ore/range_lt_hybrid_ordered_10/100000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","ORE/ore/range_selective_gt_count/100000","ORE/ore/range_highly_selective_gt_count/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_1000000.json b/results/query/ore_rows_1000000.json index 9b2f196..097fee8 100644 --- a/results/query/ore_rows_1000000.json +++ b/results/query/ore_rows_1000000.json @@ -1,15 +1,17 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[77,154,231,308,385,462,539,616,693,770],"measured_values":[93704042.0,183695834.0,284662250.0,362654708.0,445120667.0,566954208.0,652195416.0,557518375.0,744617000.0,856765041.0],"unit":"ns","throughput":[],"typical":{"estimate":1102639.507404284,"lower_bound":1022828.5658785659,"upper_bound":1188106.5192822372,"unit":"ns"},"mean":{"estimate":1150508.8973742528,"lower_bound":1084061.397492785,"upper_bound":1200801.4090166974,"unit":"ns"},"median":{"estimate":1185140.2207792206,"lower_bound":1112681.8714285714,"upper_bound":1218591.8293135436,"unit":"ns"},"median_abs_dev":{"estimate":54729.27306472496,"lower_bound":12723.348397492016,"upper_bound":129927.48021605321,"unit":"ns"},"slope":{"estimate":1102639.507404284,"lower_bound":1022828.5658785659,"upper_bound":1188106.5192822372,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[106378042.0,216287958.0,339209083.0,485384500.0,642177334.0,701247417.0,805789666.0,905624750.0,1055231000.0,1095452500.0],"unit":"ns","throughput":[],"typical":{"estimate":28736116.909740258,"lower_bound":27974990.4801774,"upper_bound":29790507.621503495,"unit":"ns"},"mean":{"estimate":28733922.967519842,"lower_bound":27827052.57745536,"upper_bound":29758224.60319395,"unit":"ns"},"median":{"estimate":28539487.89732143,"lower_bound":27386312.5,"upper_bound":29777586.8125,"unit":"ns"},"median_abs_dev":{"estimate":1427491.526740294,"lower_bound":378640.29830279265,"upper_bound":2716612.224445492,"unit":"ns"},"slope":{"estimate":28736116.909740258,"lower_bound":27974990.4801774,"upper_bound":29790507.621503495,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[90594292.0,194634042.0,279107916.0,378726500.0,474612750.0,561501125.0,673139583.0,781493708.0,863558458.0,1048008709.0],"unit":"ns","throughput":[],"typical":{"estimate":7011169.3100185525,"lower_bound":6780713.8158054715,"upper_bound":7251380.05943512,"unit":"ns"},"mean":{"estimate":6848116.447018141,"lower_bound":6705369.5102706915,"upper_bound":7021629.470873016,"unit":"ns"},"median":{"estimate":6816910.349206349,"lower_bound":6684537.202380952,"upper_bound":6951215.785714285,"unit":"ns"},"median_abs_dev":{"estimate":197688.83031532145,"lower_bound":57985.42042055248,"upper_bound":374703.94242267596,"unit":"ns"},"slope":{"estimate":7011169.3100185525,"lower_bound":6780713.8158054715,"upper_bound":7251380.05943512,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[102462583.0,201501959.0,265657958.0,358886833.0,452505417.0,571157750.0,662087542.0,800882791.0,841556625.0,984491125.0],"unit":"ns","throughput":[],"typical":{"estimate":47906567.90779221,"lower_bound":46463177.62169965,"upper_bound":48954734.35600907,"unit":"ns"},"mean":{"estimate":47691582.63815476,"lower_bound":46256095.405081846,"upper_bound":49123592.87291667,"unit":"ns"},"median":{"estimate":47444223.22619048,"lower_bound":45250541.7,"upper_bound":50055174.4375,"unit":"ns"},"median_abs_dev":{"estimate":3541227.567208143,"lower_bound":615737.2514622286,"upper_bound":4108445.934104252,"unit":"ns"},"slope":{"estimate":47906567.90779221,"lower_bound":46463177.62169965,"upper_bound":48954734.35600907,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[86,172,258,344,430,516,602,688,774,860],"measured_values":[87336458.0,192421375.0,237916125.0,275441875.0,345979917.0,509496375.0,573291709.0,706514208.0,819302458.0,1039296625.0],"unit":"ns","throughput":[],"typical":{"estimate":1042175.0805496828,"lower_bound":928241.4128977786,"upper_bound":1125147.7015930691,"unit":"ns"},"mean":{"estimate":989536.5065882243,"lower_bound":914565.2581635981,"upper_bound":1064379.7977759321,"unit":"ns"},"median":{"estimate":1001468.1424418604,"lower_bound":878458.1335548173,"upper_bound":1072819.5552325582,"unit":"ns"},"median_abs_dev":{"estimate":101094.62576063791,"lower_bound":29291.809567757165,"upper_bound":232860.46271857482,"unit":"ns"},"slope":{"estimate":1042175.0805496828,"lower_bound":928241.4128977786,"upper_bound":1125147.7015930691,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103104583.0,223808792.0,344821209.0,435396625.0,645039375.0,681422041.0,833787375.0,922139625.0,1032366584.0,1130325292.0],"unit":"ns","throughput":[],"typical":{"estimate":28862780.659740258,"lower_bound":28347875.57524084,"upper_bound":29691108.780330617,"unit":"ns"},"mean":{"estimate":28587415.402668647,"lower_bound":27643760.486016367,"upper_bound":29634162.375556797,"unit":"ns"},"median":{"estimate":28534717.298611112,"lower_bound":27735210.68125,"upper_bound":29256610.64285714,"unit":"ns"},"median_abs_dev":{"estimate":623258.5506255738,"lower_bound":121221.1266791448,"upper_bound":2546443.6387759633,"unit":"ns"},"slope":{"estimate":28862780.659740258,"lower_bound":28347875.57524084,"upper_bound":29691108.780330617,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[97755458.0,186707083.0,287880042.0,382031834.0,536097292.0,574493792.0,687055291.0,845667375.0,890973500.0,951265458.0],"unit":"ns","throughput":[],"typical":{"estimate":7068001.5612244895,"lower_bound":6864870.1330909515,"upper_bound":7328393.514105917,"unit":"ns"},"mean":{"estimate":7025201.2487216545,"lower_bound":6849716.352810162,"upper_bound":7232673.48338492,"unit":"ns"},"median":{"estimate":6918409.714285715,"lower_bound":6816982.54047619,"upper_bound":7280684.919005102,"unit":"ns"},"median_abs_dev":{"estimate":163137.23681873592,"lower_bound":25522.62319688352,"upper_bound":501118.8122833628,"unit":"ns"},"slope":{"estimate":7068001.5612244895,"lower_bound":6864870.1330909515,"upper_bound":7328393.514105917,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[84772250.0,165513375.0,294190791.0,408918750.0,541692166.0,604723667.0,669370166.0,791752834.0,844207208.0,958309292.0],"unit":"ns","throughput":[],"typical":{"estimate":48664182.8974026,"lower_bound":47648534.572492085,"upper_bound":50333184.23476947,"unit":"ns"},"mean":{"estimate":48058653.840039685,"lower_bound":45746278.72493254,"upper_bound":50227923.84988789,"unit":"ns"},"median":{"estimate":48473631.55,"lower_bound":45099139.85714286,"upper_bound":50393638.916666664,"unit":"ns"},"median_abs_dev":{"estimate":2589537.633484846,"lower_bound":752467.0451543715,"upper_bound":6549560.480547049,"unit":"ns"},"slope":{"estimate":48664182.8974026,"lower_bound":47648534.572492085,"upper_bound":50333184.23476947,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1520767375.0,1623203292.0,1221309083.0,1195070500.0,1376853916.0,1409704916.0,1063142167.0,1131832125.0,1359169792.0,1289692500.0],"unit":"ns","throughput":[],"typical":{"estimate":1319074566.6,"lower_bound":1219382858.6475,"upper_bound":1423202705.0949998,"unit":"ns"},"mean":{"estimate":1319074566.6,"lower_bound":1219382858.6475,"upper_bound":1423202705.0949998,"unit":"ns"},"median":{"estimate":1324431146.0,"lower_bound":1176570604.0,"upper_bound":1448810645.5,"unit":"ns"},"median_abs_dev":{"estimate":172339429.12206352,"lower_bound":38901322.46516347,"upper_bound":297924171.84248865,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1161110208.0,1490896667.0,1328734208.0,1514989708.0,1423465667.0,1660242917.0,1782394292.0,1218559000.0,1180070541.0,1494132292.0],"unit":"ns","throughput":[],"typical":{"estimate":1425459550.0,"lower_bound":1306574419.1299999,"upper_bound":1548367412.6,"unit":"ns"},"mean":{"estimate":1425459550.0,"lower_bound":1306574419.1299999,"upper_bound":1548367412.6,"unit":"ns"},"median":{"estimate":1457181167.0,"lower_bound":1218559000.0,"upper_bound":1577187604.5,"unit":"ns"},"median_abs_dev":{"estimate":245747401.6188115,"lower_bound":20258739.746135473,"upper_bound":384711281.43340945,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_1000000","iteration_count":[84,168,252,336,420,504,588,672,756,840],"measured_values":[97691125.0,165232125.0,242480625.0,341375875.0,475262875.0,586268875.0,669075500.0,770288500.0,884732834.0,893888417.0],"unit":"ns","throughput":[],"typical":{"estimate":1118192.472201608,"lower_bound":1076889.1487697528,"upper_bound":1151982.0752400754,"unit":"ns"},"mean":{"estimate":1093812.919195956,"lower_bound":1044477.229434193,"upper_bound":1138372.3951593915,"unit":"ns"},"median":{"estimate":1134730.8886054421,"lower_bound":1015999.6279761905,"upper_bound":1162989.5833333333,"unit":"ns"},"median_abs_dev":{"estimate":47481.482917551024,"lower_bound":6211.460380795998,"upper_bound":132174.36299440786,"unit":"ns"},"slope":{"estimate":1118192.472201608,"lower_bound":1076889.1487697528,"upper_bound":1151982.0752400754,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103647834.0,266249958.0,398579875.0,436451417.0,576491916.0,667074209.0,801821333.0,960149667.0,979894667.0,1184980250.0],"unit":"ns","throughput":[],"typical":{"estimate":28847661.71883117,"lower_bound":27885433.446476966,"upper_bound":29721664.431034483,"unit":"ns"},"mean":{"estimate":29179071.673204362,"lower_bound":27818669.277232148,"upper_bound":30679734.04231969,"unit":"ns"},"median":{"estimate":28730535.989285715,"lower_bound":27278213.5625,"upper_bound":31419747.916666664,"unit":"ns"},"median_abs_dev":{"estimate":2021127.3798334412,"lower_bound":426590.2716056742,"upper_bound":4400931.986111588,"unit":"ns"},"slope":{"estimate":28847661.71883117,"lower_bound":27885433.446476966,"upper_bound":29721664.431034483,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[84,168,252,336,420,504,588,672,756,840],"measured_values":[101575958.0,177977459.0,272814875.0,369158000.0,456833458.0,551589834.0,609847334.0,706568667.0,888073292.0,893058125.0],"unit":"ns","throughput":[],"typical":{"estimate":1088158.1739950525,"lower_bound":1056176.5792748565,"upper_bound":1133555.6412885154,"unit":"ns"},"mean":{"estimate":1095849.4804502078,"lower_bound":1066767.6814654195,"upper_bound":1130871.925978836,"unit":"ns"},"median":{"estimate":1085148.709920635,"lower_bound":1057302.9516369049,"upper_bound":1134562.1977513228,"unit":"ns"},"median_abs_dev":{"estimate":35392.14354999732,"lower_bound":8143.783985418854,"upper_bound":80632.866705534,"unit":"ns"},"slope":{"estimate":1088158.1739950525,"lower_bound":1056176.5792748565,"upper_bound":1133555.6412885154,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[108166583.0,211331500.0,346686541.0,453538458.0,565347375.0,647904375.0,809322792.0,995585292.0,1008771958.0,1111442167.0],"unit":"ns","throughput":[],"typical":{"estimate":28521115.1525974,"lower_bound":27737695.452939678,"upper_bound":29690260.9962406,"unit":"ns"},"mean":{"estimate":28178208.958968252,"lower_bound":27465488.573194448,"upper_bound":29008061.98194345,"unit":"ns"},"median":{"estimate":28144406.013888888,"lower_bound":27041645.75,"upper_bound":28890545.083333332,"unit":"ns"},"median_abs_dev":{"estimate":1116485.612461752,"lower_bound":240707.7761224173,"upper_bound":2074763.6950864121,"unit":"ns"},"slope":{"estimate":28521115.1525974,"lower_bound":27737695.452939678,"upper_bound":29690260.9962406,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/1000000","ORE/ore_decrypt/range_gt_10/1000000","ORE/ore/range_gt_100/1000000","ORE/ore_decrypt/range_gt_100/1000000","ORE/ore/range_lt_10/1000000","ORE/ore_decrypt/range_lt_10/1000000","ORE/ore/range_lt_100/1000000","ORE/ore_decrypt/range_lt_100/1000000","ORE/ore/range_selective_gt_100/1000000","ORE/ore_decrypt/range_selective_gt_100/1000000","ORE/ore/range_highly_selective_gt_10/1000000","ORE/ore_decrypt/range_highly_selective_gt_10/1000000","ORE/ore/range_lt_hybrid_ordered_10/1000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[67,134,201,268,335,402,469,536,603,670],"measured_values":[98177458.0,199158958.0,243520792.0,307138917.0,432109458.0,531410542.0,621395208.0,855679625.0,727737875.0,904908667.0],"unit":"ns","throughput":[],"typical":{"estimate":1341289.2018220585,"lower_bound":1245010.1091096243,"upper_bound":1453372.0789363044,"unit":"ns"},"mean":{"estimate":1339980.4575580433,"lower_bound":1259972.9784577116,"upper_bound":1426368.1507587065,"unit":"ns"},"median":{"estimate":1323426.6243781094,"lower_bound":1211546.2288557214,"upper_bound":1465335.1940298507,"unit":"ns"},"median_abs_dev":{"estimate":169346.1808333052,"lower_bound":21270.253661332983,"upper_bound":236692.97822136694,"unit":"ns"},"slope":{"estimate":1341289.2018220585,"lower_bound":1245010.1091096243,"upper_bound":1453372.0789363044,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[132688875.0,236194792.0,317251375.0,497382750.0,568525791.0,711172166.0,846947667.0,915097708.0,1099675292.0,1183853792.0],"unit":"ns","throughput":[],"typical":{"estimate":29637049.62077922,"lower_bound":28963933.211065575,"upper_bound":30202572.163034353,"unit":"ns"},"mean":{"estimate":29726688.236984126,"lower_bound":28685253.707509916,"upper_bound":30785192.55215377,"unit":"ns"},"median":{"estimate":29614259.191666666,"lower_bound":28596803.375,"upper_bound":30667276.41964286,"unit":"ns"},"median_abs_dev":{"estimate":1445336.6868859772,"lower_bound":106490.23881941795,"upper_bound":3045943.30973203,"unit":"ns"},"slope":{"estimate":29637049.62077922,"lower_bound":28963933.211065575,"upper_bound":30202572.163034353,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[87442416.0,181372542.0,260245834.0,363479917.0,496748250.0,556216417.0,657355292.0,765075916.0,775827500.0,989888208.0],"unit":"ns","throughput":[],"typical":{"estimate":7815867.613419914,"lower_bound":7441617.265886287,"upper_bound":8108054.833642248,"unit":"ns"},"mean":{"estimate":7687782.737189153,"lower_bound":7459478.599074075,"upper_bound":7924962.296164186,"unit":"ns"},"median":{"estimate":7648863.142361111,"lower_bound":7286868.0,"upper_bound":8037363.319047619,"unit":"ns"},"median_abs_dev":{"estimate":506065.3314780446,"lower_bound":76561.4900963176,"upper_bound":713279.1438567641,"unit":"ns"},"slope":{"estimate":7815867.613419914,"lower_bound":7441617.265886287,"upper_bound":8108054.833642248,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[78245458.0,189140250.0,279480291.0,387672791.0,469322500.0,538469667.0,570408833.0,750165291.0,837702000.0,894624875.0],"unit":"ns","throughput":[],"typical":{"estimate":45328362.86493506,"lower_bound":43674807.98821549,"upper_bound":46749915.29931973,"unit":"ns"},"mean":{"estimate":45215072.36339286,"lower_bound":43303046.16609375,"upper_bound":46812236.881562494,"unit":"ns"},"median":{"estimate":46559524.25,"lower_bound":42807980.16071428,"upper_bound":47085196.59375,"unit":"ns"},"median_abs_dev":{"estimate":1788453.12057361,"lower_bound":256734.9340857938,"upper_bound":4551912.075674906,"unit":"ns"},"slope":{"estimate":45328362.86493506,"lower_bound":43674807.98821549,"upper_bound":46749915.29931973,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[60,120,180,240,300,360,420,480,540,600],"measured_values":[74873333.0,213967917.0,309051500.0,410152042.0,460506916.0,638210833.0,682841334.0,784140958.0,843456834.0,899540125.0],"unit":"ns","throughput":[],"typical":{"estimate":1594887.4965800866,"lower_bound":1541698.7942371476,"upper_bound":1675294.588864629,"unit":"ns"},"mean":{"estimate":1608533.5738055555,"lower_bound":1507570.6483611108,"upper_bound":1694162.342777778,"unit":"ns"},"median":{"estimate":1629719.8479166667,"lower_bound":1530595.3208333333,"upper_bound":1740887.3555555556,"unit":"ns"},"median_abs_dev":{"estimate":134864.5023363432,"lower_bound":39932.416879058175,"upper_bound":249762.79623315728,"unit":"ns"},"slope":{"estimate":1594887.4965800866,"lower_bound":1541698.7942371476,"upper_bound":1675294.588864629,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118358375.0,210289416.0,360302916.0,480149292.0,612396417.0,725627708.0,824415542.0,875654375.0,1046022792.0,1217996542.0],"unit":"ns","throughput":[],"typical":{"estimate":29432795.972727273,"lower_bound":28468375.05422196,"upper_bound":30243539.97130102,"unit":"ns"},"mean":{"estimate":29307836.683303572,"lower_bound":28401417.206775296,"upper_bound":30046101.491059527,"unit":"ns"},"median":{"estimate":29799462.25,"lower_bound":28403805.71651786,"upper_bound":30237578.275,"unit":"ns"},"median_abs_dev":{"estimate":804663.999329358,"lower_bound":166908.942911773,"upper_bound":2032593.6736692472,"unit":"ns"},"slope":{"estimate":29432795.972727273,"lower_bound":28468375.05422196,"upper_bound":30243539.97130102,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[85892625.0,171364917.0,284242542.0,355673250.0,485619750.0,568899208.0,625097500.0,719833417.0,747784416.0,910657041.0],"unit":"ns","throughput":[],"typical":{"estimate":7471107.5915584415,"lower_bound":7207417.812865497,"upper_bound":7733333.716700334,"unit":"ns"},"mean":{"estimate":7505108.967351191,"lower_bound":7287379.503462302,"upper_bound":7724646.789929315,"unit":"ns"},"median":{"estimate":7469950.832589285,"lower_bound":7157718.75,"upper_bound":7895626.166666667,"unit":"ns"},"median_abs_dev":{"estimate":475898.3127354906,"lower_bound":65534.911045897985,"upper_bound":639633.7423140233,"unit":"ns"},"slope":{"estimate":7471107.5915584415,"lower_bound":7207417.812865497,"upper_bound":7733333.716700334,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[93687792.0,173598917.0,269959041.0,355955750.0,446804708.0,561209417.0,598956875.0,752843500.0,855210125.0,959603667.0],"unit":"ns","throughput":[],"typical":{"estimate":46473038.58571429,"lower_bound":44562606.794470385,"upper_bound":47432427.87740112,"unit":"ns"},"mean":{"estimate":45650639.935634926,"lower_bound":44580556.41579364,"upper_bound":46688225.88039683,"unit":"ns"},"median":{"estimate":45880312.45833333,"lower_bound":44040100.025,"upper_bound":47177784.80555555,"unit":"ns"},"median_abs_dev":{"estimate":1916768.528280551,"lower_bound":231806.50739461405,"upper_bound":2997768.7728356323,"unit":"ns"},"slope":{"estimate":46473038.58571429,"lower_bound":44562606.794470385,"upper_bound":47432427.87740112,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_1000000","iteration_count":[46,92,138,184,230,276,322,368,414,460],"measured_values":[86488125.0,176785833.0,250919792.0,419906167.0,461511791.0,513023667.0,605858834.0,664175750.0,729867708.0,835346916.0],"unit":"ns","throughput":[],"typical":{"estimate":1848381.7708639186,"lower_bound":1803381.3931536835,"upper_bound":1941453.867606847,"unit":"ns"},"mean":{"estimate":1903278.5890579713,"lower_bound":1830473.7326811594,"upper_bound":2002719.7155905794,"unit":"ns"},"median":{"estimate":1869479.016304348,"lower_bound":1811542.384963768,"upper_bound":1944061.0891304347,"unit":"ns"},"median_abs_dev":{"estimate":78291.3490093986,"lower_bound":11654.540857112353,"upper_bound":169652.31649279397,"unit":"ns"},"slope":{"estimate":1848381.7708639186,"lower_bound":1803381.3931536835,"upper_bound":1941453.867606847,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[113259291.0,241790500.0,365899500.0,460589333.0,567741875.0,725971792.0,764325583.0,847749750.0,1066262584.0,1190529792.0],"unit":"ns","throughput":[],"typical":{"estimate":38411579.65974026,"lower_bound":36759840.186685,"upper_bound":39638731.173327014,"unit":"ns"},"mean":{"estimate":38616557.8437037,"lower_bound":37514078.7477037,"upper_bound":39616128.21564815,"unit":"ns"},"median":{"estimate":38936825.61574074,"lower_bound":37122957.333333336,"upper_bound":40298416.666666664,"unit":"ns"},"median_abs_dev":{"estimate":1886845.4354017954,"lower_bound":286319.0919123754,"upper_bound":3089961.1538394447,"unit":"ns"},"slope":{"estimate":38411579.65974026,"lower_bound":36759840.186685,"upper_bound":39638731.173327014,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_1000000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[106474708.0,228772666.0,266063000.0,368912833.0,447757375.0,500281375.0,645282000.0,667020417.0,786679833.0,851643875.0],"unit":"ns","throughput":[],"typical":{"estimate":1049226.4146455955,"lower_bound":1026345.4017078574,"upper_bound":1087502.748489038,"unit":"ns"},"mean":{"estimate":1111858.5215648306,"lower_bound":1047731.6564328743,"upper_bound":1190984.642505737,"unit":"ns"},"median":{"estimate":1073729.7690763052,"lower_bound":1026076.9578313254,"upper_bound":1196734.0413080896,"unit":"ns"},"median_abs_dev":{"estimate":63089.279867591926,"lower_bound":15958.807710499927,"upper_bound":158048.95383533125,"unit":"ns"},"slope":{"estimate":1049226.4146455955,"lower_bound":1026345.4017078574,"upper_bound":1087502.748489038,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[122384583.0,231884708.0,322467542.0,475226375.0,533864167.0,642554750.0,770330250.0,907611542.0,1104384209.0,1142359666.0],"unit":"ns","throughput":[],"typical":{"estimate":28568422.134415586,"lower_bound":27489004.05140175,"upper_bound":29563243.070460632,"unit":"ns"},"mean":{"estimate":28473298.690674603,"lower_bound":27599861.967321426,"upper_bound":29368564.468230657,"unit":"ns"},"median":{"estimate":28460926.16875,"lower_bound":26872295.166666668,"upper_bound":29790867.125,"unit":"ns"},"median_abs_dev":{"estimate":2097399.5424324637,"lower_bound":191991.5445564665,"upper_bound":2745063.0862841383,"unit":"ns"},"slope":{"estimate":28568422.134415586,"lower_bound":27489004.05140175,"upper_bound":29563243.070460632,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[67,134,201,268,335,402,469,536,603,670],"measured_values":[101662541.0,189980792.0,256817625.0,334350666.0,451352917.0,483669000.0,616489708.0,693278958.0,1019591500.0,745680708.0],"unit":"ns","throughput":[],"typical":{"estimate":1327507.2087226207,"lower_bound":1176971.659013963,"upper_bound":1522573.3537345654,"unit":"ns"},"mean":{"estimate":1342260.306239043,"lower_bound":1252276.794712953,"upper_bound":1446542.5519736435,"unit":"ns"},"median":{"estimate":1303953.940565032,"lower_bound":1240428.1716417912,"upper_bound":1432336.7492537312,"unit":"ns"},"median_abs_dev":{"estimate":116513.12325125461,"lower_bound":27263.058317476432,"upper_bound":262922.69715457683,"unit":"ns"},"slope":{"estimate":1327507.2087226207,"lower_bound":1176971.659013963,"upper_bound":1522573.3537345654,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[117398209.0,242486958.0,315044250.0,454379542.0,561527542.0,695679042.0,779149958.0,966116791.0,1055215167.0,1209937333.0],"unit":"ns","throughput":[],"typical":{"estimate":29302616.15064935,"lower_bound":28343522.118551575,"upper_bound":29882725.596063603,"unit":"ns"},"mean":{"estimate":28895373.439970236,"lower_bound":28102923.90043155,"upper_bound":29607779.301015627,"unit":"ns"},"median":{"estimate":29149079.583333336,"lower_bound":28076377.1,"upper_bound":30191149.71875,"unit":"ns"},"median_abs_dev":{"estimate":1567680.914447474,"lower_bound":131212.7941492567,"upper_bound":2272531.829571369,"unit":"ns"},"slope":{"estimate":29302616.15064935,"lower_bound":28343522.118551575,"upper_bound":29882725.596063603,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_count/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_count_1000000","iteration_count":[11,22,33,44,55,66,77,88,99,110],"measured_values":[84447583.0,166100667.0,243529084.0,338400792.0,414354916.0,553312167.0,614701875.0,672513375.0,822609042.0,857934458.0],"unit":"ns","throughput":[],"typical":{"estimate":7924045.573081464,"lower_bound":7699834.378777139,"upper_bound":8150954.033205566,"unit":"ns"},"mean":{"estimate":7794884.813149351,"lower_bound":7613071.7294053035,"upper_bound":7999142.165428571,"unit":"ns"},"median":{"estimate":7683990.045454545,"lower_bound":7550030.318181818,"upper_bound":8054293.203030303,"unit":"ns"},"median_abs_dev":{"estimate":210695.26767668335,"lower_bound":36123.28721891054,"upper_bound":541884.9754832548,"unit":"ns"},"slope":{"estimate":7924045.573081464,"lower_bound":7699834.378777139,"upper_bound":8150954.033205566,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_count/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_count_1000000","iteration_count":[17,34,51,68,85,102,119,136,153,170],"measured_values":[97233667.0,178746166.0,256218458.0,360737791.0,427085750.0,564331750.0,634897959.0,814633583.0,967588666.0,1010668959.0],"unit":"ns","throughput":[],"typical":{"estimate":5800472.688770054,"lower_bound":5369421.298226643,"upper_bound":6044904.726153503,"unit":"ns"},"mean":{"estimate":5545737.918027543,"lower_bound":5299878.7662464995,"upper_bound":5809571.606475256,"unit":"ns"},"median":{"estimate":5433970.591036415,"lower_bound":5164752.875,"upper_bound":5945111.523529412,"unit":"ns"},"median_abs_dev":{"estimate":515269.6409756646,"lower_bound":57848.671337687665,"upper_bound":723631.4105279753,"unit":"ns"},"slope":{"estimate":5800472.688770054,"lower_bound":5369421.298226643,"upper_bound":6044904.726153503,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/1000000","ORE/ore_decrypt/range_gt_10/1000000","ORE/ore/range_gt_100/1000000","ORE/ore_decrypt/range_gt_100/1000000","ORE/ore/range_lt_10/1000000","ORE/ore_decrypt/range_lt_10/1000000","ORE/ore/range_lt_100/1000000","ORE/ore_decrypt/range_lt_100/1000000","ORE/ore/range_selective_gt_100/1000000","ORE/ore_decrypt/range_selective_gt_100/1000000","ORE/ore/range_highly_selective_gt_10/1000000","ORE/ore_decrypt/range_highly_selective_gt_10/1000000","ORE/ore/range_lt_hybrid_ordered_10/1000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","ORE/ore/range_selective_gt_count/1000000","ORE/ore/range_highly_selective_gt_count/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_10000000.json b/results/query/ore_rows_10000000.json index 16f1abe..01e4e64 100644 --- a/results/query/ore_rows_10000000.json +++ b/results/query/ore_rows_10000000.json @@ -1,15 +1,17 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000000","iteration_count":[60,120,180,240,300,360,420,480,540,600],"measured_values":[103747458.0,190135750.0,228290167.0,306159208.0,433002500.0,518638583.0,577765375.0,725423541.0,802009625.0,797080500.0],"unit":"ns","throughput":[],"typical":{"estimate":1415887.7864502165,"lower_bound":1353240.4956739924,"upper_bound":1475884.9234859648,"unit":"ns"},"mean":{"estimate":1444213.6751025133,"lower_bound":1363876.32515873,"upper_bound":1530434.604996693,"unit":"ns"},"median":{"estimate":1442002.1986111111,"lower_bound":1325647.605952381,"upper_bound":1534833.7962962962,"unit":"ns"},"median_abs_dev":{"estimate":135533.02097568286,"lower_bound":33017.708016874116,"upper_bound":244628.05255865052,"unit":"ns"},"slope":{"estimate":1415887.7864502165,"lower_bound":1353240.4956739924,"upper_bound":1475884.9234859648,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[76974959.0,154643417.0,239589750.0,375438458.0,433581625.0,507337125.0,593309916.0,735574708.0,807064125.0,817485042.0],"unit":"ns","throughput":[],"typical":{"estimate":28826762.225974027,"lower_bound":27751471.679167576,"upper_bound":29924832.09408602,"unit":"ns"},"mean":{"estimate":28247324.60984127,"lower_bound":27115499.845555555,"upper_bound":29411596.839999996,"unit":"ns"},"median":{"estimate":28219124.48809524,"lower_bound":26511702.116666667,"upper_bound":29891263.888888888,"unit":"ns"},"median_abs_dev":{"estimate":2424184.80279545,"lower_bound":533769.9667736907,"upper_bound":3552447.454031454,"unit":"ns"},"slope":{"estimate":28826762.225974027,"lower_bound":27751471.679167576,"upper_bound":29924832.09408602,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[95211916.0,192413500.0,424649167.0,379379750.0,488740708.0,564423750.0,664433000.0,745090417.0,846238375.0,945629584.0],"unit":"ns","throughput":[],"typical":{"estimate":6824851.021892393,"lower_bound":6715343.269580966,"upper_bound":7130944.988648948,"unit":"ns"},"mean":{"estimate":7116263.136210318,"lower_bound":6743655.998293651,"upper_bound":7800556.967142856,"unit":"ns"},"median":{"estimate":6777283.482142857,"lower_bound":6719330.357142857,"upper_bound":6891430.628571428,"unit":"ns"},"median_abs_dev":{"estimate":88258.45572476601,"lower_bound":18852.40238530313,"upper_bound":219807.5054601359,"unit":"ns"},"slope":{"estimate":6824851.021892393,"lower_bound":6715343.269580966,"upper_bound":7130944.988648948,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[91504541.0,176765834.0,275188292.0,380283375.0,462967208.0,559787958.0,593442375.0,761570166.0,861410667.0,929530917.0],"unit":"ns","throughput":[],"typical":{"estimate":46441508.44025974,"lower_bound":44861334.59659091,"upper_bound":47429895.395238094,"unit":"ns"},"mean":{"estimate":46060915.397142865,"lower_bound":44990058.09054167,"upper_bound":46965584.59833333,"unit":"ns"},"median":{"estimate":46386633.325,"lower_bound":45028086.91666667,"upper_bound":47535421.875,"unit":"ns"},"median_abs_dev":{"estimate":1321850.0908199698,"lower_bound":255675.32915085333,"upper_bound":2569968.5081489347,"unit":"ns"},"slope":{"estimate":46441508.44025974,"lower_bound":44861334.59659091,"upper_bound":47429895.395238094,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000000","iteration_count":[65,130,195,260,325,390,455,520,585,650],"measured_values":[101489833.0,195578708.0,299062959.0,338542750.0,447261042.0,493374708.0,639188750.0,696366750.0,746382709.0,880621625.0],"unit":"ns","throughput":[],"typical":{"estimate":1339040.0185814186,"lower_bound":1302987.0004008017,"upper_bound":1380438.1102153845,"unit":"ns"},"mean":{"estimate":1391747.6166654457,"lower_bound":1331330.9184188035,"upper_bound":1456698.4378752748,"unit":"ns"},"median":{"estimate":1365495.1607692307,"lower_bound":1302087.5,"upper_bound":1504451.6,"unit":"ns"},"median_abs_dev":{"estimate":113444.80116215716,"lower_bound":27443.6628211622,"upper_bound":171661.8742623925,"unit":"ns"},"slope":{"estimate":1339040.0185814186,"lower_bound":1302987.0004008017,"upper_bound":1380438.1102153845,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114486833.0,215160416.0,314603375.0,445486750.0,626331959.0,653283875.0,763391209.0,897777750.0,1116736750.0,1133968708.0],"unit":"ns","throughput":[],"typical":{"estimate":28726107.875324674,"lower_bound":27621451.655048076,"upper_bound":29938970.061462075,"unit":"ns"},"mean":{"estimate":28280259.886527777,"lower_bound":27372049.980416667,"upper_bound":29326811.34916666,"unit":"ns"},"median":{"estimate":27949238.28125,"lower_bound":27079511.875,"upper_bound":29684841.48888889,"unit":"ns"},"median_abs_dev":{"estimate":1048452.7098299945,"lower_bound":273480.2058197585,"upper_bound":2658624.5765949767,"unit":"ns"},"slope":{"estimate":28726107.875324674,"lower_bound":27621451.655048076,"upper_bound":29938970.061462075,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[102242500.0,190428917.0,290975750.0,393822875.0,525228750.0,628639375.0,603620458.0,706088167.0,794837542.0,894955583.0],"unit":"ns","throughput":[],"typical":{"estimate":7054234.0327672325,"lower_bound":6825858.467823473,"upper_bound":7523229.7183431955,"unit":"ns"},"mean":{"estimate":7346360.990021368,"lower_bound":7024568.980833334,"upper_bound":7667397.341376604,"unit":"ns"},"median":{"estimate":7392552.891025641,"lower_bound":6793483.264957265,"upper_bound":7864807.692307692,"unit":"ns"},"median_abs_dev":{"estimate":820877.6521336877,"lower_bound":70397.12130039446,"upper_bound":912996.8105449125,"unit":"ns"},"slope":{"estimate":7054234.0327672325,"lower_bound":6825858.467823473,"upper_bound":7523229.7183431955,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[87065875.0,181259333.0,308363916.0,367174750.0,449443792.0,566455166.0,680316000.0,728873083.0,860555208.0,961425084.0],"unit":"ns","throughput":[],"typical":{"estimate":47326973.53376623,"lower_bound":46240509.139013454,"upper_bound":48073801.45058598,"unit":"ns"},"mean":{"estimate":46831602.14208333,"lower_bound":45570627.029583335,"upper_bound":48217041.51541667,"unit":"ns"},"median":{"estimate":46550720.45833333,"lower_bound":45249473.44375,"upper_bound":48201311.33333333,"unit":"ns"},"median_abs_dev":{"estimate":2059654.5331688302,"lower_bound":431444.3759903312,"upper_bound":3891980.8757135333,"unit":"ns"},"slope":{"estimate":47326973.53376623,"lower_bound":46240509.139013454,"upper_bound":48073801.45058598,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1427465292.0,1426543292.0,1263001667.0,1479388875.0,1554887666.0,1513605708.0,1239696958.0,1399286167.0,1441024667.0,1439835875.0],"unit":"ns","throughput":[],"typical":{"estimate":1418473616.7,"lower_bound":1357090812.6,"upper_bound":1473818162.3,"unit":"ns"},"mean":{"estimate":1418473616.7,"lower_bound":1357090812.6,"upper_bound":1473818162.3,"unit":"ns"},"median":{"estimate":1433650583.5,"lower_bound":1344772479.5,"upper_bound":1479388875.0,"unit":"ns"},"median_abs_dev":{"estimate":59380136.386191845,"lower_bound":9853791.602960229,"upper_bound":178864843.82941425,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1609152250.0,1575077542.0,1521268541.0,1392028834.0,1665331750.0,1551574083.0,1616180958.0,1298675750.0,1510473750.0,1512406750.0],"unit":"ns","throughput":[],"typical":{"estimate":1525217020.8,"lower_bound":1456789729.4,"upper_bound":1584195854.0475,"unit":"ns"},"mean":{"estimate":1525217020.8,"lower_bound":1456789729.4,"upper_bound":1584195854.0475,"unit":"ns"},"median":{"estimate":1536421312.0,"lower_bound":1452217792.0,"upper_bound":1609152250.0,"unit":"ns"},"median_abs_dev":{"estimate":82571306.17246628,"lower_bound":8002178.426232934,"upper_bound":178472295.09308338,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[3486039208.0,2285962167.0,1721684083.0,2324315917.0,1946632625.0,2435710459.0,1598975958.0,1720996042.0,1990612625.0,2736572500.0],"unit":"ns","throughput":[],"typical":{"estimate":2224750158.4,"lower_bound":1917053182.3225,"upper_bound":2584983139.1,"unit":"ns"},"mean":{"estimate":2224750158.4,"lower_bound":1917053182.3225,"upper_bound":2584983139.1,"unit":"ns"},"median":{"estimate":2138287396.0,"lower_bound":1721684083.0,"upper_bound":2530444208.5,"unit":"ns"},"median_abs_dev":{"estimate":529307743.1317091,"lower_bound":90963531.4475745,"upper_bound":891861135.0392997,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1347326417.0,1849606083.0,1784382917.0,2105907916.0,1921166958.0,2159976917.0,1844479166.0,1553313708.0,2378471542.0,1279089125.0],"unit":"ns","throughput":[],"typical":{"estimate":1822372074.9,"lower_bound":1613564717.68,"upper_bound":2025504583.3,"unit":"ns"},"mean":{"estimate":1822372074.9,"lower_bound":1613564717.68,"upper_bound":2025504583.3,"unit":"ns"},"median":{"estimate":1847042624.5,"lower_bound":1553313708.0,"upper_bound":2105907916.0,"unit":"ns"},"median_abs_dev":{"estimate":409638079.11787033,"lower_bound":50584303.66154909,"upper_bound":611689491.4845407,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000000","iteration_count":[78,156,234,312,390,468,546,624,702,780],"measured_values":[104782750.0,226417792.0,251783333.0,321951417.0,425841500.0,518034666.0,621295000.0,775898666.0,870276125.0,924919583.0],"unit":"ns","throughput":[],"typical":{"estimate":1181356.1365301365,"lower_bound":1126483.0239421804,"upper_bound":1217760.3817845283,"unit":"ns"},"mean":{"estimate":1190830.4567439968,"lower_bound":1119181.8020278797,"upper_bound":1271654.5848778998,"unit":"ns"},"median":{"estimate":1161848.6337912087,"lower_bound":1091454.4145299145,"upper_bound":1291539.0847578347,"unit":"ns"},"median_abs_dev":{"estimate":118192.61900766588,"lower_bound":22973.813895979383,"upper_bound":222559.0866315857,"unit":"ns"},"slope":{"estimate":1181356.1365301365,"lower_bound":1126483.0239421804,"upper_bound":1217760.3817845283,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[123360792.0,266961875.0,392563000.0,467967667.0,548495458.0,722216166.0,838658875.0,911225292.0,1002924291.0,1148868834.0],"unit":"ns","throughput":[],"typical":{"estimate":28868857.088311687,"lower_bound":28315365.657992564,"upper_bound":29731362.54479769,"unit":"ns"},"mean":{"estimate":29869773.003273807,"lower_bound":28775068.8862381,"upper_bound":31074639.287023805,"unit":"ns"},"median":{"estimate":29600040.933035716,"lower_bound":28290364.46666667,"upper_bound":31402961.791666664,"unit":"ns"},"median_abs_dev":{"estimate":1752735.3412952274,"lower_bound":572423.5565437004,"upper_bound":3435826.095976888,"unit":"ns"},"slope":{"estimate":28868857.088311687,"lower_bound":28315365.657992564,"upper_bound":29731362.54479769,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000000","ORE/ore_decrypt/range_gt_10/10000000","ORE/ore/range_gt_100/10000000","ORE/ore_decrypt/range_gt_100/10000000","ORE/ore/range_lt_10/10000000","ORE/ore_decrypt/range_lt_10/10000000","ORE/ore/range_lt_100/10000000","ORE/ore_decrypt/range_lt_100/10000000","ORE/ore/range_selective_gt_100/10000000","ORE/ore_decrypt/range_selective_gt_100/10000000","ORE/ore/range_highly_selective_gt_10/10000000","ORE/ore_decrypt/range_highly_selective_gt_10/10000000","ORE/ore/range_lt_hybrid_ordered_10/10000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000000","iteration_count":[62,124,186,248,310,372,434,496,558,620],"measured_values":[106923375.0,171441209.0,272239916.0,349495291.0,494262542.0,532269792.0,591020792.0,606785208.0,746935750.0,805818542.0],"unit":"ns","throughput":[],"typical":{"estimate":1344845.9382069544,"lower_bound":1294584.991986525,"upper_bound":1431170.4998549742,"unit":"ns"},"mean":{"estimate":1422875.7892613926,"lower_bound":1344990.3279493086,"upper_bound":1512556.5375716847,"unit":"ns"},"median":{"estimate":1395922.8004032257,"lower_bound":1330753.192857143,"upper_bound":1512614.0354838711,"unit":"ns"},"median_abs_dev":{"estimate":92707.66451432505,"lower_bound":32614.13126265019,"upper_bound":234161.78464384587,"unit":"ns"},"slope":{"estimate":1344845.9382069544,"lower_bound":1294584.991986525,"upper_bound":1431170.4998549742,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[82325791.0,206189833.0,306482584.0,355998125.0,430938459.0,552518417.0,614704792.0,681754083.0,770775917.0,843128584.0],"unit":"ns","throughput":[],"typical":{"estimate":28946479.486580085,"lower_bound":28464969.857864358,"upper_bound":29961101.915514592,"unit":"ns"},"mean":{"estimate":29928135.077764552,"lower_bound":28629557.848677255,"upper_bound":31475412.613042325,"unit":"ns"},"median":{"estimate":29000443.68095238,"lower_bound":28325771.15925926,"upper_bound":31860065.43055556,"unit":"ns"},"median_abs_dev":{"estimate":1158076.8406750276,"lower_bound":239299.4008690875,"upper_bound":3569923.981872847,"unit":"ns"},"slope":{"estimate":28946479.486580085,"lower_bound":28464969.857864358,"upper_bound":29961101.915514592,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[101072375.0,258519125.0,273207416.0,378584125.0,465871125.0,571929791.0,686678125.0,737703375.0,811561750.0,913822709.0],"unit":"ns","throughput":[],"typical":{"estimate":7762697.069047619,"lower_bound":7625959.777375202,"upper_bound":8024809.032662842,"unit":"ns"},"mean":{"estimate":8136737.998356481,"lower_bound":7718905.076321759,"upper_bound":8782404.117447915,"unit":"ns"},"median":{"estimate":7825844.010416666,"lower_bound":7615189.241666666,"upper_bound":8183083.618055555,"unit":"ns"},"median_abs_dev":{"estimate":331660.49797476514,"lower_bound":70657.20644037612,"upper_bound":679948.7618545373,"unit":"ns"},"slope":{"estimate":7762697.069047619,"lower_bound":7625959.777375202,"upper_bound":8024809.032662842,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[91147625.0,174587875.0,279637250.0,380408750.0,468631500.0,569653292.0,607398084.0,719780458.0,784326625.0,898850792.0],"unit":"ns","throughput":[],"typical":{"estimate":44960292.43376623,"lower_bound":44154843.19801017,"upper_bound":46174734.40606342,"unit":"ns"},"mean":{"estimate":45460043.80424603,"lower_bound":44513523.803134926,"upper_bound":46403308.75458334,"unit":"ns"},"median":{"estimate":45280045.5625,"lower_bound":43646968.75,"upper_bound":47038658.0,"unit":"ns"},"median_abs_dev":{"estimate":2384155.1182977855,"lower_bound":193769.38313491366,"upper_bound":2634164.7040042253,"unit":"ns"},"slope":{"estimate":44960292.43376623,"lower_bound":44154843.19801017,"upper_bound":46174734.40606342,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000000","iteration_count":[53,106,159,212,265,318,371,424,477,530],"measured_values":[91341417.0,173814000.0,284170208.0,340511625.0,468945334.0,497362042.0,718874542.0,756935416.0,856484667.0,865935667.0],"unit":"ns","throughput":[],"typical":{"estimate":1736718.9050722863,"lower_bound":1651671.621133631,"upper_bound":1826223.0865932778,"unit":"ns"},"mean":{"estimate":1724253.3702380955,"lower_bound":1659345.794865791,"upper_bound":1793033.6002740343,"unit":"ns"},"median":{"estimate":1746513.9981132075,"lower_bound":1622970.8136792453,"upper_bound":1790395.1886792453,"unit":"ns"},"median_abs_dev":{"estimate":115502.41251357319,"lower_bound":9154.518677097281,"upper_bound":220842.54132077063,"unit":"ns"},"slope":{"estimate":1736718.9050722863,"lower_bound":1651671.621133631,"upper_bound":1826223.0865932778,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[115474250.0,271331125.0,363523792.0,457022417.0,664515291.0,688702167.0,855987208.0,911828167.0,1066335500.0,1171321916.0],"unit":"ns","throughput":[],"typical":{"estimate":29628806.138311688,"lower_bound":29019604.57091346,"upper_bound":30605182.725256294,"unit":"ns"},"mean":{"estimate":30153327.208442457,"lower_bound":29121307.90136607,"upper_bound":31382991.72645387,"unit":"ns"},"median":{"estimate":29451739.22777778,"lower_bound":28695923.625,"upper_bound":31759706.941666666,"unit":"ns"},"median_abs_dev":{"estimate":1282262.3704040414,"lower_bound":200569.27496418357,"upper_bound":2877814.571664826,"unit":"ns"},"slope":{"estimate":29628806.138311688,"lower_bound":29019604.57091346,"upper_bound":30605182.725256294,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[95358709.0,188094917.0,276502667.0,363790584.0,444271750.0,549582708.0,609320042.0,712530833.0,839051041.0,873359541.0],"unit":"ns","throughput":[],"typical":{"estimate":7473076.972943723,"lower_bound":7331756.154326846,"upper_bound":7660201.289910502,"unit":"ns"},"mean":{"estimate":7580406.326015212,"lower_bound":7444099.5998139875,"upper_bound":7719219.102380951,"unit":"ns"},"median":{"estimate":7606031.833333334,"lower_bound":7350096.176041666,"upper_bound":7768991.12037037,"unit":"ns"},"median_abs_dev":{"estimate":285651.2937068017,"lower_bound":70477.57246543933,"upper_bound":401806.7700915034,"unit":"ns"},"slope":{"estimate":7473076.972943723,"lower_bound":7331756.154326846,"upper_bound":7660201.289910502,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[92703791.0,182043167.0,281122125.0,353354041.0,476627958.0,557310833.0,639168208.0,738276500.0,788475166.0,859725750.0],"unit":"ns","throughput":[],"typical":{"estimate":44824027.14545455,"lower_bound":43780324.625,"upper_bound":46317471.69082125,"unit":"ns"},"mean":{"estimate":45557861.17305556,"lower_bound":44674609.75777778,"upper_bound":46388271.48083334,"unit":"ns"},"median":{"estimate":45898576.625,"lower_bound":44169255.125,"upper_bound":46602791.5,"unit":"ns"},"median_abs_dev":{"estimate":1111285.5283707362,"lower_bound":222603.61399799402,"upper_bound":2530228.630762797,"unit":"ns"},"slope":{"estimate":44824027.14545455,"lower_bound":43780324.625,"upper_bound":46317471.69082125,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_100_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[2111511167.0,1841440125.0,2560291750.0,2381896791.0,2277419625.0,2041403583.0,2026093209.0,1930882042.0,1883390208.0,1864092583.0],"unit":"ns","throughput":[],"typical":{"estimate":2091842108.3,"lower_bound":1959393287.5,"upper_bound":2242165233.1,"unit":"ns"},"mean":{"estimate":2091842108.3,"lower_bound":1959393287.5,"upper_bound":2242165233.1,"unit":"ns"},"median":{"estimate":2033748396.0,"lower_bound":1883390208.0,"upper_bound":2277419625.0,"unit":"ns"},"median_abs_dev":{"estimate":237226374.72968996,"lower_bound":45402925.13433695,"upper_bound":388328947.68368304,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_selective_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_selective_gt_100_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1922757000.0,2279840458.0,2150662625.0,2229580792.0,2208985000.0,2336464042.0,2601741708.0,2368519625.0,2010920042.0,2512332667.0],"unit":"ns","throughput":[],"typical":{"estimate":2262180395.9,"lower_bound":2141246013.9275,"upper_bound":2384100131.9049997,"unit":"ns"},"mean":{"estimate":2262180395.9,"lower_bound":2141246013.9275,"upper_bound":2384100131.9049997,"unit":"ns"},"median":{"estimate":2254710625.0,"lower_bound":2109952521.0,"upper_bound":2424398354.5,"unit":"ns"},"median_abs_dev":{"estimate":161497391.23284817,"lower_bound":52525150.08289218,"upper_bound":371697172.3135561,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_10_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[1820407250.0,3009618375.0,2454596375.0,3010202417.0,2283721292.0,4754456625.0,4016999875.0,962799667.0,4547285833.0,4709597500.0],"unit":"ns","throughput":[],"typical":{"estimate":3156968520.9,"lower_bound":2375757263.6025,"upper_bound":3915364707.5,"unit":"ns"},"mean":{"estimate":3156968520.9,"lower_bound":2375757263.6025,"upper_bound":3915364707.5,"unit":"ns"},"median":{"estimate":3009910396.0,"lower_bound":2137501812.5,"upper_bound":4547285833.0,"unit":"ns"},"median_abs_dev":{"estimate":1628334084.0037913,"lower_bound":186829774.15520847,"upper_bound":2279312782.4303093,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_highly_selective_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_highly_selective_gt_10_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[2807847583.0,3798393042.0,2388451208.0,3799219166.0,3711645583.0,4156906000.0,4565057250.0,3412567500.0,5064609291.0,2344069042.0],"unit":"ns","throughput":[],"typical":{"estimate":3604876566.5,"lower_bound":3081406063.59,"upper_bound":4131321937.4,"unit":"ns"},"mean":{"estimate":3604876566.5,"lower_bound":3081406063.59,"upper_bound":4131321937.4,"unit":"ns"},"median":{"estimate":3755019312.5,"lower_bound":2807847583.0,"upper_bound":4182138208.0,"unit":"ns"},"median_abs_dev":{"estimate":898399708.5627168,"lower_bound":65530701.635697484,"upper_bound":1646418529.3606281,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000000","iteration_count":[66,132,198,264,330,396,462,528,594,660],"measured_values":[79786875.0,147537084.0,221373542.0,315569417.0,410205334.0,431873167.0,537113584.0,591033166.0,698785458.0,795200250.0],"unit":"ns","throughput":[],"typical":{"estimate":1167755.0982683983,"lower_bound":1132217.7189620081,"upper_bound":1195508.742483894,"unit":"ns"},"mean":{"estimate":1163683.9262121213,"lower_bound":1134435.340909091,"upper_bound":1192944.4170202021,"unit":"ns"},"median":{"estimate":1169495.005050505,"lower_bound":1118048.191919192,"upper_bound":1204848.8636363635,"unit":"ns"},"median_abs_dev":{"estimate":66354.53962538058,"lower_bound":1496.5545715365954,"upper_bound":84955.3791758787,"unit":"ns"},"slope":{"estimate":1167755.0982683983,"lower_bound":1132217.7189620081,"upper_bound":1195508.742483894,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[128719584.0,230962208.0,329641000.0,453561625.0,563130125.0,704986417.0,801608875.0,903600666.0,1038219833.0,1225348167.0],"unit":"ns","throughput":[],"typical":{"estimate":29140850.80974026,"lower_bound":28378693.423144877,"upper_bound":29931902.453125,"unit":"ns"},"mean":{"estimate":29073835.037341267,"lower_bound":28353901.998313494,"upper_bound":29961249.32271329,"unit":"ns"},"median":{"estimate":28734164.09920635,"lower_bound":28237520.8125,"upper_bound":29751990.0875,"unit":"ns"},"median_abs_dev":{"estimate":796379.4179135247,"lower_bound":141658.95264130086,"upper_bound":2062199.4067573976,"unit":"ns"},"slope":{"estimate":29140850.80974026,"lower_bound":28378693.423144877,"upper_bound":29931902.453125,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_selective_gt_count/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_selective_gt_count_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[160411542.0,315877584.0,467738709.0,589828084.0,749899959.0,943382000.0,1038747041.0,1241360000.0,1394522250.0,1561269834.0],"unit":"ns","throughput":[],"typical":{"estimate":77051941.35714285,"lower_bound":75657608.97458544,"upper_bound":77874986.93681319,"unit":"ns"},"mean":{"estimate":77178345.88142857,"lower_bound":75858400.98952381,"upper_bound":78395702.45666666,"unit":"ns"},"median":{"estimate":77770725.75,"lower_bound":74989995.9,"upper_bound":78615166.66666667,"unit":"ns"},"median_abs_dev":{"estimate":1514558.2809612192,"lower_bound":354705.89091271383,"upper_bound":3681981.338291748,"unit":"ns"},"slope":{"estimate":77051941.35714285,"lower_bound":75657608.97458544,"upper_bound":77874986.93681319,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_highly_selective_gt_count/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_highly_selective_gt_count_10000000","iteration_count":[5,10,15,20,25,30,35,40,45,50],"measured_values":[96660458.0,207527750.0,297730625.0,408573333.0,500416708.0,594895791.0,678116083.0,823991709.0,881741042.0,993468250.0],"unit":"ns","throughput":[],"typical":{"estimate":19906367.575064935,"lower_bound":19642440.148337595,"upper_bound":20257100.48291443,"unit":"ns"},"mean":{"estimate":19964691.793468256,"lower_bound":19684818.395492066,"upper_bound":20258406.643410716,"unit":"ns"},"median":{"estimate":19859036.666666664,"lower_bound":19594245.377777778,"upper_bound":20428666.65,"unit":"ns"},"median_abs_dev":{"estimate":555295.0156548716,"lower_bound":30625.573456289225,"upper_bound":842519.2092782924,"unit":"ns"},"slope":{"estimate":19906367.575064935,"lower_bound":19642440.148337595,"upper_bound":20257100.48291443,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000000","ORE/ore_decrypt/range_gt_10/10000000","ORE/ore/range_gt_100/10000000","ORE/ore_decrypt/range_gt_100/10000000","ORE/ore/range_lt_10/10000000","ORE/ore_decrypt/range_lt_10/10000000","ORE/ore/range_lt_100/10000000","ORE/ore_decrypt/range_lt_100/10000000","ORE/ore/range_selective_gt_100/10000000","ORE/ore_decrypt/range_selective_gt_100/10000000","ORE/ore/range_highly_selective_gt_10/10000000","ORE/ore_decrypt/range_highly_selective_gt_10/10000000","ORE/ore/range_lt_hybrid_ordered_10/10000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000","ORE/ore/range_selective_gt_count/10000000","ORE/ore/range_highly_selective_gt_count/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} From 581c68639f8fb322176e9caa92f191565467f2d4 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Sat, 16 May 2026 21:26:55 +1000 Subject: [PATCH 28/30] bench(exact): sample real plaintext as search term MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EXACT bench was using hardcoded "Bob Johnson" which `fake::Name` doesn't generate, so every scenario at every tier returned zero rows. Timings (~400μs flat across 10k→10M) measured "hash-index lookup + LIMIT 1 early exit on miss" rather than realistic equality-query cost. Two hidden bugs were masked by the zero-row case: * SELECT shape was `SELECT value FROM ...` returning one column, but `EncryptedQuery::execute` expects `(i32, Json)` — sqlx would have panicked on decode if any row had been returned. Fixed to `SELECT id, value::jsonb FROM ...`. * `exact_decrypt` was typed as `Vec` but the underlying data is `Utf8Str` — `try_from(Plaintext::Utf8Str, _) → i32` would have panicked. Fixed to `Vec`. The fix uses a new `sample_plaintext_string` helper in `lib.rs` that selects + decrypts the first row of the target table at bench startup and uses that value as the search term. Robust to future changes in fake's name lists. Each tier's bench logs the sampled term it picked (e.g. `exact bench: using sampled search term 'Jorge Lesch' from string_encrypted_10000`). Post-fix headline numbers (no-decrypt / decrypt at 10k): eql_cast: 442μs / 26ms (decrypt = ~60x slower — that's the ZeroKMS per-record decrypt round-trip) eql_hash: ~similar The previous flat ~400μs across all tiers is now correctly visible as "that was index-miss cost, not real query cost". --- benches/exact.rs | 53 +++++++++--- report/BENCHMARK_REPORT.md | 2 +- report/exact.md | 96 ++++++++++----------- report/query_exact_eql_cast_chart.png | Bin 39225 -> 28602 bytes report/query_exact_eql_hash_chart.png | Bin 43050 -> 28385 bytes results/query/exact_metadata_10000.json | 32 +++---- results/query/exact_metadata_100000.json | 32 +++---- results/query/exact_metadata_1000000.json | 32 +++---- results/query/exact_metadata_10000000.json | 32 +++---- results/query/exact_rows_10000.json | 8 +- results/query/exact_rows_100000.json | 8 +- results/query/exact_rows_1000000.json | 8 +- results/query/exact_rows_10000000.json | 8 +- src/lib.rs | 42 +++++++++ 14 files changed, 214 insertions(+), 139 deletions(-) diff --git a/benches/exact.rs b/benches/exact.rs index 90f7f92..bf2d6da 100644 --- a/benches/exact.rs +++ b/benches/exact.rs @@ -6,16 +6,31 @@ use cipherstash_client::{ }; use criterion::{black_box, criterion_group, criterion_main, Criterion}; use dbbenches::{ - bench_assert, extract_indexes_used, init_scoped_cipher, write_metadata_file, EncryptedQuery, - EncryptedQueryBuilder, ScenarioMetadata, + bench_assert, extract_indexes_used, init_scoped_cipher, sample_plaintext_string, + write_metadata_file, EncryptedQuery, EncryptedQueryBuilder, ScenarioMetadata, }; use sqlx::postgres::PgPoolOptions; use std::sync::Arc; use tokio::runtime::Runtime; -static QUERY_TEMPLATES: &[(&str, &str, &str)] = &[ - ("SELECT value FROM {TABLE} WHERE value = $1 LIMIT 1", "Bob Johnson", "eql_cast"), - ("SELECT value FROM {TABLE} WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", "Bob Johnson", "eql_hash"), +// (sql_template, scenario_name). The search term is derived at runtime from +// a sample decrypt of the target table (see `sample_plaintext_string`) — the +// previous hardcoded "Bob Johnson" matched zero rows at every tier because +// `fake::Name` doesn't generate that exact combination. +// SELECT shape (`id, value::jsonb`) matches what `EncryptedQuery::execute` +// expects to decode: `Vec<(i32, Json)>`. The previous +// `SELECT value FROM ...` shape only worked because the search term +// matched zero rows — sqlx never tried to decode a row and the type +// mismatch went unnoticed. +static QUERY_TEMPLATES: &[(&str, &str)] = &[ + ( + "SELECT id, value::jsonb FROM {TABLE} WHERE value = $1 LIMIT 1", + "eql_cast", + ), + ( + "SELECT id, value::jsonb FROM {TABLE} WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", + "eql_hash", + ), ]; async fn build_query( @@ -68,11 +83,25 @@ fn criterion_benchmark(c: &mut Criterion) { (pool, cipher) }); + // Derive the search term from a real row in the table so the bench + // measures actual equality-query cost (index hit + 1-row return) rather + // than the previous "0 rows / LIMIT 1 early exit" path. + let search_term: String = rt.block_on(async { + sample_plaintext_string(&pool, Arc::clone(&cipher), &table_name) + .await + .expect("failed to sample plaintext from table — is it populated?") + }); + eprintln!( + "exact bench: using sampled search term `{}` from `{}`", + &search_term, &table_name + ); + let queries = rt.block_on(async { let mut queries = Vec::with_capacity(QUERY_TEMPLATES.len()); - for (query_template, x, _) in QUERY_TEMPLATES { + for (query_template, _) in QUERY_TEMPLATES { let query_str = query_template.replace("{TABLE}", &table_name); - let query = build_query(Arc::clone(&cipher), &query_str, *x, &table_name).await; + let query = + build_query(Arc::clone(&cipher), &query_str, &search_term, &table_name).await; queries.push(query); } queries @@ -87,7 +116,7 @@ fn criterion_benchmark(c: &mut Criterion) { let metadata = rt.block_on(async { let mut out = Vec::with_capacity(queries.len()); for (i, query) in queries.iter().enumerate() { - let (_, _, scenario) = QUERY_TEMPLATES[i]; + let (_, scenario) = QUERY_TEMPLATES[i]; let bench_id = format!("EXACT/exact/{}/{}", scenario, target_rows); let explain = query.explain(&pool).await.expect("EXPLAIN failed"); let indexes_used = extract_indexes_used(&explain); @@ -115,7 +144,7 @@ fn criterion_benchmark(c: &mut Criterion) { group.sample_size(10); for (i, query) in queries.into_iter().enumerate() { - let (_, _, scenario) = QUERY_TEMPLATES[i]; + let (_, scenario) = QUERY_TEMPLATES[i]; let exec_id = format!("EXACT/exact/{}/{}", scenario, target_rows); let decrypt_id = format!("EXACT/exact_decrypt/{}/{}", scenario, target_rows); @@ -129,7 +158,11 @@ fn criterion_benchmark(c: &mut Criterion) { let decrypt_id_inner = decrypt_id.clone(); group.bench_function(format!("exact_decrypt/{}/{}", scenario, target_rows), |b| { b.to_async(&rt).iter(|| async { - let _r: Vec = black_box(bench_assert( + // String_encrypted column holds Utf8Str — decrypt to Vec. + // Was previously typed as Vec which would have panicked on + // try_from(Plaintext::Utf8Str → i32), but never triggered + // because the bench search term matched zero rows. + let _r: Vec = black_box(bench_assert( query.execute_and_decrypt(&pool).await, &decrypt_id_inner, )); diff --git a/report/BENCHMARK_REPORT.md b/report/BENCHMARK_REPORT.md index 102a2d9..5570146 100644 --- a/report/BENCHMARK_REPORT.md +++ b/report/BENCHMARK_REPORT.md @@ -93,7 +93,7 @@ Per-query-type detail is broken out into separate pages — click into a scenari | Query Type | Scenarios | Tiers | Largest-tier median (no decrypt) | Detail | |-|-|-|-|-| | COMBO | `bloom_ore_order_limit`, `filtered_group_by`, `top_n_filtered_group_by` | 10,000, 100,000, 1,000,000, 10,000,000 | 98.05ms | [open](combo.md) | -| EXACT | `eql_cast`, `eql_hash` | 10,000, 100,000, 1,000,000, 10,000,000 | 415.12μs | [open](exact.md) | +| EXACT | `eql_cast`, `eql_hash` | 10,000, 100,000, 1,000,000, 10,000,000 | 454.21μs | [open](exact.md) | | GROUP_BY | `low_cardinality_groups_encrypted`, `low_cardinality_groups_plaintext`, `top_n_groups_encrypted`, `top_n_groups_plaintext` | 10,000, 100,000, 1,000,000, 10,000,000 | 864.52ms | [open](group_by.md) | | MATCH | `eql_bloom`, `eql_cast_firstname`, `eql_cast_lastname` | 10,000, 100,000, 1,000,000, 10,000,000 | 151.23ms | [open](match.md) | | ORE | `range_gt_10`, `range_gt_100`, `range_highly_selective_gt_10`, `range_highly_selective_gt_count`, `range_lt_10`, `range_lt_100`, `range_lt_hybrid_ordered_10`, `range_selective_gt_100`, `range_selective_gt_count` | 10,000, 100,000, 1,000,000, 10,000,000 | 573.45ms | [open](ore.md) | diff --git a/report/exact.md b/report/exact.md index b537919..121e681 100644 --- a/report/exact.md +++ b/report/exact.md @@ -41,10 +41,10 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 423.10μs | 450.34μs | -| 100,000 | 0 | 430.20μs | 418.60μs | -| 1,000,000 | 0 | 415.64μs | 546.78μs | -| 10,000,000 | 0 | 441.30μs | 422.38μs | +| 10,000 | 1 | 497.31μs | 25.63ms | +| 100,000 | 1 | 488.75μs | 25.52ms | +| 1,000,000 | 1 | 452.76μs | 25.55ms | +| 10,000,000 | 1 | 469.54μs | 25.63ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -68,26 +68,26 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1157, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_10000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '5488ee1b0cc520560b6cac5bcfc63439d219b24846747a3fed35772326388405'::text)", "Index Name": "string_encrypted_10000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1157, + "Plan Width": 36, "Relation Name": "string_encrypted_10000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } ], "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } } ] @@ -110,26 +110,26 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1159, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_100000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '78ef439942d7046b495cad3df8afc1555af6aff90d1d287a5dd3f18dadfa6ef7'::text)", "Index Name": "string_encrypted_100000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1159, + "Plan Width": 36, "Relation Name": "string_encrypted_100000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } ], "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } } ] @@ -152,26 +152,26 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1161, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_1000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '1246c1084a30cdf8fad11d1b43ea7efa0966d7b8afed182d8041b6138a0cd67f'::text)", "Index Name": "string_encrypted_1000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 5000, - "Plan Width": 1161, + "Plan Width": 36, "Relation Name": "string_encrypted_1000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 19855.5 + "Total Cost": 21105.5 } ], "Startup Cost": 0.0, - "Total Cost": 3.97 + "Total Cost": 4.22 } } ] @@ -194,26 +194,26 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1162, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_10000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '3ad65b2ad0d1cd146d576dffe73c17884b1c3d7004d17efc546d7d9d7a6e0677'::text)", "Index Name": "string_encrypted_10000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 8, - "Plan Width": 1162, + "Plan Width": 36, "Relation Name": "string_encrypted_10000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 36.14 + "Total Cost": 38.14 } ], "Startup Cost": 0.0, - "Total Cost": 4.52 + "Total Cost": 4.77 } } ] @@ -260,10 +260,10 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| -| 10,000 | 0 | 392.26μs | 399.87μs | -| 100,000 | 0 | 419.67μs | 407.23μs | -| 1,000,000 | 0 | 694.00μs | 423.82μs | -| 10,000,000 | 0 | 381.18μs | 402.59μs | +| 10,000 | 1 | 430.15μs | 25.40ms | +| 100,000 | 1 | 437.40μs | 25.68ms | +| 1,000,000 | 1 | 452.30μs | 25.50ms | +| 10,000,000 | 1 | 455.17μs | 25.72ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -287,26 +287,26 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1157, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_10000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '5488ee1b0cc520560b6cac5bcfc63439d219b24846747a3fed35772326388405'::text)", "Index Name": "string_encrypted_10000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1157, + "Plan Width": 36, "Relation Name": "string_encrypted_10000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } ], "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } } ] @@ -329,26 +329,26 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1159, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_100000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '78ef439942d7046b495cad3df8afc1555af6aff90d1d287a5dd3f18dadfa6ef7'::text)", "Index Name": "string_encrypted_100000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1159, + "Plan Width": 36, "Relation Name": "string_encrypted_100000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } ], "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } } ] @@ -371,26 +371,26 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1161, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_1000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '1246c1084a30cdf8fad11d1b43ea7efa0966d7b8afed182d8041b6138a0cd67f'::text)", "Index Name": "string_encrypted_1000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 5000, - "Plan Width": 1161, + "Plan Width": 36, "Relation Name": "string_encrypted_1000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 19855.5 + "Total Cost": 21105.5 } ], "Startup Cost": 0.0, - "Total Cost": 3.97 + "Total Cost": 4.22 } } ] @@ -413,26 +413,26 @@ Full `EXPLAIN (FORMAT JSON)`: "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1162, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_10000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '3ad65b2ad0d1cd146d576dffe73c17884b1c3d7004d17efc546d7d9d7a6e0677'::text)", "Index Name": "string_encrypted_10000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 8, - "Plan Width": 1162, + "Plan Width": 36, "Relation Name": "string_encrypted_10000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 36.14 + "Total Cost": 38.14 } ], "Startup Cost": 0.0, - "Total Cost": 4.52 + "Total Cost": 4.77 } } ] diff --git a/report/query_exact_eql_cast_chart.png b/report/query_exact_eql_cast_chart.png index c3afbfe4720374661fc4fee73b9f70f79ebc5637..ba4333f69e726c8f45e75f3831e25be7cfe1b43a 100644 GIT binary patch literal 28602 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 >I^g@3r^C?J z-BF;|i!c2Q2D7F;RiMO+Gt*X4=3{{u?ix27IQ4)8$c%vajK%g*5&RalY$FLOA?kk7 zicWMmT6>8-uW_{nCm9X&QH2X@qOh6-CBqLcc+E|86*!VOdD#@2O-d?>MR7-5F_Bob zFE(f(n1{??N$~s>-X?Bjj6T~)v2SP4bc#9~N5KD4mrRN%#iCc1JymOZ&-9z$BcXJbM9N_cDiAS^8k&hs>GCAFv0fdtM} zY`!#V%znn+d>zDASVd;C&o-|DhuaO>b8y1MiKj@PD>5c)9LQ2^Y`ix;obF(subS*ahOM?>;bABa!$-MOGrZR^%h( z*t=*K+da$gZMoPUVma-JtHE>*>C}H{o^E8o=5}^Cq+DAFXSj6@nApA=TEJooKEt^t?T4rvE=d- zSr~|T4Gdz>c7hhuG6UUd>sAI)iFwSyFXKf`UO)@pnuKo6H%F}5UynY}!3m|mfH5U! zG!Q2)M+g%OCbyfX!1Kx9KuNBJ_N;-CoWvG`=T17^XmMr3_KrVDE2)dU$~V@GiQ>8^P#<7SEC(@NhqY?4W zG2HwuAm8(KAs_XBi%U!8ErG;rxEfv7=+tAP?2724EL^ckg1_kEbhl@ADa+l4At zm+;s$IX3h+Te_W&UmkmlLBlqSnKW1rfdQ9^b3?X?&L!Sxr7CM&i%?>34(0T;kWdlH zh_nCQx)Rqt`#6TSWZ#LmGJGs`JDdGv+vs&)`r4{qDQ4e_;4pXLk349M>hT;hB=_!`?4 zp?9g5?MT<5v~BwE`o(XNW+ z4`nm6k9}(}NESy@vsSWjJv;7Gxwn?Q;`Tcw?suo)wNvYNR8~xux=F9L_*h@Om3v2o zNwUTF1iK!qXf39OhV$>`#1(!{`#oMrAH)h4oT|LlIj%2X;+}>Xcha9})n{7pV_M9F zy)8drzi+fN$I~%?y~B}=?AH_6bXq;7mcw+J5r;!QY%<+hUU<#EsmpK-y?4|%QX?nh z{9#4&I%i&F==r@XDH2Nrp5NS^&9_qT-M_j#28RFSLJOKuy%gKviK;8K+nK}*XjTya z?KL|$HOXK2VB@&|e4x+;sd;%%^8BUNn8`niM0Ily=2{FQE_Yp6mbPD@Sa}==&3))KcEnP!)A8?s&+Hc<4t_Pv-pmRWSZ5n2yo$I&EfMfK` zk@%=06wN_#pex5keQd7YY|-|aIA-;4^uQ_ke5i4m9Nn{m+A*kF4k>QR3HmyAWbGrn z&iU5p#UQCbZKsZAl_%Pg78UhiWK%3o=bCwNcO=P~bWGAV**l)wOwoNs-n!E>@Y|j+ z|E>L0v3nS;aGzaZm{aO6MYr_zb@rQ&HRSuNa*P~=ru2{No@U+Z?8qO}E$z(mgAgh4 zgWNQDBq~DLWe)yc_OzpR&dpi+O=8@zG@o@xoYi$L#Z=QPQLuVD@~sY$3Daw{%|4&r zBY}_Z=aV=c=df$Spsu|#=``ludo88z~eo~c0GIckKKwPTz&^374 z;!jwn@342sx8gxq=TYNWSd)l_EnP*qd;wt5t}3c|etTPid^geO%4XA!2|Hsx zmv~c;?fpr{E!S0-bAzV*h==a&Aw*-Tl2aTt1$i5SqVzJ#2X6r=aJET-VY9UKRTCD) z^{zA26$g}G+K;`^*Ce7E#RPUwF6C2}KF7jNcrI~ee5uKPR!7I84g@~_Z=8$+e9eVj zi5Gv&-5g9TpFW4Nf%f_Lx(F-c`)FEPt~lU>h=BTj*hxWch4^iMyR0nk>K3h5d~ky7%0R?=)nu<%Ed31qRz8 z<;<_T!EtOSaVe50OLN_haJDObxh)l;Mn)#}?_7Nl?d&lJM@_k{2ihgnV@Dzep)hP@ zMB{Xd6Cv`U${y>{sd9WX*&a1wm(YSKlJK2ca^lMG zXy-C<|5&77DUMz~7b&gCLSXiyJ*v@lq9nGYCjiDhfq^qz+_J#rAvIMibgdTbdqfm=4f8^(ejGB8K10)WQf44r3q z#S3C@Et`jlRjqs;^-Ig2Kbj-pQ8S7m15_ef%|9o~N-Th~HfVgQL*|s5!=+y@b+rAm z4k|SB{Fzc1#=WWv6fxs?%aAjm3Y$5-rj)iY>@JjR+T?Q#j}(>k*~@4eU*1SxtDZVQ275y82|I+(ue!4ZWP~{Gs5v}6w3a6)_aTg9R2oR2-r;! literal 39225 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 diff --git a/report/query_exact_eql_hash_chart.png b/report/query_exact_eql_hash_chart.png index 3d07d08538de489a92e044f5f6b41f96bdf6bd19..656e7cd749dd74c5b5674fca81f89d0f91708f18 100644 GIT binary patch literal 28385 zcmeFZXH=8v+BO_@?1Ky=0Yw4Js1TY+0HrDzmEIDNt{`Bj(gh@7K@G7_?9|@32fSiCQ+yu$pPUEgriX!xt%vt*Hyec3ZI647E*_3} zs}o)}Zti#&XDM;X^WqmpPu%tJxaTe>A>s7jSBSf~*-5-J^=t!o*?;ebu{#36c^m$3 zN2W3vk3cwUsa?H-z5ix5ufym6q0|3KRwcg-!`y+Klq~H^~C?TzXs}$zj4<_2@8LA)(|cDs2~{E zuC$)LIOpoeVv>)wbPTxEvDF);?|w;P2^>O*{(7R1c&qUIWvb&(-7c}6f#;oii;L%* zL}J7(JvuOS?;(HLK0>?vY_(fN-DtEa%7628go0b?IG?1|N3%vn>xLH|>(gaqbMFD^ zrP(26vFcy%DYz^{{9HY+j;TwHXC=57z1(%g_8^Yxw+nG=a32v7D2II4KD4#DGG%u} z+8!%6mH(m1X`$hmOUBUVav5>u^hH)z9znXVmZY5+?_4!q%7`AiKN9ACT=j_|*Nf?b zMgeBH{LGEh*TXempVQH%lXY|~{g-gQKU0Hgde`}*#OpTZ*Y1PyYYF99D3(TC-VN?y zYGNHGZ7VM>lAW)@oE6C_)|Xr9cc*_om;7d+ZlO({-YPrvX1UiPPxNlDU9x{+pwQJb zU0p_&=1kYx+1hp5*8*!hQvn=~*W&(d`wpw+JQ=|UzpnIx&(*9b-XL@5)63#dr$RF% zts64Nll;VMHd&L5%A3pULtC}|N)~?8C5r)DD*?n6PQ}G9=v!|Q$-5DOYbPRiBE~eH z$k$VR-QC{rKbNsSTc@nJwXwipXKIGjD#e(48T+mbcx#kZf%_HR%DiABk``^@%Un#} z+8`IR>{ow%$0swB=EevG&|ZO<{sm*L8rtHm>wlWohfnR`MH6ocuL_6L(| z{F0~9|JS#74DNMYdni%7c6E5M+th{FonuM{gQsBb%Op~~X9q_~M&PMv zKS8C9Umq6PD?@f85i8aeqtVUO@l(G$G74=f{I91RS@#`{GAisjg7h)3^3rM+uW~d2 zqeORYx8h?O+a*TLRE#H0tqsS1EKvBF@_1tECIVr@jX;dOGtg1QJy@Q%IVU+?w>W`JvY6SU4NfP+qT5MM`dN}JO6Iu(i$%<^7}EF?0##K zR)XQp0QQo|fKs?BE^mCQs9oHAu*_x1M_}^PtJBTXeqfZM!f#WE(Ws3@x(+cS0gcy> z%FDao_h6y*pp#ANDHvt50#hof?y?ALq#XOv#OdSoF-Q;dl{#pCmt80?xtM~wYgOB`cX zPpk+mW4o}=TkP2YyJms=-yUZ7o}mVZB;6l=&Y+U`(rZ=*e~N(3tsl2e^z2p(6)U|t(O=;%LzE&}UK7mE%<$cqYosf0t+i*{ zqs+kc5|f|XL>r%-E^HQOaJNa+uAY*&=*Y@O>4kNH(ao+i?kjaF5>8iUFB+7JQ!Du< z?RF#h4ySS>&RbfUm@+6%7_OJt--+)Z?iGjyOEq`#*9XoRQvzK}mgqIzi(6ADsJ+`P zR@OpV#iVc<%pC|)@rtU8CGpVdAy#r0#$0A-84&-xc&4}q{AO$LueD@^YXprBy|^~* z`upauVCBfC`T^`oON}yPx6fzjp%S&RT8Rhu3O=|egFMgakW*qPV^Q(1)7)SP5t@y~@fr!fkTlz^1+s1 zyLpAL)}^cr`sFPWBp*CGaZ+F*FMusl74U&WHu4~mFXZ{*bGA4|BqlGtVo3sJI?XLJ z;6X=~i3tSn!-lX+Rj^UWU6emK#ug3`PdyP`ei)L>W-W>fiy&D~iM_LRHDgyHAs+DfZkhHBk8h^VUGTe!3i@7VLVRVqdYs=Ot<>#j!# z2upyRcC}*N=0ic@cRGcfWRm-e{f4iW7h_|9{TmZxCK>>;T#+dwOH_&VGo69tAGa|> zHts=ma)34TG9lI%S>xAaIQ0>^cIxW$15_{{=MpBms(lt{PNy87;SFs>?8ne&M0RGE z^O=5iENZ1O$;lR#;wlmRUSCg2pGD?fJz_);z2&TpvT(}18HYvtF8+*+2{CHUqPkJ0 zxWDW}x`14h?JMkiwcexVrwC3jJG6-!TYBW(9nGpx)5Vq$b#m-HFI~P_oBgK8bqB)p zy3lUKk5ej-3R}}-Or0wn4=@tF2jisY4|Qn#e1A|vl=m-;)YRNaqtUvLGl-$tdY-@W zIONrMbzhWUHl1qZo=ih!rS(__DEhOPdhmTtWm+X-RJXKo1Fh_`LEq6C@9AD?hc@$$ zs@YmoIeu|cA|~bV4y|Wn-&BJSiRJ961o6N?^|01NXqsL3e6xh52^&|+qGaFq?n@29m(=%)D*Ch^3fUPVB;2Us?^__{P9|+O(pK6>eD;8 z8wG6lcEuQ&D6@^d%%A8lScCMSZR%Kn@trDYEL^`X;B%+@FTzrnkq(H+8p#2hK89x& zH`izFMuu)Z<|v##bn#mt?U$JEeavjmeJ4Fd?y#|A@%uVLT3b$Mzv$r!n;mi2e-nLE z&+M~g_jQcfA~gj6Tyj8?N)D0poQUjm04XI5tm4eqS+h~oG2HaoChd3fli5XuSyZGs zh;*vLY~xnVqSlq^i`Q!xM!f_Yn5Gl5`+8gFuKM{2#GZ2x`}aL{3(n~ zo5l9?h3@Ov!zu7)5F~)?9z9K;7kzK8))6x=i1fLLIG9#O4&t>``7&2 zjM)xOs-uvRUiCPRKXhLyVIg6t^Lyrwz_kv?S^*Bkd0s9wzw1XX;)=DpIl4q#1Qnfj ziu$$Z9Ll!s;>e5a10=@}%tHEBQwY<(ZevtJWA^$t{nE;_)UdRZUYgUPA|04pJpOTM zRwB9YdAf|a?(lo}yK>C4UtAlNsM~Psju6SMECSV@8%UWkP!lOXGa2OYhF} zH>Z8~%QDOxdtO5df@3Yt_71$-JP)!4u_j%&AyU zCQJe~JM7soTQyav;X4**$7jwdiMaVPlH0!b8vwf3m__YM&7>-%;!>vp{!7Z0CAqVR zTkq2K{~ZQj8wYT%Bg)7kZeZ+eu5VeliNmFM#N`qIClNg7VN{5ZDNS=le&kf%xR=|9 z%p>eW=<@R=?gAkCrM%)lV0vJutiMZlwlQ-uuTC50z%ysgEGZrbmjs?Y)BBrdJX&~Z zqDw^D!O&B&b0@Dl=0sPO_bf{QRvVXJF9XObD+W*xF4yv#3MKO;N+1>hos0&Hr6mx^ zNzMb6t&%>!y{+I*5nr=7@XgGm`{VP&MUPUf_83I%7LP<}GeR#@g`emfkTgGA1nVAv zSJtj>Ul~_XqNQ&EKkVfhfXKl=Kb#*X)b0g8g!wm30sQ@X@TlY||G6OvdMBPf;di5x zhMXjT?An=YUR9y(mnAl*0HC|}uIQVma=`rHLA0(=^!@|n5ya)w2Qs#kCGD6C3FEu0 zUK4FDSpq(8Z7@bmh+Ch9Z_=SSC6o&1nF&407glCR4jx;>`!2PX(Okw=G z*GW5e?fEfZ?fcJXnOp9g%@C+rKai2>nU!1OWnXhI7;W|OStKtA(Fg?kZ}s?BmJeR} zu1s1Esiy7+l?=cY9TH(18=?J41|V93A$j}as1&UwPRd|X#>qg{eZ{FPW3;F%o($87BxZN8ppJt}xt_hyObt7F@r&|o=JLG48=n>~X6NZclN5V~Z<42{t)f43;{^mg&P%oa1dOlHUTx3gndgGtZ+TSQxoqTA(f4q2*=1-sS z_sz)ZF%~mlX}nFG)RCY6Qp|qpK;}*MK~0y>RpLtq2k5nZPElG9k10Dl%54Vv(@oes z8mir9!io=8l$)p5 zSm_f*3s)(T=rwB-%?$V4jxxK-A8(|nivF{ozjG4JWrr^2ba;0Zw*?L|X4{pPZO^er9YzpuBA$T^b&vy999JA~ke~gR;fl}OLWlk4QaEi3JKk=NlwC=PO zx;Rmnq|>gjd_yL;+}v|+4JR()_h2NpVO{3_5|ZYkqae<{=;Ov@8Cl#H_tSLrp2}Nk z8+<&%`SqOiZm|hJFawCU8<(u|2J~Z`2WS-^a@7xd|9n|{WDU>9UNRajU2|^v=`qJ3 zlOIPYo-Db`xL|&-SB;sW%BktpSE7-XS7pH(9b6~LZxIaSMt?n~H92I*`7X`8R-9>; zP||r^di?KY`Hjp@fN(`$$~i_@k|t*fCvr+QpLPk1gc(`JiSzr~_Ktr!O?$2y5TnFy z4`$9Uw705IM%wvIocoUSi2KdP9Fkj>r8xCXEPV;-dC)1^d6Tw17fr4Z}#Vo z7hCqaM%2)_&Lu`Gt|W`sp3sUvU%OZl+P2mziBB;1(lFX!MR#WVEOc_i$cRYc3LP7^ zBy1YXje7GEwf49~iJAI6W~_^99g!6u@R#d&| zg-AnlF~!Yq{>`8F8$Z2fAzE$3wF74bH&nIgolrpnN!Zm}FJxnI*I%&*z@>{Qzj?Zbc#_3z? z8i&kC9z)3iEVarpPF}J`UX`$E?Y;G7%7Ds28~TA}s-sV;?kDQor&IX`tm%A_qIF0U zgsw0Xf(XHzV?SssD8~ywc$u!=cP={n=2uo|k5sDaCHQcs?yOBS4XThqduqhpN~R zP&eLrRu zY?!mgvLvz;8|JL*+6kL(MNJ}E*Zj>1mgbe7It%vCcW4l^oY$_in)8)2td|F*qRu9C`SZ1`feqb6<*FwE4s!CBtZ%AeoI z#`cyn4NYUjljq&<;>`KwJ=+Ktgb^{yxYgDq8EdF%oOPtQ>*Lb|r&j}nShS?#*2fWM znv{-~-Esf>m7BTi70!yjk>LT%QKK8Z$Qar)zSf6QCNdfy$4<9?*Z}JXi_q1BeJ&?Z^|k`YsJOdpCYL%u|NG<{JLv}m{h~ltU|S% zEq1c+sK)fJCAwD)oEjVr>rHpq`U7#)gv?X-GKS;d+GVdoZD2g*5)D-a>4RosrTM0YBeaE zQ7jT+)FbE9Qd#|)33Af>CG7(E2us0O#TnXAQetVpS1|e(^C5#Z?LBaMz?IH{ubU2d zwJbmUQ}ks5`nHN8M#jH)(W5_Z{7&DJrTwkSl`ZFHUlU9ePVytw!-pJ1Q}fG>(dP3q zU@=2w>DRKv;(AM+<7(HOReZ;mBIpHvhtxGh2Nj8NB5ex=&%Q7#t7bIzP8X_rm3*{1 zyk6Jus`Ge%2H<%EcWYp8u#exs33oSoQ9)UCEyZC)fa0(+!^|_WntrYR@JPIk@^w*2r*wCnp-kJabojMLh3IrF2z)5&}Cq|TQpdzN`jn@eP@ zC-c9Wwl0|Ar|-%7{f4=mcqA=5&V6e}F8IW+JnzATLkuT!wmxbnWtqQeg)__LOi*lb zIU??&tJMUcVdDWOF!3ezd&XmFEP}7Pi=q-PJ9#t<;-F^9!@c z9(FZbAt%eRsv;-r*G89#(dUKnnp~4cimjH;L%9@X!Ilpzxp7EB_dTD*zv5T5)DPEc z;~lFW?24?|eW`1(wzA!_YZ-k;Mfldc!&{l-e$>_`rxGXIlSEElZHkMUI=!-IbMvH~3Z+3D{xgr}|5?MAqYsb5FH;ia;!mW{q zWPV@Zn~G|&?z)Yev^T-a#-OShsDtBn=5em=_<;w4p%*53iZ>tZjI8)gNNP+GoBGay zhx`V6qsUhJ{cI5<;M3}wvbfE7+eMf9_6yC!f1(-e!pUY)5%VF(L+c5_(+)Pj;~XtV z3C%A?$pykS-Y)hx(&GG!95>efP?tWt8H$}2iuP}F|3m-viR(hDyMDK!`YY%8cY4%G zZ#2$N${JL9ja0al4MYhqnVjijS7iSEmU=&7va&D$`=e%N{NCN9ZsdwA=Xdjx2n@p$ znOx_1@8;ZE=*g4P8z;7oFE@ty#x!F`l2yxpKGx^wJf5K695hyBf(cYn6yin2?2l<4 zkT6V@$s3$!lv3=IaS|>TG|`gvu@bcF_Z`Aw1#Y!FnvQ?Sn0Ru9>R@MdgQGQLZp0vX zdD`7iDHUt2Z@Pt{Hl%8*PV*YPRzDj5WJ++d_jlb1lmg{W!c-_mG3WyNcbhDc%mDWT z*<;+KE>>j|_1A>GIqthT$Kx7Q4|2@OQRO{Jy6d92_!agZp}EA=Qk5v5-*v~f*6ba8 zI2r~5cSVi{l#A4?b$lweOTdGdNm?W&hjzmosznv_P0!Un&Wnu zbG)y*l;kETZ$TP-h}v?^eT?sMRN{ z98K|Mui4fszqf8AVR(%Hk`^IQA}&*NeNzzVv!f)wnEk!AJ|e_~(zx}J6~QE0T2?e? zRN&e&;Fri-RU>U^d{bw!Zg4ooX0n@d^&;b<*19k;j$UYakn$1`*GVQN_HpV~P1bh@ zQA9(h$tmXPKjY^|bnp{D)F=k)K{SHjY$A{4gSq}f-mOdd!uIq_#Aqkp7cU#0^JYHZ z_a-Ejo^6c3wje3&IXe?^CU8Pq+S$C7aN70VvuLN|MwvEH9+8`ld`%D7Tu5F7yfYC` z-{iIbQV!LLgRZAq@X-d(1aI3;cIOxj)%qK3ZL$qQdDa@Ps!&LGll>-2FG+xEV2KK) zxgezBCuek`u6;|aB*kxK=AdR>{+=b2MESQz#bfafq~+;8JD2x|w+|BybvoyXdh51DPLola=_ZE=g6 zTsszZFx7W?Dvsx3?vdSy%c`l$f(R|)NU9LugP`(L`o?AbZW@reEV^Y68Be<;pRq@J zVxx680F*~)T@8KO|7{X5>RN#3AyhOtZA%@-L@iQVZ2X*?_Fw z>TDySakD?5pD*!HD0_B!!69~Vst=uIS~hR=!v00x!IY$r6=?CGKA|lw#N88bGlra{o)pt>C)uy@Q1&_xHn{Lx~s5-_3@kEWRPMR5;z$()C* zXC+|$>3}3lU@c9`HaeZtNqWO$asPX^VAr>IkF#*XkfTC7_m_93ss?v{RnF(i^#seH zBjDDKiBNapKzHHGs^_!zv%>@#8slw=MK7JS85)nNks%MJGSkD=fx_$U3rO>Ez8gWZ zLl30Zk0K4C@B@{eURgqe-x@a02LJu{-)9$05dVEMUE0;nhP;_oQ*^PgAK;iB49|1{ zmIrO$nd#`$7|w67t>O3mEd@ zWP({gTQ&z?Lg>o!t^9?7Kk=Q}CXo;ohauSnn7{x03Wni7qw)XMVmRm}lU4ypBq|;%%JgbvrR@n;0@0q%-O^-%??>l`U7WUxDiC)wmSI7*XcQMJ> za|bB?qchMBVO-w{!dsF|@7;9t?e|YS20VL+P_lQbWRe&%viWP`2!_d_~{g*eIGf^*M6Z@R${<5&L&#TpS7q41X-(^u*2Zez-wm0I6##b z(SY3|q1!TmUHtxl$ereEVSG^_*+l`(1nb-jkVhR*RG z2)ecX+ZWa0-r*=_rf9wS#6~oeJ*va@g&)0*-O;V!>WDR z#*f8)ciqk34zxS?9vN%>blFgQeO7uPs^N@*p6JdH(!zQhJ%wQB6&4*@SO>FHcJC#h9Jo zU-WN9@n42k0eg;rkc!QCc%9!9Te&_{MW^d1CxV!3kdvA9bj~bwrBh<vXv1e8?SX^?Um?KUyyr8AcM;hnTZB29coqv*i0lPK`u*SlhXpU6C7V;lKLrED`A z1p^eI%E_<>nzf~CI;fixsm)N(BfZ5a-w6tt)=4p-15432)C2gp7E2-)Lry06_TG7|)wEk5$lNx)R-s~r zg9akG4b64*2H8@0oe0{|g+K3Qk8%I{B)(N=~6l9&EQu|UW& z0MqK={sul;^e26#O>Q!~7+8m*_vrkCG{-rWR&PO@jDt%gya+7}zRxhq&!u|q8VvXP zaQ1*mYFH^wCBw*F3?NU>*hM&~H@~P-{s?OwG1LPnjSePGrfvifxrmhgS*}7jv_p3` z4D;FFeK4UQes9bOfWHNv&AgV{33CXB*E}*8_?#A@NO_Qil5!twS>qQ3*C4cX!&E4$ zhc5jE3?W*0=+lv(%2$O<%5(%oRDox+z)gS<{AwAXc8`%T+3w9}@Qrupw=Uzb$c#nfm_=5EJ@_Xn)BiG^!IBX~Cn0~+s zWCqc5QP$)%@IT-z{9Rx=Wn{wl+@;xbtAop(iFL{M-tUic9{ER%>a-UEO0-VbkK6Dn z-348HFe161KfvEo#=_d*T&1+BQr4(rfgM;R5)_^X;jffjf55cuXB%MVosu zJlZaeZ+ijRz@${;#ImP3j$b_QRMKUL2Oh5MHUs$fe1xzt_ko}Z$BS-1 zK6$K-#*nuScw6ihM%NOL@ts$l74GBQRY$raUdtmaWqGtnHf9h2r~35H@W&9^W`zQM;z}i8POaL-ApOmfU#9)n|eRqqdCSqJakoDaUR0Mdf!Wes5xrloZWHbNP z5dVxKT0EGmUwpS$@Xik0Pk`A?04AUTgH?je*ISP}3vHSwX86E|4BXuU_I@5Flm~jJ zK0B9)u?*RpD|I?~b(_Adu>=>|_C$WY9Sp?5=`u?Y>k^t2&-xm22r5-~H^PazJb>4A zuLXGLjiH6ls0YYVxQf=7CshjpxdOa1eQx}x;czVJ3gcqZBz^nGGC=mGfFxfL1~+No zSpjw2b+Z8pKELaam$YOD&>%?o7%OK{H528etD>AragGf~${Iu)1j9y;txqB{b^a?4 zzso+mC`<6PR82oXw3-;ymY5Mr7GXa;HcB4} zt+bxNxZ@85e%w?2j>jlxB*sS1AX7Z#S1zTRCy+J#Uln5{`c>Urmi#7PT~nNt9SI;Q zMSizWC-DG4YR*)F8QCkJy96NJBHGJ6xOW#cY`4&ZmBC%Dwc!G$@+Q&pifFL0faNJ#hH>XLZ5?E)2g~jt zRA|BA?h95KaQ_WN23Y}5nmSA^(AO)Hm;}8OOTs1>Blx6I>&JMg3qEmRM|A(CK$?^G zNR;zz3VAwamkr`GG?->zum|SFPo#ESF))OZkGWL4CauT=lk}8Uruvgx;8tIbaPOiB z{kRJ9wuOl1(mT4NJd_3Lu!Ex`ZM_YW0A@F3Zh7GNJw< z$p3-6J)0~fU&4CWpELMc%9k4|lrN=DeN%S78O$BcV`6LhwDgYyrob138>-pX&-4fq zFkI(e+XZGRup#%WDhid6B5c31VCP3*5y2DWe!bmAU+S?;-kjaq%=4%;&$tiJffh`( zd`b`Qd*PJ8$G-VedNG7Iv%TFbj5N#d-Xdw7zM#1L^|XT{a=G8VJ-ZGY8IL*P`F6+N zmX&Yddc@uM_%1ZZdb8!`-$}q8R}9?a89AlBsGPzk6cZpEZ5?H{hZj)+T$;iRJ$}ON zQH8n9z2|45Z+v*l(d=Y)un^SqMC%Ae8R^fu)Vq&4WIieB!nEiMVm}=kcwpY^J;o1i zAo|v}4VA&Gyrwj;K4!#dFSj(xtr&}k;Mk2xvTo1?{wUZxkGn0T$Dq&AsTW&wkY zK42M&JY@&(TQjq%EZu=$BBh}{f0W(r=U?##WzZtn)1(H0eS-iGFu|A9(vpLcC}N`F z7uQe*hq&*B>A9E~nq*mB9Q(z3LAAJJ;pel)`<8(DJ4zgIMdSMINs9DliMlr=%{cwa z4d63W2i4JM@h9DYKyyrJ_^Lb!ypm2lnf~BAF21^kfIx;3KE}eA(m%hi0A)D&akg%ADUbeS|6%p4mmtZ!p*6CBLk|x& zcKgoP`$}?w%h}EP{&=EyVfIN>3@k=V_J^c6YSU?6ATk$&s1}tAOy=#-Y;DBaaQ}1U z*=4bYKc(ud6acAW3s6l_VG8x`$7fu|lWD*pd~xY#$LVPRLzy6pikK?{EaCwS{^T<; zW*2~uNUqOP@+%9tp$lC<)(^`J-XG}%oamH~97xhL)eCKIBNZ?SkH>;=$sBP8^-DIN zm_Qk*Co{m~NFH_dD=F^dZH!Wz2vx=iq_VQv`i{Itt)V^h9oGe;awQDQAQHecY+_m) z&I7BxXuiX})K2K#Uk3SR5g2aC0Bwi?@=+TPzP7k`s0|q3x7E*ueN|@zByci%dF7(r zJ@weyeV5V>P=yE)fv4X`4$mhOSi)IvP)!el9LeCNc6 zNq64>eF}ASuoRO3Bbrb9Wd~v-9{9YC@6Cg%kR(4-ej3tMOi-9+FRxnn_QImnWC!lG z?iukJLm_V1Nbr^C3WJ)J8;^Sh(x3ti#R(He9snql4oXy?KUfUOQV+1WZNKA;fq7rO zbQWMvi9AW zy~k3`UANj+nZ67#%kt6=wtG&1L2PL)4S1mBFOQ!vD@%~Gw&h!~?xI(n3JEztm2UGB zEphI6kh?zFUF%u7mB~R}+JpJRjg;vyLcJ&NQ#tiA)SAF@SJ1&Lw*2%XI%Sl0%I!!d}H3Spv4( zJMFyCZR@xJa*0ka0ON%=^(z+}EFKK*Tj4Vk!fl+`46=G zhcP%TRun_j*IY9JW^jWt=YhgoDAFkAF1NuVYh^ZBOE19)HlHwO>%XDi$Nqu5Dw0?2 zhChLX6pN$18FnY`TqIRYPYwHqwE{{tn|H>V_$(p5n(Jq9Pdq@Y2jlq4QKXek4k(cD z03^0k)6+swy?-rD_j#8d{Dkqu>V@)%6|z4TP;(nS_Am8{v@6CB&ZjHn zrdb_53I z%db%(zs^!aPh~t8>BQ`so>&FlQBmf%#aS2NW;2F-6;CHOc?J{I4HSsj0j1S%k42A% zGTo8M%6y&yz%o6W`_d?`ylEg)FP#>!wLUZ@=~@Dto+PT=EU;lgr^7Fv3gefTfvr`H z;)d8lUL#5<^99$Q`q*@3!zUUYoFd)VUvm2=kC8x}1_qpcTc!PO&DrWXX_*-zNrQ8~ z)}mZI*Bmyn%U_=6YCGP}b=v{s}(dIT1@$tNvAnb4Y1+}?Xzj14|#TeVhx%s~V zJxza{qeffxn&8r&jeb$()Pk*DhOgWK9Y_YefL(6;F~zV`Q*fkqX!b|!83K6|&y?Y6 zxSIJVy+6&K322c7u@j+V{T~YLHtslp^NKpfJn&vM;a`q*i zx)|br?FbrV9GXR+Ygf$?ovBGM=WXFS#~)7szxl4hv$I@oxU;zvyk-0LpB4%wje=&T z)^1Eb+T-UJN0z06Qn&^-0mp5$7COQ=9eWD$-@%?b8F8<(}_ zLKFepz8pjDXdY7lRWkiiCb*fT1Uf#&@@tkh1}Si*jB))eS|$xi;qi(|JgD#zS{6j=(Bswadr?}HoUM31gL$Xq#d zhqsHyuz#%FmlKWDF;WXZxjd&!dTcpbM>hLEF86>e_<#eF1A)6QM*4z2FoPo7RvPSS z(nZZ&|A{{5ZVEpRngFpYB%x@aBN1{j)PC{Yv)&*n*vf8tFVz6-cdqJL|0AjieMM<~ zs%Q~(e~_ZZOrr+{FS-3V?ot3r*)JF2R;Ku`FXJ0t93?grK;RKQcm#d-i{lk6clrbH zcsv*jjiCn%T99NZodMG38|#bG63d`EoAMdv8Tkn$0Z4$+VD>_`p?M@X_oXz+eSdP8 zc34N@70;cn8DS(+A8Km@;jn_bf!_!)V6j@ME(NvGm=c30x_LFrCd@+EX}C1Skg5Uf zA-*Y6nAn^Q__t27PBLgQ4D8%StCjJR(hxE&hU|s^eGBJ6HlaEAkAMliil-aj{hxDi{vd44-Zpg}CY_Gwty@xbI#VhX`?#6M~ z0U>jlVp&IE0%(dVQ+S^`Jj-<>Oi)>Ao!wKn=?Psr_#gvK0}&R0XGKa~dasbFhKspL z384D5OYH$)KibgLsl=lfPbLEVBYQ9tbg~E~ZGq^a3FJo&P=Mb^aIVDr0$|iMJqgyJ zjzeyRtv#KjHPKt*&ln+v9zDQp6PxGCJf z%4?d|B$D?A5+t2BE4H~Q^k2$^WZDag``}q%-6|1%AD;OL6*6Q!F$m_`ta1a?U`;4; zNGjG?GRg&TEXJ9KyR=+G@%EU2)enL+K8NgAo1jaN3{)cpK>FT>^3j`d*K0SqA8P)F z#=uqySWEI4!ZuRlz!ET7!~*L^+ey%K`cCu+t6qZeN-^MxI_yZRU|Rt8lR>a%$Jr&t z1(``YI8JnKZ4vrG%Zc$XZfhYHc#fCv}9{gK2JipI@1M#Nm8u44yyPG~u0Q!bJN1|`bsIL7 z5NLYpRUoZIT@^xBL_*$*zb75B#^#seoHlJ zLZ@Llte@jF(rWzWm=}mnmnq6FZ)lv>V}#4LhD9+Qt@7l~>aPAW({excU?r*(a69Tl^--m3H+!l0Ki7hkateUSDY^4Yg)P8JbWQSFG+KyR@XaoSuff)77Mh z5^f^>&={N%+L}|(7^Ka;t**&jccYN>4M@#q7qGyRj0g2q7;KpE0O2vJ&lwcFiPMDo z^LXvE+HYcO!Gg)AWoPfJLTO(S_50nr(&m}%RI|cSenzy#NvrOmpUwOh|SgqEEgR@@NOLksVK=H7trBK z5m#LM@tO&?sv01-%)FFY*TVp{0|}VoSNAb`x4ES%(}o=^U}vH6Zd}Xp&`o_nXpK7d zMLO-YtQIu*t$B}{yWCk2S3W(e+sAI&Ly(Lrv>M7H-AVeVqvI*{QjoYmdu%H=Usl$S zEk(50+L~}GIio^>07)xZsis&T^>NnqOeHY$<9cd!#cu!tP|J&0oe#7YJA*M;eZ#`pj(*5m&a9xq=ZQLCkiEKB6?`$6 zA=1x;C4gvbYI4TT0v)piAby6(aui3zu+PX^`a7S+(vWe`K{0&)qepdlp#@M0?E0=R zhJ=XBW0bQ2xR%ap3K0&5));$gOFh(k)iK|=YhppaWrToY6M){`=i=}2`W?lcWu4*& z-SYUd0k3A39_FT$@~I~w4XwP2hb<1(!0 z{`8e}0R$8eudZ4kJIje!c)yTVp^~T>e4iow4hh)^1uyae1yD?rLl1f(1@yQobal40KjA_>zj%`%S;T{k~QdxBcxuzX6;P>kJ4n58%!szB+x~b{F_zfCjodqj37t ze;q!j-GZt-s~P(eQbc@3tN9I|bAS_#5zMnKQhf6hZef7-E;>-Q_|J~{inBrXHvkQW zd>ccnde6}00~9cOC4Z_TVFZAzCOi;gb*N24T^~5#=+LqN*_u7BxF?X72k3x;+7(TCb1q_P<>9WqBuIK6ByP_|gCa3)@z<;C z0-xV!0{vCO;a&-AB8$9D4?!^u;C-VeI2%dd_+kVP% zEE*DSivW^I1HL+a`8s4CFTXZSzcvm98hhaJko)mcl?GNoqIr-6X(E$~I zZ*$OB2pQH^1vtb#hmPM|KfSFPe9qDnS^`Q(&*lwy&COe#nPk|!hv?K0k_J8ykMBXe zBq)%0#iwAWHbuF+rU`?l2u? z!D_&P0LuzQ36DAqB20kbb$HD^^dPt`bp%7lK(4^dya-4?(nz>`?%65`*Kh661;Yzk znT@F*ts-u}bYM6{eGX!4{1^=Hzm2fl{hQ6iuoc0}@&xobUgyOj!|Tct>Z zwi#yEN<)NTGTi0>ug6F$>;=~cnj9oThM1v3DIWrYCahD6!M-8`x;*25kDl%XSQ6Rn zSMU+}Z)5Y4^kEBE`n521aEeA|&3~==R(GK#5H-o*NSX_P0F#9lAFj8jUDDqzhjlq+8xB_F}RNWiUjR8jpS{>K{Vnr%)A=g=f{BHL*LD7c3y|R1A>)pIka*UO6o>t zu9!;T$E86b0-iB}zW?hR+NLSeUKtJ~A}q6G4Se}zNbf@`50#f)2J8wXSQBQEOn|kL z4${E5aAYqyi=xofCQaQQRwAQaU=b&at@jOWMuWo(UIkgX)8J2LBy5(XVl>?l&(-Kc@jI2ou=a(my^jOH(tPY2k%pZsEM(3+jX6v?; z9BeK4f$r7ps|^Zt3rgwL6Uej+)a-IgGo!f7?hw-s*bD`JxVw_e8 zPtdTJj^sn%)vW|Q&(OUl-zfY5DC4cAeZc=<;55M~vReiX`W=j}m5^bA*<2p#|LPV4 z)Fdis&IB~0!AI2p^9aDny#|liwmJhex~*q*Y&1$ zLKe{(unACxyJN%vkQUO#_5fZRMlXSpu%j>cmO3Rk@%FW62@+OM!srUl1_*GeU9&Ze z>jFeTw)!LhCmN8^kLaeqs|IZHKWC;`zVRvp#+hh~&n`d@VJy4=b-z>oyFGYdPwWyu z2*GE{Z6V>SF;jdYOn1FA$S(abqO!q@3NR7IkAF2>7`xOuAP7p_ZftEq%<_&--f=K} z`hibx86IWAN%$1%m`s=RBZW7?PqDY!Ho${vYwLPFD!c>e->2{BKs*iQ1>v zkm@-=#btsls0mp&NG9^hdED&<22lDluG9MK%hMwMnokT1%rXCBQkjSJF{e|JZ5UPY z$mPf1|1WI?`Xh}II)K2`g5rYKzT8Jsbtgc4%$q$4XC^;IYiK(r z;kOUO_)lNJf7&9zs`$6I2wiI_J0wjbnUE~NzU88S3Tux^2*_0u2-` zehYw0E}?+8?_g&@Q|!Mtv8vkhZLOZ$THOU)Wj{6(7xNQ_ZXmZ}g*NSISt}-5=Xd7^ zCTW~Al=9>;){QRM$*v6__PM3%&1QcK>78peNpF&b{0gg+&XQL?*;S1-isy|BcM`fb zy^NHS8#Jjbv)&@>gvE`|2{M&&dMcDPh4UPG4{php|NQKR)JK*$F%&qAYpNam3F$@TxM6VcCjbzO{?PBlE?9D5yO)BfwDO{4SCCy#R$@N{YM*nJOZftJJ4wB1i z-@GKXXZv0kONhxp@=o6L6&F)-c2=cKl^C)_Jva8=@odnW-crU@=2fykT!GG43H)eOE+3$iUD~7no&3LAyUwsCvuzz69T{=NLXbf$=!_!GL8MA?5XMH45~_f} zAVta`9SmTJj#LXM(o{6`B1FJY?}vvAXaVVjz+Ee6o^$W7bN}3*`k?vv zviDwVy=`-pT6=uL)7VLbH4mPF*WD@r~kBXw?xZ0L|)5#NgV)2fHyp+d4Ix$}yNu0>L$sJsld_6+0_gD&l ztG(hOnY2qTG0uLTc}BYZ5A*r! z!JUP&S)?U@g=&YM)h2UZqrLLH75m_m#l<5woWSpwUzzhJl_#f^XXc-ErO01kQhQfc zQ(g}rRj{o25K#1Xwzz!vt3aEqh=(3G))H3R%L5|kDDaXCI_Uo6D|V(z5vSIe%OIz1 zr%*{SPE~D8H;&$Fp1%YBx`6KI?$IHxv)9rtfMnxz`zKRiomxO`m1ZB}GO=1$d5C;L zRz7}pF)Lyj+0L(9EU(1L>YTjeV9_0ZzhZyOEEVgo6m=57756)NF z!X~yPni7N;=>AU1w1>Zf3VBN@+8?38K2nJir#A4_`L~&zqylr|a#e_$+z*}+ZIpk; zEf{Gdx~8*D^-_oQL1#i+C3sZM+W@y}GMkVLlv*fQcLe!#6>`1V7>h96LCxa>G}J;^*$gtt^`(wek%-!RdGs8Gev$CJzM0$|OW> zD+6Pz7S2jIpGbfIsDA};H*1cwO}TekPXoLSvx1m|YfBdSPul9W`=?_0->}=->UmvB zM+G1HXjpt?gzgbm%c6dswZ8O4qH)wqXuw~gAjP>q%)Pa3%Zg4)R{ht|oeZ@U2K{B( zyqzsCxsUJfwl89!DMvTgLNbn& zD$sJy04Vq_p!R=n+mbwy8o=`gJB-1@S}E#+sc*mmrlS5A!w@gCfhOJI4&byA7zfV6 zo-`JKb>Iz_uf80)q!k3M2a76oCA)CSi&v z!t1HjtqtdI#3a&0UKOY?g$ry-WzK`eh64Yn{C6Pdh-iWnhi$}BK~2X~Ado5W%Vtc% z(MIe56pjHfs%1qu$OOPtV)YbRpdHBjx(V z4v)bAqSP9gYptP$s#4zxjFT0H7b+_WyOaWue9WT?8Uh56sF z$iOSL7SNG%s5AIvS-V7X1X!2?zfu7zjv0VY4@>O+<-#wmZ7W85OofNv!3&V$mH!i9 zC)SD=qK~8s$Ddpp6rRSBLaipjHI6TSUFnY05K zfOAP20Uq)-9+AsUX;UKZniH6-+A{>2ONE4l1koD6+s{1CDr2P~oaYE#|KW0OPawPC z=itc;d)7Z;p<<2|lB-hVV_|MP%+=v@j4741 zbA$z|P|k&YR{1+h;5tv%&s2x1fV>86%=w}(vJt3w)Cat%6$gWVAE3GFa=bfWzJaw1 zNme=_2)@kL`_BHcHu+5X?Z+l@9{`PS@xri2)n^ zIp3Nq@cgnpK3-|ZoKs48(%xq6A-nea_#HED@0fpAp%KAU!PG=Jq^QCXI4gdc1hV=4R@0L?*$?@w) zOySeW=JIK(d0m+b(`)`cFSOIrwZbmy$Of|Gd36CqG$|lHBuRE-T1I`#iaAakIb9et8 z2M~RBaxt8gLp?BXv45ymeYS@j3vd zGQ2yMRp_RoK1|V^eyceHS0rXG2zeY?nRvNSHdIjHH+#8$7ndEIF_l}}xV?Vpko*mM$^n0(OoU@U!tlH<@4&+5ra$Jf*OTy5&0bsh-Lycr4PUZ z8e&+RF=W+ha+MfV%S~r+~`xQHc}E!SmlA3>mHiJAsNQ8;8Ks65DmI zAzhG2-vVD{!tRjIciXJaLwC)&vEArT?Fh)DE#iJ65Ogk?EUza#QP68|2A!Bm=qj`c zhQ`{9zX>?%K(^Pz-iTFx8x-O+AFQDRQJ&V(j5uTj`@dMrv zF{#u#50E*g3UGkSGQhJ9qgT#8gcFU8X7sbjsmerRUJFGCB@^_2O6NY;HNQa2+7J%C zW@pJx?^jan2;gbWuw}S&NX8|10R23m=Nt08YW@d5Q5o&6o*!SJ4cgUt9QqakDGf4B zD6TSv*_San_zcrJ-#>R`@imCMbl4TaaS*6t-f1QiXWPlS=i*cB)r=4;=c*!AKF*li zTits4U|NFw;}oIi85);>DK7HQy;#LU&D}8z6g<%n#rUT7FFI`;#_q*?#KmCP69yx? z3ySng$h%?xQX4O_QXi2t64Nw-VFzU4fMUCw=?YD{0jlQcQ+2@^`?zqPrj1@&NBD}d z#o0SR&KQLBP|1p3U1q0Z0T(vYk?m=UVbA(X7)Jq`zOh}K0BKWO zzxW&9+cnl$iZCmp6=Q~XG1W3na+J&M?VAU3)mTyeYE0hm(9F6dno6xLhPm>hGf?fX zTTtRreG-L)9N&Mn;&rbwt|_1%GY4vNXH$k+nPQsnvse`weibNecMIZhkUTGwli@nm zHeb)n7b+Z@TOvfJ>Kh*d`F9{VUG(}I7$51ZA);510fI>DU?9LZ!e}j5ZYLK# zj;4;wjkiShXtTdU39Wen#kgsf9__qG?e`01@nAd?1Jt#mCr%GJD7~ zCV^MVKRQJ-a38y%gkBi<;>LQ14oCvIKRyaaQ_{c!dSw~l3bG#z+cg^9M1;ow{w~;o z-6h?MRWLQt#=$1LG!~ve3NEluV3cf_Xi8Sjdk-~&0e*f{H&}g+APedIib{!{tFZh_ zcuYw@gSl5FP1cFiO*%SZtcJLs2i=0B01q8mroy z-J#t$;S65jPHkk{^ViBwG@Uje#*AbnIqe`FgX6*5qK?*Pde()ctKXc0-L5+tAm<#a z^p%aOGLw($9ggE;laZD#o@li}^7rG&chjQsMhuFDO{gzn#JU*U^(;d!v!2M@)o#)# zM>C-NGX0r9m-{l0Hhgp?W%L&;oc{#c-=?JtD4qb?7uARY#O~puQHcB+?$V=;| zqxthxPYZ0wB>DK<95=~6mO)Vj!!yZ)kEI2TT`vFR&zRA`XXa??z zChF$pmz=Q(5Usv>bJGv^_^ByEP8qf5%-7--E7se&LdSPQcaZO68Zc*q`QLJc+qN?W zQ8lM9{JaYa8;uXVJ3m>*Y|KZwHY3PvoxI5`aLt;1a3h5(lc{%~n;jSR?N{GTjZwZQ z_fM*+B;FoSKDhPwM6b{G&CBQYeZjVQ3PM+#ax?bbkhy6*r6ho)IIuP3cbusUn*`0n zMJcB$Rp01e=V4143w++=wQ3ViB1Z^MR`8C1P_!aczdVv7E}?gSN+=@3B(QTNJt{Xh z@OI{qVjUU_&SK+hXWz>4*T0ls{OjB_m|y-1-wg7Xlw>i>zfx?snC(ndSDckg_k#h} zuUmnUvfW5cDn(&F&w=kzHd`DIdNo<$36CR%LOhI(un6NhotSa+-u=|Z#DEiBKk2fQ zRs=YXb)t+eXVqaY|gXEj9inxn;RF05|FR#ExqdJ)1=Ng2GgfoPWNG(x(e42K(Q zZH}A4F49qxW>H7IKk7f2tl!R0aFP(n@^_PGn)4ad3^(cBh?NNBIpBi0n0N$-68FKk zQnw`U%?3pg4rGQ9^HPU?gUZ-+tt9x$y1iRl^z_ZmFX&&`)_CHmQ9R$__kXPKoGA|O z6+dAfpszHQq&p8%>JtBa^lqz+E64;n$<@{O6YG4{VHvezccUB}&xzhju!DKq`p?Ti z$(pOrp@u7^H?ZaOK`Jc4>h205kNz@vl>itI?BPKF`!1K6(IU$z4UTXMF}N;kK_MN` zeJ&<%^BeOs*aFf=r($xS!+k-@dEwEAlBOy$JVuNomdpY*=K-p@%sxp70KwWta;a0Y z;~xV=$Mc$~nUgK&<25t0QqcoHXi@i7@!+O|BtzSnn-luYvZFB6v6il{A$)&I%WhVL z;MVW`>eEf>*hAG2V3zwHG?EO+fiQuX=SE?WJEo2+qBhzQl*@Ad0A#)gm{oA(FTjaG zV*;YxIamgLnx8PT;kVlJ}Fs`}4{QhYavoK)gnJ&QL)8G|^;1Qr` zmYgslLfhke3y+sJ*Mm4xGNZ2*@^MO_a{w)&^0zoGs|>jX;wHc;Xy`Bam_);edHJfO z6G~SWCOu_b46euIL=uj_mil{IDimD2@c)^S)WBZ-M!jac=#|aW?~sr_t#71PsC(hs Fe*=*Ih2Q`H literal 43050 zcmZs@1yqx5+y^`{5EOY7(MQ?G>hCm=R&!0Wff%E{H!$=-s^+uGg3-ql5jSAd`Q5f7W4 zr{^mV2|hmO|Mze3y1Lu){WS9G0-r+l>Y0HD1VU?0{&gl#HrE~k$xVFzgpJ! zZyb))yj2%hs?S-rivEIT=DGDIl;X-i^!M{7Axv!F1fTrL`1YWyk?y=s;^nJP&OLo> zmE|;?lGrZSJFPUVubeH_Pea51-joS18DoEZB(pNt)*jQ#z6-!tIb!HaixrJeHZ ze?MQA=lt)7YNpKV|NUefr9oZ=@Zwc^aQ?ralJ3S+{QW7kUO6rPdv#7|n*2;=0tCTEd9qm^2dv z;?6^UPt0u&t7l9S+1`R@La)-(=lJg}i&rJ_7-+RbG1tuon+0zDxmR_1w9~B}c=Yov zrP=liMlqNA>1s<0i(Q<)+0uZKtL~o&dh++3ziY2>`|YT>SR#Ky&yU5zP9Gl~rIH$m;{jVV48pHW*N4j%*sBh}9mIaF zFsgF7<&VL5Km%px|E=!(a#v}3We}BNb@`)uLqo$>+)z(HTK1F~0=r%sz z!WshImi*FZ-;wyR>zMNLzmub;V7>RZ=Q?tIQ)p%O+0LS_K_Jh#xxm?#L-5lpbBgea z;huctHovU>(Sj?BDdE9K#(4dFt*3Dus>*wAP&4Gv(2Ia^osQjQT!$#f=?bcGwX()z zVZ`C4w)E_GtF~AbBtoh;&1XE{Yh_?~2VB^obJds)WBKXf3W~7b^5@TR1e;JKIQxm- zjcsxF@hi*>!gepY+d2ir5>$#yUrou2xQq_z*}@`tT9QwWiDpKb{Z+1J0mC}Qu!(5! zMDsnD`nZg%zo+%tBh273FA=fJ;6D31VM5Nh_^t7P4e^lsNPSeXkxR`VwW-lMAC$By zLf^mvDx#;M5wqr+DCy%OX}t^9j3A+no6B$HhCqBN{yPbs<(0p+@k~&;SgClybu`fw z0~b+|J=#==UCRjE{-lcEpy+V{a@0^XHSA?dT8T3j>F;5_vG z=dG7;%c+YwckbLtjTZ9XwOa@hPqt69IW%+Vboe}0=To%+9(_RzOF-wX7w^Nv@sNKY z5Gxt-%}(Cnup4R!BC+FDbybvuzFfxg+3n0@x;mmZf1ab77vDs@T+F(cspEb1 z#toYS|5zb(RB?af1GkDeH&7XJYf&?glI8yNx_0pET1UyX^V7_m&@03K>FcFzKPuG7 zd?OSunBZ~+p}dqC&eC^!JaIbQj_O~HKaz|m)PG)=XFtUpoO6Mlz#a)w|?%%E_2eS|4ln#3f zb4YjuT?9u+=(B+K0aRBtO~Px{T8M^6K#0DR8K;HlJ&aSA@oOWv&$XKf#4FoZ{OnIw zoM>Lc=EgbEQc*p3ukqcQc258&<9P zvfSSVJiLbGt;LJU>2B<-jNk%|$rt!zuCt#TTX)~>Pn5xz?spFmZ;&CUC*H`UjEoEq zRyxsSd%cg`4!mOQ9p_%yh=|UFF}m~!bxY0EcfDhg_TP=U|GeQ^rh#hrIgg~czzT6C z>)58LrtmqgHvJBjB6rTM>l$=i!Jx!e`nT3C1lh2J+ht#t6~Ql$@4e&u$M{w z`P%lusok=tqoPRB*H5tsRp%KekH)BA=)8n>Lc%C`qvzz0GvKMI!Z12>$?591dcQsW zbT8@c+qcdh>$9THBeSVjY!PWNxt4RnVfI&KY&!q773s0f2tuqj3+MarOP7JhF;{q^ zY=%r1H7K$86RXn=qs}*P3LD-@a`e6efsDQ-qYbO2<$yL4J1qDy$F7@Bell*i zbJ-SQ*uHz-UFTQw=5OJRVzb5*c5Nb5$f@j&u{&bB<*IQq@~hv@ytqOHsB1q6H{H(} zHHFhwWkPe+(wyjHhfm2(F(c%}KE>Mh=>sp3Wn4inVGZxNHT{RMJ^AykbKHIy4P*P@ zpnd>hwM19msM4uq#ubN57~4n>Sa%C^MT93Up{>(X@>v8U=gS!BzKO$ODc}2~#IXD0 zN9m6c>>Rdw?!tp95s$D1?NAkAEVJrfyh5h@dt(B?HF6{W0HhSkV-m#Y)_70on0M=X zy=Io;ur7`Xp_b;r=%3QlUf5&9l?#1l^@~^O-7AFp{+f3<|C-;Ecf zH{kd#i0M^T=WN%)j^-?-* zW?NIUmg^XDvE4zi>P&0!itoU4y?LPD_x5L^ZKv|iK;#tnZ5H)Fqg%3ig9v909`YN8 z<_oD7(FxJ3AnvsH4z}oYN|9E}Dycc#nwEZJPp=7KasI^hwR$Itq~ACZ#7L{~Z&7Vh zr?Mvpzfcei`X|xgJx0e2#^$)#lR3P-Clc8na(e88kM1aJutjXb8jKL`ox(0+IGgzz zb{B+8dW!wFb0sWn+C8zKGxS0#)k_iTa|Q;ABr6#(`dE?1pZa<8vmky8No z60u#Rnj-4Wkda?6)QwGToJ%y?-RYJMFs2m%Fp?r;|FftlxT8=dJUXB%ZGHZ`=aQC5 zz*>b1GaWdw;(7l+5Z2BUY{5`rzm=k@)g|Rlq>n0Gcq)$q654Tx{I^>(+mrZEyX7}U z3fNrmm1_|saXr~{5J)u>L)w1;`p4WNC%}8;S5n6omN-2|MUOq zKiJd$!@^PwT6f!^*q(nL6RR>zj!Rg$KZg%o0eFR00f=*|gMh+xP~BUZ@%b_COnDUN zsavrH4N)x8NQ*xaCZZqDK{jQmA%QICLs!|mJ~d#&-@hNGU{jipg@X?iN36o++8O2Z zKYX}Il9D>U`7dPjHBl2X8FU>o%HDOU5o?yOs#O`7sEvS@s9dK!e?H$Hi!em{dm%}t zV4VohIb^+-`u^ltk~t4~2V2)^I2`USF^D=PD@L;v0nmdqMf)!gm1IRRiN{W#l-XeV z02)urjbs#S@9tKw8g>8F(eghxRNm%|C4$ct0chyiS;{NrN#I~2!HHdJqLuCcaP=Wkv*{mMk0hQ68v5V`K$=^Im!=Rg-PbfuNSniCLc zYlLwPg>I&k0j}5tpKg3GG|Uwr5fRY`N|vzu?6U!|3@pUZQ9W2%@u#4wy9B_$;hQBiu{HqEY4nFs8I#Dm;cL$Du@iXm;|N|^B1 z9mgR6EEzZ%*9TAd8B1Pa($C>H6DfM36WmZtvN$_?eZH*y*ZWI**oXwKf0(`rCOAHL z;KSlWdkMBXqWI*=ke*`k<*++$O7f>gul!TMFPvR>oAj%?R6cCaYAYTp`Z?QC~`$29Sp!p?{)fjJdRN zaU`_-0T~r-Q?pG;@9r*P3FwShtdKsJB|@Bk&~S)^d-Imk=ood|&99k*Vav7c@5STg zI7TX+Q|3>rpG1ySYGeHO#4Anj$;gb~=$&m(=$JcDD7rwi*F7I;SnvDVL;wZAm%dlX z)YMe^O=XjZbc(oqZ6$C*o_n!szqj_+V>d(e@YE#tEeC{OVb+2|KPxBlENx$_{mhRu z1_*qe<$}~~2N6Ky)eY#!YwV@R8={lQkel-pZ^U?-Eo@5H z_!&Q-XJT^V7QMnMlWJ90nxjp6EM0`66|+xYOIi%Ol-&*0bQeczWLj? zZ*v)z=SfZ79GaMzNWb`R%#C>;eEn21-}F0}9L3HFtnZWx5*nYo8ktr#7c18uEGn{* zAB%3VT#JRyofT|bKRqeaChT`D z`sk5zQ0l}B_TEux)$x3as}l?l*xncW8MoaSL3*uFF~QS$rZYU?u=y8_d&yI(n~hN1 zb>p`#79*W$W%}|()4o{VEyuO-$habczNc-bWo_;_fH>4~$u=a(IvQpWZN5H}#d+FM zKEv-bKWIOmJ~rFV9G^|=qt~IA8E=jl02Nb}jASdFhQCp=2KMMZ7T23unP?1&Rb2d- zyS}&Bdsl@E{_N{i(f$}X_WG6^AIt1VHlFz||D=al>6A>f@BX2cMcS{34$rd%pW+ta zvO6ilu0HPMWo?i(3RddW!xBHs1RV|`X0j9`OOI2R2T>@%upXskY>d?rV+HxK zi_UU-{qVeLL zWd*te?>SjcQwp(4TQjO!eBFTV|K=br!eeA?0yoK`9k1UVi5I=alXGcDfOMhvVv(=2r&1opE`_ z&qWHZJ9P7z)o(`32wqB6W!OnI)J1)5o>Li~@ghL`=x2YaW%ONAr_se5>gqIles`(K zj0`sMFFEcp8IxRzPT=0%nSSqWJTGiL-I4F29vFxb5J4HWgjMYQic|1fU;U%pk83=! zaJ3`^I8CMzME>!E^!Qc@ zKguAbe=00nu2k6d%2U#^==^+he$9*Hh+8KwW|X~XDrva8_ad*)`Y2($sA?RU5q$VO zo#kQ|U|K*5@xoVwN5Mp3kfYU$sq8ut}_q>nyyWvEE}Aq;(Kfm$ak7UxA}gXjAHpvz{Rjz2tHM|LL>I61JfA_-+Y;@2vSBQ%gZMD^rL8SV zSNq+bpALRwH1O?V&oQA{fgn+5Bn=`~XvSd#8Horysc@;SaD}gjY!s(4_!HBRIz_c7 z#I^;v@Y-Fk)!;H|Uj6Mqqz#7!S^VyHinhpZ%|eCmx>F>J#BaYK9i4cZwqVn8jc6HZ zW!Ip?1TNhIM7T@c(^IE$E25wGv?Ee8H(grB#xPTSuhvoyiKn5H(bP5>|su8z>^@_TYbDf3Caz%4+spbFQQoK&&oATK1xJ8`8y0y9iE2KpXO2xSGc@aq<4GLz!AJ1WIiP_!^}HE~ zZx>8Lj`u3v+k`V3HyTJz8s0Vb_6W^m6Q8lU`f=zKlZ2-oJh4f5hW|DEmI{#YR($~_ z633@>?lO4{Rl8-m)Nd)ybtH8YIO}%0B)wK&{Gw!UVO;(Fkxmzg9CH9mj8CZWp{-Ct z=1I3&05$=lr4i#Qtc6qKYbd}pU#z4if{1C`^O%Co%~uO+4TsCzMv*oy`gPvU$3W%n zB6-zccz@|;C5c1k%ExFdpfb*7A!Qi`^nFrEfL9Fqp|fh8r+&RhYG#E6r33C?O8*L! zktK63QtoMq{-Eli!3Gb0>T>p*o%0TX-4bxg>;#(Z%RAu%^i8P2n?%vxOKDs~8I4iZ zk57Gkv{f5Xu=bm(FEAscE!>x?@<~RG4l^g%dNw%@PMz!z%I_0#vo|vaeawQ26(|Y0 z)n?B=#y*#i+D_oYXJGKAshZkfU*4vt;!T{D>GZ=sz(cDFjJ|zePT={L&=K61&Mes{ z)!e9eTI^xloj0Q@y;{i9l5ddW=p2$AQswl#Gz3pzPB6te;7T+5;)oMjIhR5-d|!-A z*h1Np@5Ts9jP{R(Jz*R;vFAIjb^3_x&$Es;nBEd|4M-C$HY)f$gtn|JdbZM!wv8n@ z_1EXD<)j@2XeF)Y$gfPDesr&r`Tvw016i!n zz5VKkdp5u5guJ@W@pAO==iX2E{pELDfNDT0Mlvj+8c+HZXr-<6pL@QOfv{Q`(J9;` z8@T^HZF%9Po;QdVXF!A-yg0L8ZgT-pu6h;#J&eKSN7o+OFm8+dW?w zdS4)9D4l?*LcYj>n=+lebIH?hB4{0Y%%PqWIzlpaKfTS@Qg#lodh%|EmiTsKv7k{8 z)i*iSy_n^?V1GDm?GU68@Kg~IWR20jABE3AyV^M`JZ#DLz+UhsWu7I)u9}s<_|R7n zn8W2=I|2L7FD)@CT7fj}Rdba3zR}1%K5)+M<6MWCT+N#|p1Ye>J@uS`+nn2d-{q!lJQR3J!fA`P@Kt-|EdjbkAU$ zzjjjvp?T);w%qH=z=IhX*P6#X%;5~;xF}#AFA%u@3Vm|8BDyN5Ysk?mpndLirbXmhd0iyfI85|7g_SUQ+=h1%e5i!R>K6k z&U=Wz8R}ej(#+enHZN)Bf1O8X=tMXuPC1@8sBO=t-OxfG{xFV#E)j->ZSohr*v{gR z64UCI*^ZG(6va3phkPmv04h2RV;M7+0++Ih}jy3Z76+pMlN78dE$ z`}p_4#q)DlO1md?Dy?^ulliyOp3mSm)=9DF-exqO7PACeyes-E9oZXuBF^pyN_wL{#KpRF*9+ zV3~`?&eT-hyAV-dvmZfWOoQF2bnDQoCH9S+vIO9yKB?dY~`9>ZdOyER_1X&*K# z2=P!mRr%x}nexCVT}mSGW#fp~5~9$CD-DW5>^YwH9~nHy7iC)we>?B*u=;4>dc)JQ z#;OT+M=?7)J~79DqQukc)(cPDn!f#}pg6lqY%h00y~sf-$8$N8UXOWq2X&=u&DVJ< zDu`1G>ADa9I$vpC=XZH0DDY*s%QkUmFqD!KKNH8i8I^GcVZr&ZSch{?h7lcIC z7kjfRqZ7^j4aJcau|hvFU1^e7&&H2UmA`RXWQ`~@9#(7nrm-N1t}QR#G-bAh0chU* zIAx*1RqXHg_*CpJQ&3j=qK0afFg4l=K8~Z_C01a%Byqf%xi&{djl{IXgS_pn_OU~^ z4)e$r1Er#ZdufViC$}q|NAmO)Wi12fV7TGV-3oixdSst<2WNTUp8|=%sL9!in;H5} z#)VyJ(vFOYH~9>>Oo*2Ly0E1XR0F?q_!Sn7xEn>YD+{(~VHv^6xoxaLHVOp=TYL9e z9mZG-aLZxdTsO3S6*D~YY4*fx94mjjb5|rgM0StS7lj^kh?%Az(TDM{b zI6dcO5A^7QOI0!25$8HXHrS~z3?pJ-#~EmI#2n1w0i7}|Sn&$t%>pQOJwUE@=F96( z<_xr9arB2>z$2zA?@ozy#tYFsfgxF%be!4O>8x2=gm0@$CGclOZ@ffI!&-!C`Xe2S zYnllzTxJdRMURw=fwxjAK#FBoacYfc@fmdsPYWY9o*s7-zPUqBRXT-}eRR}e_6d#y zg>Hml!ERjj=#EGWZnSInj0bc==x0j4Oo2g}O>Off2xODgHREr-ZsRQR&%D&X2-p6x zBCf@$6)w&Yje#P5CmrrDW@Ri6`Lz10ec4a(*Kg6~2Ho#o>7vzJ8Bny|g(ktdk|iBm zAikd_W2ULEQ1y~d19ZayT|A*U@2QHt0pBE)-^0`i{VG%zJDBO-o!)E_SxrA9`n5J> zDDLn$X>MefXtq>~s$*gJ78A?9*Cy$@^ocl;&=?Xb-=VL8zrvh$TvV)xgIAP0P0_;l zN3jxK+wY`##l}aCqCW=`BC619<0P-`eF2&fyBHc6IK2+JIChyUtih5>+8j~X0F-)P zZ&SEV^)pRep0<7vrRmX$FEOU2+-Fct`grr0S~5tPR$5%1R(8)5iI?)O*lre34e zj=It44W_tQV9&w z{^c|_oe@C@L;Kd4+uk{nE&bBknIcX@{FoH6ZZ#30;tsCv*33q`GI*sZPTR28Pfkwi zuwo0{eL&QKWbCsxVx8NAK0P5Zh`FQ|F$i^*Bm;vUxR(p7Gvz@f?>esZ;laWP+e1s( z3NR)ROz;xdk@DxnQIBrxj57OWmqRFQ6QvM-rBeB!xb}1FH+*!wFcxDD9%1f(8Ek4Z z^6lV~KE-Q;*1t+-v6nH<80v_(7ijwGHX0mB&an1EKr-=b0D0N3F^a5*KZG~l_8=)* zzdK-(%2Rz>fif5+zz>54sp^hbWQq2}m0A8JO3q$+2_+}rp<0!pKjcOln=y$Jmnl+clvijJHRSp1|ukdv_Ok*zcfJ=mTqcChZC< zL{Uz&&WzONkF(1l{ZZruf8=HXXBj-Ff9WP~|3|v}{nc)kb<}A~SSyAPlF9td@AQsI z#HtwqbWtp&6+*nqUdu(EduKmM$f5rM$+*))WNHxDmd?pG@*I>xUcEX_Fo%0|OhAln z5q&5Y`G;9`yb~E<^Ipm$ghNWOTe|2t8T!iljf_%He5wJiI~Dq)%Hj_-zI^m*Iqao< zXR?5(l^{yjftwzl|C)wTR0kwFoTIsR5Y}+y{ftsdU?FNvjG)}U#2 z#Q~A;BkF0-mhj?WvfleL-I;@89|B z+Eb|nsINbhK=lcq71I?%-2amQt%kvdYhu~tzUMtD`P&C?`?KZ0Kv6M*d^xajYXqXE zAVX7)u#}tO06Zj#SCgS066xk|M0O;t^yCW78XHREI**ts>tAy^iastkpc1Mpd`1CD z?-%0|8dsuCl|b1xjD5|)M{z9ul&Cd&=!G(i=&otqYOddpMG8AP6ug-Y*1& z7c7o${adYUV`vFbsP4BXRKR48ouPt2N}o>Th0B;_$!r`a-ir|o%DO@8m~~Z5uRHN| z{M!S0Pmi~PhEnB4wf!|iF4MV1O8rw6bBEJJbRq9&rUJQ>BT$R_#+pKtB!ZUXsqd}0 zrY2m>2`#XK*Q8unL4@mW&(B7MtsyQ8)v1mF06TtPk{H?kfehZ;*9PsDnQ7Mi?n((N zs)y7)u2LnL1Vm+c5&t=pRA7LH6I@OQgDKAl#@SO^1y?!X3UBM*{%f7pe|7C23^~em zG&4Z>B(7=bIHi`k_V1^A3Hvrc2>rc6JbWM)uS z^YM4~HeqR{iM%gq1p)oS=v_PQisTzK&RP05T(I{GyzzW)D<_gUyr-n63dN{zlp}gt zUuEg!C&!?lVy>!7=KwFqZetuR+8Vm>>C>mO0vt?t#kl5LIn__Vi?g_Nkq_8@RD`s$ z{as6`Lf8KI9Q@u-zPkT`Q7eWD54p~F;O8)Ns0CMK4zHJr!~W;J5x>>KZ*5xO8wgvi%~R1kHwyNt$C)zqZhzW5-W^Si{1`Nxk+b zG3J4NQ!iY${8b-XI!Mf$R8872VS`F1m~)iRa(_N|msz@$pPOOr4%207ZfY9Oi;eVvi90Hhuq zf#U8DLTVzG&6hFh(ncpI20JVNf*j?KA9B_Sfd|{ezykk)i}>_u@baOeNd?!R9mnRg z4|f4J_qUz`B1Vh-Y5oqw=9I%;E#kBDMY9L$13@z9KwvUK%V24AtAkQ2tY&;Q=_3+o z)c{M5a6O>(Xb2##BSGi~0F$bFc-0RHfrshhvacrP>X>q}ezifhJ!C5WkN9YBXw&!3 zG)Euti=j$_o(1;eg>xhfH41%C0NKp+&d4R+B ze0`8V+BzzH#(jG!0I|LD{-)`76$ki&Q?byQ)Fz-Wt*zN&;MUPWU~lT6Or-(!T#je~ z!6{##i98qAqVGXpm?Aqd!sR5qUVq>HV%-T2YY*eQI|b%ZIO!rTyIxCY+&3-F1p>^G zm_O#&QSox-aa9y8MDD>{1$5{?wN1zi<&3ZFT3hJOs7la|(%=#hO6cB=6wHi*_1UV~ zz~N2*M{UanZk-0c(piQ0NcDvk#Vxv?N2Bf?54~?e>GX;W%9<~{5F35X!y9+*{ltmkqVW#2%#0dfbMvtz1>Men*x4i`Htq;MIDv zU`l?3L;#_%XkOfJJDcVOG|%DuB7$2$2(!^8xlta8Q+-h3y=Le&%n2#9 zxpTOX&Nj;vV56|0MUs>K};v4f*`f{PZgJ=3F^_*B;GLsRiWdFz6N= z4-xANNI;Yh}G8ccO zN70!^YG=I;RnMF4ye@;Cum{i9n>yWZ9lSTL?w(9oltx#a-W`zExwXQ$_iGe0;>p%o zgV~K_7(&)xFw-|UcpDqsEI%)lQCB<2SEQHlcJC+^1K;ua#hQ}jEQ!2=Ixf7L=D0}U zu%1&n<%P6@l>4nO&77VR-_`v2ZeOk~l(bRK;T3J~;;}JIr}BY5*qe=0m#C_;$2Joj z1+lZx|6%Vr^@Y1wby@qSFd7C4&pfo#p%RFbwif?hu)CL@n$Is7lnwo(?+*fbEqWTj z&&Cjv{6QXxclf>=oo~w=2#?>RiskizLTP#FK`o_Gj<4kzq~`5NPZH{?A&uf)I08@95||WsvBujO^ytMOu+WVGRZ# zBwrPjTKro_1-1YLziX(Wq(@SM(T*$=!jDctRbREdFT*kKo4n+USkML54qpvG5O4wb z7Ob5|JHZ;k6nt{9a7za0_CJJr#kfe0W@XiIod@5NfIqw|ds>Fq+mOgqi%VMBx}xjl z(?PvWwCr_fZc@R^bM2g*P--@2lj_hc3XJXDcN@I`TE*4aO)`=%szPU zNl}&|)2RwNuRkkOS7z~>y$ZNk=Xg?nmtZ&ka|MuXZb`X=d!-{O1|7GA)DjY`{R4)t z*xucl41CQnQ5H3S#s2Bt9jEM<>k!pNlfmM?n}+u?b)Q&4Q%%zwbimCx}ukYG?N&epTD6mZ1i}9b5rkV2e+KzvpB4Uou`zSm!Dnfm~e(zLDkk7 z=V&&v7QR{Rw*PWI^qq4NZ{R$?f3TS8$h`t&BJQ3Ep^TfMt9)IT#uc!!75AEV(S)|owQm{| zF4CZHB2thna%_Hv?f!qbzi-JsC<{7~Nnr{o<$a_s@@qptb&xgpGF+TDx)CKvK;z79d z{WU^&$V5SoQS@R?x|gR(#Xn>WE=8TG!yq|%cKks&Ujr3H4&Ez9eI-F*dufG~vVzsE zTkFSoXqHI4l8`?ud#E7I7(d`);)r}TE_dZ$NcNe`e(Q6<%d!5Kmg&(~kU<>o0I|kl ziI*Qfe*Dtd7*fe{zqEU!157HcZ79n@=H`L;J|gC@CW9`0l@b+(6{DttqQ2J|>h;iw zL^#eC(ioN;Cy&XjppFesHZ&t^@+&0!o>i{>~b93@BBh*j6^(C^l zvzjUgq_c?GV4!Dv$8zppFqvV5UU_GlT=$%j2tJ+Lj|mBKW8};>JUVx15v8 z(D&D0gV~@YLL|d!lO6{DioebKQ1Nz!?Dp8mBOT`gdTiN*b9uq`txJI7fHcgSXTvy6 z$EK1cg4O)w@a;c1BYji9U;`iNPY{@Df^PwitZfBykRX6jGh3w9&Z z(a${wS$hB})6IV&b44bUDf;htm-v;StV!xYeZJzSO%X#Z)@DZygDxaX;`6cnWU0mfKP{4M_U&u{x*6j(VEPMmvSmod5jI@2p6%Ei;C>PZ`kNx`5A^1k?tN_@LC z9TXOd9F*iHw+a7x1>HHS*#ZX0MvEjf_?~)durgHc2PFF!;SRMWYVx@Lu;W~MR=%L` z7D+c;WeT^XSMr`(BjPDGUH+cTO?ZQ*(7-wt1P7Mve6v03mKgV*v^dmOXyzR;VFE*) zzJVmnAtCdIf5;zRbmcxPexp-Zp>gea0*88@2dqQ$l$^7nVt+SHXiJvsbtzb528zYb z=sB~)jloUW%3jNQoHr?{;1t_eq_o$Esqj*WoCeYd#7csU!XUmphl)Q_ba)cgu^W!X z-N6%CRI*OE;k*}M5A;Z99ObX?sn~l~8FIyn^^7&03xz8Do$HHUW!&p3U4s)kcqPZ$ zGW|aufw&F_+IO-fFes?M(a+DsO!^5>h%`G+#T}|b8rMUE4~WU>jrobSxQCpqtcY(E zn}PqWz`whZ@@krhS1dt--%D(Y$5166Vk^4`c4?0obCep6RLTaKziS^x+`Q;c|`df2`IvD()gS( z=Sg+kb%^@Y|Gj!^xV-FGO;|hSf){=WqJOcCH5;gu{YNyEBFm&m32zSNsjC7EG9GVj zPJ`rT0tR&LzDU*o3z53=SM(`mKU6&P+^bky3&VW_H{_Qh;G%eLOy5yrIsQz zcABQa4ZCoPN%8-VKoK|s&rGK3U;D2O94_ktXa%cyOsS@{80c9DO46_%o!X+V5-6@7 z7ti>fGqV-~E}G`S_8k57>)8m^6bC?1lEzK}((~V+3fC>QdQO(60FT0f5Qd4UDR`7t zE)#hvh{7K7)&_eC=xfK$Tn2c&7m8wCl zNpHzb{hV{5t6WC9%3$)(1i(!!_$FsI5x;FKGKT|PQv2DnR(6uo)2I1CBm$up%pc}~ z*{YE;+h}TfuGz#b&@S057a7lIo1J`xpog-ez=O`20tydt%OfHplDxz1#}D62w3I~P~zZDr(aj~(n zDMa78aRc$@{H0|O3*rKCASsx*sZtbE$?Y_hYbE!av!PDWM9m+2i;Qz7zN}su9~NJr z8}?aMN!Gd3yn#(Z$2ri1sk>r2n!t8vRH9_dMTdvw2spNh0uHxq55~6`#ND$!Qv9xh zdCOd|wmH5jAPrmq_>A}AIB_Bb1-jT$CEf)KxZ~VH(sqgq81$58m(hs2Igu&_yVcnC zuk^7WB(x4B?W?yZjOuMpD$L?;9M7a8Y_DS&^I9Zza1UuZhWPpei??{{qifZ_W<-bi zAQ5U6pYXZ|C*pyMC2m_}sP=Hw^BLH6noaKS#~#T;#FwOnc_X`TNk;5^+t?*Xzv-2& zch3u1J8z(g=|!I%hQ4PKHYQwicXMti!<2cjRa|a4@vu8~$ijN_!*nq88^oJ_a_KT; z{RinmOa&oLDtAlP348Q6H=$8htvLEZb?(#r9Q)?0`e++g^$8t$H2j_8K7a;|8|9s! z8&HGHz3tLd{s;3T4!Yt)V+!Xc|7>L1Y)M2@=ez;4N8dg7H>d95F>}}0m9u>r%cj$p z*b{t_reL_!6L?&b%>4ZPo3Z$0`om66@trpTho4-M&0f0t@j@oA)JIdmq8l{DFKuKE zD@AIZ-&<37xHlDH0x!2qxnnt9zA@{!ce+VCHj?)_eMw9EyoYU}7++}N)C~K?5?12G zX@^HO)QT$&n#G%oEF)6_UM`(h0)<`#qwZw;c@BZA0nV^;*#FNm;SI+B=G6~ zdI!5Z^`&+LE5dN}$BqF~ z7as~U)gZfCJ(&u+RW2q8ye17Wx%NcGu`EV<^i$j`m_j!MUozdHKoW%g}Hok2Jh+i}~Mb&qM@anfgn;Mkdp zk?`UjsTn(`M>ek5FU@Nfdd;XCMdvj+c8HXE(Cj&0Q^s8n<@wu}LN6a!5~%=eD-&In zT^qGIRHSh-c>ETHDx`Q^xP0Eq=g;;+UpyYASrr++J4$49u4ZDnWtmIF902u%h|F?- z3iH0i=J>ZmvK<3k$O%`!w;M@O{}hCH`|B+;I2m0E0(aUrQ+FeE3t3Y4*uB~&=iS`2hRpwj}rY^zs+y}8FcffHuJ}QsAAk4QgTDjh+ zy}aFMw%f>l$|XUVwzvR!CGvN`N)8G7$1L=~{lF1Q99cF*#fNpjK&7>GaY=}pq8^?o z?T9h;bE8-C)nISP5Qg^ezcCQ10y=AGZ*|~ROh|df_={~6phViBj)F9mvGn+f?ps6s ze#el9-omj+=?Qj+9rU}NV3#NYdY(6w?IOM9yY&XRjAs#En$ITw@S$MC+|Ta;Zwm|Iu+OjVu{+%-3Fv zWpaY#|2M978>~GWcl<-RQpN;c$Lx43!!*6>>C_j2O0luC8AZAa670hBh!L(t*_)KC zKiL0*8g~fTF0IOd){!eiagiRhJGf3$rIMutzu@}FiaSryt0+H(F}{*?CiE;BIECH> z5EY`&Wx!uG&f4>=>{RCKf~{*`n@2A=WQI)*CwP~DrFjW1lLuma)R0f)XZ1scq=+ta z3Lghe{F}veD!w48)s_2(q0SX>5Fx&N+B7(Huzf`#Q=x!|sAJazX9T0OEFe8!Em&{bro-TZFF^y=SJcLZ7g0qJOq}Ac)f%_6B z7%(BUmj67Sh9JH4f21!zzuTcqpZ~iu@*;cpH`us|zj_vUlw~*;3=_<`k{+f7hNR6zt@BGWJSeePJRt zpq2+83FL>mZS@6o_&EIUq0{AACcov*-?t3cyY@?hxd618H^)+i#i63~UIz-D6s zE~LZ&S0)*l0s!nyT4>zB0cNzT)h$t5Z1|xroQjR^uM=t|1S)4tobHvjT-1hZ@u^XT z5#3EE?7`v-=10t#uUU^X(`l6PT)n^i&W?dc1N&Q8*iycN{e6#o?tUcF_ZKU=MW$9f z=B{Kd!(-aB$mdQ#45tT<((KGk)9tfT|NcD`DWE1mv~C#Qier!1K$Y}1u7jAy| zf5?05s3_a6eRu#16bq3X0l}b4K{`e09=cUZ8tDcDy+siuq)QlT2&EgFZbrb7kY*@p z>2F`){XF**@3+3SzO{aT{NC#?g&Ah%n)5vO-p4-nar{9iLV1d9)q*Q|NtZx};207tW{fpN!ea4$yOgiYojn`g!ni=Nzj0uAzn&J2(H z4At(IH(HGR)!Nzy(nc&(&zwD#%50g_6TfnJWwE7L3rex$>_gZ0cDUi6@SQojYH9Qn zBGFBa@4arfGWnLy1@zZ!C8ZL6Za5*mTz7tUW)l-HWunBroA6HBH#L2y>c%|hU{-y! z;KV9KR(uxo_|dZ{2D|@68rsVK zo&St@7R}%<=^J=0T=G}S(fNrcMUc3eCWm?X|+BBXWHzzJ2-8=ZP z$fB(`{u}x*J!>vvd&QhM+ju^wyPuPN642^M=Ft3)0hJ5+&~jurx*^k#dkq~56X}D_ zfN-I{Ux=zrdhD7B1qLtzfMEP)w+M(0C$xWKjFxo8x5hNyB%8VqvVZHQ3ar-8_+f?!A-Cm~2bm|Se`Q1D}WhuTeasL4P-nn2V zHJE7)-C@nrSnCFpej*0^!rBs!#Ew1dM$2%CH6f%QU`B48-3)*k379yW>Br|j!`@-2 z+vAATKdMppJs0?mTMQL2gT3?CC)Urz*>`pGyz;Nx*jAa(1Q@fMTOU;gZjJ&BCKb$2 zqYU>jtRXT8U8sSNJw3A9aZx=hxEssMr8LE`K;1UirjJiX`G-uc$603?^oK2i?8=%N zQT|@y5K0D%D`1UHLoh^~x>pzSx1OWU{Hz=oWtdxKre1RIcFwpSo{6X#KKK9*-*?!( z6?ypv@~u!S@oB>5>Q1+QBjZ~tf0UoD0Pp|ZNw;=hIM1@OyFE8pDl3+_;0Utu-W`O4 zBp{ykvVUm$K%W|t!(`425PD-+0%bql{nbn!yR>#4VYsG9FT$A>(6e_pkaI*54JQQ- z@-~)C;rR zoI{R4vlFSNd={-1$cCrz!l{piZqZ(2pm<{sgYWfkeN&B%ij)PaHVU`HeyHVo`1$%d zXedt)%27U8s&IXdLamjOXBgiNzxet%sXOnRy0 zb9_(toIYWFXTBoasDj}MSv>=?_(M&%$~O_DR&RPO!Oi~Y&!r9{&PJP`D_WXY+ye~i z4x{Q5W3@Q4>CfAx0h^J+XV43o&Le}*XPSqg7%3h??(1-P=|o^hX;0W zv+rNV<9j&rGDLcA#hynE1;M`T+vTn3X3fg5$U&fe1mTBiw7WmjZ@z+wcyx|rQ_A5J{b_5!{BVd<)-Uv@1-KB#0-QkPTi^Cz>W7yDb=iUqZPvrXy{l; zE-fOE&{)f79XkfjUr~@UR{?~ILg}%#59)*zW3y>&;XNDYA}!vcWon^Q-vuI^WX!vl~BqjJ#YsBud!a2OE|uMjj5j+NAP$r7J3L zP!dO7M{usH3J1-~bDvj~s9>R^3LfjdU8&)ZgnWgRJgM9mYP>i2+8yVlSJ1Jf^6u7t zqR%L}B}umTL3>t%z4C07(^a7!eGR98FJER%jc&Ehh<|T3@5`%yardCHV%@AVb@|Q6|ca)tuZJyF&(%4ngt1>CzpPRU$F|nf$h%(dbArJ zl*8HaZgy||oqq_cAEkObJH_5!O(vI(s%xoGz-r*}L$}SaT-laxw#--8W6>`K!1NhDhx6?p#vw;eqvv8o&t<;2?MTh?QWrGP8#Y z$4ynES|a)7ETGepZW67?5y>fp4TaMEBj>b0Fo1^pSn=$bbUy%yO!)JG*RNZ zn}F`w&28U(wS}GR6$Bbg{mU*y)GNKWw^xxZp?M5&z;ur|m>=n5%Z6bQ1O@~dq%a_8 z-F}$GW8P?3;Ey13LXSY(A_=g>)zOCLUn3(UVmte&9AT$M9Z5^p{Q5BU(a(0Hv^W!0 z+uX8JpoKqczLP{!z&#*)zo>~~2;0$bo$Z`})J>^wbRyWyUO@zYZy9vlJ4F*Z4+^CT z$;DIoW~fd(*K4O}%3O08_?}3s#GsWbLyqVaodXpn#?25K0Tt6P&&$m=q0vQo>eK~Q z{|@CVmVQr_1F2B~YwD^esp#_$8mLSrn5<1t_T8OWl`7wMHCaMeWVyZB@*Qy*tv^-z zg5q7|g6A2zS|`u6kPU6z;aa+ODx2f%{Kk7V?x1lN{@mFfu@(i^`lNYxq3g)oI&tE} zT9q1`pr9^vorPh9Dr|PVV2U#GET}6W&Eyh?!NlPe5P&NR?xxUD0CE6K*%y*`iEUH$ zF8A=XeeUwVPxOusV83cUZx!pADo*+IDd6*x#76ZDO|xa8x|UHP9{{JjXX^DzZ9YAN z&u9D)jY5ngp-bX~&F4AZbMDS|P!~P=I6XF8H7Vi?RJ4geG)QD1Fd)ESuR+I1(BzD> zC-ASVDo*fjI{@rV_+IWD)H4A?pow9;++~1NK3+e#`f7q0!2~m>H)Mi$Z)3-|d>KF> zM1T;(#iw~eF#nkhF+<^kIGLGYb^C`{v9id4ZO#t&-l zs-F))ASAspk{yKeG`z+lb&4$8&iBK_n7tnpAj= zMawSRGpi zIs_TxhimE#HZx*=DwiyBdm8EL67WG|ZJ58n1~=|g6Vd>O#ul4ZDj>0fZtoV2v;1a% z)ohGNREs)1`*6wB<(eq^gincf!gNG?beuIllem6mw zD)+X@u3c%hk275)TSQzG@%j5mWp5@w$l^Z;`KZM~qyRyMdP2Upwt>MFIK4q=N<#kh zZ}9s>AMPILwNIA-(Pvr_ccwsKFMHXCER86ijg3qaqe7)0ERA)>ZJ(P=N3ya~8ep)a zEialb&$!df?zW70Ys%ZVq4E8_Zri>WA__4kY>lgKdsCUxeAXj0c41%P)Yj>;7 zeiKFp}6)xBTaN3#w?3F2p2;^bZ)O^ib`lX5OT14XE716u5wH0nNl$RpncJ2!B4; z0Ik}hn@=a(hG2IN9P2uuEYSIBz*UR8C=`n9y_75>;aN~ew>k3tywl+0(76c&*jxes z4IK^tfvny#4?7WBd-kMxJ0o?d^R(t9CE#rf{eb|kLt!=QgSq&8m^2X1n4*?mJY=oA znN7e8Mp${l+xQb$6=HpFE9`R;)cA_mZ$%FeW7b~HcfVGCGDGIu!gkhm?aIp=NIoBM z88YDL!oJl+M?c-4D|=Zc0CTn!TJR#C(5T9sKU`XLyPHO02MGbQ;(jW=gPY2w0-RVN z-0SQx>?A$0*((h2kX}OZ1blw^7cxlJi(&=H_*e8H zjqcxBpZ6|ynLbtBUHAezbHj7DFCIoxe}=;dMurkn9Sil@*w`80sMV?jyox^|~$wi6N`Wk^thbp|I>-SQp`ulr(sdao}I`uv$dvEsS%R>IUP%pS`=G3m* ztk=q}NCBv7n2`pzpBpKFB#$Gt3~K1){{TFQn_yLn6($4ciqD`K{v>(Kfh3iZ$FCz# z3O!9vPyZjt!@;=YR%0(r_mPJgKS>J&T71`p>{wKq^aAm9uld%;v6VZ?iAmM+b!{?8 zt)<$kn=b_U;8>guR_TW*t&-U}WDixHK@wz1uNdph-*krHm_qr%d_~Z)`a^n1BWXHbiSNeHv?WK0?Vwc+<%OYJ#5;vU? zSy5?z5Gmlu-vl)M5C9^iDuHHYNd*d@Cl_B&AvgIu`@cd9Zfqt#Rm<;#jP$G4-#|CQ zG-Hb>3t7+aNFaAEwXd~f@AK2tOZjJ*n#3BCw3N3W`=>W$S8YHfG4m!CP z$hTx`3wRweLAbp=$U4FA4@Ct)9SCjypz{*Z3FsLm{ge4ns-*!CkyWXGxmW%xd$HG1 z_IbH9)@R(;uKeIk>5k#GEOMRJhHP93pldQvcg1CEMN0VZG}B#xjn{r(V}ftzNp9@+ zUa5#X($SS*lL>%?Jq^5LN$Y0Ih^aNc9?RPKw@K!$(*F)jpkeXRN~TFfAVR<5>!TFD zyW4BuK=@*Km}|B03h*PKv&;$NNjG3}O9zs!F6T8+HS$1?K~!SvKT(WpPG1jgFV0`B z+};EnVjUUmuyog6+lv;S_>AO{nZ3^2n}5y?Ua8cNE@9ZR@<`{&0{E_B5>gQajK`d5QD z?8DF63Y(SgmW{pf8+0{95^@8YKr~Ji%bo3|V<<&0r=Btenj+%BIb^CpOJeB$r6*+dEP39SM^DRaXI&DM1z+>LAvKK!%BwkTr_A?e3DgNm(Z3^|P|G+(}a z31tT*_9tWm$B?55l?KS~ihj~Qmt)86;qk;5?SKx$F{KBrsqRO{u9`xZC7!Syu2&Q5 z1?kRI(5~hJ3^C=#;bMoufz`xpjf@v=GrcckMh>9fjcm&FZ?!6rgZ2>J@n=Q&Eni=R z)ug{V>RM5#C$zrl=@tVDg_2%|I$}4UJuc~>YiVR!Z|+_Xri?9cse~~f!DM5u8%cha zt?^lq$qI6}MPI$4_==7-I>F-e*d&aa3LV0^Mj(;ee2pV(T=vsr0em-Qz zBHV2t$^=6w-7r!#JBCakAY#|{&AD)35F?9!Ebb|(Tcdmhe<BywB_D)X&Tsb=Wpp{94b-U47uzB<6WNCEn{8 z{+i~hu9&2k{_@G{Ux1>c&%Su@0K4}L+u@@}k7~dakSl2afDE@}A_o_j3bf1BK}N&J zS5KQ3RY36VUJl;anct56`H>%}VUG6P@ywDRg*7#5zoaa#jrjf{dHfzhV(R-nZ+*)WMHSY8Hn){&tZ&k)9l zRf|54CTrwYa?D|QRy@xxHAHmfuXAEqQ~&{0?5YTrBK4E!+sw(2QS5u~6_{Y_Fp+FW10Ybr`FjSb6rhaL+= zcXV{bUb+219JHHZP{p4=T0!2{b_NGyI03d@2yB?U;YWvH_zjwJMn}@nh{T>c=RpRF zUmF|1rW$kcT{$VXJ$r}~@78Uf1o@3$zn>DQWGD*Y*cs_%i?$6@zdKGnGW{|the zNvmc73k*Ok;|&mL9h*XQMRngSBqO!T!wl}#Cv55rasppj^XU0$(_wM9QPFTpC#h!Y z2MKXY%U<5LD#1@*3fr#wu#-+qs2^vS@WV`Fh%uOVRiqgKqEU&Z5=-*;J;M^$PK0H8 zpd6`XKVIVVT9pAXq`sWfpUXdZ#_+~=>?1EFoF=UprjtoEQM5z>(iev#Y3H|WbHjE6 zzg)YrJJ}=F+6131)as5Y`iK`-JkRN4jC~T3n?df*2ElX^=36D=HE78J#gEw$4|316 znOOKsY@mn-l67|sy*5`LuR8ZT4>}ZF(DE>Qo-iOVF;4z*X(9&BdPBgzN10v!E^E$roz7<`;x=aKewFZ ziLQtF&ppzbCvI*_Hj{8>G@S39FW3~xbBijPacG)-`n?T1>$|qX zhx87iDc~<4>kE^H1bk_JEWceN!5bC&5F1WQgdQfOeZtAPRbIMVagu>CUq49Ey(P~k zaP)-J+R4zam;e@Bzyw>Yrb*{BmJZi@9g712EMk#T)W^cUpE_B7Bk?t9UCY)$+80BI z)g~psoiGz3R+g388p}UpZl0!zRN(8;N)*UYqBhMrL;cFJF-W1ZN!vPxkYB|bUn>LXSet${aytGS+?c6L`E+({L4h!+5?dN9T~C!%3)qg4VEGZj&BE{l zzVG2_60W(ZCKFHMZP#sVlgp&bC&u8`S<`5(Uu1`@KL4C9bloK?(={|?Qo5jM17BVO z(MyMSn68g-I!AnEXgF|FGr%lHW0x`KgXNCrr@CpF-C;wg{pmw@0VdAK0xkMSygR*R zgK$PMCp}^qI1QE>(i-#3CX`vm=_luy51%-7iVoWV6*bH{6!}V%FRk0FO$T}97(w_i z+ueOCm_CmYi$H{X&eqa`p0XA*W1gUb;eE5#IQY6WhPbq^n1>M340mdx4%~c7l1BVu zNj~qy8$3nHK^E13Bp==jEa&=j(~W%FzH1EM7!IHGB4$-3{j(rj-nC%6a676Nd*n~_ zG)+W@LQ3~4Gs7YmlcUokm3#Ms7DO%vJ{o^re>;1WdMbx!SBwKkmWLHoE%eGamC8WCfGAYF0m zVEgQO!+D&1)FXK+;$C7AMG?M-KH(omtByzvMQJ&`-%!0J{G5Py-VpspT zAZzuEbN)Y6btKQcTxB)Wp}cI=JMK#K(!cRStCkL#5tH0S1}Ub+^xDOd4=yrGiE(IM zS4=Yd=V@h3Z=l_{U!llSV$9_nr<^y@9ZOW%Rn43HUDW+-&>@Er?Hdj|Mg1xhyv>T8 zwR%EgeOVRTRfOaBjF->HVzBdwpc|qLVrM3P>s^4R&fs)kVMc)n6!TWwA?(F|at#^p z8135=%JMt=Y_$_yy<@F;m`w;5|yEWI?6(x*dLMJDaVXQJm15OQCGOG>g9b3 z^T*|}(17~K5-}a|!jTLO@k&Xw?;d(~QL&ZXxfy4h~%~Wj~jr!o%Agrb9cXc$R^278_Aihc3xcY2-Sd6Fy+$J+?i!smG?Z zOCWyT+r;Z?_GqlLi|!=j3IBpjp<+`B@m><4jiZ#Jx=NaCkw(;l^O-YF z@ojUqg&PqMu-KeMo|I^T?b|%3cmwBCP28*EwjUIv8%kr6>Pj@=FCO=4u{OwfcaL5xa^ zwDOyC@FJmXh!ua#8mOh?x??!*t9@n7c_3be&3Qe|urG3sE&ohwWw~DU6rGpDbdWU+ z)ghD$EfI>d_R%o*o(&B*jX+3?`K-peOWnF(5Owr`!a8w_IsF*kCkquo|bXCH3x5W+uN5J6e=+-KE@Sk1?+(*r$4ABy{jTn zg~}#W9Doi@h&8U}NW!x=jK9EKSHP^nvf2|bLg$+>pJvN9&Cv~xbHBz&SU*BoTk4!& zu_D6=yUk=;CW8D4BIt9i7RK#tV9au=qCbLFW4Vz%A4FGfKzW`x;IpL6XVp0xRJuvP z=6Ay+z3cpd5u(>wWn7?%+u~&FRYYs0X&A;2-$`}lzbIwdCQE4cT;lz)RsN@3!n11< zsV?Fd(G!njs`DBg-nzFSEn{{i*9?(H(KpiS5}EU2k9G&)GwP z+hNA^%o4Rn@!W6So-yJ4!`w0Br^Zb7!5r; z{RFEXgDIIsbCLgv=#7x3EnKtbqT;4GZ!t%1=~F>QyBO!OsO0`7^xJbf$HSB)Ve%BP zL8It4#_jYb;?;mw6J}vqyHw&QH%$@ z$$FZw-BmiAVa6J3hN1?GRu-BOs()j!P0~yf_jLi?x=hfwgjTdk*!G8yAB!zo&TT^u z?-p1CQkIjToGRZFkgl4P2b$nkpiyD{ttbo9Yug)dK@p&jXQ+E-pxOZOV$v_Q&!v5+ z$#-F0;Pxj*+@-06(-E(-Bf969t3x7vvNdzaBkq{Krlg{A{&B|c;{|8m52_Ruf__Yo zuCBUV7+uh+B4=DO5j2m^vR5_aR^h|Qo@T3>Kx_M3xR681ASgp1 zsuWt_iQz&%S=?jX1gIwwhM`i^#=YaTu9C5WqJL^|G<(cm}l)}?bvRj>W``Jr6+v~3DcXc8X&n)FhnI%Qk z!FKv2r-ZYJgF){X>CW#OjgJ)5t*tuK6Kl^F(Sx2iC=&m;5xo*v68cn-A$V=Dz09(zCFQqM)X>QhgfdAQa0J8!r1) zHS-_opjkgRMpFS~ni+^TWP_6Tn`21y)X{+iDXKS76!qbn(B>dNZZ8Y_8cQi;y z`uXiF3P@~|jMAS>M(v^w9ys(ZX}q93xZKxAhVAx@sfqGX_)H0tOXHO2Y;}G37#9cq zuHj;Nv*C`%u3?Y>{huC2K#*ykuv(I}4%sv$XP9tYo@`F2!BIbp3wbe-y0Un}U}YtV zD!pHtF{eZ<$Cr}aR$FH0-l?Y>4j46z>xIe1d+`#*I^qTvCJS#zW**2SuGGYS-96md zKly!d&;(I05i>6VDeu1QjN#8MO};P7ZHeDRAUX{6K0oh+Wm!~u-5-eFSf&D^IT-Zk z6=!9!Csx*e@+VkNj33b%PPiT@G=GGR>kyNLL41hmu)dU|=?7Zxu%y=`zLb>n*vYa- zNiXk_W@HM|OMhBtyZBZ1)LYUXqe&%~3qR%0A2K@fAihV0_<}5p%T)%2rr8m$=e!q` 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 diff --git a/results/query/exact_metadata_10000.json b/results/query/exact_metadata_10000.json index 9427ddb..c3e121d 100644 --- a/results/query/exact_metadata_10000.json +++ b/results/query/exact_metadata_10000.json @@ -8,26 +8,26 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1157, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_10000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '5488ee1b0cc520560b6cac5bcfc63439d219b24846747a3fed35772326388405'::text)", "Index Name": "string_encrypted_10000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1157, + "Plan Width": 36, "Relation Name": "string_encrypted_10000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } ], "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } } ], @@ -37,7 +37,7 @@ ], "parameters": [ { - "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", + "hm": "5488ee1b0cc520560b6cac5bcfc63439d219b24846747a3fed35772326388405", "i": { "c": "value", "t": "string_encrypted_10000" @@ -45,8 +45,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_10000 WHERE value = $1 LIMIT 1", - "rows_returned": 0 + "query": "SELECT id, value::jsonb FROM string_encrypted_10000 WHERE value = $1 LIMIT 1", + "rows_returned": 1 }, { "explain": [ @@ -56,26 +56,26 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1157, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_10000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '5488ee1b0cc520560b6cac5bcfc63439d219b24846747a3fed35772326388405'::text)", "Index Name": "string_encrypted_10000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1157, + "Plan Width": 36, "Relation Name": "string_encrypted_10000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } ], "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } } ], @@ -85,7 +85,7 @@ ], "parameters": [ { - "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", + "hm": "5488ee1b0cc520560b6cac5bcfc63439d219b24846747a3fed35772326388405", "i": { "c": "value", "t": "string_encrypted_10000" @@ -93,8 +93,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_10000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", - "rows_returned": 0 + "query": "SELECT id, value::jsonb FROM string_encrypted_10000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", + "rows_returned": 1 } ], "target_rows": "10000" diff --git a/results/query/exact_metadata_100000.json b/results/query/exact_metadata_100000.json index 376fc2a..56854ac 100644 --- a/results/query/exact_metadata_100000.json +++ b/results/query/exact_metadata_100000.json @@ -8,26 +8,26 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1159, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_100000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '78ef439942d7046b495cad3df8afc1555af6aff90d1d287a5dd3f18dadfa6ef7'::text)", "Index Name": "string_encrypted_100000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1159, + "Plan Width": 36, "Relation Name": "string_encrypted_100000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } ], "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } } ], @@ -37,7 +37,7 @@ ], "parameters": [ { - "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", + "hm": "78ef439942d7046b495cad3df8afc1555af6aff90d1d287a5dd3f18dadfa6ef7", "i": { "c": "value", "t": "string_encrypted_100000" @@ -45,8 +45,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_100000 WHERE value = $1 LIMIT 1", - "rows_returned": 0 + "query": "SELECT id, value::jsonb FROM string_encrypted_100000 WHERE value = $1 LIMIT 1", + "rows_returned": 1 }, { "explain": [ @@ -56,26 +56,26 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1159, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_100000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '78ef439942d7046b495cad3df8afc1555af6aff90d1d287a5dd3f18dadfa6ef7'::text)", "Index Name": "string_encrypted_100000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 1, - "Plan Width": 1159, + "Plan Width": 36, "Relation Name": "string_encrypted_100000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } ], "Startup Cost": 0.0, - "Total Cost": 8.02 + "Total Cost": 8.27 } } ], @@ -85,7 +85,7 @@ ], "parameters": [ { - "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", + "hm": "78ef439942d7046b495cad3df8afc1555af6aff90d1d287a5dd3f18dadfa6ef7", "i": { "c": "value", "t": "string_encrypted_100000" @@ -93,8 +93,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_100000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", - "rows_returned": 0 + "query": "SELECT id, value::jsonb FROM string_encrypted_100000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", + "rows_returned": 1 } ], "target_rows": "100000" diff --git a/results/query/exact_metadata_1000000.json b/results/query/exact_metadata_1000000.json index ce3e2a8..3735ed4 100644 --- a/results/query/exact_metadata_1000000.json +++ b/results/query/exact_metadata_1000000.json @@ -8,26 +8,26 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1161, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_1000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '1246c1084a30cdf8fad11d1b43ea7efa0966d7b8afed182d8041b6138a0cd67f'::text)", "Index Name": "string_encrypted_1000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 5000, - "Plan Width": 1161, + "Plan Width": 36, "Relation Name": "string_encrypted_1000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 19855.5 + "Total Cost": 21105.5 } ], "Startup Cost": 0.0, - "Total Cost": 3.97 + "Total Cost": 4.22 } } ], @@ -37,7 +37,7 @@ ], "parameters": [ { - "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", + "hm": "1246c1084a30cdf8fad11d1b43ea7efa0966d7b8afed182d8041b6138a0cd67f", "i": { "c": "value", "t": "string_encrypted_1000000" @@ -45,8 +45,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_1000000 WHERE value = $1 LIMIT 1", - "rows_returned": 0 + "query": "SELECT id, value::jsonb FROM string_encrypted_1000000 WHERE value = $1 LIMIT 1", + "rows_returned": 1 }, { "explain": [ @@ -56,26 +56,26 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1161, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_1000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '1246c1084a30cdf8fad11d1b43ea7efa0966d7b8afed182d8041b6138a0cd67f'::text)", "Index Name": "string_encrypted_1000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 5000, - "Plan Width": 1161, + "Plan Width": 36, "Relation Name": "string_encrypted_1000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 19855.5 + "Total Cost": 21105.5 } ], "Startup Cost": 0.0, - "Total Cost": 3.97 + "Total Cost": 4.22 } } ], @@ -85,7 +85,7 @@ ], "parameters": [ { - "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", + "hm": "1246c1084a30cdf8fad11d1b43ea7efa0966d7b8afed182d8041b6138a0cd67f", "i": { "c": "value", "t": "string_encrypted_1000000" @@ -93,8 +93,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_1000000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", - "rows_returned": 0 + "query": "SELECT id, value::jsonb FROM string_encrypted_1000000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", + "rows_returned": 1 } ], "target_rows": "1000000" diff --git a/results/query/exact_metadata_10000000.json b/results/query/exact_metadata_10000000.json index 5754a00..0de26ef 100644 --- a/results/query/exact_metadata_10000000.json +++ b/results/query/exact_metadata_10000000.json @@ -8,26 +8,26 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1162, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_10000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '3ad65b2ad0d1cd146d576dffe73c17884b1c3d7004d17efc546d7d9d7a6e0677'::text)", "Index Name": "string_encrypted_10000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 8, - "Plan Width": 1162, + "Plan Width": 36, "Relation Name": "string_encrypted_10000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 36.14 + "Total Cost": 38.14 } ], "Startup Cost": 0.0, - "Total Cost": 4.52 + "Total Cost": 4.77 } } ], @@ -37,7 +37,7 @@ ], "parameters": [ { - "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", + "hm": "3ad65b2ad0d1cd146d576dffe73c17884b1c3d7004d17efc546d7d9d7a6e0677", "i": { "c": "value", "t": "string_encrypted_10000000" @@ -45,8 +45,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_10000000 WHERE value = $1 LIMIT 1", - "rows_returned": 0 + "query": "SELECT id, value::jsonb FROM string_encrypted_10000000 WHERE value = $1 LIMIT 1", + "rows_returned": 1 }, { "explain": [ @@ -56,26 +56,26 @@ "Node Type": "Limit", "Parallel Aware": false, "Plan Rows": 1, - "Plan Width": 1162, + "Plan Width": 36, "Plans": [ { "Alias": "string_encrypted_10000000", "Async Capable": false, - "Index Cond": "(((value).data ->> 'hm'::text) = 'b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712'::text)", + "Index Cond": "(((value).data ->> 'hm'::text) = '3ad65b2ad0d1cd146d576dffe73c17884b1c3d7004d17efc546d7d9d7a6e0677'::text)", "Index Name": "string_encrypted_10000000_hash_index", "Node Type": "Index Scan", "Parallel Aware": false, "Parent Relationship": "Outer", "Plan Rows": 8, - "Plan Width": 1162, + "Plan Width": 36, "Relation Name": "string_encrypted_10000000", "Scan Direction": "Forward", "Startup Cost": 0.0, - "Total Cost": 36.14 + "Total Cost": 38.14 } ], "Startup Cost": 0.0, - "Total Cost": 4.52 + "Total Cost": 4.77 } } ], @@ -85,7 +85,7 @@ ], "parameters": [ { - "hm": "b8140713f4ae49445a3220c3d13c28af7a08e31776368d943d1cba2860870712", + "hm": "3ad65b2ad0d1cd146d576dffe73c17884b1c3d7004d17efc546d7d9d7a6e0677", "i": { "c": "value", "t": "string_encrypted_10000000" @@ -93,8 +93,8 @@ "v": 2 } ], - "query": "SELECT value FROM string_encrypted_10000000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", - "rows_returned": 0 + "query": "SELECT id, value::jsonb FROM string_encrypted_10000000 WHERE eql_v2.hmac_256(value) = eql_v2.hmac_256($1::jsonb) LIMIT 1", + "rows_returned": 1 } ], "target_rows": "10000000" diff --git a/results/query/exact_rows_10000.json b/results/query/exact_rows_10000.json index 816e07e..6da3388 100644 --- a/results/query/exact_rows_10000.json +++ b/results/query/exact_rows_10000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[207,414,621,828,1035,1242,1449,1656,1863,2070],"measured_values":[69605292.0,153778750.0,262115625.0,392969250.0,450985875.0,525830334.0,651438833.0,742552042.0,813430666.0,896136125.0],"unit":"ns","throughput":[],"typical":{"estimate":438271.2021707761,"lower_bound":431059.1118336843,"upper_bound":446068.9946122984,"unit":"ns"},"mean":{"estimate":423101.88975346985,"lower_bound":397187.2796296295,"upper_bound":444408.1960873399,"unit":"ns"},"median":{"estimate":434325.57367149764,"lower_bound":397410.05797101447,"upper_bound":448400.9915458937,"unit":"ns"},"median_abs_dev":{"estimate":19507.04146201411,"lower_bound":2748.7998382360533,"upper_bound":59711.669175413124,"unit":"ns"},"slope":{"estimate":438271.2021707761,"lower_bound":431059.1118336843,"upper_bound":446068.9946122984,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[215,430,645,860,1075,1290,1505,1720,1935,2150],"measured_values":[96176792.0,170847375.0,284474000.0,390858750.0,464007458.0,627755625.0,666678667.0,970461084.0,794557834.0,918344875.0],"unit":"ns","throughput":[],"typical":{"estimate":455526.525871338,"lower_bound":423339.53656073904,"upper_bound":506918.9956491929,"unit":"ns"},"mean":{"estimate":450341.1158678479,"lower_bound":426550.28985455894,"upper_bound":480715.8529863417,"unit":"ns"},"median":{"estimate":442010.4098560355,"lower_bound":421129.5241343669,"upper_bound":466983.0918604651,"unit":"ns"},"median_abs_dev":{"estimate":20274.382244708922,"lower_bound":5302.520529814924,"upper_bound":61494.36259476841,"unit":"ns"},"slope":{"estimate":455526.525871338,"lower_bound":423339.53656073904,"upper_bound":506918.9956491929,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[229,458,687,916,1145,1374,1603,1832,2061,2290],"measured_values":[93595417.0,178995291.0,272054209.0,357632792.0,398736125.0,460774750.0,679734250.0,741038750.0,842538125.0,951882041.0],"unit":"ns","throughput":[],"typical":{"estimate":399758.6593773039,"lower_bound":374058.59299437614,"upper_bound":412890.1905689825,"unit":"ns"},"mean":{"estimate":392256.46350627294,"lower_bound":374259.1545002426,"upper_bound":407625.43458637444,"unit":"ns"},"median":{"estimate":400250.17485443957,"lower_bound":369530.2849344978,"upper_bound":412191.31244541483,"unit":"ns"},"median_abs_dev":{"estimate":14271.599874248495,"lower_bound":3190.190877678714,"upper_bound":43625.66917976905,"unit":"ns"},"slope":{"estimate":399758.6593773039,"lower_bound":374058.59299437614,"upper_bound":412890.1905689825,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[228,456,684,912,1140,1368,1596,1824,2052,2280],"measured_values":[91814333.0,172843917.0,280237666.0,363445250.0,457242541.0,540411500.0,649079041.0,719653750.0,822811292.0,935739625.0],"unit":"ns","throughput":[],"typical":{"estimate":402416.9404761905,"lower_bound":396916.8624175488,"upper_bound":407127.36576489714,"unit":"ns"},"mean":{"estimate":399871.4852154692,"lower_bound":394068.19321244076,"upper_bound":404782.88396130956,"unit":"ns"},"median":{"estimate":401035.05501949316,"lower_bound":395037.6461988304,"upper_bound":406691.1284461153,"unit":"ns"},"median_abs_dev":{"estimate":8638.726236544251,"lower_bound":1270.796622906686,"upper_bound":14016.007034938057,"unit":"ns"},"slope":{"estimate":402416.9404761905,"lower_bound":396916.8624175488,"upper_bound":407127.36576489714,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[181,362,543,724,905,1086,1267,1448,1629,1810],"measured_values":[84221917.0,167678167.0,241057417.0,335311166.0,407649583.0,734987666.0,621671917.0,737714000.0,884550667.0,845484166.0],"unit":"ns","throughput":[],"typical":{"estimate":510890.179507785,"lower_bound":472225.38172939647,"upper_bound":560943.6241640012,"unit":"ns"},"mean":{"estimate":497306.89125317906,"lower_bound":464330.17740239424,"upper_bound":543635.6151635535,"unit":"ns"},"median":{"estimate":466216.391160221,"lower_bound":456820.4422651933,"upper_bound":516833.3737612909,"unit":"ns"},"median_abs_dev":{"estimate":28210.128678175657,"lower_bound":1660.4198199691891,"upper_bound":70194.01106146834,"unit":"ns"},"slope":{"estimate":510890.179507785,"lower_bound":472225.38172939647,"upper_bound":560943.6241640012,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107866209.0,204930500.0,308735541.0,440848584.0,498388958.0,596653667.0,704660750.0,782272459.0,922933541.0,1015660833.0],"unit":"ns","throughput":[],"typical":{"estimate":25281175.37727273,"lower_bound":24873395.86809363,"upper_bound":25706109.67699455,"unit":"ns"},"mean":{"estimate":25628491.368978176,"lower_bound":25107977.36141791,"upper_bound":26228814.33477902,"unit":"ns"},"median":{"estimate":25503916.6625,"lower_bound":24919447.9,"upper_bound":26301797.527777776,"unit":"ns"},"median_abs_dev":{"estimate":683426.7471692524,"lower_bound":87293.17606523597,"upper_bound":1561165.0157462815,"unit":"ns"},"slope":{"estimate":25281175.37727273,"lower_bound":24873395.86809363,"upper_bound":25706109.67699455,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[201,402,603,804,1005,1206,1407,1608,1809,2010],"measured_values":[90979875.0,170016000.0,226042084.0,297799209.0,393813000.0,581808917.0,621645584.0,732330417.0,829657208.0,905565583.0],"unit":"ns","throughput":[],"typical":{"estimate":445732.20379918587,"lower_bound":424597.83707463904,"upper_bound":457160.23966923374,"unit":"ns"},"mean":{"estimate":430151.39207158645,"lower_bound":406913.7116362632,"upper_bound":451769.7522120647,"unit":"ns"},"median":{"estimate":446176.79179104476,"lower_bound":391853.7313432836,"upper_bound":455631.8637368712,"unit":"ns"},"median_abs_dev":{"estimate":26466.010967613678,"lower_bound":4141.153436554465,"upper_bound":62095.0224922862,"unit":"ns"},"slope":{"estimate":445732.20379918587,"lower_bound":424597.83707463904,"upper_bound":457160.23966923374,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[111805750.0,203129333.0,297537583.0,410550875.0,506844791.0,592872875.0,702377917.0,792018916.0,902669917.0,1009260917.0],"unit":"ns","throughput":[],"typical":{"estimate":25073881.194805194,"lower_bound":24898909.046296295,"upper_bound":25239438.456043955,"unit":"ns"},"mean":{"estimate":25398331.242242064,"lower_bound":24973041.446724705,"upper_bound":26030453.675459825,"unit":"ns"},"median":{"estimate":25158224.26607143,"lower_bound":24794798.583333332,"upper_bound":25500834.61875,"unit":"ns"},"median_abs_dev":{"estimate":442087.6214388767,"lower_bound":70504.54754829592,"upper_bound":762332.7183958908,"unit":"ns"},"slope":{"estimate":25073881.194805194,"lower_bound":24898909.046296295,"upper_bound":25239438.456043955,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000","EXACT/exact_decrypt/eql_cast/10000","EXACT/exact/eql_hash/10000","EXACT/exact_decrypt/eql_hash/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_100000.json b/results/query/exact_rows_100000.json index 689c722..9b31ca1 100644 --- a/results/query/exact_rows_100000.json +++ b/results/query/exact_rows_100000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[209,418,627,836,1045,1254,1463,1672,1881,2090],"measured_values":[88676583.0,182810875.0,266267250.0,347445416.0,441557375.0,518371375.0,591088792.0,851950042.0,792352875.0,897431459.0],"unit":"ns","throughput":[],"typical":{"estimate":435215.425551482,"lower_bound":413948.4521356477,"upper_bound":465833.6764812597,"unit":"ns"},"mean":{"estimate":430202.48523923446,"lower_bound":417059.38460925047,"upper_bound":449842.44975279114,"unit":"ns"},"median":{"estimate":423416.4066985646,"lower_bound":415604.56459330145,"upper_bound":431007.6255980861,"unit":"ns"},"median_abs_dev":{"estimate":10221.398552840108,"lower_bound":1575.794505516896,"upper_bound":22311.061767057323,"unit":"ns"},"slope":{"estimate":435215.425551482,"lower_bound":413948.4521356477,"upper_bound":465833.6764812597,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[204,408,612,816,1020,1224,1428,1632,1836,2040],"measured_values":[83172042.0,171326417.0,255884292.0,354268583.0,431707333.0,517243666.0,608368458.0,682856291.0,752097917.0,828631917.0],"unit":"ns","throughput":[],"typical":{"estimate":415701.3076394194,"lower_bound":410383.7300404113,"upper_bound":424077.94793091656,"unit":"ns"},"mean":{"estimate":418599.1899647914,"lower_bound":413510.8978541521,"upper_bound":423777.5144560281,"unit":"ns"},"median":{"estimate":419167.2668504902,"lower_bound":409639.3883442266,"upper_bound":424306.5131886088,"unit":"ns"},"median_abs_dev":{"estimate":8107.065380298789,"lower_bound":1338.8622696128004,"upper_bound":16663.069135887035,"unit":"ns"},"slope":{"estimate":415701.3076394194,"lower_bound":410383.7300404113,"upper_bound":424077.94793091656,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[226,452,678,904,1130,1356,1582,1808,2034,2260],"measured_values":[93364917.0,202550958.0,267745417.0,371966834.0,459546667.0,526503583.0,853001083.0,740539208.0,794877583.0,891703208.0],"unit":"ns","throughput":[],"typical":{"estimate":416188.6774508677,"lower_bound":394116.7661292219,"upper_bound":463182.1678322619,"unit":"ns"},"mean":{"estimate":419670.468237112,"lower_bound":398778.3964798427,"upper_bound":449582.8801232793,"unit":"ns"},"median":{"estimate":408134.36814159295,"lower_bound":392850.00835791545,"upper_bound":429794.66261061945,"unit":"ns"},"median_abs_dev":{"estimate":19870.58310289038,"lower_bound":2615.923010195284,"upper_bound":35606.77425214541,"unit":"ns"},"slope":{"estimate":416188.6774508677,"lower_bound":394116.7661292219,"upper_bound":463182.1678322619,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[225,450,675,900,1125,1350,1575,1800,2025,2250],"measured_values":[92639709.0,185077708.0,291126708.0,357404625.0,465255125.0,558717084.0,636550208.0,725172208.0,802724416.0,877607458.0],"unit":"ns","throughput":[],"typical":{"estimate":400602.5433997114,"lower_bound":395155.3080970942,"upper_bound":409414.37318602734,"unit":"ns"},"mean":{"estimate":407234.2719234568,"lower_bound":400636.86547895055,"upper_bound":414437.1666666667,"unit":"ns"},"median":{"estimate":407721.3288888889,"lower_bound":397116.25,"upper_bound":413560.1111111111,"unit":"ns"},"median_abs_dev":{"estimate":8882.226790308969,"lower_bound":1580.7975119352398,"upper_bound":21337.086268524312,"unit":"ns"},"slope":{"estimate":400602.5433997114,"lower_bound":395155.3080970942,"upper_bound":409414.37318602734,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[191,382,573,764,955,1146,1337,1528,1719,1910],"measured_values":[87113125.0,172180208.0,280037542.0,354942500.0,582090625.0,506644000.0,603593792.0,707025667.0,999070708.0,917511041.0],"unit":"ns","throughput":[],"typical":{"estimate":498943.1148976678,"lower_bound":459768.81436530733,"upper_bound":545621.3566836768,"unit":"ns"},"mean":{"estimate":488747.82538789156,"lower_bound":458447.5566492147,"upper_bound":527048.7795173066,"unit":"ns"},"median":{"estimate":463648.7784685864,"lower_bound":451453.8459237098,"upper_bound":530782.6192262943,"unit":"ns"},"median_abs_dev":{"estimate":21971.200521608607,"lower_bound":4504.4708357364625,"upper_bound":74738.37832201159,"unit":"ns"},"slope":{"estimate":498943.1148976678,"lower_bound":459768.81436530733,"upper_bound":545621.3566836768,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[102038500.0,196967166.0,321210333.0,424483458.0,504357917.0,606321792.0,699482292.0,824788917.0,917215833.0,1002758125.0],"unit":"ns","throughput":[],"typical":{"estimate":25386018.913636364,"lower_bound":25153753.61452514,"upper_bound":25710407.29257642,"unit":"ns"},"mean":{"estimate":25521290.32681548,"lower_bound":25151285.864880953,"upper_bound":25941423.948214285,"unit":"ns"},"median":{"estimate":25370812.791666664,"lower_bound":25068953.125,"upper_bound":26019920.5625,"unit":"ns"},"median_abs_dev":{"estimate":512358.40356631594,"lower_bound":144149.39627833664,"upper_bound":1120196.8962812796,"unit":"ns"},"slope":{"estimate":25386018.913636364,"lower_bound":25153753.61452514,"upper_bound":25710407.29257642,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[207,414,621,828,1035,1242,1449,1656,1863,2070],"measured_values":[86892791.0,167035459.0,273098041.0,351665334.0,401137333.0,579410917.0,732051167.0,759322250.0,803093792.0,905393250.0],"unit":"ns","throughput":[],"typical":{"estimate":446825.8251082251,"lower_bound":427990.55209591513,"upper_bound":469515.6766505636,"unit":"ns"},"mean":{"estimate":437401.6787673491,"lower_bound":418724.4196622383,"upper_bound":457852.2273149203,"unit":"ns"},"median":{"estimate":434231.80810520664,"lower_bound":414091.93961352657,"upper_bound":458527.9287439613,"unit":"ns"},"median_abs_dev":{"estimate":28729.81602291482,"lower_bound":6446.218549163859,"upper_bound":55642.05251493388,"unit":"ns"},"slope":{"estimate":446825.8251082251,"lower_bound":427990.55209591513,"upper_bound":469515.6766505636,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[99406958.0,199434791.0,328383166.0,404310000.0,516886834.0,651317458.0,711320417.0,796263916.0,934359792.0,1008086833.0],"unit":"ns","throughput":[],"typical":{"estimate":25605497.18246753,"lower_bound":25210209.80862069,"upper_bound":26190605.70658468,"unit":"ns"},"mean":{"estimate":25684245.37988095,"lower_bound":25192009.923455358,"upper_bound":26256774.059446424,"unit":"ns"},"median":{"estimate":25336837.80357143,"lower_bound":24929348.875,"upper_bound":26491284.558333334,"unit":"ns"},"median_abs_dev":{"estimate":695849.9447836948,"lower_bound":80888.61598894,"upper_bound":1472358.259545416,"unit":"ns"},"slope":{"estimate":25605497.18246753,"lower_bound":25210209.80862069,"upper_bound":26190605.70658468,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/100000","EXACT/exact_decrypt/eql_cast/100000","EXACT/exact/eql_hash/100000","EXACT/exact_decrypt/eql_hash/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_1000000.json b/results/query/exact_rows_1000000.json index 84a2b0e..9ea6413 100644 --- a/results/query/exact_rows_1000000.json +++ b/results/query/exact_rows_1000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[85525167.0,203149917.0,266998542.0,344325167.0,461200500.0,540747500.0,633073208.0,741516917.0,877515917.0,850649083.0],"unit":"ns","throughput":[],"typical":{"estimate":414972.3141789717,"lower_bound":397929.595686847,"upper_bound":432943.23001230013,"unit":"ns"},"mean":{"estimate":415635.1304923172,"lower_bound":402260.994721135,"upper_bound":430706.5187558889,"unit":"ns"},"median":{"estimate":412245.6918895412,"lower_bound":393065.2591324201,"upper_bound":433200.6131405378,"unit":"ns"},"median_abs_dev":{"estimate":22368.719909896383,"lower_bound":3764.8883091873304,"upper_bound":40539.97523065211,"unit":"ns"},"slope":{"estimate":414972.3141789717,"lower_bound":397929.595686847,"upper_bound":432943.23001230013,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[186,372,558,744,930,1116,1302,1488,1674,1860],"measured_values":[77597917.0,148384625.0,240476875.0,308694834.0,369037458.0,467185666.0,610703750.0,2128099125.0,1075778208.0,834367708.0],"unit":"ns","throughput":[],"typical":{"estimate":646617.4921938276,"lower_bound":431541.2142833727,"upper_bound":976823.487394012,"unit":"ns"},"mean":{"estimate":546783.9418721198,"lower_bound":419063.67564516125,"upper_bound":756831.8219834868,"unit":"ns"},"median":{"estimate":424793.6451612903,"lower_bound":408038.251344086,"upper_bound":545612.0505376344,"unit":"ns"},"median_abs_dev":{"estimate":36843.638796378546,"lower_bound":3067.3949258654284,"upper_bound":168813.94837150164,"unit":"ns"},"slope":{"estimate":646617.4921938276,"lower_bound":431541.2142833727,"upper_bound":976823.487394012,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[123,246,369,492,615,738,861,984,1107,1230],"measured_values":[61339167.0,491076417.0,422012375.0,258918084.0,282731125.0,366530458.0,416504833.0,452488333.0,474436041.0,549299875.0],"unit":"ns","throughput":[],"typical":{"estimate":491107.66442825465,"lower_bound":453111.76952927513,"upper_bound":593539.1409250896,"unit":"ns"},"mean":{"estimate":693999.3154907086,"lower_bound":467882.84123403026,"upper_bound":1013513.4465543941,"unit":"ns"},"median":{"estimate":490199.5938830817,"lower_bound":453215.5655487805,"upper_bound":821178.6937669376,"unit":"ns"},"median_abs_dev":{"estimate":49319.326968309375,"lower_bound":9830.084564200683,"upper_bound":500062.5049172378,"unit":"ns"},"slope":{"estimate":491107.66442825465,"lower_bound":453111.76952927513,"upper_bound":593539.1409250896,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[176,352,528,704,880,1056,1232,1408,1584,1760],"measured_values":[79154125.0,172735166.0,234648250.0,309587167.0,430295542.0,453317208.0,481580208.0,527791833.0,539647542.0,684373667.0],"unit":"ns","throughput":[],"typical":{"estimate":391562.27126623376,"lower_bound":368413.3837068727,"upper_bound":428646.6060324434,"unit":"ns"},"mean":{"estimate":423815.86129531934,"lower_bound":394720.84598462866,"upper_bound":452203.9646365158,"unit":"ns"},"median":{"estimate":434516.0788352273,"lower_bound":382872.59004667203,"upper_bound":466690.8856060606,"unit":"ns"},"median_abs_dev":{"estimate":66191.01479513031,"lower_bound":7401.767699416227,"upper_bound":80840.81477558413,"unit":"ns"},"slope":{"estimate":391562.27126623376,"lower_bound":368413.3837068727,"upper_bound":428646.6060324434,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[199,398,597,796,995,1194,1393,1592,1791,1990],"measured_values":[89321083.0,182293041.0,271971042.0,353156416.0,458482375.0,538532458.0,640962917.0,689351791.0,830115250.0,901595917.0],"unit":"ns","throughput":[],"typical":{"estimate":452843.48684983357,"lower_bound":443606.210711452,"upper_bound":459988.2337694218,"unit":"ns"},"mean":{"estimate":452761.47262283636,"lower_bound":447006.8483598548,"upper_bound":457710.2243160245,"unit":"ns"},"median":{"estimate":454313.0796482412,"lower_bound":447348.0242881072,"upper_bound":460131.3115577889,"unit":"ns"},"median_abs_dev":{"estimate":8363.085692731567,"lower_bound":2048.6495658904787,"upper_bound":14699.061530329289,"unit":"ns"},"slope":{"estimate":452843.48684983357,"lower_bound":443606.210711452,"upper_bound":459988.2337694218,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[106246125.0,206738958.0,302856542.0,393445083.0,511486750.0,626236292.0,719969708.0,800036750.0,940479583.0,991864958.0],"unit":"ns","throughput":[],"typical":{"estimate":25415567.06753247,"lower_bound":24984630.432091348,"upper_bound":25909403.70018797,"unit":"ns"},"mean":{"estimate":25553518.929325394,"lower_bound":25176889.93203274,"upper_bound":25922428.54613095,"unit":"ns"},"median":{"estimate":25643770.67857143,"lower_bound":25001148.4375,"upper_bound":26093178.833333332,"unit":"ns"},"median_abs_dev":{"estimate":689461.1288012837,"lower_bound":198692.30339750648,"upper_bound":1066228.8209706545,"unit":"ns"},"slope":{"estimate":25415567.06753247,"lower_bound":24984630.432091348,"upper_bound":25909403.70018797,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[202,404,606,808,1010,1212,1414,1616,1818,2020],"measured_values":[86514416.0,179933625.0,269747584.0,362459208.0,465019375.0,552870041.0,654404875.0,722466750.0,855492750.0,926324750.0],"unit":"ns","throughput":[],"typical":{"estimate":458673.37978655007,"lower_bound":451532.95370012266,"upper_bound":464723.9372226851,"unit":"ns"},"mean":{"estimate":452298.39263908536,"lower_bound":445029.3945833333,"upper_bound":459070.2850483263,"unit":"ns"},"median":{"estimate":452375.76443894394,"lower_bound":445380.2599009901,"upper_bound":460690.31117397454,"unit":"ns"},"median_abs_dev":{"estimate":10558.515532845951,"lower_bound":1627.31341331241,"upper_bound":20927.871125980775,"unit":"ns"},"slope":{"estimate":458673.37978655007,"lower_bound":451532.95370012266,"upper_bound":464723.9372226851,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[98064041.0,203157083.0,314924875.0,415932083.0,494401083.0,616274792.0,730634875.0,805127125.0,936487125.0,1007513667.0],"unit":"ns","throughput":[],"typical":{"estimate":25546439.773376625,"lower_bound":25224505.440615837,"upper_bound":25923619.53918639,"unit":"ns"},"mean":{"estimate":25500400.91389881,"lower_bound":25143614.88240476,"upper_bound":25842179.129061755,"unit":"ns"},"median":{"estimate":25536375.854166664,"lower_bound":24953947.9125,"upper_bound":26044928.933035716,"unit":"ns"},"median_abs_dev":{"estimate":694253.1824057959,"lower_bound":86082.3887342325,"upper_bound":1018582.1561465533,"unit":"ns"},"slope":{"estimate":25546439.773376625,"lower_bound":25224505.440615837,"upper_bound":25923619.53918639,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/1000000","EXACT/exact_decrypt/eql_cast/1000000","EXACT/exact/eql_hash/1000000","EXACT/exact_decrypt/eql_hash/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_10000000.json b/results/query/exact_rows_10000000.json index bfd444e..5bc97fa 100644 --- a/results/query/exact_rows_10000000.json +++ b/results/query/exact_rows_10000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[125234541.0,178240833.0,312955750.0,395838084.0,492416750.0,539834834.0,542035791.0,630620417.0,1005461625.0,923858750.0],"unit":"ns","throughput":[],"typical":{"estimate":424977.5786633458,"lower_bound":381855.445933832,"upper_bound":472319.45449840126,"unit":"ns"},"mean":{"estimate":441303.1753669276,"lower_bound":404062.63236029574,"upper_bound":481844.9371058926,"unit":"ns"},"median":{"estimate":435774.48630136985,"lower_bound":385388.1836948249,"upper_bound":480998.8112633181,"unit":"ns"},"median_abs_dev":{"estimate":51444.752847175376,"lower_bound":11053.353164722666,"upper_bound":114039.32799491778,"unit":"ns"},"slope":{"estimate":424977.5786633458,"lower_bound":381855.445933832,"upper_bound":472319.45449840126,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000000","iteration_count":[218,436,654,872,1090,1308,1526,1744,1962,2180],"measured_values":[89166583.0,177308708.0,271284708.0,366404125.0,432414125.0,617699791.0,695511708.0,724191791.0,797675833.0,929894959.0],"unit":"ns","throughput":[],"typical":{"estimate":425731.82848802576,"lower_bound":411362.71176241577,"upper_bound":443877.6105410007,"unit":"ns"},"mean":{"estimate":422378.8659318116,"lower_bound":409972.9989844546,"upper_bound":437575.8756323722,"unit":"ns"},"median":{"estimate":415028.0043004587,"lower_bound":406671.34862385324,"upper_bound":437981.2997214941,"unit":"ns"},"median_abs_dev":{"estimate":12470.188381228372,"lower_bound":1822.424431559878,"upper_bound":35541.87236198723,"unit":"ns"},"slope":{"estimate":425731.82848802576,"lower_bound":411362.71176241577,"upper_bound":443877.6105410007,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000000","iteration_count":[229,458,687,916,1145,1374,1603,1832,2061,2290],"measured_values":[77008791.0,151795167.0,248707958.0,314361125.0,494198458.0,562001583.0,630408791.0,724880584.0,851822958.0,906719750.0],"unit":"ns","throughput":[],"typical":{"estimate":398941.52575284976,"lower_bound":386945.17016593885,"upper_bound":408224.0008892707,"unit":"ns"},"mean":{"estimate":381176.14522457885,"lower_bound":360246.3868159959,"upper_bound":401472.9873404034,"unit":"ns"},"median":{"estimate":394472.64566437923,"lower_bound":343189.0010917031,"upper_bound":409025.89737991267,"unit":"ns"},"median_abs_dev":{"estimate":38017.82124120592,"lower_bound":2186.6028135818283,"upper_bound":56202.77249466861,"unit":"ns"},"slope":{"estimate":398941.52575284976,"lower_bound":386945.17016593885,"upper_bound":408224.0008892707,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000000","iteration_count":[224,448,672,896,1120,1344,1568,1792,2016,2240],"measured_values":[88018459.0,176816834.0,271716917.0,361635500.0,423640333.0,528281167.0,635637125.0,710688000.0,898289917.0,921683500.0],"unit":"ns","throughput":[],"typical":{"estimate":410802.8950950835,"lower_bound":394445.8379796935,"upper_bound":426719.93732814735,"unit":"ns"},"mean":{"estimate":402590.45927791955,"lower_bound":393387.2778229166,"upper_bound":413980.30863555835,"unit":"ns"},"median":{"estimate":400100.1674107143,"lower_bound":393066.34449404763,"upper_bound":407903.2492559524,"unit":"ns"},"median_abs_dev":{"estimate":9231.821856414957,"lower_bound":1290.517233338733,"upper_bound":22198.63721122384,"unit":"ns"},"slope":{"estimate":410802.8950950835,"lower_bound":394445.8379796935,"upper_bound":426719.93732814735,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000000","iteration_count":[181,362,543,724,905,1086,1267,1448,1629,1810],"measured_values":[82866000.0,191552125.0,254501083.0,352039333.0,414966875.0,503185334.0,572650875.0,683553292.0,741485750.0,818798583.0],"unit":"ns","throughput":[],"typical":{"estimate":460212.6318576451,"lower_bound":454969.0425511292,"upper_bound":469564.0473257318,"unit":"ns"},"mean":{"estimate":469536.8953753399,"lower_bound":458174.8203534596,"upper_bound":484885.0370450759,"unit":"ns"},"median":{"estimate":460932.58931860037,"lower_bound":455099.05607734807,"upper_bound":477468.3082412523,"unit":"ns"},"median_abs_dev":{"estimate":12097.671893013432,"lower_bound":2482.205918178794,"upper_bound":25105.803037349167,"unit":"ns"},"slope":{"estimate":460212.6318576451,"lower_bound":454969.0425511292,"upper_bound":469564.0473257318,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101999167.0,193049250.0,301860833.0,414573209.0,523072000.0,609719625.0,742071042.0,826884458.0,938018625.0,1026742708.0],"unit":"ns","throughput":[],"typical":{"estimate":25873258.711038962,"lower_bound":25637296.973765418,"upper_bound":26123515.57210203,"unit":"ns"},"mean":{"estimate":25632274.449761905,"lower_bound":25211082.237014882,"upper_bound":25983738.682440475,"unit":"ns"},"median":{"estimate":25754353.50625,"lower_bound":25327430.583333336,"upper_bound":26056072.916666668,"unit":"ns"},"median_abs_dev":{"estimate":482651.92736871634,"lower_bound":144593.6511829477,"upper_bound":967319.9744891385,"unit":"ns"},"slope":{"estimate":25873258.711038962,"lower_bound":25637296.973765418,"upper_bound":26123515.57210203,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000000","iteration_count":[209,418,627,836,1045,1254,1463,1672,1881,2090],"measured_values":[91735208.0,198276709.0,321772375.0,373703833.0,451170000.0,553675459.0,684482875.0,750817709.0,827705458.0,936223833.0],"unit":"ns","throughput":[],"typical":{"estimate":449087.59194680915,"lower_bound":442614.8440619411,"upper_bound":458711.5213431822,"unit":"ns"},"mean":{"estimate":455165.24408768135,"lower_bound":442887.88466440246,"upper_bound":470920.307136449,"unit":"ns"},"median":{"estimate":447484.0706937799,"lower_bound":440034.7995746943,"upper_bound":467862.52563226246,"unit":"ns"},"median_abs_dev":{"estimate":11867.398561313177,"lower_bound":1511.880879797478,"upper_bound":33465.186034283244,"unit":"ns"},"slope":{"estimate":449087.59194680915,"lower_bound":442614.8440619411,"upper_bound":458711.5213431822,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[115502583.0,195440750.0,303108083.0,404110500.0,524869625.0,600707584.0,711481375.0,834392292.0,906680250.0,1015706792.0],"unit":"ns","throughput":[],"typical":{"estimate":25476261.0987013,"lower_bound":25232946.600550964,"upper_bound":25801007.389657825,"unit":"ns"},"mean":{"estimate":25715765.71154762,"lower_bound":25131077.069285713,"upper_bound":26524888.454166666,"unit":"ns"},"median":{"estimate":25325838.358333334,"lower_bound":25143194.458333336,"upper_bound":26074759.125,"unit":"ns"},"median_abs_dev":{"estimate":323674.96226862125,"lower_bound":54444.34510842334,"upper_bound":1326473.708565382,"unit":"ns"},"slope":{"estimate":25476261.0987013,"lower_bound":25232946.600550964,"upper_bound":25801007.389657825,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000000","EXACT/exact_decrypt/eql_cast/10000000","EXACT/exact/eql_hash/10000000","EXACT/exact_decrypt/eql_hash/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/src/lib.rs b/src/lib.rs index 0d514da..2ddcc0d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -32,6 +32,48 @@ impl Dummy for String { } } +/// Sample a single plaintext string from an encrypted table by decrypting +/// the first row. Used by `benches/exact.rs` to derive a search term that's +/// guaranteed to match at least one record — the previous hardcoded +/// `"Bob Johnson"` returned zero rows at every tier because `fake::Name` +/// doesn't generate that exact combination, so the EXACT bench was secretly +/// measuring "hash-index lookup + nothing found + LIMIT 1 early exit" +/// rather than realistic equality-query cost. +pub async fn sample_plaintext_string( + pool: &sqlx::PgPool, + cipher: Arc>, + table_name: &str, +) -> Result { + // `value::jsonb` cast is needed because the column type is the custom + // `eql_v2_encrypted` Postgres type — sqlx's JSONB decoder doesn't know + // how to read that directly. Every other bench file does the same cast + // in its SELECT shape (e.g. `SELECT id, value::jsonb FROM ...`). + let row: (Json,) = + sqlx::query_as(&format!("SELECT value::jsonb FROM {} LIMIT 1", table_name)) + .fetch_one(pool) + .await + .with_context(|| format!("sample query failed against {}", table_name))?; + + let decrypted = decrypt_eql(cipher, vec![row.0 .0], &Default::default()) + .await + .context("sample decrypt failed")?; + + // `Plaintext` implements `Drop` (for zeroizing on drop), so we can't + // move the inner String out via pattern match — borrow + clone instead. + let pt = decrypted + .into_iter() + .next() + .ok_or_else(|| anyhow::anyhow!("decrypt_eql returned empty Vec for {}", table_name))?; + match &pt { + Plaintext::Utf8Str(Some(s)) => Ok(s.clone()), + other => anyhow::bail!( + "expected Utf8Str sample from {}, got {:?}", + table_name, + other + ), + } +} + /// Install a tracing subscriber honouring `RUST_LOG` (defaults to `warn` if /// unset). Idempotent — calling twice is a no-op. Lets cipherstash-client /// / zerokms-protocol trace! emissions reach stderr, including the rich From a2d1a55fae07488f0745b211b17ca8c674618b8a Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Sun, 17 May 2026 17:44:00 +1000 Subject: [PATCH 29/30] feat: use pg image with pgvector installed --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index ae40242..c23005b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '3.8' services: postgres: - image: postgres:17 + image: pgvector/pgvector:pg17 container_name: ore-benches-postgres environment: POSTGRES_USER: postgres From 619d7b3e53ee4ac689301867a4b2709e1bfb7c79 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Sun, 17 May 2026 19:09:34 +1000 Subject: [PATCH 30/30] results: refresh MATCH 100k + 1M after verification re-run MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two consecutive runs confirmed the modest ~1.2x slowness on bloom-form MATCH scenarios (`eql_bloom`, `eql_cast_lastname`) at both 100k and 1M. `eql_cast_firstname` (short substring, few trigrams) is unaffected. Pattern fits a cipherstash-client version difference — the bench is currently pinned to the suite-main branch carrying the error-visibility fixes (PR #1960) vs main's crates.io 0.34.1-alpha.4. Should disappear when the fix lands in a published release and we revert to a crates.io pin. Refreshed `report/match.md` + the three match chart PNGs against the post-rerun numbers. Other report sections unchanged (no source data moved). --- report/match.md | 36 +++--- report/query_match_eql_bloom_chart.png | Bin 46728 -> 47157 bytes .../query_match_eql_cast_firstname_chart.png | Bin 45357 -> 44205 bytes .../query_match_eql_cast_lastname_chart.png | Bin 49071 -> 48995 bytes results/query/match_metadata_100000.json | 106 ++++++++--------- results/query/match_metadata_1000000.json | 108 +++++++++--------- results/query/match_rows_100000.json | 12 +- results/query/match_rows_1000000.json | 12 +- 8 files changed, 137 insertions(+), 137 deletions(-) diff --git a/report/match.md b/report/match.md index a165534..d41391a 100644 --- a/report/match.md +++ b/report/match.md @@ -44,8 +44,8 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| | 10,000 | 10 | 1.02ms | 28.36ms | -| 100,000 | 10 | 4.30ms | 30.88ms | -| 1,000,000 | 10 | 21.50ms | 47.99ms | +| 100,000 | 10 | 3.48ms | 27.41ms | +| 1,000,000 | 10 | 21.50ms | 44.84ms | | 10,000,000 | 10 | ⚠️ 215.72ms | ⚠️ 237.82ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -139,7 +139,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,835,702,523,1061,518,290,242,1846,1659,1185,97,1609,1987,1988,450,1098,1381,1967,513,461,1665,543,44,1196,574,765,237,2024,1715}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{461,518,1659,1988,1098,44,765,574,513,2024,290,450,702,543,1967,1196,1381,1715,1185,97,237,1609,1061,1846,1665,242,820,835,1987,523}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -150,7 +150,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 458.47 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,835,702,523,1061,518,290,242,1846,1659,1185,97,1609,1987,1988,450,1098,1381,1967,513,461,1665,543,44,1196,574,765,237,2024,1715}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{461,518,1659,1988,1098,44,765,574,513,2024,290,450,702,543,1967,1196,1381,1715,1185,97,237,1609,1061,1846,1665,242,820,835,1987,523}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 458.48, "Total Cost": 462.99 @@ -194,7 +194,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1987,518,1061,450,1715,1846,1659,1609,44,1381,574,97,242,702,290,1967,237,1185,1988,543,1196,765,461,2024,820,513,1098,1665,835}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1196,1967,1988,702,2024,1665,1185,290,835,765,461,523,1987,1715,1659,543,518,820,574,1098,450,242,1061,237,1609,97,513,1381,44,1846}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -205,7 +205,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 1526.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1987,518,1061,450,1715,1846,1659,1609,44,1381,574,97,242,702,290,1967,237,1185,1988,543,1196,765,461,2024,820,513,1098,1665,835}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1196,1967,1988,702,2024,1665,1185,290,835,765,461,523,1987,1715,1659,543,518,820,574,1098,450,242,1061,237,1609,97,513,1381,44,1846}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1526.85, "Total Cost": 1531.36 @@ -315,8 +315,8 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| | 10,000 | 10 | 729.02μs | 28.41ms | -| 100,000 | 10 | 1.10ms | 27.02ms | -| 1,000,000 | 10 | 4.67ms | 31.79ms | +| 100,000 | 10 | 1.04ms | 25.62ms | +| 1,000,000 | 10 | 4.65ms | 28.34ms | | 10,000,000 | 10 | 35.48ms | 60.96ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -410,7 +410,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,36,1555,1789,1603,10}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1555,10,36,1603,1164,1789}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -421,7 +421,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,36,1555,1789,1603,10}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1555,10,36,1603,1164,1789}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -465,7 +465,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,36,1164,10,1555,1603}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{36,10,1164,1555,1603,1789}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -476,7 +476,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 307.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,36,1164,10,1555,1603}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{36,10,1164,1555,1603,1789}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 307.85, "Total Cost": 312.36 @@ -588,8 +588,8 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Rows Returned | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|---------------|-------------------------|---------------------------| | 10,000 | 10 | 1.55ms | 30.64ms | -| 100,000 | 10 | 3.04ms | 29.65ms | -| 1,000,000 | 10 | 21.57ms | 46.18ms | +| 100,000 | 10 | 3.12ms | 27.96ms | +| 1,000,000 | 10 | 21.38ms | 44.58ms | | 10,000,000 | 10 | ⚠️ 210.49ms | ⚠️ 241.26ms | _Rows Returned is the actual count from a one-shot pre-bench execution. For LIMIT-bounded queries it matches the LIMIT (or is lower when the table doesn't have enough matching rows); for aggregates wrapped in `count(*)` it's 1._ @@ -683,7 +683,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1659,513,820,290,1196,237,242,1061,450,543,1665,765,835,1609,1185,1381,461,574,1988,1967,1846,523,97,44,1715,518,1987,2024,1098,702}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1185,518,820,835,1987,237,574,1715,702,1988,290,1196,513,242,97,44,1609,461,1381,2024,765,1659,1967,1665,523,1846,450,1098,543,1061}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -694,7 +694,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 458.47 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1659,513,820,290,1196,237,242,1061,450,543,1665,765,835,1609,1185,1381,461,574,1988,1967,1846,523,97,44,1715,518,1987,2024,1098,702}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1185,518,820,835,1987,237,574,1715,702,1988,290,1196,513,242,97,44,1609,461,1381,2024,765,1659,1967,1665,523,1846,450,1098,543,1061}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 458.48, "Total Cost": 462.99 @@ -738,7 +738,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1061,1967,702,820,1988,835,523,290,237,1098,1185,1715,574,1665,97,44,1659,450,765,513,1987,242,518,2024,1846,543,1609,1196,1381,461}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1987,543,1609,574,765,835,461,1967,513,1665,97,523,1185,1061,450,1846,702,1659,2024,518,1196,1098,242,237,1381,1715,1988,44,820,290}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -749,7 +749,7 @@ Full `EXPLAIN (FORMAT JSON)`: "Total Cost": 1526.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1061,1967,702,820,1988,835,523,290,237,1098,1185,1715,574,1665,97,44,1659,450,765,513,1987,242,518,2024,1846,543,1609,1196,1381,461}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1987,543,1609,574,765,835,461,1967,513,1665,97,523,1185,1061,450,1846,702,1659,2024,518,1196,1098,242,237,1381,1715,1988,44,820,290}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1526.85, "Total Cost": 1531.36 diff --git a/report/query_match_eql_bloom_chart.png b/report/query_match_eql_bloom_chart.png index 055d407307d34f4a52d574d583e487edc5228bfe..64066470212dda007d6c7de113c3b04c59e64ed6 100644 GIT binary patch literal 47157 zcmZs@2UJtp7d4JL>IjxmDFOnP0S$E|^lC#&sG&)h7NqxHEr1|RdgurVhAM2K)(Px%5BqKQR}Xr!MOD2p4x_Cvz$#V;2V-dlwr^lN)a4PR^G0c2M4X z|M7}&-+1og;@~XC$7lP$U+~&HS@3<QT`7cj@Wrb*0vXr#M*o3~2{dh{@UO0=mP&VC(sA7|%P zKI7Fk^4+xTq>xAK4_yl(b}20|zPgQ~b&K|-xS5ntI7D;{}eO4SXA$)oMlQao>Nl@OW;KcwYDYjX|Igel{rnf`j3^HHedAK*{3j=R@f8hPmYxeMniVk(~dQHb^`w$8YYP6hZ@bX)xkDolTY7C`2toED1BgH&^ zW>7Qm+7QpO`KYR?so_T2!_XFKo=pr!j*WB+V2nx4AK<7^iu2||ztu>2fp0CX>*9cB zj&drAxH49wT~8q=)AQ;lF4uy|j;eZ!1B36`iag`LBF)?s#+a3ucx__S9=C&*V2zZ# z`1ju;IXdv^wgm0x&p${;L`D+6hFtZn2)}mkq5Fhy#fr&fA8+;Cdx45%Se4T>$+jWr z0!%%MzcC*LOIT=RFzTahO%#D8(4?W~{+Q4d&TR2k<q8!UOBJ?iU9|-B*4XY; z_i@bJ+?=yl3b8qIWNT^iEuU8A!$8uaaM5CJUSUrkM!nNRTHWKi!1E|h&0Mqe3GN>P zRimy1gJGQSUVVqKZz-JbL8`PrZn(nUe#IhfC0@_2yE{vEscObES-{eyd7zeeJ<-w8 zk?|Tk6_pd@5*5`a%l(aB6?D&3jlTC%8ID*n;Wv_Ym5y%u+@(tu1VO95Z|a#3Pfv)x zI(zAWVA|Bw(;w{uKw zv#y>nT2I8RSf{OPT)uqSvg01nB@=9d0rg^&MuE=c-78nFOd`cxt&;YxOL%mt*LiLB zrr9@5DHiqC+CvBxwj<J@Ft) z3lbqm8x-Y#c)+P!`ax0%wjK87&EFGY2_tqjOZk!aOq;?4!W;KC=1ut^^gO!RAaGI% z;{5K*qXNZ9!8kQGzwJ!h*0fzGUKkzp5gZ;}ShFlPVS_el44ntDNgzf_+gZG2M7TvD zFPQE6qCDm@gGoKDv$o8Tq% zG?G=4L@cxFZ*?EDNcW9Lc+M8pA6QwKA=z_+keY52zFR{`Wn*JwvKUsP)O%~$QYr?6 zoaNRj$!7KVenMQ2GZ1NsK+I?s==SqM1)*JV#l-&}h`TQ<&dz}_X%jV|J4Hpc?6MG+ zfP`8MBb6YlDWc92nt57f%^)_h*o+P#^@UchB1I@oqlg@EsKS|T)3?a&&ks!{efCMG5lFJ8RBjl6vI zN>bd7^s%DAuuiO<=)2jkJu6{HMK$#Vf0Tyjg`B43PM`7Gl4q3isT?RWvX8W{{Bb7m z_3QmvU-zY9)Cz8|gCPeW#ZU1l#O+#5Y=Vf?26vC}(k=(PvWQW8h9871c6@7V!e0ey zo$Ix^fJ>8|sgsk$k|L!KKKd8xU^$c~ia=oQdc8#MA(65==HEZPz!5VtZh$n_#*mz* z>`f-^bnYGQ%%)pTetva!FGA@O_Qa_(+a|rT_*%01iUrds1E1k2gOTTSoLkcnGVONY zypd+HiHx@mLK}sPtSWGs@3CYe<%sm+xxkXrAJw8LJ2Vojvus8hEN;+#{$FD*c4sO^ z#YT-?X2IMW{XF^$DQpV_Xu5U;2AR6eZv_%kxtjaJTb&Y*LLr;M4DaQtS)&Ay3AggM zl*T?%Y{*L^7Kai(+YU*K>I`P*dq0Zjr7Tscv~SuJ9ro>|Gv&~}hEJ@x6bWy-T5#S% z(Wb%^XBKj5cu=azx6E5^P*H8$TOQJY%IQFlPFGuCltRn7E<|qiG78)2Cspc}SshkA zGFli?pZ&6-$nWb1mmVl180L|39e#YlnPR<1V^pL(o1EJVeV%-NdAe8Mp4u0aYU>6^ z@OK(yJqd?OZDFbo2#YFJ{_k$dbZmPdEO4=VsM_V;y74{&YIIfu{oRWrhyFdtbycQl zP_{+xpsQRKg8Jtz9S*?iS@-8^&ih5^U=fyw2NXsx3*FM^nejY&Xv;!BbkHyj11~-r zJ+U-gwnqr#a=v!~+sT1KR$XRh&J%N87~~kqG32e9x-zi`$0C$KQR#HAmyhAtL98Us z3bt2bTXWL=7Q~h1&+;YleCj%iV zi8?xrtE?~DGls@}>QgU}LYhk!7Z#36=wj)ix*hLJ0h|319r|P1kfzuw`A3U{ZiH0x_8g^GY0bw?Pd3am z`6N$1Kqa4D= zCP{d%>8xz^sjJKfv-x#_DrCD4Qtcp2A(IP5l}LyEs(3IHtsBFkVvxgg26f2^Pm`{x)3tU^~lKx+lx5B|0=L ztPi}mjl~SoBpNb+B$y-Wk+)JI@YLbi`3Ujlk1*Nxivcqf;qcaW=Olgno?U1x`Z>Vu zDL-cK9qL^HK(HzZDdRSeNV&*S^8rTs3FG$-h3Vwgk3!ss`w^nNS(9I%6 zB!3tO0Fw;AU~yHL<+3lYt;|t!6|^2m*{ps2`t>^gJV?nL0%8EKfe%2&Isb#zZClE> zMMZT$xzh0PsNCP*FF7#y4W+-K6_W$z=AOs#8t5JzSfpK&QCkpDe2}YO<;1W?`SY7@ zkfzZk=51-KZlUlTV}u;)yy3zAPF$*m&(cVR3aD>;ovr^;1+1u2eV@pn`d&MAeNFt} z+q>ItB`ONO(~5T$QlGR&OR7h;F3VsB2cPaSm8=IdQl)%yzf1L#a*k@Bd1F7Nfc;9` zpN`=Fi~hMMK=@Ko-ALA{aVv=DHOSpe7J>)~bu7CDkvfU1bA!dE)HF2Wi#-+iD_5@P zmzXQ$8ID!w8r9=Yo;(?=2_7w5^lp3Gqe`;*_3OVzv_sS2a*-Js8QheUM=gZIvL9tr zyM34JJ*qn=?n#Rrj?E9BBk8EObbKD()$dUz~@W{7>2wS~Um)+U&!J#bKNbWrY zIW^8xiuZmc{5c|-I2i zhpofR=${h`Q0k<`t6l$O{)nlC9YU_8|O4>wP?aWx$vNyPx9cSE+Ib~K?fUI4Hacdok_W^7QFejE~~#> zSx}H$T|<)3K5N21X|cxlo1iviEz)y$de7e0aAu86)0wim+efr+>Z`qj2ut^$^B1GP zO04lcSg9Y{OI%;RCf0>J>wb|fJ0;+K?4#&t$zA7$6YWn+8V)QcX{PJ8#??W#puplM zL2aa_rY@0*=%srP^76BqrR3BzG_-f0*)xl~0@h9qRyQf+R;{)PXb1c8{RLpM|#{^z5Jsg+x`q6#X zwSmQbamQV{r@TGcWkrdwxP1AMW`Ub+9sMfCieR687=Ar7b)xq_`;Q|S@eR14V&MkUw!GC zPt)QBb=4ZzXKb29nzBWasTtyIo)4wlcXT7eaGE(@q{0!+LOA>0Fn%xj>R)21_w58M zc6cSFoKbEvjk|?hnm05e-3khnU18?C>jt3fD*w9-AdoVfp&rAn5&L=!s7||kEA@2D z%!}5sTfHjM7(h+rf(}2tU394Xs)|G=02PCL5$(ys*8AJ5Rui~7o;iu_@2?n0o=VOR z>ZBS~YK9KqUieY6-xu!H_t}eY-<{~~T!e9>|=%wD4m!Na^VRtM`G z^^XjSWGYBrsqQq?u23_j{I|!|PVtIAGcM9&NI2Y$p}dKXiRrI(Wfq5858t_L<+sW{ z@8ylp&#FlGf6`!A_sCsh<3ru@d$$D0U6H4J5^DiLV_wPB^t_Ye^@Q)n)d%I>vl|0N zy5$-n=gxV}?Igqs8&%d7ZkjLkx*B0=f3~Y|?6{@STxd6?d31Zl_kLWSCV@1sUWVA= z_a(2hwgNOTyc^GWC%d#(?g2Vzo}y&{`UEnc`*mnWxrEb&aZ z{y0r-wb6BgEGh3<6b2JFK-IABxS!w?H$}&uI*mzg=2HNig_~^S@M8NCvfxQL6JQKt zQ+;E;TsLxV7tGbbM1$_BNPv)hYXF0F#jgUEg$}g+$$=Y#rja|#?xewc00-hbzVXWx zT$0+pp>(k=o~PG5!2n^wO9z2J79MqY#S=>*l$2T*)oB3+Yjq3<&|^5O)*2N;iS84%7UIaa*2F_+Q7mqox@X=>TV^{lKu^Z6Pj#jn_2#Ik#B?SY`C)23*Ez++hTZF1 zV(yF#J)iLdV78yHet*(?GGGr3EXk$Z)(K~ zntK*`<#)8ZrubA<1K-la*00SB3bYEfEiEK)XP-e)FGi;O_r+ge?nxz1?)Wc0#jCm2 z?&{Wr-kI(xQ4$|vvmDFSwCu3=mXS@(V*=g7`yNT*iv*PkzpT02YV)`v+IIP@A7 z(sof*ex$}pgJkzY1oh3+FQD`-?CSr4?I^x$z`s;5j!=5hK&uWf1SCpjs%RYiANh7# z6?~7Vy2HKG7o4m1mTP<~>i5^$tcFW5^n8Z-fYMr+Nwz1``Gdx{4*+aEkr03>OD%gh z8ZJrC4d@+8vaBlNOUeMu8fH|5bov+C)l=N|Q2eG%=b4jDk|D82{87iPWT-_1nKWdY zu#2iZJlNYDb?zK`InWx%CFnT$Sg%%L$^URK-IoN22aH~Y-9m3p{y*M=E;+!db9d1-ck(LZO($_W*EtPN&p*;SV9x=Z1?%^yDzXEL4+Ys|dHN;D4}_ zTDSQt3%(1pH* zi4RTIUzhUubTC9*gW0HYO*?76eL~(H6R*e-t(PmF6w{{5)4;Y-B3MP=kDT37UrdTy zDrrg`sYu<#q5nzH#r@o;K6jxXC+V#`<*%9-Pl@4hclJDtV<_{M9Ukp84@!0%`R<2n zwtiauW_TdiWY1=4yqH+q{B`LmF5z4?PE=*@J+Z^fP~Rl_B8#{Vw@4gB2Fa+Ql)h_t z^Ti#mQVTe@#AB#znX+~Sy2}hP2xN8nGo3zxsLp*$b>BgB9y|!E(D) zH+*|#l8HtrSif;XWSd0Oc%AnqU?)Z%>RX}j66(C&z4w=ER)*gXHnaKX17@F4q1ZX) zjg~S*Jc)%op&ab3kaxn)UF8_uZ^!4SNqP@2!pDiR?8q5UB}dRb1KQk}n!hMw=j*|q zf6IRT=5TN1$V+@AOqXcDF~>^2ma>PtwT@R)sn|MNq#O0O`+49S03 zU1zgHZ8?c8h!DN1&J9h->XsF-U%upZ@MCYY%l5Y5%sTSWv;NiI7AmBjqGVh+7&4K^ zak${Ru+Va~jl}=x#l!J?oa(OpD{;dE=<(v>o2&3ZrI2}gw=t+b}+p|3uGw1;~c>$uv;FjD_7fLJjGs zMaQY}vF&elC^ifJ*O@cJ&G$^>3}^J6>j5jeT?mEUR=WA$CNa_67jhbM8>M=r{oI(n zCux^#Fse(K@XN7d>C)RHli=e%{rvkL==;%Yl@NS1wsHM%jpq;+d8R#yOXX=InKYV7 zPOVvZ2!*C97NJpZ>E{+Zd&{*&Q`75{v%J%N1}a{!)D$5GCn8*#1&bZq%9l14FHH=w zN6k2KJox;8>~7{&SfpQ2tq{+fwZuG-YgClCbLs`84{Q%pp1EMf?Q}?TfUa1(HdUJSp^tT-=Ur%p3F2kN>CK2mh z+7VTX%_MPBz)IC}#i{So!jtIHY+T{Hs{+=9bj{$K^WL>C)|YD(PaGhPKK<9WhPSz^9?MS&gC{ad95H4yo$2=84^l&PzE}*D zrE&E>8xa^4f|kLlMG!4W$YZ3AWDv3}u39D5lePD?#3uYpn3O*?mbOzO$1=lCz;1Mq zY?u4A_a#gwMgJ@wag@@aoSk zV$BWnR*i}XVR=>Q^QYoVd^%~z@gywBbLr|hu#8kCMeiG7AD*vH?#_iLlvxmX17|yn zns|77)>nKI(Vp&45)I}JnZ*r3=}B0=E;UI1!LD|ll|mUQ(p~MGboR=>d0Q6afq^q^ zE$bz1ckfZ3KM$`8jq59aBx~fKx2{&_#zNU&688G>eUN)` z_390Y`ShQTRyTiU%|l&GSM1z+KwSx(RT+`SThgLRq96j2!)4`T=AE%Aa0WD7L3M^q zqZY-l_+l2QQ^n9II6{GOW{~#LB$22xqQV&n8BZLNLCcxO6Orb|GfqO3y)8mkq?8p6 z6wxdN)wAsTpyrlS6N~aj1PvT1W)&&|J`#oDEQU~Y-#e^ef=o?EYEf;!reCMZhr{@fh zJ>QSMBqN^?Et2?J(PF*P6i-C<2f~LCw2!-!usbnnoYM1^u(@Q<2f=d}^h%O737a1i zprV_O2W^=lDJR##tT==S$s>HU>JI!$9ZG5( zu55Qeu*qD9TDNfPiC={>&!Us<;6V6Y!lM}sJ#HFwT2pIJ`0W*3WR>^;CSb^5PBERM z_r63Rq$%-zf5wAXHd5${e#~k9-jopmh_DRT`u^ecJ6YD^qQ+V+_5IM$(2_<0bu$Iy zc-|yNJ%ms+kn$oTfk5NNFCia!imI;e#H8wozuZ90mOuuP9 zu8Xa0<5qIcO;@uc&*!9DZOnBKS2^d{i>4V zI^D}t6GL_1?bFsB2jjZ61#3=KT#0U(d0iKIDV4$GzEk*8gW;lgN$+)?}cY3JwqmUNC1 zD!}=N=;}~wZV1nQk(4qL-2oa?IDun#K{Si0``~j~GTLYKXP}xuYT{mGk9+yY_%Wn-|9$|FQ4oCJI3^<$ zOvPd5mtfS<3W8BVK0JXbBpI7fIFMvDS0@{>`FE$YQx2(rGt()tv3Gri^oPr)rlRZo z)O%^Ooo*i+M;JmapGeP2SuS0-zYf2@Agx5rhg@tkb~trOqu#z8SJ2 z8CYQ;5)%3$AtAWM2v*5lAVvcDXSp=+18DZ=-oNGT0ouCFD?wAB9&$eY_zXQIVD{~w zJ&75UwYzHXUl&$RQin4_n+h}Ac@+oNd z>mizUi)K#>A7-uRn^7y<3%3_QqxLA?8_?qW3Vct@P1n(sMt}0D9Z-qTk+< za2&S|-2aeLVPa}Z$HZh+bO-_sa0Q;47f@OQ< zWvsEC@T~bQY(du0c=xY1xu|M}Ni$bN-XE~+NsCIC7yG8YXFTS*GTp3OV;PkZ$fOk% zi#Xc2A!vwE2mN95^I5hOK|XAMHpD9qqW&bDS$F{GM;VMz#9XpHt{7VaPn@j>WQ%70 z(|gl^!ALN0Lmo*(0+E8wGm0Qc@$`gHdY;_H!W!Q8wJ&$lec-RoTqxP9{}IGYG9C3= zEU;uXoxu5)KaJyWgG~GR?vXWt9AujY7!0?hWbb~$EAOISovMp6 z82vA_;&|>4v@?U;W7fcJv$A_+M?tDXWH5brxKyujE3GR&TFUueTOYjk|Kj{mL%-kG%E!PAtIdF)rmzw$Zy*y^xznT2FotU!Q63 zl~@KF!iQ2ft{x2WVt`xArCu4=gO4d_h_xmw)>v zx0i!lGH<%gF4YgZNW13dsgFQzb0rO`0gq1EK!IMuOf4`Lbw$iav%@s%yj=Cp!|JAv z$%d~ww{#BRMvDsu6o4BD)P1 zHI!0>$MZC74DA+~M{pQHIXGmAV6#=2nuhvdEDVt^HGubPso0YT7-+h8Hy4*Ye(i;l z7q5xqjPPI~Z{nnDwqd&5i3iFSGYYgQ{#Ot=nH3GRXt@!x9UmGR5>kxy1eBT?4LACO z3AH*xCvBd~Jbq5IP=AQGUR--~k+8**LtChL6LK5at&09Li=RjOJ(UTim3NMS}bz_rgFcncqK2U{+(aH+(W*a_xuY?o{}S5yzO35BUN*jI*D=nt{o1{;8A zGWRxMMBi|=lFp}vh@Y5giJ8rhwDfwI+RFU{N=YrZpRh~#jwBcYca$jm<~20!bV;xB z>tDMn&v)x%sTF!lL?pe>K35|n48#?a39T6f3*O3xl#&h9Hb2Y)R^jXJ_`DIS_J}u*@sM5dtbHD9^gyr zV;^Q1Ppa=3{;EbLnEHu?1F`P3M!x$Cg36q(PJ-u^Bj0QAnuNkDMxEX+-HxliZxW&8 zkJ{ee?j^@47>7PY%tS+|kZDSY1QF+!yS??Tv?+>e7M*F5ZnD+Drle(1?NTg0%?MQ1 z3fN3x9a*>T=NB5cp-i2N2|c5uv~jGy8)_rlwF+^Z<@Pc2$-mehDP;>&1Pn>AL%>nv z#eA---z17W{d&Lq43}DxtJEVy7%yS3cW%@I{k*H5wSksODS|^93T?x;^209PQA~{b zQT$7Ct^B$$)FX`X^LO*q%pD$Y2`jnaHqoYFER%iT9=iP9BJ}y{;YYZ6oN4gxf#cb2o{IZwC!8&DyFsy z$Qpfo_JT>!Dmy35OW~+l8I$A-9MbHh&BI@jbMBZQbsMp*UhfcJGDQyQ%(y1&=K+hx z=Xbx~>I*rrXX6K2yhIo`Wrt~bmV<2-+Lu7*2^{pN43h*H=;+K7j6iq#(tfzKg)AXv zaG98Y(LN@EMPz*meM9r3KDzeyOo1RaNU@uJGr~#45@cJqGclG__VLtcM5sBU`Jr=* zQpXHm=~ND(uadJPhto+c21N;dOQ)bUw+M&K8{ho< zG~uQ@hFZ|mIf|TOH;MQwO{dOY1SU6DIGB<{&8Q=_n(BL41WPQ(hJ;R3u1APVyWXs3 zRBQOQQT?|##iF}dmo9vi7w}=EDF5;RL>c`1RUu{%c6Pv%_+Bu3JUy+>;L<@L5)OXN zmWwUW7liHo%2z+-mE#d%vE>Ip!q@2&c2#25_Pu+#QdppCz<}%ofVNI28K$`e966s zRHNLajl0ob8GTbsWg}Kh_Q8V(YwPR1z|*AxYPmOQ=8F!nxt%<9${_X5=(=Y}WMoCU zt-rtj=_B#^SA`L=pS@x^{7;MXr2ls#0R=0mFZ20Me}%$l@7}m^ANUFTfw{_H;_ne! zMtnYl`m>C?fg8XYpuV#+k7eC|8v&;!FWe5&#r44De1V z$jL<|BVYEtICWMdTkbOTc{%s)IHc>*JKUJxHnx1IGC#+<;t*?n(_jnt_3%@t04=J6 z*j!UpS$Eewo;fHe2>#obe539P5rsL0^3AJt{J{xNmxrs~HBAh8n*M7GQbm0szC(<2 z*zWc-2h+Vfns0jJFn-2A=H~!fY3Vx@Xp8stYn+>@+;o^P+xk?;Cg`w6BFZRD{2sj@ zyy8-}Q#)fa&FeoX`cqJPHnJl9dT@jatgOgbpZCTeD15_x1p6>aOin?0qp96KRyV>$ zEbn^cpR2yrMUcRbik*z`ATp(*lsgst{FE)?iN|7lmAZbZKxTrAS+Fqg*wclBcT;TN zT@Y0#{|q*2?_YMg-XJ;ecu(R>x})9k{XdHydGcIQ_}PuIg;!*itFtaIlg0tm_rwck)!PR8__oR`BfxW85bw{t6;K5?)?v}OS*cg3-NH}#^Xk) zW}jSAI(K!&@&3m?i}xD&)uz9NInAiGVHP^;BH@ZzjX#rgf4SHtX@eMZhiE+!$7x8C zc-!>L1QEi_vf#L)gk33;s9is)to2NyLu7rfZwmV0ZTJp_as0tQo zJQcnCC-Uxh#HReK#Kya%PYPd8h}%_)d-x@_L$S^M@qBp;ti!{*^?IRf&45-wJr-Kc zOMATDv#TE2_RBE?e#G!cYcNp9cVMEaNHfjZrO{%=ih6%ZW8ZtH?(5=@I8Pr>8a96$zPp?mv)XU35I53dc}~8i+WgC{ zf}yLn#88Hsj1^%$~2?u^V_xiq% z=_xa-9veRs+BQe3DMGy0=(FEswrh&me{|wHesK$tj}MMO_!@7xdcy&HWN+%s%6{#G znA;UY#P3x8;*WCS-L@O}?^%lQE}5RTRn{(-G4y&Lf=4InzwXTavs< zY3RujHn}^YXY&e%bx4~Y-)QXQMF-OpQ^II4l zZac(!VWB6fk)^$5DaD`g>mgJf9QTxy`0o$b4=^(n@NTm5oemO_a^rG)GCy$cZEP&5 zc=duUr}h0dYA`adKO+mMVZQ@2iij=WUj{`l1|;Dx0GuG*WLO9vi{FKYsFbY6xxyCw zQ?0~OwaV}RIjmAS5~-rlmgD`uN(dIGyZ9Uv(`AgL?4-@;2cHLZ!!?=vN{=8ZbbrF& zyCKc3Y|kQ(NXkBHnGI&1B$66;B|6%*?Q5fMo%nFmG)?e))&nIvCfe^VRzqiwuToyb zB_JkT`Ik3pHP$&r+kw~Z9b?<(qON_z=1I?&wD(Gpp;OMddQG>7$AjxEMD>*3jBXyu zlP|D~(;dAb?6Hy%o+RL(EP3(bPr}(#$sZJoeUx+JmX4FwvXe)$KxPiDe;+fUTDN*q zzUnjH-)&(>G|zYSt>j{!%=E2@nOKA409d}v%&tUYXBk@xZxc$W_PwzqZuI5p$DNGj zByuDluI7=eLGQ<~EKzfdj{2m3@} z^h6t?p;FsIJS^{MnrCv~_hCDw@&NUD#H=*FWgr~cmqA;fEqX^tNb3kjhtfjcAJuC> z2n~aFILW!(ZY;MWRh)~P8!y!XOr=?0zkcQR6a4k~8)Km0%q;bwjcOg!zQ7OX;fAvb zO)Oy{gswL`VlLdDn+o#i`+EufG2qBhFUH)ukW+yIEU@L@H-Key9?;F&4PbZl%z!1DA6s8YRvS={_~J5ppL_tzjk z=}^{cH##4K+V#dgNaG!6#3g+Yn|9k~FND}c5JV>SFPj|!P1Mv5n)2*=YwL-==M8{O z$JY%V1Cc7T?0o``@o;M8CvqsKd^l3^owbS#!C3*Tc_2G#0C2e3EM%>f34PANkNho3s>TcGPZI!5D*+uvE|s!>o@9st7d(zV^1XG=U(W_NsoPaXl& zlCJ2Go&@3azxT7#Oi^M4u><;l?|8e6Of@Ezxg>CDZ?JVUcmNXZc2dy5fHG;U88c!VpZUqU{JUfjUy{pP=p8Lvu)G?SBw`~HZ znqXMry=5ofi+T3>rDccU>ATK)t)dtjIHV$H)J+VW#34t2q5TMV`Y(ahI%UW4#e5dz z2jw5)v{c&%e?^@p7sgJ+o>+sC$uGzPHHK;Qx7($guCpDqyc^kA?qntv*QalIr3d92 zaPGf6Xj1ODSx@XuuD1q8>59I!={7<8@mg-nk3gu5JY4j`j&=%Yb#}0wgpS~SGO+8V z(o_y7Co-u3H61|HCXI*;_373-aO@U}C~&}B6t3>wzvk{UcQ||<6>O2e)#zT%mE#p? zo-kk_*CIOQ?&DIrCD|S?gVD3E1AIn%&ylwRI6-y``M?1b+h=~;KYs{dQTS!=netd? zAkn4Itis)9VWP7dz;s`~3{H^!ezLf??+@V?*`~P`tzn=_!8$Xdy@onXU zyJbp_%k9%!6phAL>ta%*JU5o^M-$v?Js}rI8}zjMzHwQZw>aOKjha}^%*-4rx@*q) z0uZ)63`Rbgz*MOd$Em5{>e*DRa1A6PNJTz~zixKv%$*=pOCv>_dPa4wDd z(xt7<0DhK{^{E!q!|UKAN@~AZQhM^k7>Eh-VeF7+CmP>F&OYcx`Hai6D~mBDd;p-SZ0}7)xJrZ5=}oJZARXPP zR$G0|Sg)-y_oZ}jm;vVO`}pzep!19-k>D_)rk*1dic)lT!eYn8S89pk!l2FNrPS=q zB-<8qf?dQU;qfueV>0A_Nh;j4NP(u=EArG!l+;y}iQsj%?628oV`7f)w3gTGe6$K3 zSbYU5F>8OF6-m{Nn5mxjp4Um(22|}x8&czg>H{NxiYtf3Z{Ih+&5(%%)>nnzd8C24~|9!yZ(s$0f=>8A#JNzK&as9!+*d=l)bO2jlBwTuO7ijjZG*%@J6t(LFu9sMI7)#r3{949sUWRa=8l7Tzk7 zq;B`3rB}}Qg9Z6HepCWc*To@Am{$w7u!*6)M%sR}EP5p`^YS|oHP49`%V2Y# zJIYd&X)wn#Jm^SMPq&mSr|o zuPSxnF^*2DVPk!#yHU4z{Y`iqeQQ?a8DaIb?^HSJ z4Uprhc7`54nvWE&YxX+gN4+KfBplmvOFH+ ze8mj&e6qJnQ>syXuDe6y-+mh-9N~x7d6E~YfA)F<3}vxRl|hIkI~m-@5U7~}~!E`YnV2ED!~J_*yy zsC*1o$S%BXj@*_9R;cImj>?f)3s5sfUqvj}s4Nee?Deyg`Yc}3&iSnWY-pYoG$Z-2 zya}mr%xje)l}JiUOXsLR5<7mM9E*X5_DaoR{!YM7#Qg@wQYMZe^3^|j1BWa5nwm7< z&SJycU!8)unlaR>|9aN<4L=_RU7>#O>xr@p!kV1=EvwyY9un2=yYTi2m#!w6_0wD? za!|T&SEpR8M9%&J;h*Yxu5(eyJt3b|7FLTj%0sxGEX1u4teT=z$sz*ZjMy&Op`8L7 zz!sW)^JlZlS&v=n$rlHbm=s?>i4>}qRQ)V@eBZH7Qm7zne6CmSLMxq%7>^m%arWss z0>z)B@3b&i)XG>nW^p}vK3+}n`o3~LvMqD0_PnW~imi~t}w#)K@3 z<5xsXi2SG5=dwO4(a~R@bFupN*Pmg2Yxnbfpvyn*ef^)w)SH^6xxG3qprr^watXL^ z8Zrk5pW!rl4h3|DtC*nKl|LzUN(;szFD>oNzf8ty;83H_@GHrJ%bh%Ak**1ql?%_` zFR*_}Ri;56FHTi=lTmh&og|~tYPQC#Sk>p0>6*MiF#Gkv3C zs74`)UsZv;jL1O{U<~2W%-rK%a_)*cHhKn(6$XY%lF9MTVm$vNzrHEGcZXf|QgBoo zuk^Zu>0OUbU#}Um757jiMCxS>zBXfax7K))HKKiV(T(Hx<^hWGRd0E-MLPPCE(N!x8K#2rWqz0XfRuj^5(O|7E*@`% zdDXNRM75|L{Df;vS3|1(Mo<0<1lP7H0tf`ir}UQ^c8`xQyCo{WOY*X8erTUkAJ*re zM4L1*j|aVew{1-P^Lg@J<^6Ef;Wl#d<0ohVyUJs|wR}wYe6a zD?6P1v+8CRBezhUvT|!4M4>H(@H5{o91OWVtxz)L?hNSz07tVfDGqGs%D?`kvywc( zK8Y`}H+d0veY0We?TJoZ<*%9rd`3?;a{N28ofL#}ou%ssLCJf(?4-MZ<-!HKkOG7Y zfoQOq42a2IBxJ$kWl%(T-$9n6kewmsqv4#Ikst533(Lp$4id*rt)x*Eu}a_)$%7n` zDrW#cGI=$|wKs>R%x^`FS(`Uro9(>K`>0Q#?7nI{-j(7&O~6&E4U-duJG37H<3+1_ z*F1g-aCh~c2@9R!<3oBfYiF!U0Eu3k@hLvP{0H>~kfwrVQE^6Ik+0SiC};)H2wWIX ztN|xChK(a1ouq93_>Sf@`WFw@27bJnytkyI4?G&YNwa*L*SX^C?h0?){BWz=ZP4|$ z(Uq+msL5nX-~*e~;ok9lpS7NmGn#Pb$1Sj9yv|mAPG`P2XzmSRtt^Qz%-3%1PWkTl z=jIMIsc%v9kJwd!Qnc-c8FHxlyj#~@z1n+PL2hl(<5?SZ^+B`(2r!#~Kefru?fKgy zvdaO_Oqk~|I7l3QX5^9*^!V|D+|l+gP*Vg)d3dC;ewRdO{*0%xfAvw%>$IM3$?-}b zuK8hiP(A!R*dkSWHi@^&C|!=s1W2lp{ib#PC#qTJN90d;e%B9Sg|Ha(`B-w%YLiT^ z0>~E+GL9tP}Z6Zq?F()&bpxMZ^AaJONspRtU^TL~N`wA)y?vsFSC#{;usZoTP}EAEy2j z*^#rhCCw)e{Je7fP5Zf#6Z54}7ycyoPfGN@oRr0BR1?oW2a5W0dwuNN zzE#Vr2Ysu5U0`O$_;!QcuT>mnNK!L8IPg=>39>o<*JzYOC2s+)OJ-%G$vjD6Oe%K& z)OCL&u>S>}zC0`#bM9-33!Ui)oEoRVx1G@_%JH)x^5=T`9`vM5k5{V7U{=f^BKXy< zub|X^=8K=-+B|Ec4=8KEaj0k3{vWo!Iv}d8>wD0PUPZtHM5I(=NR@5`l?E9~q*M^; z?pCjfgru~>3`ln~V9}+7bVy2f*SF4q_j%s;d-jf7pq*4%k4-6FBTgLloopFW}1=|_6!e7dV30fe8ooDI0Z5H`a!4}{Kvo`h%#V} z?&v?Vp3HJLQ%i>M>kk&3@Y_3g4YtiPpPOMmWF-hOjvth8B{jDmyfX$Bs9p?vMdUT8>$n*K!Dw7dx|(<)Au;ne^I$I{Xvu{#xOAFZ|>KAa8` z<)7_{FS9aH>woA5COJ|7nk*uy37wSq7Vdnl3Wck8U_nP-dWT4AW!pdp7 zb+B`gpwX(4;)>lX0RmjNl_6I>UOWEU)_XNdBQp0vp;!~mh4)vbBa;D&NotkiIw<`5 zkW>!8Eicx(yOu6MhGtlaV}2IyQ2EY#aopH*y@%QT!rG_X929FeTF91uO%uk>8 z%5?zo^;-XR6r`r^tL5M~5E06ayaZ~tz&i#`mmv;Ag*FL9m?-y=BQg)p@N!(lxF-x- z^kStL@x8f^w|91;l}U?l!@EHFQ!J@VInks&S&ha0s%H}6GBp&Ck}xj^BAg@*uHcd~ z<_#f(WjR^-pEV1KHjZ6>%O${7~ymKxO=Vz=DCFdKSp;_LWAx0EvqYrwPg79nezq~ zZnAvocRGJW`<$S{iEmBwKnb&#N+nKQ4?aV?nu-_>d^*r*v|NDL>bXnc9ssjvW7kb< zbBcB@+rX#IJWV|(w)Y-Dq9u>IAwU=;MNW3V&r1*@8qfEzuJ)%*xtpKDy$g&ujZ!De zK42R1mqU?j1vEy+BOmrBh`45B$e4>aiH@E@a7sZqjYX%kx`0QCF zfcPv$p&vSR@Zb|LVY3n17~>@TStj|A@4GwwW2VS+p+;nTsAS{xti7n+AyJa`J6cOh zcEPXp`^$Y$j2{Us=96{J#HFZ1;~F6;I)xck0rZ*DFUZgrFG?LHyO4#)Vk|(651vwu zHPQqee$eZv02~bzUS;rza_;wMn z9aA}-z@MR884UzM?$%y$V3E3ePAW`3d|CxgH|-VP-Ut;EmT=qrudj~4q<&MTNEo#i z`In*0Yr$k`YgISRW$_ZBho0(P#WXi-r)P%G6jZxDJ- z-ra;En8Q>?8?h0Om%-X38C=&2WR2Vu0G^mO2q*ak{9sMs8Usz4w9jLyv7pxNwZz_b zD_55SS{C7Ag+uV&1+^SW5Mg06P`%u~v$?}JmmOEpc1en@^^R4RhfIi7M3HPQ%h>DQ z&cvL}LK~Uv6E({b7=eD51SFUPNq4f_JX7QGA#EPo?;L$R^_w6n#v;sNumj8DNmabc z2DFw^=eYvn)Ha~S%)H^W?}_+US=puV`jU+Qy7A)(1u*>+;OWd+0!Srkp7uD(!~2l9 zc}3_zhci3Q&($tz9A`#bR=;tfU}@f#l%6Wta6yj0JjY6|ul0j)#o^p!#HT|XzwziJ zD*|aDrE$Y*e+^AUH9A)Wfd;YB0Cn?&M=E+=8>67`LpW(53|Ozo7$~%kdtj(yF&9CK z)4ywK>`R1NCnHAfk{*wa`s7)!;Zk*F!?jEzCxHK4Mgm1f*y^mK2dm)_)Kv5My6wM- z)W+*4mz8Adp<#zal7V{fY8e?BgQ9r#J9pm2Fpcu&dVJ@g)vfTtbIM2PtGTOeJdjmX z%oACRNhS}q1-j}~lgOMRj~e1s;&d#&tCCy9`&}d1voS}badIA%;A6y$Wb4fLU+Ifm zPT1|!0bQTx+sc*iYgN3zlIziYAK@ab1wZS~+A9JwL{q|5X`PR<<#|z$8QtX&=to*w znp;;j#d@F|S>aYC6U;)U0B#i|0qGrQ(F;CWwBjCjU~^OlBxKqVaXau-)5$Zjt*XB2 znXTMc*?fiGXL_6QO2Z2wmNK$`(ILBRAjr$%aS85aw#8wKrL$ri#L;VB_s1I>;$4?h zLpL4!ylALSkhF9Hxq-u*4k~lZ^Yugs7UlkYmmlH(5muwa#DhKF+}DaKNossn9#%>N zz(6;9B!=sRWFd@0`+>Vugs=7kMD!^#Rl6Kg0z0fmzL^G4d4I$jq-t{ZIGcTYc?w~R zSxB$K{@%{DWjHQ|EL+Kv%T)?$M`X7&-G{$uV9SHC@0S~Qi@x{oJbcP5W0hO|nP?X& zd}wfmHAC325Bm@wVtU-lnBH@#QDD`sBqcq0nu*DkCLP!DgqXwuEN?c4LYN%E^zLWr zTzM+!{ko4#8S{sruQ~qyeqBX;!zfZ)`3$pS)-%@J=w|gX#ZyzD6051HCj^lZe!76= zc2?6R>wdwsm%R5%&T8JVns1j7S@{ypSH4~uyV713Bw}|s2g~}8C^v+7An%AOZcu5KRbX)sI4q4TSHpe@9X;|kihOd` zbZ>pgUHIpBKGJ%@$TNYXH_>Vr&hwdt=!5IolA9gjx4MQul3FskqX8+kqL&|ytR>~2 z3Hb3+g_2eLM=8m@xx`W496gGp)2A3eY{!l7u6~`(coZ2JXS#;B>MMCT z@@s!bJ}={hY*Gt9`iqRI<~Yz)vdXK!GfekPeuYW%bJ5YoL-vdIHVJG^CTgOlD!)|}PT~#tI}N=hCepq9 z)C(2Iraj1wrsCCm3M_df&Jczm=SlUY#`Bz(@232uN#qZU2QO0CSFZ1s8E4YPB9Yz8 zkycML7jO+CszWh92tO&Vx8|1fl~|!W`j>(y3!IK>Ni}Ch<8_!hFqoX`s!LqS*vIK? z!ZDPCu+ky&ZGu>uC$FKomyr3PwC)INY%U}RFF4N0QE&y(OurUJ2vihj=4P5b9`*&5 z?A6^>P9hf62|?^Okn{}P&lDh;dWVQFXvN%?4aR{HI|bXxPib;7EX%^id?Z@N%hst>XGVdnudWO1=EO{!HKP-NX-P1EbvK@jz)U z8IN^e2Cs>pVaUf@W;3*kZ0>`gSe7n82J!!+vbV^X8>py2yaPaXG4Z8hfBx*&m-DrR z>|*Sm2v}WHFIgwkdZYaSlcSeYXx4FxCY(K5hMvqUsm_qT~Q)Y?or)wy#Y5!s49;rBNA2VAMNH zlziWy_&R|h;_w(kOSbLG>5XLqLu4>X$c{yP0~s%$=wF|Xm|_gj=q4J0Y3_WymQ`T% z^bfJta5lRoMj9#-@*nRQ8$%>`YbM%!rnN%k<>gyOYJ(BA+hoa9Mk~+@rdNPjvI+Tn zK2XjZ8VKvmhsU>z+i#AGR^qoGdtq=%IajffcCW%f`VSxmbq|YPCpynl6j4Wc9IBEG zTNF4ldhs++P2AbpTxrG11usM1XbRkw)dJw?OceB3wStZ$wyT(sAkSMLtH#NBVx^j>Nc$;6)W+mYhBEw6T~!h4zcsHa~)R#ue% z`SF!+o*fbfI74LUNzGD3KNBe@9Vt@2cWc%GEOmQsjUy^4@HLxpG-fFWRyq_+6B+nC ziZ-4QUYFqvZSQ5JNlqrZwW<|2`Ear6*NptZ{B%*pQWEJ4v&wP*4YVG%Q&z2Oc)ba# zBtDnon4OJ&yG|rZs0pHFYyqHoFi8I=c%jx@d0dkVHvJH+p?iF9{&x; zZXJ$FA;7VR>@-!`Zo-vj2tV~9VMD6d2EtiQKnY}Aq2?woF{EtisCSx}$kf^xqH=4~ zN@crwq48MFTQMBrEo!dS*0#KP+wxPQ%(j0BVQa=pWw@N7v=YMpPzzfh`Z1F_RdVYg zU?ep^cyMsIw2q3g?kxguB-%wjQ5F0*ZZj$iPi}zfkPhzTJB^p`9thtj-O=>+=w9Tmst!_k!vZ= z7q+)?P~W=dr+1a>ML?yw$qg)7)wiDYc($9%7KLt3K}UQ@)I&gGT4&H^^P>ftH+6Z@`6KnLo-4A z5LjxlUR!Fxee*?9S?Nr%By9h;l;!k zSRH43wZXF+5m8W_JUO4abY8$J`t1usJQ+Cx%4M~qa<%;rZOy!%woOtNKL&oqnOx0D zgkN!i?)=AWAi%h|e1u%GxRlkgmMOebBAi1z9+alhtK6A!arC8N`3Zl@b2Z8!uRu46 zkjU|61PP0=Y!n-6_f{|QPXtR8b`DE=OW-Bmze)-H+Znb7ncCZ`Y+!4$S;2$}7V zmVfkH-qQ9LIT$8yRR`@=XblS9Z(7uI1EpyBdhzUvqiTCRSZchZ_O=8$ZDgKePw?$~YYs+7$Tv@yVpk+w zhQB{SNTuaN8Rr_(kNP7O>$Bm&X|?jJ`|ZEl4#b6;KH!4!*tcGqd`d2!McSz3!9TVQ zM`*!6q2jM4{kN2UON1O1VBeH_QZjnqj==0CM+WBpDo%E)g8J14YaJ9BCC+PmL1trX ziyd6xDRGJ(1r_hMD+!Brog;?1(R0YiW2O{S>8p2D5@BmB{9$Xn9&O(`9LXjaSb5WD z_+~N~!R?18UtsjvaBw`bhHceG{@HNU@y<*2m%*8zg*2~VUm1mx$?mrm(PdmyD+7A zLfNPN6Q?AV$Gy4Q4GF($nfa}6Dn*XwucOhzOO;GMY@Ms5cq(Z5nIC`EIYx{hjqgu- zdp?XE*&Fk zTPu6zo9M`JLWQr1O-K$lyzb&onsIJ+z6zGwZCR zKw^huQ}T@+#OfB5e~QjT=Ci%U)QyA?6i6HKliPlmC4HyrUy2x<2mJiop#XWn@fbol z9?bVqR@{gTu6`hn!W(&XAD;CkOViz>{f2vzh>rYKcgDF4fVa4&Hgy&WKtN&4~V&3E8kQ~wi7A7j>(ZJgr)mXq)e%! z{%k`6!Wz4iCE}(_RD7y67P%{G+qs&Ho4ovU&Nnp{_Wu zO*ycLlb@SFp3f(m>sOKU^R~}^{Y5U8)`m-;?iGIq(8h6Vq|!-Ra=4&AB}J>%4vtrY zy1p38o&u%07^

        5iQ^?v+Y%eGLVzpX{S1%BUtT=>Z0CHb>;U89)wJtq!2?AQk9+ z57O`y$j~FN8a{_+0@oI^kPD*<<=zA{lLxM5t^i^!hp$$6%xL%2(LLUAIEf@Qa3p)- zy(R^3nIjW~+CVaDF7t5c@c?{#O(P>L2#9e|I?_=H<4`TM>a%!kHd6Bzks4pyoF`m6 z=|IcTuvF#hD|a|i;r_GHBkl=?e3vg`eq_JmFHbYJ6@#sP8(5U6jBvC)r+M4Q4+x?K z;?3M#9O7yS1u~UzUAtG{Ly=fG;H6VLR!<0$fu7sz*gTJtHNh(ZZPu^VKgRbC-tmaf zpf8jZA#-=vZAb9=RZHwAlrsnVFB_-vokBil=39uzJ@nK->=uxs)MN|JH&HppEI{e= zByuW(jK`x~g%G@J*#4srL9#q0-K)C@p9^-NFsrpyel9%*bwhwL`vWDD)DGK_U0W95 z2hawwiQ&A3nDGlkJAp`E(|GW4)J8IO$e=vOk%E=m;Nzpy7Rf*nm$;-t*s^Qn|A(ri zqwJ_kvp#N4Yc{)jL+TKpu?bIT4gDlcl$?0hhi^iJjD9>qS)98M3VT;*s!!!7RA9Fs{xON*>GDGTX z4D_G)33UX=u7}~c)W^DzqU^g$3_kb|@9t+iB#d>O4bvZ4jMJAZRSdMW!qwTwV9MoW zCABRKS8G7gqtqyXmLOzec=6IN2+-qrXV>AJMw}JB?Cz||g>r|j`v@ZrVN_1xG}=qG zU14I`&^2xJFsa0f76`P(iuJFQB5&Yh!F5$114w6FaG5>y0LsM%bj630MWFEOw$D-~>16pM5%&0Bb69i5cLJII5ct0hf~ zKIWt zoTH9?&3;Ql{HnGSo|4OzrG~NwH5i?|&-bt(!UVA5KCt+u2&+ zB%q?XEMWVjsN?X{6yQ#P3Nr7ucJ%t%2PI;f&F zR>zT=Q=s*+p9EbA)YY(v^}`f7xF#Vc^HUv}%?+Z2+;E(o>uzMHg7AGs+j<=-8$g>Cr1^ljWqS$0Sx%IMDfNkX49~`S zVG8>6gl#H@yaq!;pGQ1z}8lYvF7_vTkP!1;PZXsF>9eEI>@4y^9^fygWZNg@8Dw*u&54vI)E<^y+4?Ih6Xei{LUml$qdWj&iB=H@YW++e#c z-?6=5GeT>kAdp@AFI3~9IT^fM%5_|?Y-lV7|Jm=IDTWa7b=-Md0mYZ4P zG?N1U6+QYI##I_-usQ-n7hi&<0uGuVe1w1sbxyrVd&H7!cV~;;dv_bmeBM7Nr=RVi zCU80Io+Y^Bj)`IKSjRDI6zfiIza9ySnGUlIXh}aq#ojgSXKkf*(=#d@jxH!|j;}Gp zNL@yReG-&zxja~K)d1k{Bbc=o{BXSm+O^u2Hqv5t=K0DYQgH-jbDW?7dsML0A+i{^S1z`^ezdODK3Y93Y$G7D zHKJ>PiQJ=Hcj@O`q3wq(22atVSI5VWjjSCHJiJF5*}u&LWt_$;6JDB;TUPgpou%A<9u&%(e zj#=PuH7Wx)g>t=(YYO0aHWLS(b+Sw6a93=h5a2ofEt;zcSNb{&Fqtza%bkmdk)|tGEvJCrw(t;Gh^Fm<(`pZJ#aH{TXfMVuH zaE0os0ySjIudgriZGK7dnYMh>UxVDRTcCY8Rya5?@T9v?=mrW<;m7yI8-#v2qW(OT z-W(LrxYI6Pri7(}t#?;^S8SUaNb#)fWRPNC#~FZ$FH>L-(}rxN!YRU$w9{C~w>WFsmI%RjHs_ z?X&qx3RZ+r8s&S`6wTZEg<0|4JrY$&7K_sx9OwG`#t27cp<7>UP3;UO25(tgoR3`F zR6l+qjAk0)?wxx3S~&LJFv8udHJ>apK0<|Zo?m)5t36)RfD!Hse}z69@mv>LXBGS^ zMxS^nW2}Ae@gd@A^V(TxEEB+)d+EMY?CQ}!T0aNQ+|+g;*4J_4ZOem@WlvmROZwnU zP}|zqiaeL8`vkUMtCbnfgOSSU16g1KVS-MiryBj%`2gGU9-Dkb5g3vq=NCP$M`68$ zeg0Y(c|bIWEb%A^RveYCvjGhdsoEaL>?_$}eWQ%@RqHr#gqJnS-k_KFE}IZrB?$y^ znLM9OW6ykVbo-|9hLwA?fS@FjZzmseh5C(;LQIG5mDT~%wb?!>@i&ycK_Uujui#&m zP!Onu8f85`q&T$}b{4F&?NRf-be&B5R){pse)mpc( z)L|pR&UaKK-l6{6O?mO`XFvTc*;5UC7m*B|WhDfJ#i7uE>!EYMJFqN}n%(wPG#oaR z1o|9;0S-O;HQ3|$d&dPGhyOc`f1 z+_WM;QSQ$NRR>9Bc6ns~Wy4@!LX>l^idj+oPvn~HI0A*HIsXFNXBY2p z+T2!qc7zy&9X`=_LJ*5|OXFBN<5zJLLVWi=`7G5E#?>x~J}xLs3Gn4HkQ;^`*9xL> z5v3E`9<|#ku&VGQc}|Q*G*3-5(+*}RJ2TZ3uu+90w^~UP-#7(#lQN;UWYa|HAME8m zabu8WW&I9Y&o{oq8%@nLyh3&a)qWulmW`?&^p_|*JJl4uQm0K2AUnAKf)$1eh0Be{^=h`#$bf75M2Ii#GT<(b#>Oe<5OGlT1WVw1JZCpL|&~iqs zIhug4$-ekF1MwNNt!k~Cn%edY-EpGtfB9h?a3=zFUSn>-VIP^$NE(E&aLTtA6$UJU zK=KnQGawZKjg|b+1cszTVEpjHTMb3l>Ci}k~ zH6%+!K0|$y0*B#w#`;P^@rCLIy7!w`8CJswioWV+Bu-&R%&3_&Z+hZQtXi{ z`(-T#cFXOXo0C6-7bsL@9W(43-RD~)@oq*{ujsUb=qiv{qfLl4iU>8C0JbQhv-=vAn&V)_iX7xvt#$FiZ4<7w&CL|U z6+i$7{8L@gBgii^O$W0#rQV7>*S-Dw3`+TmupxAN%cUyZd3kV>0+K1CTjDE!rSDK< zoe?_yX!zDB$z*#!>8Le8o}Y*hoc&$p?6xQ@V@3@;8k#!|foC4_xI-mJ*K{-D2JUtMz%g~71fDfz=!_-@P= zMBpoo9QyO58#|7spWmISD1Sm=ZqH7%F86aI90g~&`!+rm;^#VVXuKW;d>mDLAloTA z8KxBO<+5z#(b$8*@n=v^X)8GYFPDwK7@QAC`Vp4@(P^1|@8KIRy9Y~8Xyrx#yPUK0 zA94b!nEYV86}LL%f;Z*m7W#`87$$;B^?0iOPk#+cAKe3?o>5rB7IvWz*ZH--sBRQ9 zu60>LLhH@K=XWloe(y4+t4~|>mYAuEdFqL66knD=6_Xs?>BK@c7PxC)b;@jCl^~j0 z$w2lh0e(g~0goI>0vE~e^e?wZlE6ip&pipH?^R@T_E`#zzU(P3)t&tv@cA&r#b~MY zfkkkzSc!YL#NDjXK*U|bq~W`99sQ*L6KbE{SNnpR=uB(+5Y6UAx}z@;7bD`{R>AGc zxt}IKTl7{1IRqt70Z$*GD`eveKlrNS!_CgviUF`ABbLQi$uUip7%Q?g4x~7H_umTu z!x@1seoWsrV%XSG`^8tu=jq$>o2!q5Z9%P-5?*R7>8)L=Lhe}%lp-gf6zQiTlp@LF z`;FQpZ&~;*uf7ecrYS7eG86sIXIN}EeyZ=<{kK6u_zk^*lAt5`2sr>Xcpz$OYKIDU z%<5@FyzP#73ohAMQOLqseV++Xbc4n@MGZr)t5FXtfq`^iqGQ7a7H?H+f&R4fRTSKB zGrZImm+UJABc(#nvNPgCobUKpwQgswTCsYAL>i@g;Qocxl1k%E&UElRDLo34GD&S?V=5V<+(CFCG&^d=4@YfVPu4<7$F4(}4!o-R^+&XoaW08~s+X$+{jjU(j>}6#fAv@tf!t8ze?Bhc zESb0DqP&-??%%}iwqmosWKbuBR~RHj>`muYyFNLzyZ{J+4l8KmP=nF?VjQ2d5@MX3 zF+*ZxCqhAAd|b<^ab59MZ%Uze_dNtO7ue*-?1Sd0YX|o^=PMrS<+H)XdSbu_&$I^Ts8XeRADb zt_&tK%5B0i<^E9AYXYX_cC#r2s$Osod>sT5W`7#rU{LOHDE$PV}6KSo$K#|5qP0g zA`x7N_X-1FpU(puU*E(G1 zf;eR+qv80Jq+*$$jt19*@R^N`4P=mY57LMci~sEL=?M;_zCjAd#s8N@0C*)tvI+*q znWOCZ%SVv~FrsTKgNW-truP@AA5N}5hi15KHMrp7Ft?10teAN3=Q~EC`7O|x?Ib0* z1fXm_A3Pur6O(-F3%SzWg(~7YIgo}jZj4Z7dR1sb{UEOzL7H6 zRW`6dtmrCkzpAC9Aus+I|2!XIf&AOJzDB5Em&wz%wRXMbDDH^o2<8825^xA5bMV!9 zrVY52CND8nx(?qujOAae*`NKo*#E+fNht>BkbHLV;M?a^z|MZG4>$ax%yv`($Cc?S z^0HJC0gP4j|HJigkp-^DQP72=1fTD}$~5QhJAh+9Gy)t;i`bb+2KIj1_Xk-1nu6yi zL%d@k7oww^MDE7AKhttD_Z@@%iTef1@(3zy1FNfJYmMjE#wibQV_v|Gf58@w@;_MA zTbr|trYjsku>(yA;^^D^plPws4OG|$+rVZjDKb-)u|I?=+z&Dg?weC$6PeCsh>J&N zHm26i&X=i&Y|0<)JG$U9+{2Zb7^_r|Y%)a$)@fbMDcUX3d%&72XV$RfF6?xgf0qH` zhyQ61fU==Dc!%&A5^QsZ0OvRS0+X`>D2q7b{h3T;zj@3^oc}L(fS?!@(I?J>$t6x^ z6~eq4b~?a)*bR@Zrwh{g#>6~PwLp@0-vI1l&Jv(ujeTg?XX@a4id_(41!$GFXU>mZ z|DxVf*hmmHLfl>RE>QHg6g3%+-+033WMWV8Hwkd6P&Q2a57^7SFT~F3Cs5gTp)&JU zrwp)N&vKU+Vr0jbJ3zp8K&C=I(|Saa)HK>`wf#bUhoSqi9g1m)WfMD4_9M zI>MPsSe&gTNA(^gh0al1MR`N^bGEnN5pd2Yy+Z*jTPr{Z*&I5WnSz5BghH@48y%Q; z6m>kg+A^2virCuGox(&^+4&OCT!K-?>|cUK8pNd5dbLPqqqF}hKgIm?VreX&GV&ND z!T2fL`Qm?MpFe#n`FH0H8Uy{@BD#sYGG1J!AeOL_A&517wx)GClxQxx2H_WOCSb=d zjZjt(opIbLBJPF~w%=4(Z6>md`A86>QL@|zqcu9O3D!Yq#wwbQa!s?ne|j&XyApbs zIe)awsP1E_;1siurTSPr+fOvt1ikKn=b&&&HBGoV8q8fs=3?WxR2ub@=`~%KNdDUw z0L9Q_+bn>JW<`zP(Q%^7|f-Oz5 zV4r>Lvm{D4k*eAU5~}OK54LG*L)&!1 zXwLTD$2RBJ>P0!dLvg^90AIEOC*wCIX(?`e>_~YaFnvE-4yF+-VkJ(&CN3UQ#}}+) z0S*~ot2u95JaK0EWPU#ECpa!4SVYb0{%p2sdQOi6=h!zQ;+*Z}-F$Phh&q~vJhlUq+6PV*>J=GIgB)zk`6;zJtJFp9_pS6u39g2^^ZV>Xp|+PePAE z=z(~b=TQ@(Qyw(cG6BQ&$)D*_2?PXA(C?B6a@0hG-3hsE6WX;*Jcx32cF!YXx7X!U z)xSmqlt>9C(C{y|sADHiAdNis96i<5L&SI24FN7uMcN49xj-ohW!o08)4~B8Q8sHpl=&b9O<&J5Z!kw2wQ@B;VPys{mABJXX+d+WoT6h44xvtk04{G+hT_pFmJfP}Rp{C@RruM{J?QqR$ zf@huEQnTjGWcJLm7H5!YdFo(OZhv?J9ETKu&5YJ<;{dSG85C{@gJ+ASWkd;8f4=c( z_kcu?((A)0nFWxmML@mD`G-5;cCW-%*N;xzt1b);)RpWm?V$LIpBS|56MX1LfM_)< z-j!&Qx9W$F9Ay}ZKW z4C*m32q*#Te&Bd@73ujsaLagPNPJ{|&IF~+BJ^V0pPZDmapPt(@KnqI962v&^By5$ zKqC-n;-LkfqOdSiJGW{z8srk~-r~@?{v|%T&I1M3e4nn+k44W5qdpx2|3yh=Pj9PD zrAXVU+B00<>booMCB`lR)hrXwRjACiJ`D3`s0ml}&vxATe7$RP{Irin9rw{~e--Q5 zu1TF$klSj)dYK8r1G!=nnlfoXHx+2blnMx(2^a@DRjGkD9erVoTk`HJvx4T8z=45KY`A5d`5mlqKB2I0H3`rYAA9J&0yZXVTdl)CK=`U5C>pT+sE=#LU`i~>$kX(<07h24pR6VDh-R2 z*f&X;=?d46qjK)7a+V@>44c>pM#p#%|8E~2q5NY}A)ak)WK_yF*;-bHtj>)6bH8Lp z_Re?c`AU^Md`ymi7F5%-v$w&LVt1fF#z#gYc89)#r|a-#4#s1*HK|xx<1M;V?ofqc zRC`La9;XaqdUh=c>8)br-l;>C+x7Eefu&RqN}2-P*d zow*eeT^muWc={dB)|$OuYXr}DgHUrcwSTZd+?Feffm5{{ftMI~X}t=Z3T2gwWg9!n zw{pZyfyE$D!>` z&uI=JDdsc6p0wwr_}b;zOiUK*D9AHI$(^V9>Yw_S*6dLEy)B#mhGzfE$3dFl5{Er) zom|Zk8`+}8s|rhkEcKVjbw%$Up>TfXoQqLJ7XZlx$9h-K*`&MVm}BtI2m<*w|>~ zG&>enCl%6`-|NgtQTyg=^VaOnO|Jq?qYCRX=FEq349wXq zyU5c+pBo#Xhlz)e)})*LMuDy-^ zi+)e`FpG%8q8kpKD+SfmZ^N$??44%Q!z1eZgHpP0<%<5A?_Vr6y>$6&Bi#d(&r8A; z8N^)h={SeaJU@h_KX%Jgk%j%D`KzoiJ8JXg*=2{q5Hd_hCr9}1iseRpi@@&B!mYD) zeN=Rpv?CUd)u2$n_OC%KKVkOeFD3tnoVX?an_gwTUw+aler9rb)`Tgs5a_2R^XV|J z<)-&m>EC(~pv}eJ5RBuglJC&nohI_R@vWU2hVNBsGGjxU!*xRezFFVxJFylr)`?D4 zR&_IzRU*=7Ib41n*3QoE6`c(VMk^S<3C)QYZQ?^+W|czFpl?Yb%15iL&hQfZ_2qdd ziBz{@N^F=MR_(l+i~Jt{QzMo)spdMEZ#ib0$nrI0nsiR5CYjjhuUmx4?QDwHD>^Og zotb2JD%1Mp5eLnRsJwDgXOPnB$nRz}d5fw57?7X%2W+ob-$GZZ&oZy@Fe-0=!Y9 z$(OcjqUEH8>`{T23BSc?@AUt?hc=SaQAo?p z-te~Rw_Ap}S{ZI5v|Tv~RUG7#8Vs-sZ!PBVZ2XO4cy$t4gqKg(pYAfCevp>O$8+u#rvGH`D@3Um=5L7ikoW^14u&S8s9s`9_XW?;!GbkxM|_!)0}`|4gl*CZ%)ja7x%2P=bow4k(*rmiUT4Y`;jn6ONN zn>Q9q3TGP6>S8)@0yqcBv+aER^$)$>b;L7!t;1e~ItG_=3*OD)5sP+4$r2%>&aivl zTsq{3r8N>bsW!567QZy#7@wXAiJ7YsIcyVHrmv9UIwa;gz9eQ`oOeYltmy)K-(rqX z5-RW_GV>&tU7|dn`n-sI)gIYhJ}fC?82b$Ah5tG%2yWrdik6>UY0lQ;;ye z89k_WsO4LI6#K~7BmVX9aTOZI0h+s~JNSuE@lPRA`#7-SdJ0>qc%PkT=q3B_*pDv4 za#b9~IiR-rJv5lK#5Vn1I0qJ|&%CHn@u#h!KIC)uCTpnKst03^clccPLpjZdIN7Du zpY+?r_!}i_0p@3jP^zrB)J(E7yj=pM(RDY|#%cn>bQiQ7hN>}_-X)O~&kDl;>hF415|2V$ zL^=1W*-#8jr{r;`XBgX0%Ra+RIf}R`5J`HtN4eoIZaF{yJMw~|z{K$Xj{MjVGRX!$ ze)rK7nSs#8Q9ff=$>u|@gF{z?!eeTah)`(%+ibL+MN-(I!vk$yn=iupQ+-C?ys!T7 z^Wi_*&L?{cw5euRJFAI(SeN2!8KMHl^(@m*U!yitaf z;n$roCIK=0b^V=rn%rJIgHBlE1$KPNSXHSh%I6$Ih`dZD$4h6D)3WcfQt^ZJD}iZD zK2r`R9r|0MGuAy;?$awX`R&DVP0@$POHR%OuiltVl+ux2bzn$FuH&1jB#a4L;X%ZdqCDjJr>_xiT|+eVkR1In7hOjl;i~n$**b*hOqBkkI2=LrNsaI z+G1B&J>Eoqb9a2tal4$kUn+|nbu`(|;Aw;IX4rJsfJvB&VA>ro@1LiFKL5pw3Jm)j zhk2!}k-;OKFK|0Eqhkie!2HYX^s^M96KN!Q;DY2?VqT$5ceh(#gEQww*))HOBbq48Fw;a-Kxd09u^P$9?=1}|oITr-qS-?1pv z=9&m&S1|Su{ZeMp#Dl_Kg@u>!IG9%072gt~&4|H#IiZaDe#$NCkYro$Y9{C6cF9b6 zy`^#@N5oalO~>Z(H-{x7FTq|Q`J?A7Dt_okdt5z!Z{wTjs?kf1l0g%pc!N`qXi$<6 z=X~h#N<^PDGA)t=qhh-T4PqrM|A`h&3&}l!y0YKh^Akm*zJjK89}~T|Ho7aWy`FO~ zw^lTXOXPl*u0t1w-7?g!mk}=rxq}2D>0&LwQoB!x6RBScjd* zvs9?S&HdxjxzN^7t@g<5=(^OE@}_pXlAL%CxV>d@M_}!Spvv*3oXgVYGx7HpPk9R>4jHn;Tw94A~_l*d1wF8Zwtjp7}*_B_IIBl8oebHPslM0O{&jm(&_MpU{h9b^ zGL+Aa{R?B!Nx6rUX4)Tr4vrdiaN5wdna4IW=?Kw63cvrpw(Lng#hLm}>h1NbDR=ii z{bF{p`|Gw6v$8iPZ6~y(4~U(OmVxj7)tFy@@{~e&2n{ zGH^#3`RBlQgfH>kH0+_Al4mfChJVk(2!P9FPu5v#-X|4KX0sHV1P-v{x?MM3NyP>L0hCS97K zs7U94g&IVBIw+wDNRv(|(n1M@J2&UvamO9+y-#m{ zAs_bGtiASJYtA*-`u}D=^2CPiCsMbq>tn>i$Mp~4ZH{#}On(|0-j0^Ay}JJMww4C+ zJ~`XbVlq6juS~f3cGzYyH4|5wxKJ`kE&VNC^4rQ?5rz7}zWp|uhI&Vj%aoYtb*0<7 zml_PqA#Fmve~4Isz}_hyQhuA`THG$3(hOUCMNZoLl>QE!BI$L@QRTwOwn<|>MI{UD ztrW~0oJUKP-fp0|cxrkU<{o>DDM7Y7pW40BdM=eV%zr`IQtK5?I2F>3?5~igCx*qA zM^5)(RgIGg z<(!5W>D8zkvtKtDr>Nvf#Y2Q>;bjSTO$H$U?DSOyi$BG>Jjyd4(&Vec!B$vSkbi`_ z!imgR&$Sgu(&l*t#RwwmWB;$Y{(%WCu!rJs_y8qh4~;5RJ*j*KeEQEskS;-ywvEp` zsXWqsYTE5mdF(Xz)bv7W&oz(6$;-=F#6VF3xybhl(2Ht|k&M0km!8N)Z+5(n-ZfP-UEtvJlh*4O|>ScxoJX3UtQ-yK4`Kgj1%!S zd$Q}&1Eed8F~RH+U`yR)^?t$KFmzCN5Fa4$v|;kmV?p_b$vkQ4GK zuclSjh@EXI9XV9_?{so~5LY^Lv(O2~7nq5xytdXJSF-*;eweyLhm^O?CBQ)ddFFGv zsA)Mq%4frte7scNsD?{85@x^jQMca5c1gWMT#0TLneDRP7BCXoc6-q8QBhj8xa}@L z%_GxpK=n(`UR$OsQO95;zxj#6q8`6^Sja?M8cxxkog|!z5zc;fOTi)`GM5-v71oc- zQ}!u>R$kwpbS~`Jb|a5Yo#KpGT07?V$4Q~UqbuM|J-_nJu6jOXMD^=3(R#syn$9YF za9@WFza!~&0W@N?lEcfU)R96R{dZ@xZ+}8dt~3XaKj!c4-6c-(y-&9{p|<~8_gS^g zp2J6;X>P8-zivi*P4#8>>@;lfn_byje25u!%UoF#``1zg$|0^$JH(bQSEbol&VDJj zT8we|0H==5gS%{EERFqdXsj#a5q8?9>QRHsR*&L~Xo~#1pYDC(Q_IEi?xcu`whdr? zMsW|Vj0Ua6C`pKopd28CfB#C1g?1nuv zPD$l1rafKM>Kgt7g`&MD43dX;osiT$jy@;I*RLet`EPGuc<{tfSSa+8x67S4D@_cy z0X)SjXMb_O$+h;LvYIaGvxyYlI@=lEgMSC@WIMyw-kTD3N$2vM(@B|Wt53_rM#b#MnOHg(IduoZJtKK@h4FGTd$2S% z%iE0r7C4w4?%*$U&){)9yByf;@60>{4iXd6gW;xBr6!*k^sQ%kb$w zwn>YPFzdaF(Ny$#Cf`Z6*2ibY$}PU|WpC!*|1y)`tk`(qRq%PoDt_~VW8t1U#={^} zvAX`?0+r{}h3fsh1&Sggd4ePBd({(iPW*#;erVlOZ0_5zr$mdd&1#YE)l-!n7PH=K z)~@9o%lc*mh4hy^5C9)HMbehZ@!=d~CU9UHWxLEzfkZPqh+h>wTRglsM#eD|;W+}< z=JZWRgZC=QJ;#z)rfT~mtZexyJC$4dCHr%%`!2BZBnLhix^8D+Ff@7or-QTaMB?c? z7SEFGgRn^|Zcr=v(KlxPVmhD6w1+qGjrA^D-@?f=HcP7fdVvA zAc)vMD}FE&c*ug_nqe;9nUt%OgeRpP2*qLWeaA@2o<-G9Wh#vhOH{s9uk0Y!pM;kT5V~Gsa1XZGpunssnM`K+P6MI_QN1FiqN4xT z{n(K-6#_jvT*~B-@$&D?fq@}+F0`^~P0C2LP|u{qm0DHbkKG<^fx2SyD2MMk@iB(e z&7r^HkI@WcZU-vSdYxgi#lH|27njWRUt{v-uJlCRKVlZ__)Hp{C3LFiL ztw9w|t#h%S8lTLdRd5+v=<2=}9@Zurd@L?DmXemX1q3Oy4rgLwQrG2>masQyR_CmU zhzJ=fI`8LtkYR0>X_9|dobkiPu$H?1`;|oKz55wA#%nxI#++_sy!KGC_S$gZZJgPx zSzJ#mes(s+bIa^C*~TmT#g7)_!V|HzF0KREnO6geX=nB`GiwakA6#g%%@&1w;3 z1YXJPd+El%ZhATG>(Kw%j7Ti$?hv7-nmKG@p8M;szYGlxPj;aRnKH7nB}*+V0`#uNh6b$?IE>yL zbQU)EqO`?JuFz-udS_kwO3@Vy4I;QE$=c{D5iXS_1Cyfr+?FgT$#T7C)EG?Iu}YE0 zCHQ7E1xt#1@P$3aX_K)M1)9yw>J<)D8r{Q_tlia!2-2T%9ZPM&5+l z`149Are-Gp>%rsY@BU09ws;CM&I6YHSF8Cm-oHOdn@mk8>i6IB#ele=bFk`hW=~H~ z4#Q_-zBV&1?l=Z^yF0-qG8@Iqnx^{8%L=V)_io7{0w4q(O9S0dUcVp1i3aMg!iq)G z+-jG+tgMN~ahE4}=tEQJy(~w27nfXFkJ(>BBzDwu<}wbXnw|e>@Y8_M4f#Qk z&`WRW7SGol%bcFRj{#W5Et!2mK?v&pN9%e5dSyj`K_t&h1^7=X9w(n0(;BK z>fKFC%emiWy8?ciODwBqt(QWvvsH@M(9@$CK|vg}^z4e=UdJg}Q2^V?y%zNM{+v12 z?X9j!?({SU?59Ju;w*-_8xW^4U^a#yj;u_um{WYWFsHE9%L#QHAk1 zYh99}?41G7tx)W~$MZ&H?}lBvJAgtoM5D2#yL(=~e5oV<`DXg9r#`ys>W?!l%H#%R z`9f+%d$U`YU%!6M((7=voP~AQDy5Y$lXctFbZWp3V3LLw7GlTbu|W-tzXBZ463gf^ z=@4$|n#$MM?5;ZC`vv~WHtW*vt100k5Fd2mP|u$RXX#=$vw}Kh%_s`#RvdMRW+OP**-CVZzKRMbvq_ z`p<@9lp{MU``^C7K9RW6_=qcZ;SFe8dCe>fD7h(6XaHV;3V~>$eT(x&&3Gkel z=o#spYcQxSq`Vl3ZJxV{YJGFxKQOAqt(=3RTfk%r!utWkRL(L0Ci(iUIQP`f(jUXY zO5!7!0;R!;)+AQ+@UnMv-X@Pl0*S<%^SU#1sy&P@=UwTyxgH>~0+2ihzhn;ni^}Kb zj-uXsmA4Z%_a`oI6oHsG7Ly#jf8WdhclWnC_Tht$*fRh&b`H3b&sR54*Y)e^9;+_m z782G>g6z5K)Zu`R_V(yBzU37D#u>^0md~HwZO=>-!t>PI$9vU)ikXD3;kI|XcTS7M zeWyFm*6uVD0N^pc7c~BKr3tZd{Cy|Wyo3r%z+W!4F=l^mgoCW701?PY%RT@clv3Qw z1E>RQ-f3;4P3p!<$J4C2b*d8lo`x2RI z4j(;gR=M7hol#R$^MSMn^_;$p1J5v~`U5mqvPQI)IEA(iAs4EzIEb2-Y2+e*@OxvW z$~JXx0<2MLqFG_JLr>y%||t_)CuRhgdoAz%eDs;5~5BDVGp z6gd$c(<|60*-`q+^H1=rLxDtk$lsD*5cPW!-L~P!)(bs;(XT!5JX_|*nv``7hu%fh zl?#9U0YRxaQO+r}daqKDE4u($2l#nXQc^bXIVDwQArwV|pM@`bBqv1;Jz>-pq_lt(rc-o>FiKcsYij}l zDWLr~m!tX3wgME_M#9*WQOQA`Ox_BgHCzcC{s>ciW4QF+Ub{(>!T0Z&yt|z<_^;6k zsR6hGqLDQ(a;Y_K=SJX{z}R-S0)Fjt-Ohvv|E5%KX4=@;d>#Ecu*F;%&1)17v&p&p zZTDnPVLD*A<>#?5>>amv&A&DQzEa2G?!dyrLNYL#r5vfJOF$DzPDvR{T-o&BTJb*{ z-konBQal4-#3*5-l7GMEE1nDvG&BA3l@=;2ol%ulxYPszARk3rZl<);QAk zTiJeiFBOM<(yn7VYkhNmf-ql1*3?`RmXL_r?oOZis|V@IjOlzS+(;d3{|f)sszwRD z2V)D9yA%Lcx_UN7!t@(T#^W)U6XA9Ay_Y7eg6F5wv$fpai#`GVo$Zr8XB5;GXlBel zk52*?N+ZPPwh;29@bVZs0gf=9Fssm35vHeDf4{fA-3H4O_l+83A1_>3Sh$ewzo{Mi z?f17=qg|EE!ZjwI)+yHC49ypVwnK_VVACNx2_TZN`_)1cf$|XH{2PO8Qh)|ugHi;b z5wbk+kY2$9wKYG%r~+8~!JI6JKc;H^*C$g)!C6OW@OfPkFCKgp0O1v$`s2r-WlKYY z6vde8`UfzhjUY+x9V!BhwzNw5fvOO{rBfwvd`S1hN?QU`=HHfVA6Gf>1r*<+h~U%* z=CB1|MKTgBVg720mQ+W|Yh7-amlbzL0VdxHJ$W{o+PEj|dSkzgQ0qR;>Nj)_z-^$tC(o?Ggu!|_!ayb< zPy3KRb1{J^RSAU?V&e4_XG0?yjt*oMH@C!@W7y)VPkPnq^x$kJol;p3*ltfX)))-o zQT0jQ5i^2C_rutDRuu_FY-ff^{z&ftvna!|vOi8kCAG&WJt_B-TaZW@scK1?HvRy{ zH!p`C4VPEqtkBLtoUDqC0QHrMpgAi;Rg z_gf4c%$tqEsc|PM{od(bdW8N-KRk!HAZM1MH$d0~Ub^YP26}+8aj9Ecu&pDqDx8*s zSfCRQ%gtE!Ll8`K;v-B;<|o{?^zGRC_2ucFW>*-Jn0((4zB;io^*mBG*8`pW{#3Cw z`?=z98FRjKgia7d+myrLz2)la`q_Ow4!Z(hY^QQ1Fc9RvBeQwzd8^BTwMD%b-6jn3 zLtr^;Ds9(v-l-?oT7&2`-b}PF+A|LLEvfO9f;PSU*x1-6S6Df`fn)7D4AN}*3OYX< zIy9+|&g;K1-w6>$wO?mx|Ha6UA3mHP$Nm2Lf@S;xu%7G~XS5@uZ7psa8#^GhS5ZPa zIvu<~Cy2D2keFLmR(5O+An0($1w`z2Yey?rpL&rNqlY%S{5PW%>^``%gH?qr08jai zK>^!a*CQ9le;O)2qe2Wf3X1~S#<@?6da3luUmB3r=ti8Z4wt9}HY9TQy}6TOxov1A zq%im7H`kw5fidXIa=gS3;8^sOW@PgH87bv1ODeog0Tb@M(5M*+{q}fc(#3t~K0ZRBmBv zs@6v({2jej6ew+mN@8p`N@tY@)`GbW`e$d7YuB5d{gTp%8K#8|%Gu>9ZiB0{ePu-3 z@~)MSDk+M0DP{u_u$)xc&PW>+9BNcJW(sGigv+Q0a<-jh2FUNLzr1Z_`j@|da zC8y%7)jOAL?LJv-MfWBT4FCwZxyg^`qT@afSXS1-YHL(ts4dZe;u^Wu>rqgr^<7E(o^@{ z&tbExTD4ee;#Go*eeuQ@CJ*aYf~sQ)I- zl9ldE>E(M2^tG=?kevVZzmZ{4X&=hVGa)d{!<kQa=1hU*o zQ2mKh?2VSRZrTKjQ}gDDz~gtd+T0>P1wZ;*-h0epGKS9;PU+5IQ-_+t6=ICUJ>Vsa zOtKlCa7bA9fyen7Y7Ve;7?n!p>MUHJLa<&ijc%mK43Tj(nu2RP)(JI%cL=Gmn ztTcP!Am7xgIqBWIuxHmi`n~Kw+rK~aV!cF%q}Z`#jz-4^@hWvLEgimah_!AnVY8GWUJ<2UL_p?GOH0rf@h{R z+3E@PVRqrspy1SGTXR^6hxuKZBD7o><~SHWNt1;Y*EPZwM=nuLoh2_aYbuR-RMhxR1I!XVyJkAbk6&Qe z`$GITto_Z7N}%sI%odCX7k%S1R*sI30;8%gaBOQr&6!qwVEF+ALY=w=@HcYzd$--! zLJ=Tm>%bQIa`Ybalv{x7T=;rWzYbvFSnm)=eF@I4rN!3qLXMW%!$)2|yACPEvACvK z+4SngwDQog781t0(vdx-LSjZ1|6OGzdT}i*VdL~2aH7mVfvV9ig#}FplWWxTdY1Cm zH9-M066H&V(tBg#^?8l7s>^_()EF){6)-EuD*`8{@peAvp;HAVqldsWJ|kYq{q_6+ z4jfBfo)isn2F!)1O5=`>4yTrO$kRBI@SP^NVD8RDvOUxJ--{}k>zKuLc@}Y8yGVP7}-rR-7 z#pa7Zvce+Y=|nFA{4j$wrd+Q(t+QDXl2Dn@ZP9YQ@Sw~zqtw{to@eX_&puIMc4nGo zBIF%Kh$=EeLk}RUwyC}{iq|F-p=T}XSRC5$N@d{VoyVKKW+6%4q`)nC_elhih*_R! zt^O1UPTuV1&6~V_gj8Lk9SPSUd_t85S(PU~&5%~lu&RD$(%s#C%h53n|LyQ?W2l0I z&F@?MuIfye1|DI+IMTn18!*HE{bxg!InRXwZ#ZT?xq|r|z|uM0ou3Ih3%2_d&-uIQ za2S8Y9>S)(r_{Fu(GUNI6-Q`7@QNE%Q!u9gW+1P7^y$aog?kE2*veqbVg3@bpBeBR zxXs_f8=vwJ&$VV4=Y9z{yvLm!xnl<^U=`VGLoT)d|1}Rh<$q;1VX{N6|H~2z^`dZ# Yt7pf@puYTkJ>(wEt9nI(F9SLkSHXy}y`@55+lj$vqM zj;Q~80{jHN@cAzIOTzVmfvdI?+|}c;vlWfnW7lW)POkPgPp-LJIlI_6IYRgZ?(&K8 zUVG~5`piXwpWoqs-{5m{w&t%hc54Sup?#)k=t4tt=JEcYf3jpUZD?ppR+R4F)A3B0 z8#(EUYPiz4#05p2^(NP>XaAdZD=S5@p!1kyFbjgbWAsT2Wu|lg?5W`3tN>0JX5B2} zY^MhqZCJ#vNPGQpE&JZ6IAXcR*t+&x&76xhVacUx#PJ{SR&X(X*lX|+`1|?GHPn$m zpT0a$xOM!`rxziin)}lS7b8pRg}gNell?l07lur%4hxsrrE!q{XD1q_u*q{ zH}@a-qA%s1|HSmPHUIozi6j|P{HX2-dA!Yv)SEZ!JzV~Lyi@8l4b6nl{-ds${(4nm z;!vK?&fgGwnMvNngqJPYU*E9>v|vChw5roPV5maY z?N=QL)dMG_ur)htL(^{Vs-IjcNfK^El#R7lPqr?xCnu&i*N~DtB(+;yVQcIw)mKZ={IlQ`~Wxax$Mjh6uWIKKEB9j z(%%~cv-OIAV5=>uQgFrdKGBZgzh%Fp2h1slz-4lVx0%FX2A- zG}&)&cV}z9Z1l71Y^Q4&GZ-~GWD)@^h1`3(xV~Nd7#}MT{PyjV*R z>8i0M&XdYDTg03z!nP=a4@K>cVbM3UE254GcXp4YrKPR>4&l#!5ORs`%$c&*vu&G@ zR(1`>WhVHg{ySyEY3DhVZ)qe+*$#fjW@scQ{laN5J>C@|AjnW=y0}p{w4jwMa9th= ziLL4+E)kL5T>@Xt3hW|}PBYGrg3GU2Gg6BenSU1ssT)@l9Z6S?;u+`@RS|15Sg0aP z&kt8nWY$HIpJDv>OshQ$2g{tC*sRUSp^^(f3N4!EkZmLpo6c`Z#uOahrLn2WdW`oU znsAj0;D_qt)5(4!N|EcG7!^kH5`tV~O=e(Xnmv8$RB@lMZFjS2s@!oh^2F(@8_Cn} zLPA^^!H^Ki3ann=kmK(~y-AJlnUj}13awhBg~q*>zjJ9IYGwAeA#FPn9t#NzqXk~= z-C@E7UfEzA85LpT8iwT72}BK+qXBcl`phozLr{(-W%X zu5AJ=-)X3H{`lUAiN}arCX0MAyluF!u+Unn06RZW++>=mo(RGDxy<(F#Y+kZ2(*pw zFG^W$?H&^w11sxp@@TSG2X|R~pV0JLcT4NAqGh82x8Y zZLN|r(;kEjS`-I#T$Xgt^=NE;bM9vQ=2h@UDmb;>kdf)fTW7-;AiB-|n_h z30gQxi_LGl(4i%1%UN3GB1GQVxyZ44=^@!Z<4HsCELfP{E)5w6>kuZmdnlUTatn#^ zoGWaa>uk9I7awQPkV?H>P~FKFRUM0Lb}avOf;!k1C#+KZjuNGBrnEk4MjUuFQsq(B z(U+}zo9qU$ZdWa?ru3Qnl|YK{5!&^59>h#)(41;!wHIZOgkS#QI8uq(j8|=|hJTOX zSZ%%;);|E_#;ZagkOJGDY|>IOIWchdqhD0%*-Lg?o{u+hpXldaP=IN-?(6BCvQ z5F4D$k*ht74jJ8_9@kfwp`T-tmUK$(2VB}wMmQg@I1-!BVx17VRyRkFFhs}5H-}6X z9e(D&?hT1|8pRK#iqHQj5OuCuz+!rrgn1G4`PgwZ!MV9PPS68=STID`4)SG7< zGqs7^-6Bz>oj@dgh~E#pv+mUSvfFom6l=8nNR=;nKK>9P<+JfDFd!gdwGgp3_j7&J zkDR9sS48_t0i)NfZ_zSv-s0xwR@l*VpX*;rX40P$bR%}VNUwo!YC!C=y;q5ZB!wxD z58m(r;7)TLtE9fnS!z$F2Ah+{U5XflGV_G#?xPp$Vz+K7LJ?~#y&0KZI3%@wYeQyt z%*?Cmuhk-k5J%RejH&Hm7~ExI?-)RXMo3bxrkY z#MilZq8SPN($Rc3W5vzPm&Cb21TVJ8E(pn4sqJcIfwq%Sk# zze=#y)Ac zTx-N0cNjk`y_qSwV-6p)T#i~tR<6fyRic^_T8`ygJKLTG)@f&hfGqsQOP~#-Et;#Y z;ZLdE-BPjZ%U4^s^P#kfN_Z|ldhH9jWAs_GHTq5$n1r_cJVqtP43#kok~6jA-E9{E z`r-}_47%bRBV#7Wg#DaDnPz-dbAn_t2HqCek}OlZ{ydUPW38PaP+%AL+?+SrZ?|Gy zOh7=ZD??2Mk~42oTnek*)2>&8P}+IdRUf~~LecQ9j;p$Cb=M7pEk#Pyb+7CLiHz~& z9^)Ar8Zjq0caq^HYj{LD;h%X`7{3<;`rdnG=CNM}@I!$rZDVE6$FCS5w{PE+-dWKe zqHtN+#16Q%1u$lmX}0_qH|k4OQ;FvN8L1(SZBLYJ#pYKnNPy(s%1lHXnu8sp3#R7q z!!r6rT;f!z!w|f~rT#VjJTGf8^C-xNPHYyAwZDUJ&z<(kQ0T!*UVw8H`=`>rAodkF z)u(h<&CoN8%q4_5{YZJ4xDzc1XSf?@dO}Ui+8c#gIBB(O2J^Ole^tEmL_c; z!o}}aJ}9s*^*RiG{>kiAol0G(>UixjROZyD!e6tJJQ)f?vDEZ=IU1U9VFTPr8k!;$ z?M;|yF{_|uvkloAu8v76EPB#Fx3jZ8%H(SbsfSOtM7cLc(em=>WIgiOf)rP&p2<~D zlo%Lm#b-U2C>~Gp;)h3v8`{FXub~sCzkdBX_g^}w<_yh!H!+E{sISA;zrF^#i$n|v zx37G(?aulDWrJ6YHh^rK-2bc@za}Ut6wRaC^7_5Z&PwDCGF<^AfQ#qOrGmIM(vF8b zj-Vysse;9$s*2Wf+1ga85tk0A`)t<0KR>p2)jm2?;^4ef>yC2D3~`_$7+rLU-!ncB z9I)aw`holAWK8CO)hCeAq*)kfXqu6+++eA|_5Z7V-?xK1pXq&k_`V35)7~%_uAiaG z)XqsmqsX{l48JgG6k3-~E=}7HtRUTXc-4OU_U+VFCh$PDr>-Cu{e584|H@?poW~Wu z7?mmyvYvrK?DqCH->%c&_g;$^bU2ds@uO~~tIZ}g*-QFDYPU_SEU0ju4L7NOOY7#J zU~8lnS+yoDxyxa@?n2UG>SiyG97iQu`>=>TlWhpTC}}51OEU(!K(irwi)JI~c92h4 zSa5JrBoek91-Xurc#q;haE7-mr0STMBp}ZWY=$w>_`K}Uq#2_yfO}>F#r0L#BMyrH z|F_Wp;}SG9vLY06?Vc@I`oVImkl(+5&pTQ-?+!bbg|f-ygOr`*GHVQ{r9G`TAc)Z| za5U{HFgO3_pMNS1{>AX6^eM{8y-JX7{PykskbZCyOff7aB_(9*pJTvGW7|7hq=K!f zDmGMs=DDam6L~MbCof*+PP(fUJ}+!xh*MxB>BpT-PBE1%wV8a!Z{I&qgIEt)s|nZS zIjVZO#H#fY^OhL&v9QIv(9o%)bhCP&9^H%LHH@eQt3mVSB?ti-;-fn$5^eli#VW>B zZ?WcAM?jD7Fq$qi^GH`3?!k z8$?D#T)2E$@yiQW4Th0gzuG*ND4qtxqu>o!;UM_X;p5HK_$#{mYja2hao!R64{f>t;27J8JpX zIqJ6EK!*&ExcFw851Z?P5L=L7?d6+dV*P#c{}kOY=M$rs z4tm08x#j)+U1n@o&!?SGi_dwK`nAR3cl$H-_RqgtCzo@#oUee1{(N=(l)W;D>_3Z> zFrbYi=9LkCtC}4H;kgUCK3re1-&Th=HoDol*^wP9)4h)ibDPWcmDuNM?0GCB25)*0 zvYGkpQe}KM4Mj^GFpZPJc4Mo3{T$B}!mjq#$e+yi!Uz)kb8)yGXL#K7?j+T#vVuxq znX6}oNG7oG^*K@entwQb;kAGijAq#jn3@&5Ciw0$ImIWShT5DfFP`%o=(9IUO*caj z3tjm~sWt?YRr^srwc99IE6?QIQh|(5O#bfA0_aY;QD1I4{G!Sb<)RC(L>n^gMi>!& zQX$(R(bm==Bg@-l;9>2a)F^_Q!kn-BEiG_sGKf4^j-Ra2HxnCQ#dZ{kXHI!MXuThkVCu5BCU1V{E8FdNRV>zE|{D zTIt#_#(OWVs|j~s4kjM;&hgHZ@J0;ZAEADOYDLakD1m5Ka-lp$ZnXg@~f89gG7Teos3!nNWG5oSsW_SS)fH+tK6?fz(2ap z{dO?r`59cVpDjsl?`5ChkQVFh4%6u-yXG&tdVRFd_7fI_hbHybXrSKwq5%> z8>3nxTbs!zMP0k@73uZTws@hfRsEI5%<=iv&HAq>QFH04+`A=Rreyc3dEQT*SAYHL6zk;6;lO~RJV zXC-g81{kp+SG3{;wkaJlmHTxd9&_VC@Y9XOUm~|8hl)P)nN~jik#dhPR0i_KhnouC z=6m*dG1U}!V`qjMvt&{eo1ck>)KWlifjPNmG+Q^vwN1G17U-aPw9*1j{C7D8ygFm^ z3vx0_UkCJ^p#SQhM(l1*&pU9=3694~xMdHPI@tL`DH6x&F8lx$TIajzoB|vS=d*c% zg=HQ&jN;awvlpV2SGtjiG3LHY(oQYp6wOq*H5|4>o=9<>Xg)XM+NHMU3-6Pnn2Ff; zkJUh}+=l>smT6RCJFq@bXrUl^biV|VZP)zt>~R#IzL^tr9fgY%)IxZWCFXa6V|b%D zC$bDM**gQ-^WQHD9shbN``OPYHc9nY;~x&dD@=DH0=rXm9^Wxqj4X8+L@fyLnQzC0 zHeJ;YB31S4N^!?TI}8r&Dl+%xtGVoz>bw2e%+|^brH^7Qx61O}T`+#2@F0U)2n z`ubi6rL=-*J1G?nXK<;n-0#)4WePQ0u5^-zL5#SDa$`7Rt6gC4qY ze+FCQVKQ^nsv2eZlI#1Q$JF4j-z%A_ZCJiK%bXR zlLu5xYte#i?wQ7&*5JP%GM$00gzrOY%=7*O#F+Me<@cRLKw>+A7G7-j$j$h#0DNYf;La&!WIBX=H~<%PN1puS7!{# zcG1G6j)`jt@f6#ySr4d0|kLJ@mcbw2GnSYeuptDNCp zE_my;(Y@Q3_Aq5heuF0jW%5iieKsl98(w8j1D5rdi$Bi?+vQWtoN(ibVT-Q<=QO%R zv6g7Ty^0$9O*$K*OJ1lr14A^rwQ%OvorJxQX1+csR_5nbjXna@+%QR>McKGPDZ(+A z26Z2E;qd~q%={#1A)XHsz_^?csbKD{wi+)~(gaVtXJVfqM+wNjkL_fV=HgV{9xI9I zwr*Y&svG;JA>Hk;E@N-~MEsvr9nQNiy9rqo>X~JGsk$C?ea^eP#cB9=91!jAyqno( zHI<+;g!^+B^LF^8#Bz8?-PSKv>2BBG*;=h>;;xILwfGO>pLNgw1VOf?e5F%m-j5y5 zsp&0;#Xs3Ss5h?S0Yv4d+S%AGFMJUWCEKD%+w#Zg zQW;GSplu*cRgrrVcM!8*aL|^RTBFy=9mm+YJL13ciW}oLG|0=fD^GvqRxD4nVv^Gp3LGgs+afT0Ar2H25!$gdS}6)OpC#|%zj9{c6X!3 z^oR|g_4x}|Eo&7rrnf*k&9R&n9ITi%U!C`=scD~&elq?fic2VLPQP!a1|~Q7dUf`3 zv@+j@W0FI^qglPr9_w&P@sXoPgcnOC=Qp1pk;AG!g7adUD&WePTPV?6BLLHEUAZsV zI;#4wg&a575C91(h1h|)TRK5n2Lyk2PZ6eM%qR-UW}Fz|ms+;im=voM#X<{TULGwC zi+=2Fgu(YpMA15mI1v)^r`1?WF-dn;0d_i|*}^*lsWX2VxqHg3a)TAF4eS*SWoQW@L0n6`A zwMVbpCd}`|QEXYQw_ad)MVb2(3!&hr>mmrHw1yUh<3D?C0< zm-ReEWo4PlmT5ysJO|gWENfKz;c{jq6A^U!^FKXz)}>QweW|)RduG079l|qfRXWu= z-0%0sOw~Y1fBeJ=tVx5iEyC@jlV8p$tr~ZhI~xneHOm_}CA=p-LHYZJ`%P~?gu1sk zt<`K^Vi9-MJToGVf2}%SK(dVK!API6z$N6Zn|W!m)ojL{o*T-M3k=E914I^dV`9DG zy2r@Jd1DdM2T4aQoe8ax-7oc(<8=z{p2(on`nT+L_>n6O7;`s!xzc&oEjt)e(R;-ZvG&H0) z)9K;(P$ayx)6`?c%A-=nu+kd-bOdk@aS-cJQ`@yhW~cs1mrNYarrY7l+xW!A;7fPB z8~cQ+hUZ7B`fz=Bj7$4DT$6p4-J&?4+-<|#qiUYl5X=F7rLBw(RsYe53UAXEu zde>k|gyB4zBM3g1qhHVq2!W2RBsFc1F6)*6KYep#Ng~Fb2NKzG%$(Ci5L&Kk@YMaT z5Z+k^@^Kd6bcH*Ws$%X$L3xTnvHx$tWUTxOVjJ`|hQsv$uQ#{49~Yg2ZU9aQvo0e| zLYjH@b*YGzfEFX8=VaQh%g&irsb7l0-tXg{64$vrTtppbdPLQb7RkPA5nu705+g3= z2n!E{c%*jnw7oj={p&WPnH{ArHyli+$-g6EPTYqFQa_VwZT>k1A^>TYj+MGO(#ISl zlx4|p-C3=EJddzlaKU|dCra&K;n|^0XC7~EYwnR%IX)s7h1z|WzS9Q!X zE+Jl%(~XUbK^c9v32!9W+S~pO-&nEQYuuBg&o5a#yU$Jak>bXPRb*V(ulk^#Tti6J zsl?eX%PVg(?>>G;RtjRt*} zYBTC9uc;8E6mQSYa1}hgL*$O=`v&be9NKgpf7)wmQ`OUwfbgaYpvPK{A-V5$Ve$FC zQ%{cI0#7jxW=wM5i>HlF^4+pw7DSKspxt?dRF1|A*`)2`s;s(j!z7z*Ut$Dw-}W>K zjU8$(=)E@p-;-=ZU;8Ng^0VC?HTh={O5+NLAjC$ng?G}pdh*knLKD{0AS+IvCt((n zjxXrtB@3!_`Sf($5~YIvN7#8nah^~!RCTrEZe83aRY39@XeTt)BMtq=W!{Zs;q$pF~JMIg+KP8@xfB{16DRLPx3v+EBA>*jXh`_7B>~7m!@L=jFh2 zJjkV0YnW@dl&|;OrQHJaYmsQH_ri9)Isp6yrT4A&KjBDK`WKHlF}FgCN>w%JE8WJgZ)&2$zOUzhktX#PeC!eVbY57#6=?vmeSX?>8_% zbDYt(Ptb-e6Dl4CKS7vUCFxW>bc6pDGQ9Xq?9I!0wJ9fT-KfLTU)Hh9MreM0diS=& zhBR`0^-TDyW%%qf00G(VCJY3JNLh;Bsxp}Qiz3U4JdRU1!y=?OE=@Hl<_gt*M%ZqN zlbD6=_v8&)Uj4h>dDEaz4G^;$Yek!9(jeCH@Ez*Id{T_mR7=j zC2Kk8M2>mEAEg7|r2_><(FYhtdA5#9?gF}l`31t#(h@$lg)hxrrFAs&e5e;OI7TT? zBEJ1Mfx{KvB*7qUmdldTHf1v9l>PAi6~??69lFCOpty|<-wpgmw$+)k57~79}ykQh!zKCNL=fdUuJ};8FY}3)Fih*BT4JcW+W& znOG#3)M~f3ZU3k1)B8v&jk9F2-*`qB z1Sd1p`!nDaP$<+y%|d^n1sxq74CE_y=KFx*Py$kiw`+3)7RKF{ex?Z+!WKw@;YK)LzSr^>k*eAw*(+ z3nQUCO({P&8!V4xdc-R#Wnc%Gj=fg&;ESS*Zv7lnv%TEv@NbFb_wyz81D$5;Lr%3= z%kL2Y)ULe%NVOk7G!Z+XVao*yjU1qJC>2@%&ch<<-VKHxm5`8&q^{Wzs=fBRO<{}1 z|B#^Nqx%mZC({uSaIC6IR_{BY;A-}*L*rb?VSzC>7dQ0SQOx$l@+(Y;;Zc>bp==U} zYgVyCZ99S=26}(mlb^!xVeU5V6U#tllKw}%u*&&O!fi82oK?#6(@314)$2&Zj47mD zQ*YlPX4zd&kB+jn-`jwC zJ>$r6x|!hH`9DVek_|!-UxDalKW;MTU%X?aBTDeJh?@-Tkf!GDhfeASh^j-=<&<{G zE~%!MM^D-tL6;j7FiQ01Djw32Wj|1~28|z5 zrHT1!|I3zjuYu9L-z8bp$xQg^4_UwMr6%!?>-%Q;^0K!ha%vb+w6OR}XL@2?$MdZ6 z5yaBKBt37;N%s2`HuD}3_#fRj&E(gW`mMxkcQN9yPz9PYJT2j3J=h)l0Gv# z^U(n1ws=tuN_9caS{%~Mg$fe0qkKMK<+!DHEfvKce?7)5g%(Kn1oEGnFvP~Mpn27N zHs6gp!liTP9{a@&m`(YlcV~Ko0nBd-SQu0|VQh*PcF^kwMy3{JLA-j{hF5cG5 z0=&G)e=0Q-`;-<EumL zS4yrhG-kU2W9+NcryZ9vn}k>>ydFfGtlIqK2zH;BacQ{=aZy!tsnl%2UlXjs;NK;6 z-I;~F45$70E{N4z(FwPiL0^UE&7Z>J$%LBKl`aiLa{VzSEU2Dv)CEc}r;i{6gU9D4K@mXUF_()n)92n-1u;Kl;=Hv5 z*u{ASWTya+zf-?5ATcDU05Nk>$6tOAK(K)%W`<=T-_yH|_nQ4-i_@z`G_}!N}D~?ui<0qpA@VQyBv6m&|r<*_A z6nP|&8cdskFOurgZ{hu!1Jq=uz8*Nh0h6KXwE3#xsB=JC#rz-I$~%Ki@57A;ox@GX z>@t|D9>Xu~^TW9vHt^>dc=RUy<-1=*^h8s;0XO&Awufh^m8V26&uAx8Iyv#g$F#K1 zh;>J1M+}^(9dj*1ItX5YdE9>eFNtD#RNy4$?TChNX2COTx7Fu~jvFO_sB8HT-U#!K zMZ;!k6P7Qj?Wtm2vyDo!=WQ(EGqIX20a_1dJ2ATXCgOnAZze>0&kkLR+9+i6^mx00301E_|6*%sYz-7#`_B*IcbGS_T5t2+ops)483Y&*Ck^M zyuzIehkE!sQxNh_m5m!RPV(snl~Q}k*2Z|4gCBNZ11PhuG;&NDlMj+p+_hQz>2E7z zf_2G;Ycc1KUCEFxAz$2I@N3M<>Jjk&mR2GJzbY&3WT<%2ZF*aVD%^?+0V4uBu}{c! z*h%)O{uO;?MMW_O8SDkl3xbdsRT@ig5wz)VJjX}XJst)zw5B!C-MA}MGMf8nB}%vz zNlr4&50#avOjWwhrU4+KflpGX^%pEIK3;Pc(9@sacjV|`pHM~6I71*0EI}r;H{hcM z$pCp!uCXvDE;d)^dm+2Ve706**GjaL8C<0C&Qe{JY|Yd?-%ij$i-F{+ z{w)I+d}H`e#<}`sK6;A4wS#yPv^sWIs9Rb$)NWm5VR49$$XpSWU@1O23iveusCWTu>(oaGD6Q#Rmui{Xr67N2icyGR&iCLsVsMF>J+JdBS`3y<=Gx z@VvZ~t`)RIlualOt<9FxO=qM zC_HyxjWLG)lhVb$Iu$6XGyycsKb^pk9}Jvl*H31NJGNOTU*h#W`peH)&}yjRcgocyv!CUtx$)RWPIR_kTEn!oqI;g<`)IKi zV>{ac+xlgIy-_)msu(2VNxY$p!D(Ysq!P+b$=-^(XK(Z-p=ECE&r=jPBT&3Z0oB2! z%*=Lu6QYcEi*c;B>&qE#x1?9EUI9sNCJ;Vl85BNQ>;GP72!ll&IeL@@sxCH7=D2>n zZr33`Pr={c9|>jOf864ot`JYcEt`3J4HlFJQB;jb=fkKf=QWgs2B7tMj7xLf7lvmy z9`&vj4b}2u zdy|p_xC&)eRa7KemI&HY9$5On{~YaPsT3^!Bc5Q-OW@mC{Ptb@`OaRt?Yy`!`i&;> z2(CIlq)VQ=c=)c65bCc``NhiMcF0PP0~e{4E$YhZ__mc`@AUrLfmXM_%qVWq+&R&J zrN=X+d+MKdjZ24;=esvNlo={jmb8*6T6zAiBh2UHgRE!|YU3CEACqKxyvwFdP>#H- zmv0~cv3V=!>_Kxde23dCu2VzeQ?E8-Hv4KK=kaOEYO}M@!M)*#3X{&5GUcI5-o)w$ z>AMijc7qSJ=xW%3t{RkU4xTDB9?D;w!;X?L-;wDP zo*E-51+EPi()8($@t=5guT38EZrJ|~_tNBa+@=e0tCNwT>-kuwYp{b@Kj! zwEUX2igI`cefZkWIJUl3We2W!{joGl@9s>wYK^)3A6*rgrZZoeaU4``u=t;Bxisjnzb+i#gZ1-n`Y2BF$%X>3(0- z6fV#)5I=XY31!*dZ?1X0-Dw-KrbHPg;T@grrXI9f1E_93#g+oHKlX zxRg?)DMc5ujG;NDNQdezUbpbE@QNUxToXft!$`Rg(4d67zfD44U%j{22*_iUGfy=6 zPq2THV5JZsWRW%D?nP92sCdWm1H=6W4%@~4f9JzO%iJRA0)>{QF455~_L;|@u^n$e znr&1XYox;$XJM^~IrJ6rrn>i?=}9nHZf5?FsqNn9glhr=7)egPt}W!x(tHE<0%;r; zE9Za2ex%6xoNjw^E~wR-Wr9w^PPG1^697H<%)VBrF#ZCfUt7OgmAH(XAX7K$=iNz5 z1$wh(^d}um?>dDyo_5Uty7?-~cyqVxZwL4+^>>&TT#;pfhz;qB_Erl&B7gO{yy(;43$a(C#Bpr^C`BXY0*H zhAjMKW@~Wob<0%C3xXyM4tCj>&GVrukqD(AQ7>Yea5^C}Jw;Qzu7k8rdTW?dvkDRI z?wJ%0p}MN7A07=!Xp7=)t2P{D`h}&$go7Qod?}hCm%xIRozgIkn~rRlgAJ@EQBph0-l_gQtKDh35ttFFKJPPM#vRnbA)=T~Yp(aNu7rAUn_p zaeFJ@x3)YmJo?SF=OaxkEjpd^hL{~l%YhVPWPBWtP&1QSU-8icLyt+t`$oe@o)_VM zKgT|16Ms20-^);}H{0h2{N?pDZD)U7n-06*n}VR|yo1P3V?9s|i<6Lb=I|nB$fvh1 zL~6g=wJPT1Cp-@GKf1m8^95%%jJLKRC~E%jj%l$<`M7?0GbaI=00 z615;dpZQAk(rj!Iv4Vt0t#z0G`oBr(!ocU;h4Sib zFtR*x9+Wqb1MPR~fq{WoP%IHUF(JJLGD}UKazGfkP(FV8A~)=}IC@4ZB|V*ir1>|N6_@YlJH;VJFQQMwe!la0FnKJ<;=GXO+!Ge@ zq^G1_-4Nm?GwFNBbrrhe+X{iO+U?~K`h?wWipI`j{TWaMboc0+=Yiggj0BAW7U=Hm z_N(XJeXV3)zG+Pv7Z=x%EYJ1p_d+h+>D*Wv7j_&LgD!nzkoMO9v(?6Oaeg{Rl&ER3 zTLspyQE2W-8n8F7><*lFfVvL%3M&W9?(Dw5cwsC{k;8b|B_8=73lVTy?irD^$%CJ5 zJ~lTig1%Z65csh5g^_tA5Z>-fDQ1B%U|%=A3XbDsYiFv9_~u7zN0a3J{B|w=p^=vV=Y^mDk!L9n$lh|?_589# z$b)R(l7ugl&UW8WlUwjfR%6Cfr+(^tm}Cncr&#_ZRXBfJ-&mRA3H1$vFFpi1+4+ur z)L}pyv?c3=OrXi;F~?QYWB#KQgIXW3qBB2I{h`+Z%#WM-n_g%V>ax*XN4Y;zj6-SD z-|5$ylj+l!Pn>)@mjXAuq&WHTrSq-G(*&TItptRsZkeMgVuVnGm{-jNg1wB20@@V3 z1NXWTiy~$?$$4n@TT|1J3LV2E%)2_1qT3L6$T>dA+LJVk7x(AZp+RG4Pa-cyp1e?^OuH!a4?L^2iSQ>Z^3|zpUmrOvEP;KCZ5=YxJ0fYKl4%sNuI(`^29O=Y(ay<$>d*ATp++`g3ohAOA0N&FVp9#Gy)VNp_0x4H zb6dF|xl6t&xhHV+1^*%w9gUCgk>(p(Rg1cH)gT&Rqk= zN_7v6&~P1N9jr`qtj+Fy;N`GCeYPuC;&$Y?Baac>`b@Wg=%54~kkif9;clB(ixbk) z)C`~MNGdZCC zy>pkR!o<0%&(JI$KUf$vFCQ$fyX%Cu9`^MzX%oHuYL}Wg%((Wj(Pm}?BXKF&o)qe) zO#EqQ*E*UzTBW${`~`SkDD;Po${N1i8ytOs0jYA?Nz`nA5|;)m)dhH(yI!P?uj4CD zh9~H2Epye@Cg8Y>h|d*p3dGE7@*?$W7<4TbxzKf7;QliKz-K` z+f(sQgWuZlD8aVxZSCHG@yD&>KojCVJL*t20r6O0A#aVb)5IE53TIeE*Ws!fdJ8{8M)N7X1+E1J(NQ5AuBsKZ zhl$^3XfFazu)oyoMeMzanX13)k`d!5nfswj&y$2G$j)bGj#{0Kb!I-SE-FqthI6h* zL`X>vV14;#Tew(UqRUv{{ruDs&2#;`6=^}Og_wUk;paGy==J?`H{e2Zc_#~{=3GF0 z)7E$7GTqAurT&{@A9l`r{!I^No~gdd*{7Zf+j8X}I6Xam>47IBbcWyY<<2g;j% zXzTWlR5frI688JKh67x|bT!wa{fVki#Orqp>-!tcnP&1NPxF2zreKqb{ zR4ysDxYV9{ZUo{M*w+3IF{rOy#@SAbf98F7171%x!q}r_9~5fWzrhi# z;XF`jH!fI7ZL!6%Ug~^#u%rou#?8(?kHp*|8IB(Euh?R@70*{E-W%u23(%H2>Q=ll zEu97zDfK$b;WYf_&919eDeaez@cMKW@^d^oSVOsYu_MNo^768={+%TAk5o~uXVPd>vy2CJMm@u8_sy}JQi>+RnG_w%jL)vgHr#p= z`*~cWW1x8-aFTB^?iaAO{`K15dm_ZIdUd?7r?vPBYaeA~+0=5*4?9~0g@kiFN)VXq{o`H)*+T+r-g)EO8j_V^b2ZP<=&`-;Bl+v`Nyh!*8nrHMtji8~DC@InIN& z;F{=LD3LZj%>zN~e2-zZz|c(dzKt)lEl7$lZZxj#FG=FdGwRN?kem8*1Rr2;Ws1Qu z87q;eb62|qd6bZuN_CqP7jC;>?SX2?w9c<}-^|a=U{!0~^fqWda%h1Qd@(DNd7Y(! zNfJ)yuzRZ9egfhRq4iB}l#PEII4bRt79Rz#4B+B`p?MF2kF4Wj{dgylA254fQjqju zoe$dgSv9&-3Pao$4PNCL>+s~pRQ5zB`)`?CcRBF2@UETBmn%(GNft7G*d{Toy|(xR zA6Sti`qTaR)8G0ll?#2gp2}(m9y_t&{j^!`aCDY-a3#va#N0MMgs?;lH#m9pux(qx z&r#Z*l(y*)B92SoH2w1GkMM?rUDu5L1B5|-hGjZZUUa*DN|?xF6P*c}teShSm{PkB zj~wiR8wU=3jZ5N_S=_LKa_D+D{g!f!3=bE&&^42gR9nXy->c=c?wAGoPhhih#lv^l zq^&7}-ut-%)Gg|EI%#x?UFP%>wb9?(b4uB1XQrg2yU>w4Ih2->@gQl7E195#3WF|G z)N9A&@~>{I(mhiT%b=&Gxsd`e%FbTV7f;*k-jg@hUtaz6?8BkSwAncnyG|%lcbB?< zO=5hzFyVK_8+K>J=&vxR&Xlton;RCFC(W2B_@0hy2n;z$J}(jgs{juR7vW#*_M%hT zu~vS}F?j*NQ?8T^jz3$$t@XkWN#qsoFUkK$;$P$1m^GXwe@_~JaTeQg0c+qU{-CHe z?_8w*)5&&4I5Vu`LoD|hxI+6;asLz|fQS`-}{m50Dg&i)EomsT4IX@Ru@w1S|U0l!p4w&`dRnz&H z?y_Z4Cwge;eE0i`kk`tNF_}2afbQRy#J{iStP=;s?W$K#iS}xfY#$&cIK_@0Sb5;* zUvw-Y)25v09y2I&hienjr1d_wXn5_B=t5;$wztUbY0~4m>xa*G44seRbdP*;2C*-q zFeSunCsKs{ntqL6k??){`#iL`-0`V_(Yo1WLL+GrI=x-;r#^b&5+XB&zV7y|>!VTw zNwJ1Y`Q>$x);<)zy&}aYcQUMDsM4$9t2YLL+ys~R(`RQ7Vn&B;Jr)y#nM_869(@H>SyS$gj;x0GeZ(1* zwz38t+ais}$7RcX@Bs^SHTWRSWg4$ld>(6vbc;EYt{n4S3C=fy74_Th`?C{PZL>Hp z0?N(c+1-N)CD_-W0Tq}=uf7ad4~dU!)1vEol|6sM&A#qV;Z@~LSJh|IhhN>--VDlq zPn^RV4|A4OYO5DL_xtR)>GSq{EzE;j;18T%IpW8sphez4DmPuX{Y|^-5zkEGhE*i0ziTt*U0+RNKOWe^ z9bxJ?0=25xB{12LV82qYK(f%wfycH$czSr?KhNm&i-ag}8|#3~c5~RDRA`{S{B^iw z%ePG$ks$MD4`{zV(oWkJ4n5d3W5)o_Iq%=OC7vW9rb-kw|1RKagpSGaS!LCd2d{vKc9} zvEj&r$T4Q;r}1G*23dsr1qI>GIl|BVAu<0u_)P@};?R(;7I~^2M2xw>14Ek+t`rNA zLL*l%hN;kdw<@`_isxS+zj+}()}GW(uT0v_vD*MCW9nemi&4}uE39y>2IOw0Z%nd$BkwO``Bfs1E91@ zd?V7&vAZK4_}-}CsV;@10JOXHrB7b|wCvxk{-xp4|AAu;oPWSE_5N|-{4+6oGwbhz z>`leYKQ*4V&5+xC1rqhd*#n!IsQy0?+5gAZSI0$}wSSMg>Kdr4B7zc%AdS)uib#h8 zNP|JQq%@qWVoO7M)eCrTnn-PdC z&h_-%ZtlId(AnJTPtSHY*Ar<|R5_qUes%ffeu?t>Iu=k~D%M+Gqd3k;yAn-5#`rUN z=u>FD{nQHO?nU0<<<*J5#kte(#46TIj5 zYk-!JX_?ECv$jY@0+?a?7vkJefC@JFK5y1Eb>|@G3}2d&Yyt` z-07jzSXr>pn0^BL7OiZR5}O0?2#W5!9{&m2DH))F+mL9Uwj4;NK$0qspEyz9{};X{ z`$fWHskkM*rQ$U8oH!m?EVr!!HcZwgv6=Gk?zQG{w=0*BeTC&>lx3V)%B&|_45C1~ zz~_S~IEpkgI10A5wo*ZOiD09MhDkZ2A>SX_`?zadL@!<&21(5(|9QgB0%T?GG>bL|;TMjJ(qR4M?ti#1f{tQ@urW9vpVBj^{5}WETdg>Ldy`98f zqaD@UoXUm@$R<*gL91j=t7fqzjMGGaJqv#oJcFwh@fdDtzLpQz6$vZ`8(Eb*;4odU zylGZ-OM|5DQhe5n@Knq42Rf&Tid0|Q5AhFBt|M}~_4TKD<^y3`>-ewX9r{GnI;xFE zMb zOy{sLjEo@E0>dkZ|H=rO{{wxb?aF{Rw>5PreXTRmL#gfUD;PyoRWa=i81|0Rjaq#( zcKwF$KyR<~TQ?(8>U)r(18G$BO-Obaipt=vZwT#*pO5)kJIxd@p`iyO^Ddh&gj6{` z*o1cRK{eS_|A$=p>OVBUFP1@+1=hGDP(vLt@TO>$QZSKIX=9jb4r+MUU4A_j*{WR`L|NR~OJPe2xMwov^yJ z0XY;LT@`ZSs(rlz9ReTAzQ1t`267AFb+!}Vuk=YXd<9vFQm$c3!{zJvi!5JTI??*p z6I#j#NK09mV;AWwEz{W;&D^qDwa=g7`Xp{0AbksW#60Bm)AM?Jk+p%vyv<}nXrhs` z5JY!@7MN-2E`CzDXZ{O?`Ei!lvwp0ztnI$x#%f$X%RQ<)kB@LFsv7!bdK}pnfBguZ zQ$Gj_tz}Ty8-j&vb9Za5tN_!ah(ux_(MVek;Ivb@WC!6hy>j&1Q>mG){Xz)z=rSce zrT5|+A`H*e5hkWn5P@0T4uS>S>F%s|rLy?D6Cmgh7fo%R-b%5K8)<5)U+OfP6?U3= zQa+5jBoWN=zPhXGAe%*E&_lBD@OtcVVupB-QnHISlY$u$rmP{TFsFL+a7J^FZ`0-I z-Vl?JkO=FOrOGpCrua>g41apT34uO<5z~u4#uvI#tCA2Y_9N2f@>Q15MH$YEMBHdT;0F!}t0*w7NV#w^% z75oaZQx8L@6aGNo-CCU)o14o7ZzH4hH@twTCg#y8sdFXL)$-FUIx%@RBZjp@YD85k zGjH3;14C+UA7#`q|7IR9_;Io)m=}#*@TL^j2DgL~#4entaD9?^C=3R?nhw~6bB)?) z1s7|m?ev3>#T`6&FxP%g`;uzHg^L#r4NNh8P1l5k2DQ<5#Kas7o?)cz^uC$vf7BZX z!o2*m0Ud~nJT+Oa+;u(YR5$n0fH$HeI2R{hTt{jWh)oe;u-$4qxDhZv z#$8~(BkIY$@l6oy(6O+{^(apz1ncKtM7bk@9YY^P9Lr^Bu*3HD3^r?M4cc+$3{mpC z^~A)iVl(y)^zS_7JLe~HdCl+Yo#k1AQdYb|NVT|!DKn}0D9dph_g$nFt;ijlq)`0|=qZgG^X>x~QR=ZMBQ zQ2r}Hq$sG5xq_E^tYF4Kp7bnj#Q}EZ+&fyll8>^bPrK$Tg`fJ?TkQNpfQ-HH)!R|| z64Hy=B)_>3+ZZJg*5Ga>}(lzpo6XL{ujY08f+#2s$Hk%af znqAQjjPpw(=Ev182O;S@V7*d? z68LGb0=TXGIV1&)16JKWznv!jx!n5QZU?+D#qvHQt)#G^efI3)Go_;R5xL%@6{f90 zZ;-XBQiqbrFs1J6B23##2dJ=mVb8;R#K9DtUKYWU$62dwm7Ub0?g(jpcR(3iR3N8@ z=7yv#7x;N~Pz{@XG}jl!_)S6$>x7i7aQ%?BFP`Vj&gg|KVRV~bs)7NdW=5dxR#L*I;3!AV-e9`QFId|$SCcb;1tXnpr5I5H*d?KVX>Af=tN+PnvQ`G+ zh&>`W8PN2WSPOYz?r|Em#>U67iikLtM663XFmFv zV>*XMN&?VWl{Ty5GA&|gb_%ITr^58?;@Qh0@E@+p_n{1-wF&f@S!y3smlzQ8-`?wE z?+HCsea&#b`zwC&3RPxI88=Te>HCE$VhLjN{sQ7y=Rv_Z{1;fh{4WAJnnphT^K9VE zNo=}@Phas}&l_c3nOV;dX3sU5Rvu;^N`)mE=vY1bE_T_P=G-l9AgkFIm+{}GORkc= z{Pl)Wb#xS;&J*n3N&3tjvezY==6#~Zllj#7EEE?&{t=E9!7owkEI~;0qw&b0>qv&hm<_jacJZNKW!2 zo_L4n18O$7_O80v_SJ4KiYMIN8Rams6QA_)tPh&D>T~SY3+DI`ycBZbAPI92==@%| zg1g})^Afu+;TjEA(?ftC)bxxhUJ$`H9`f0GHSPJX13`8r=a&u26U`;PixWdKJr1vP z1*M=9-ewd}F@U;MT3&D^2yF7)uosvXUi0$t=>+Z?FXDtIsrXlz31lyHq+R63zl`w< zMT%kHwch$Jws-JLb(KA|8@Foj;lB_ae`O@Z&_XF9{Za^HGPe_FP=yiQ;n81FXoO;< zcshIli3wd@hqgSg1P6>vs#B zCkCR5WzJ!@F49wp&IISkptI{)dNfL^&qV|?MuMcGOS z#GZ2UD^7vx;5%eL*gz-c%(P`K}dgo2{n*`@yl@Fq%q+PG}n z+3>}u+917?b&uks?b9eK;0H9tmOP;Hi-hpcJ>|J^LjkE71Utzv&;JMSZS<%x?;QQw zH}gcnJzD7U_dCj7<7+D)-MyX<5L9El^{0KMQ!C~#AN}RODHjNcZ(D;}kvOYMNs~rJ zZ`m{T`z$}(ZXO^xN7#B&jjt~qn)J07L`YEIC+MC;tFVN=QzoOi#DkmVsVS+_acnT0 zEVK6U3ai(gIq?p0a-I62Wn|S)jyLXd`|8BLycU}7#6h3RpZQ?iaa4$~wRfMk z=(}q4>qZ-2zhZ%dh%uk4ob^68S+j6QLq|RDjrN3k^Q`6RQLf*gn5lFGs)L?)P?3B3 zy4G%T1TD)=wJKqqSg16nT4i@!%Z4&NpC4Q|_UZSma7G@s$SU#w3Lb4;HLSWDs6*@1 zkLsr>ed&bhd;yuxVe|s>NXMyLp#bqsYKn<6El5-}g9}$Wf z!E?k^>4kJgk51EDc_gu@=}c{4&JUM<7|)yQG69j$%#)}OC~wkk8KB};;2lhpNP&S$ zDOB4LySX}(S{n%TMrK7PcxtB2K(NyVo$T^zpM}AyDt;)=Bjh^>DII7f=t@fwi1F;N zLUs@+w)cGWsZ4J*ZCnPSIvCQ^R86@^hoUxu!#gy zvR4zDZ;y>rd`>TO9iAmMDN2CM_&DQaA^S3};^^{(N^0p!U?eWtWd>g)(nYaInjPew zhQiEEX`4NxQ08cBHc-sT{tZd3K#8dTR%l*iSixK+PMs~x$p!5Mfgx?a;}et4Xf#Yi z>>|iS<>Y}*v`~T`uIZ`Mqerm;0Rb$!n#h-+wpG3)wOV9G({0C_M@x)p@XgB1c;N{m zz6*03=KV2p#{{j+m|@wd*^NC||$Fi&=)&HQ3C_Regg46)SE0VG6ze|MtpqcA>Aq!utt8tL% z(*a3n(;4_dgVKFV{#Wa}n1H@9EGy}iyoN)?1#)QMXpV@i9?s1+l7f-holnS&>4(~F^DfPg7=Z@6fw84j6;~g^EfOH zk8LO24CIOmD^nNFT$`5Dq2f>&Il`@&_3;c+V0dGKFvKgc{Wk%HMA*&8ufgI;6LR?&~Qz>gB&T@_XQQx6@wMzeR4dAk-Jy`3+14uanBl7%1ci7Dy= zKusOAx=$AjoJHp<{=*`P1RQ+y%k1nv4&D^*z_AuB=;%7DZn0xkuxYFeux0fhJdsPW zdickU@WC$<2I>XJV?{_2Z3svIlW~1m9m#lYUlmaFlouCsvEZPV@H!^8zdUx%G-nAc zRyeTl489)6hOUdN5yky6yCjd$-lE88FgfOfGo7*4P)vi z?1h?$5-1!eu9U&nhCwm$T^N^H%Dm+`O$TyO?xs`!!O7b$3r2nT^qAU)hxSuvIs-|I zmlm!^k_?qi7sMvp#BVzlk6=5yr%YM!1G*;h-@?+c^>|&PJyR?f<-07~yq_DKKyn{G zx=2nck$G~j%W5XC>#PL+7TB6!Q^xn$N2g`F%B6G-JTd6b&2+H*CdE8B)$`X!!`(C9 zqzKph9LNBwaSyb9Nc-nkC)nLM@K@b$^j}1M`P=C|wEIt%l3b$)PiK!T`_cp1t@f14u6(VUA%1EiOs6c(IJ8Bwm;b|^Vq=lgV&_g$Z*j4lB(#JzwlGew=!HcVnD(H-+Vo%zZ*{KR zkmg~Louwfk9L0Kd&QIr(oS!PpDRQ;QHIM!%BMBOcqgv>DFIW)`#epK$pfJc+LPD6p zy{NbQ27d{>(Tr+g4mr8(pB2Yh=~tq!j4?AM^^g!JeR@p7$R||WIb#z1eI(Kt*(T?Q z#%%cAx^>Gggphqc-Z&Fd?xLVBT&;N20|8eK*YnTne*1DA6jXoC_`J)p-O2s|DiP7c z>-?ER#D0vov9PN%0skpR7>}rkG!@Lt(*HcyoaOeR9mkGUa^aOlXG`15YG){y#F}a) zKA>=6`-ojUVqn>zHmdY* zRG+M%FC7?wxaiKA0$WwX58sH)6MsHz!r31lO;MPF-XljC5~^bymVQO93Tq1s3)>Ch zH`fullLkheYLP^p`Jw z+48fVQKOe7rz#R?{M=!a+`g&J+fu6Rw7lJ)H@KN#zG5rc5sNg5=k(xXJeCiBe~g`c z;0ibaXzn;ok#$LRl{0McW~!|(&WPKr1rg_ylss7r?r1NQR6{DYKU@36W&G&2@f5r& zJ3&j{hr`x$1s1z7Z0r@VW@VZQ+h`(%}+b&Y1UqXcVMrcC+-c z51AcUzY(+vpB$Z=V}*(-O0O7=6PDSnLgtCPX2bs>2d*Z0f~bQznziHCp_};`Xdv*W zhm<}&V`4ezOd$oU-bxxLen=WQ?kSI0TbE%U(!I1p-ok8`Iqmd<*`LA!hDBi#p+dLLFt*Aj+h`x zUwnb#NmXVS%!xGZAUt{?9)Ye;ZKdeF%L;yVLxOx;rJT>IJUlN|G$iZ$CUsXE3Zuz%S-qk}7da=Mh7h(C+$(%~4fI;%=TO z#6O-Mv37H$Xt1;@s+37hEhietMpRAv`m_NG`PN51+jdL+>&l&RKAF#`2ns1Naq;@0 zXks_~C7gpLJEr9Pn9+p{G?AcpH zlfx@CWZ(usI~5Kz2l5rVl#<6<+jm=cJEDqzOBN$&d&WB7)Yh*wvoxD#fKGR!?U`&a z_j+mhg+n!WWSsEND?&I_I_zK6fZG%Cs78YdwK&SI*@EhaSDqof;aieFkzP)7-$i1% z`%9R4hrQAIGBiM7QAwYwVdvHValu<7_kXBx-S@Bs8r@ecxi97Xqbppyi7xu(Bj7cZ zKA37Sp0?1*YLlJ>+B(qOpafdWp02`{5U_~6RwsMp?nLBZGxQ27Cjv3 z(L2jjl%b16#eZHTlziqb)} zXdv8ZWNw+9=?N59hl%f^{4-)jQ`uNpmWTt@ROHUPf-NNecxa6$*R&T> zp_CtG_jMjpzyG~4R2hUOC|$j{B{BOM9JnAJ9e-t z)5Xc-VV?O{D@*abYf)+Z<#ZjBKWm2mrA4_1T9j!`4cAls#Aie<%#^Fd-6ay-n$A%# zw2X;lwuJygZwf*6P%S$Q#3v@M4LZrQgfg;g;~#>b^1lA@dU*wcX*+~dH?P429uRQ# zv?KSx?yNX4A7&!$7&v)b0qLF2I+k|# z-Nl$bbL(G6ku+eGNb7H{Wbx;MG^g##!O#-L(=+BhCmqO_iTC7v{<>MF6fa3ZV;5>^2mkKZJP2K{wk z9T6=kD#+>TiwnZ$#$spN+tyYs?-8uy?(g{Lir&LWW6&)8sFhvqgGYY+WdB#3369Cq zvlLATOfkHD0FKgaEXNOf#AK zdauK1;p=xAvE5&EHFSnPz!&-Ev%uC3(tpr`3gxxFs{r1)c~y9m-PH=Re*Fnm~Wny_Q(n|LPM^801y?RT+YR-za zoop2wf+$FR@4t|*v@HLPl~U3Xu+o~Pi{XB0;ldiRk>Zccv`Ul?l=T&49XvF_b7)i- zYQi=I#vphLLg=?8b|R^TImyUZp@cr}D^Hu|B$WI37ghYHt#DD;`js^wU?$b5ln}&r z*Y9Lw49c%f6x-dc3f`mXcLm{UO8C!HcK_{X4kTN#p3eOFwa8>;z_>ZXo%RhGe<4Qd zwFhkEP!VKO7*aG4WjIocJ=l7gF2R9P5QZX_Ymvv1S1~HJ+%9`W(rng#I`hGHZ2G3| zZ%NT6=lyi_VPr*;JC!h7G)^IlVH1O*nGNLNj4exO{cIsO)QTN|49Iw`boG7lfeV(j z{`{cqNLZ(n*D8y%nZX5!UV7E6Qz9?ltUZ$+jRWCPYP5scDffu$qA^Nvh!GOuGLcnH zp|~>DF=Gojt&%qxr>W}7=M${m`s3sE4dqk)MLANTEM`v17*Z81vRs3w3*mjBR>T2D zW&+1H7|mM4X-aVLh&-g_DnQINr_F@IT$4L;tA5m9DOUbKx0DFlVrbFO2)VOwvF+rr zqwVF?Swf+o>CAY$$-z1YJHx^nw(VmG>EEk%4^BJCg)l4`Ec{e5WVGhDINXKsek5a( zj7|5AOO#^SVjZI+1mTfJnuxh&3+v6~?v|iQY-8&uWL<`Hvyd#=&I~P+Ev?@StALA}iz$-S6@H|Hj5|FpZ2rwJ`0RasN zU0R~c`pV%2bORp+(@rk6G4)6vi$7`Yw&b-9Yoaq7-uqv}CM@8}=6Ae~aV7Fsw+I7R zll!hSEgeB4f)H_TP8z?1R#_*RhuE+9Vrp$zYHOn=-(x=gfqso44GzO9nzIYbhP_vR z@ZbY-NKRQZ!Gtz-hm|IVBXqj%-9W>Q`X+F@IlsamV9>U(OUAq>JecQUF6>rR;=&MY zK8g_>yYb7ZmRcvR^|LovndvP2gvh&<4ln(&=yJH`+1?S^xpnsQQW*V_q}OO#_g={6 zHj^_ai?W|;m+blK#af;WWaFlA7bT!0Po6xfYjXQTKP6)0MN?DTE~=7b{p4YkkZ>fE z?vg#j`VRFV-&A(ed5w=*xo#B^hSNUQwZ$+)=9Wol6{g?8Vl#%R9GZAJ{-F7a~Ja21=G~#-Y*NiB>gC z*sYxVCEE}GNn+bRvx1&tDA9b5%gG@uS}C-$Vcj^_&B^Oq(wt>UP1mkn`=TwUw~KJkz4d3vztF*-O0jJd0RaQpo%qpnGvZ{cfkVW;38`goS-0~x{3yaUd<$HYAIsXB ztA0y*d@!Pk^(c(Gxo&pBAU23)GPo2Noe2r}M!>@k_6k%(1eK|LGW-u5q!_h;kueE+ zgC4&rC|L#kQwh`GRZ{OWgF@pTRFF2XYX-l64++nuZLb=wI|7U32j ztzu=5`WUT`O9%T+PcpY9IXDdT=4T^w^cI_75Ew#(2OY*EVbE%1>w2D%BN@OWNP%!SWn_^8WANMl zA6RKlKS!U?gU?6rc=&uZfgVQe8*Oi~?8+m@)z^GJku8TSxwrchojM)Za)RX69zJ@0 zwat$azB~U%(XrRr)HzHy5c6s1^q^whayJ|QS^aS%x4&s{AO9dK*cq8=4`WY+gudRT zdzCPN>8A%)vtxWjIM2Dn;I2wzz{46?DT0+iV`Aq80BS;c6n`js zkXX?MKw2;~YYx=-mO|pMXsL=a*Pk-$lECfO71&H;HnyA1HYd6oS9vOjzAqXcJ~oFEM>22Nhe-s>NSwDPw7G#?`n=OC7CPDl`gQ!}hFf`kI= zaLPQ0b|om_k)UlEMQgBpE!K|G8(~iQqWny8xT)Y)QF3FXQLs{{Ll)g+3ID6G0sBE} z-^qR}7_zTSk;zL3a+f2D$VIzb^W^Jjea-#5jS$yj4Dr_^~Swi!e-VQQK-kkGu0!N0NyvF)49C$ZET zg0>5M=s8dHgE!Rj8lVU%kk?GKb&507ijmNEaaL4(b>uKGlqjo5ba?q#gMeVeS>ZP8 z6gUf!gbkmjP_ywjSz!B&4P7ybPG+~yur3*J+)mvW3N|1@!7!|ZtHBZYDiJ#6T*G@H z?WECK<6L9Zj)=T~+~jatzxiaiQ#{d-)0CejVsR;b_gKCkQ3`@z+3E7-VG9EZWtNa3 z=u7zMep7TGHW9ucL8Bz;qXu{9gG($Oq!Tf)1lWF}-OQzfJk z`%)L!RBpy3(10%>BQZpwZUT1ta8N}uB7lMB*t>jligC^i%;%l+KdKNoAXSQ3C<6J~ z;aofBKoA}F*G3h8HAAQJUv|pIs{~>6Au2&cXkkzSDnSCg!~F_<7tRer^rudjiHY?L zBr!c`=;vzQ?mx#TPrVR6>*5I3WQfZ4=`Ab6%5$ObO${W>_!0lU^y|qoSMcxq&C149tJ)5*+*~=?7WGm-Fi%YcXs0Kx46&)Y(JokxnF)wP?2Z9?PGS? z`jG4DlXU777~VpUhgeVZ?m6tZ3f?ryD{zH6PIL%WP0`dZCI-O#?ysy?Mo_xlKpiu$by*L_uyB(W4Nq&74kr8IWDItnM~ zj}N1{d8{@ckx>ZtXC=Z?Ms<{65OZ(H{}=KY@`_sAk#ntf0VZmtX+%0Jb74w3j`f#L#CPvo~O9CKy$4YHXv%}iqHlL1rF=v+Ukc$`~L zTCJBoK4r#*gquO?_657g9_ZF7**C7)t9;4;@bj z6E*0XF5penC@cIyUT~7_8AJua+`1|TN}ZcXNr<*S6omwC3>y6_a0B&Qb6|PpZ;gL+ zyL}jF{2w<@cD}etwhDXOYel95IYw#&PaKp1`4C~*f2E{(6IzqaYoLNSfNowuW4`$a zMk65^hW`!8i1F?|FltJWD){}Cs_&>TnJ}@PuQbC@9aUfW1>q7s^C|euaZ@ylIDD!_ zW!G&~`KKiOsE)`?Kas#{A*fbxiH4J6xO-^=ro!HGMV@ZoU-+B}Seljhr-BzjaZ$O^ zO+fAC=G(oGNSIMtE%Q3BY^@;C6iyM>=|Ew`1qvevWW!i=nIP(jSNRV>KRO&G6G&pw zb@T*R4-z=z=0b+m?y-a?fZCrsS_EJ|uU;|Km~Q3b^}{^&$NE90^8K+6th(}AI^r`X zq4SgPQB;QsflR}i0cYc}I|)0fu!(w$lza)->Zp=Dr&vT>E@f9_CYWnWGtizA3&R?v zO?YCKTr8m+|G55#z{2>XI;x<|{|P>r>1Uwnz&~05R4c*u=bnSv%Uy2fXnyj50-<9J zm8+xJ&)oseU0xTYK|zekfa0RvK^lZQwQqYg$o@A1ukRzMBU#Hbz-xr*oc7GN#U~5M z$_8KO0sqP&_r3ieYE$Fa2-~Wx-RxCK2wGnwdZe)ndq}*|f=Au7YudhV1yt-gHUBr7f@NaTGREa*8q@)wfq6W4HM2rb{W5o@A zVV8njqw=IvM4=EJbv!6Q@hc6j3H0f?8xP*4rxG`30@?}QX`KZiZ=4??OLNVDtLrWG zn=Sa@FOZdF(kEFJ^&^OunCZ%L8AF)x9k3)SfJv_l)JQ3`;W_e@{TH(x^hJ{a^5X|DyHFZ0o{{sN&luliykbDy%EW@M0KH z@L!15HDTwU%EBRJH_Gx;#8xdHjK$FZH~I55&#FK*(A+hJ1e*H=(A*{VKyxETF8Cy2 zaE?0HO18ec5~Yp4t7?RZ9DS|BUta&;41wdn@EHOYmf#ydg2FtZHC68O}<73)au-q7LnmXvdB!;(tQ5kH_a2ieW0F~}%P^<09 zXO%5aV%{?DW}Z`h>wxR#N4ImzjDJCTzyXm&f^FK*I{hD*IDyM5`#-q>7a%tPMa4*P zM$Mp)O=ygk{#N;kI?+kK6}v(o9F)}f>aD_;?&fZx*e-;VxYRSD8_ zA%O@TUG{!TYoUWf`;osms-;rNLiZz3MP!#hd`@rriTpDR@nZGiXZQ zWZ4Ek+TbX5Lo_9}L?TV!k`T(=J>tsE``}~d%l)KCf~8%-FdZKAS44^p&*Ov(7QFv) zOrxmk33Ie&SF^U2q$-}=&2eg*1_^U2eKn?Qu{)ospWbceEBa!4rM6O^L4_w1sktPC z{5ALKMpI?(e*>~q*TeI5Jq9<7;sm+U;~@V>0%Bf3FM=A5C3F*hWz3G^>f15n-NFh} zyxI&MB69hbRks8ezX}g-!uU)TjSK+d0j0UW6lP}zwT+HkC2z+`n8r$wzsd=XgL&??C5y|S#zCz z@bk=l>3_2*6YyD-qq(F% zmGNIy`78mfsv}1@Rh|yw>;Gj>!sE)hGvf~u@}EAAQw%CnkwYPu%eQC#6&XPKHy>P? zwSPO}|JeDB5ux>A9;f`4cM1F}tBABh*WjPf0MxMI{>5FPzZJ$M(!1uH#Go=yq8ir>|dct|s@yi!gPwi8$iztze@Wke->QrYUce z!Yu5uR(=qbL?~**8U&Cfb{<4FSA#9CT<4GSi$`ptfL-TjC>Fa9PPR!rJK+2kT7jSE z;PhOS``o{glwEH~0WEf_JD%PTR_WINwMwJ>_LKDHz5mfgmT4H@>|dzx9{-ira@u6I zX9OAjr2R59$6@qC@!XHnD_q}4I|S;7lrocS#uR<_WZ$V3iamB4GWI>Rv$O2F_bo*& z8%&0WQ9XoUM0YP-x2w@3Zu-@aNg3^Ti+>2#4)y5Bm+O>4;51^EuE@$@Nxk2IG&a)> zJ<*$RJ1DD=^~Z2*fw(}9w^D3IyUFwO7n!ba5t0Km%?pysmlji|I?_th{!AMJn@VgRN>}eO5e)Jm_-(+e8SF%3WuS; zJJe5Ywmzun@lqPX84gSFZ%&INL}uYXL}u{p${0RO20j>?ejA$<bnRrq<@< z^#4oji#AZf(}6)IDLm`*V z(c%)XRlI(4R65v}aG)D+0f9kBo{37d4?@J%tPqrrqeg{Ka+R|3;^e(R8lTL%+d>(B zx~CW%n@AaZwa8ntMvT(E{;WWYDw+>7FY()@0fd_X zXB8-dZ)^FJA#`!>n&y8;3b1y}&?Y$e?I<4#_x}rcq+xor)>Diz* zmn_qy!R-Ydiyi&U*T(1=KM<^Y}YbPp}~!@-;CB>5LW9d5;%EKao<4c(2oBh%Xys7e(e4&0Z{6p8Y= zc5iKvT8_Ta^mshBwi3B0{VuDk#KhizE5)FZ{IZMj9%TETZq%Gi7uQl0CC3E~54EFM zjw7xq2+%V~RhR<%-U3Berq0l7C2$je2fafO7+OvW&jER1cql^=be)x4^34cwp%%CC zVs)+AF7PL+G6}hYRkF4+n#L})Y=Yzh?B>KRAm+GO*!J3 z+C0~rS~`N!t8+thKw#9+Sk+bB0uPzBHk~a4J0s$~?k#*0hZr+xu3eh|wB1Nw8Z)pa z*Y$!S@Bi=>?~k9S`!Ky-ZE8oy@xNhulR>4`mn0%Rqx%`iE?gyMo$YRO1V;CCgLd4+ z(`Iy)9VZ+%MBz<*v9coWfTlpkc8Nny zv%pe=#C2?tlGXg{&MXAs=N|BeG#wJ!k%n@urU-ZmJ6(i zj@~$$Pc3g`dOQ2ITe%Xy@0Z?UJM2Nn0*l9okLuwvrBT`R6_@7)g~}c`-;d6QQ~N65 z5J%I{X*ftn1JU*%dif-I%2ys9CP-f1H$^1E@nllTY;pY&^mHjA42ciyWBy9vAG;P& zI4!%f6f_caWURnC+cm^bZKlN_uul`4t|%WvWha=fNS0WS%Uu$IbKz^`^h^ed z^N{>ZC(}~!PjPv(vnR-mEP_;g0u=3_!$P(|1}|k7?j`*p4JQNoj6LP8Jz?E7RnoBq zl9*T-DrGhSmwIqH7tsa5VIXz9T}u+8;Z(C`3>l%;@8j`<$#~^Ii@Tt&F8B1k0|NaXnZ-x z(Nj5jXToNx+4*aNyOIvIU1m*4OuMhi>f~e(WX)P@O{K`LD6SFxfzqYH3&DmTfv4GL zX3wI~#(3hq6OXkv>$UCWTZ+%n*KyF6R_>Ya2A;zcy|UVPqId9bqE{q?&}HdfP{}@T zJ>OqH@#xfhT6vOP$6F5aFQp8^2b9pqo06Cw>#JaH)Hh7=or6^U=tI*2R+^%_LxYi( z;>v?tlzV!#{C=ooS47kf$GE$v{Z!6UR+ADl%hb?vPx+9L@1mB#z<{3Hi+z-S{CO|q z_u>b61?F!4os8iU&JJ7^6T8Y1 z`o$}SEK_rBlyAeP>q<_4&c|Q@yD`h!Cd=w#Ba~k@zV-2oc*IMsRk+pvx$w9#`jws< z8*YOrdupk7P;`*83~ASrPuHp6Gq5YaW9%H!!#{AQ2T)-zhY*PQ&FO_3)LPo(m1F0_{8`k>=6~2PdUOe`Fb}!4JRt2X zbCK!$1C@;57`oR;eI=bdLozs!FR#CAR%WsB>)6g{^$Wi0Tv?R+WBj#RZi{{P4dSBU zO8EKC=1ozvJ!Qb8d|DubZx@peUv{{RaGXk7_+ivMe(<=9G)Q>-QLv_vAfvSzby+~& zETlT3`xc-l?(u)!KPaM!-!e$hz+YWcxi{mVy0=~KtmxRzq)9i0aFy)ZN9PbFU4vo_Z#@zd-RNS z5+yE}wJE*P*4NkgxPVdif+m;JrhU^0(;<<|c*xiCEPLyLdj(eYESQ~E+Mz|QaiSo~ zW#*sP51^jlw+q8hVaP3A5;8cAZ7Y_GN(qT>>=OJ9Fp#y_58&Blbtf zLgn4)v{UUidT(B@X})XgWt)RS$>P&ID&N_N-0pocoV@Kksm_ZYyIFtksBHjdWb+$x zv4k|US})Q`_ju*|_n097D|lcmSl>Z)&2G`-#8I#M;0w4!7z6mwqHFW-Y<6>6UKJYL z<)flkb}D5X!JgK|Wmx6($5E;5+Wb8p-SzS9>%t3o2ppfYnTlpMycbsuoEokA`cJB{ z*~aHu1lJZFa{mMWcCY%vpYiDa2-m668QS|M&}360a~d1!t(PLcZ0iEm&0 z@Msn@y<2>Pz2zn~xnH~X_5?p>%{RS#Y>S1AiP|yO*C-r?s>a9qUmkjAqsMPNXX3+W zd8F-*IteEQ&)9{xg__%6+|Mr$uA+-3i&o0VFe6)a@t-0e_tL^oAbT4>GIzH1YV`xbEqr+)yYjywnV_%MHS6>8B*r|R4JOCfe7%Y}f8od(HR2A6 zqF=0Y^<4?#4OSIDxw7Z8V*-BYUt~pH!|yjtkCy+%o1M9ur6=iVgneU>^k&Cx#QMaY zUOU@aXLuHsyewhLRA%~YX=Hcg%8^4U8 z=I*T&XxnE>s+-%NEKFWpBMPm%eKICz4yFUjr!R2MmBzO`uTj7*!Bb#6Cx-2#w2;Ah zQ~(l_MYU_xOr4%On!Zrta3}2y?)G5UK*MT`_Q+rK={qAy_oTn^FGbnVJ$S(x&gYrS zaQ4YkDw&9}!{d7MqLHuOA@U$nc{i%TV%|%MkuB0J z!U_Ba$4~+1W0bNz?fkW=&fby{dD9Z{ftu&ef>VF&a02};h4+3m?IuG{2`ju(63r>26eWz>4o@Mig0EywQ^p?9_>k{knrj?{LK674qdQJ1XHWmL~56H zJm!|T^=BW$KUigFv(8;^Z=au();G%NjqP7$e%dp3%G$zWE~BD}xU^}ez--=C)J(^o zvG2-a(~ftAhvezEHWX*Qa}J~E<4R-IkzrO+XIxPo)t{cez3}tO&(`N?7>;6e!EePJ zZA+dWOW+8SjobCU##Dvv#a~d0af~Qs>J_nl?k< zNQEssZi>z?PG=6GL{6%O=)DcASec~AiHHuoBAw{t_q?-x;E=l#9G>!a&`qF|S;D+= z7SpP#I-2Rte$L^ZUPM#Tm?HDn&R7{Sl{L6RSB%H}Lh3A{x4H|QN4n3Am0r=}X-4@y`ZEE2Z%q-yi%6(%X1UBg zL}s|OvNtSm9NSK8BS*_Nj8G!SAEhC3NB3kpK}{OP(9-LKD&j~|w^uTJO){=a5EXyz zHddFZweQT^W#Ct-jxeMMCVI4oZuz_)D<|)(`CRWI^*US_&Vy9G>CB2zh(|VpPik;^ zGDKKgof+%Ot=H_M{Lgv1CpVZ~d?7NNg>J=7hz4J@QG5h3nKr`u46aff&^Nzb??w{Ift4tGr1GA_UOl>KWA4)DBj~AFm4fxxz-2#(OTzocC^NePTs%^BRn)`= z(p&rISTbEStv;@1nLp;dY0!GbWzLK>xaInJOIYg&K4y{QADN`0~!;{c?!oOrVx`c}B9VotG~WN`i&ZUPizl*O=>kSK_zH;4(}h z!c0?5Dd>4qS2LPM8hwuQaZp1?L~E@T+NsTXEoR4mP!2hkXsXUQmFsjrEdSM%PJ+f% z`Q261If+XLP_=}($v4?#zFjH>wQds;ZbaA1W`xl*H4BT`ZL-NWOvo=RYdZ-LkLyW4 z#4**%SnLW&kSR0@6;xnc0y=_#_VcI~NWO@FEEslBly+-jP&D}G zou0&qllEHQgNWPXuv~_0F^b`)wY4_V*SsmaB`;_RDg7!f?K#g`VARLq*E)Ux_2*qY zZNPEG6h_^#RK$4BV7L(eO1FU3Fa`HR_jzKax||0?B(_hfo3Cy8(IO=u zi6%#>OR9{%^C1+~0sK7v5C!9;UH3QzABlkUz%F%%PefViv`qzt?218Rn^R<-oClnV z=01vVDE%JUhD*u9&Bs{Ns8`goTJ}06qc79-UE?J+KgUIWiEo^eiySu-6e#I$i9(_A zH!c$JQg$qu6GS;?-_P^Blk@0Nc2bYx(ksj}SDf&xCE*&=lMZK^;({Ofj(@K|`&$@% zj|Cod;vhc}Jq<7Sz7xD$l`u%V61HKnd|hm66drhmW#A$xUwH6${Y4_L8n#%t(~&14 zVlr;mF+|Xx9c1B-)9zMM;yxEyrip)x?a)A={PA$#@C_&lWgdAq*0cO3yU!Fqj%gbd zRra|o?@>d%K@`_k{q+`SxQ*6*K3nK2MYiz`t>N8)#24bJqOWCk+1n>A`Fsy4f6i&u zIv_f}4KJh1+Bo>D3Ln5&PuGvY&VlMG6ouO-kqeTG&O}OqbCH(%wf<9K+m1XPjS5Me z;kkB-+NZ=mA3%vL;zyQbdiFO(w~LX-!VVfF^DFf%7RwqLT|JzhebDPgIE5@32f0(4 zZ8+W8Q}ATTks&1^!AX&ctsT8|TZJ2`8+@xz_xz2;eL|xH?^#SltQsy--tCH!4bfG& z1~k+MNqjfmPke01Ek0%Nd(klI)G9^F`J;7Ql5($0STy;#Y?@rBg{8IZjv!ZsiolB{ zV((uoEzPE-QqA^gI@~O!GGpY>8}vi&L`&SHYK^Y2d88OJ#@$u%&xqMBx6V3^r*P;- zai!W6!~XauWOlQV4KjFTA_U!^ zU%2m}P-nmVs0;J64TGg?@SsOOTZ&3dVP3J_OQp`IQ>WwDZz<|&{h05q_F&M^E|A2zlH}H< z;NMh=i)ojcmDs!>qTfW8fOWO3CrJ$s4mr~Ts`m=?OKj?zLwd$nLl+M5bK*2Ro|Y!k z24<=#4iMfNCDv}#z%M%RFAkg8?#E6p9$abxw~!f!`f>nSRkz_>PFOLYGcp^!iN}#> z3AO*Bs0~leSLyJnNdBkOSp$7Wb1_m+K9~lM>K3{PVzxb6dVIZXd0C~i+3^F+{R{L_ zC<)IWPvP~nKV@!n!uCFv^oHIi>M@QnMG(LR@0Ek}dYL7zJszzwEBZaw$*t3I32Xx_ z6{M3sM3HUPdAAg2Mmp8-vrc3YskkpAKK;MK&N8g&_U+?Cj2o4>4G@q}5kvt|N?Jvc zMoLOYNsN|~2IB?{3{o0|5z?Il{iD(i8!$!)NQ{u$$n81D{eSTs&zpx=9v-;uH?QkD z<2t{eZ@%Q$;*1)Rx@#6%^l9&^3r$^;nZ5lN$|p!Do~yeK^9}XIsV$>ex75mrUaN&a zjKpKw>euE(tH;yaz25WJhU(Rh99Qi-uMLlS^C)fCgwB2_u(D8Z{Pt?pVL9pN^W<^d z!B9zx#fRlVixd~WQ%46wl?1g;*hf#t6fC+at=q}4Dx9w9d~Ijp0k6T!4rgH4j)g&* z@3=VYmzQIqplZ9f?o<-4bVey9EgK)sG@3uuUSWPqX4~k3J*PS2C0@);AiI zxV0@Qzuz%4eD?vehda~qw5+M+?fuKDcl~7C`N&1!GO6`qhgsrftBa}j!4QKqlzn5I zcuV%N#~Szb*alxBc`lDLj7To5QRwayByI4i8)@&xT)*nqF1T&RXQs6EEg7R;$A@kk z&G(cIZZ;<`ZdJj`MlkV4somDnvQ7Td_=RKnR^Q8W`r-Yp7Dfh^-ENBYsr(w*zZw+u zvnP4#UNV|;%nnR8IO)AxmL#8h&Tq)E@rEPy8wM%h86(e_y8A*9kmjNd5_NS9QpEYnWXs9Yk92=Qp}%oCyMy) zxc1r=o$w8d3K4oGnRhgdpE0>}&P)h)V02dl;R2=s_v~CZJj%_38OFmG`CIH*BrL!G zWn5(b%$Veh>4m$JY7pp5gMW$h`i8Z&bwoUw)S`a60YXb_(A-3{d&Tl_+V`?BYLxU5&V}9`=zM%S$-;nf zqXMOtt>i*GhTsS??EOdAkGypHebWWd=o~jHY%{HJWY~&tZB=tGMMY#WoxNdB(boRl zTz>h7sZU1FA}dl_L;3s0f(}WV+&_vktB)V9ov*?77)dhURO==-P$I$PZMylPdI}@chuuqpqA4T*G9zCaFXE0*L$R~1_mr?9Cfi6fPIJHKS@++KwS<@QAFfA}d`yT_dj zW49b6`jsxDlmyY3WPa^rA&?o-c1J5%aPb1MBPK^LOBo{!$kDJj0la}3!(C!Jqb_-P z_KwMW^F~_Bu|$E-E7EUlU#%i1(~^4ZmH6IIPSqz38_MlEP9*B@`0%&xgnP%DX zpCG0onx6*YW0jgfqOnUw|;;Y0d#3s{GM6qFv zWl)oVwYDHyY2!bPIQ7#qd{2OUu@S<508s@LzOh?$yp+f2!Lb!pyxzXJ7lBx5J58jG zJHrp}#=m79{Aqqa4THa9@qDTKz#DG+qkygUft@2lD77@{2)1u&Ml}>gDaK( z@h3?&$a=VExen4Zy}A-ux+NZSx(WvnpM8^#qXlvN0`-Q6-RI*mfqTBvd+U9g_!_Up z%W$9KlD^E2h*(_yqZ?WfOG6#36LDRR?!Br4EudYwK(^?)JrjnRZi_VqucZ4ommaU&8fmzfFW1HS?q`bz8@CM?43522zZ)R7^hspNn9Jei!pqESVpN4 zbHGFm(XQL3y=wD8#`wqT2unHfaZ%>Ogv3oG`|Fdq1>jDaz`;@m!iMV(Am70PhBYrS z@hlCNB;P6a7q0;yer#frs|s0QQr^1DR0ZE#$MQ>{+;+4!Hx~h{$o%esH2t$jDNW-W zzWKj?Svri?`P6$JVLDq>Qc}_$dMOchgbD0{Kf-=;+__-NjD=GsV5gfI2Ww~s{~JX1 z*P6_LYh{dOZfKh>QBza%#|wdZHk>%6m#AQ7yKzBe$^L9&S}= zqVGq|lQ%pu08`GCF#j4H902&PA6UR;Zm!UWg=N0f)vT73Ucp@d1QsoDV{QVzRmV1+ zw`<4tI_L3~E+;!#5PVHz6A4^3NTf&4T`Z6o=}GdimuL=me{W@r`d_7U9IJl>pGm{; zmT6#M{oLUyxKaI3nDgaJ1kjZZ)%~1yi?iO5*!K7I^!zG0e7DfF(z)Jg9a&2Rfm2Uq z2Yi@}ygUuS37q;!K8E;Mhn&ZF*>VFCz=e~5Ec^&W0ETL_tb*8@aH_(B(|;bd(eZL{ z)JjTkV6N-p90|YQigkWyZ*LDKxe#g$;Ffpn*BU*q#KqyUiCp;D$~!xk)ASE?2mRGb zrAJ-GcOAmlJ}vZ?OFnFtPTscYXLeS?zZ?z?szvaAEQs|joLt>QXJx4a$F&iOORPbL z;FTN9&&vC*SB;7x%Ji*p{8{yeAu=9h#1?a?3* zcevnP0evb-{x-1bITR>j1go@)uta;?Vay+}?_+d6Y0pDhJP>@R206b6qY3oMxHt`u ziU?Pn1U&9UMGw2KhcX)??4O?nnpy#c$2}kVCB!@|-Ksyzd*TG_N=w+46BV!e$EYuL z8B%S#l7G|x*(Mh5U{O!)x!6GAHv6HlXDJvoWXHV2aYTtWlEeDe+qZ9nojincwB%7P z>10kx$G3Ab>>KNQrI+^6L3J_$thxc>PrNJWVciJUexSU)v zVM6qD50DR$PL>ha3&aXJG|Jgs$G_JuZdeG@^BXL!okpzf637 zUEPSrMz+*m@kkJL@AnFjAEpyt>t=m~^~jbF`dCxYt0E&aKljJcfiBPf@``qXWXD2d z!}A8MyF-8|bpQc|&E?jf^m_@WfAph3Ojl0hI;$zuJNY zJa^vHQJ<#yzAWvp9@S|#o?yzd9yNgGq+RF=$X;DBC>$McFRsP>zw7^$K*5kqWVF_k zz#pd#KM8i0=Whq@X5BavtiLJiUq_E?1IeKA+}s>CfK0Fr6lhPD$G5XqSu}=(`G@_5 z{`DOYc@~tv4~{{QTS$1f3J^Of9^Sp+6i=)%7Sc3&(lwj*Gh?I*pxh-e``OrJ#>KA! zD~-_`NxioBi>*Pl@AiD?%JX9)MS#U%FY16{6%CvZJnO;u zk!{Rqhgwe4z$8Ag#wKWYr3s75O0psKpw-#dLirGUYhx3z=cSwm$m8o9t2Ah&mfXsn zJ_;TEVWYyjRkiO58mR4*=Jjv4%RC|d`Q09O0T6)`Q}j2FWg!$m`)mzCw-;syIxhxi zT=!Xhtg5aa3Gy4|jVhpPe|-M@fX~K&;WX%~-_94)@eWa#f+oYIrUVqXUOD0`gwsMV zXEoK(x&DM{2$(H3D}cAu5=4}BL#(le7;#V+5%G>forPRUk0xZy<}sxPZ%;4>sqh}+ zMSWjg{sWPy4PtM6_p_+a|28rah|lka_63vw#^(LNjR=$ZU%Pa_;Ys_w{ri9T1)cvY zKcLUNfAOet0+v!%1{(ciYEW^z=lvASt$e&wWclML3dR^fU?+gpq(ktcX^oZOY~vb_ z90tt=Q!lRykEIdgpW&PW%<}6WqGDrt$n{im5Eb|GI-LD1Ss0*~T?b7Zuz}y8+`+4K z3Xtp3G|g@msnT`gw!26?%~<@pAIXs&!X2Rf)s7xL`WQglt3)%ZiPys5x#9}o{cp`E zQUx1!2+MqbzXfWvFL_BAVo10rh~iXGs2FSGVrOUts4#MT*GQ5v2&C?ese@b(T~lKM zhxQaui=%KzzmAvkG>p)34)N@vo%-eaohguKMSyjqI+#qJby$N)B*13oU(E1Kq|G^7qn}!y{k_s(Gph&-o>1=J zobN&2gUpdEJm%IWTmnbZ*2?=JA(*|2fO(ZWZfkl)arcV3}Tti;JV{f?*cf zUrj+1|FBIpGAl;G(3x5wsWjz~oS}}+IjA`5r`Oj#+~4raAAyDaS`JF9aA!Xd>i6|s z;oe=(Qj7*A_~=VtMe0_U6_hLp-4l(lif%sKgynV##ErH7u##5+$FU6-mkr2Fjkxm| z-;L|?!LQ%E(F`jB*V*846+czM#b?&c%<$}2J8HnQ^V1&N>C>tY9>g%jm1Sw@(T=|B zmfypCpGEcVZLRrYR=?6SHwV+vYnTER_7a?3v3on@or)gh!{N3$GwOD1VUm}2mTQwC zmE=Nwuq-XFj6@;_<8^&UcSF^;$2?3;t*z1Q+}TRQ>$@I{!v;2;i72d;GQHqp5-nQ_ zJ^LkRd5x`M^B-x$v7J%!fe_JopWewimQHptn}f$O{S%4Km9pjp9?G91rCprPRo^N* zCs#ftYf+Srr1<=1XP0#RWL!8ilM$&EafHWTG&NwDd+{Ur*PE-7+uYEUd)!USlD~&v zDX6;bjM;dgm(nZ}pWnC*GF+RGJrpncS*O)|d7Gtjazw}}#jO_YDUc>cTerou@K87J ziHU2`$kQVZ2sB+7=|8>6cVrecUz}k4D1IEJ0=Bl(;C>nl7!65YeTKXAm;Azh6$Wlx z5o>n=s6u8|B=%A7L?DL=ikVBeOr8eXmtidAkg4BpGozfZBzT#Y9*uMGd)|0ncr_nW zuy9ke>sc~eeu9M4u=p0_tydusiq7bC<&gUA^I~GLRV8?KjjmG4Sz5~8r>BPEl>~r) zUjAcd; z2*0K3ro6u7r!{8z-=?)+X`rg%J+!9+Ma>)Ps%Aktr!INf5*8r!U-l z*N?XuDzUavq|tR<2+(F|uYo;@!z=VFz`JW!ce!s@jgE`ta1#dktr zb7bqZO$o5+T$Y|mv>NE||KzDHxAGFqK{R&uXykbtv)l*y_C*0%NnY_1j)O%-iVgvz z3NgbNze?#?h|7#OLXWWuiQ=z9YA-}|_wn(;g1baV3659}2Us2usJh*12@iaHs*NEP zASXb|)-WbS-NrRY7OpAU+@NlyP*LyL=N}$G1UFl40!cdT%J7TkAXWwHu&#*`YIzg` z#X#1lX=a7ZRMnmJu_iE5=}`FjmfgzNe9leDBRiEO(tFNp*kJ}Rgx4|Nkg8hwG7ObT z>Og*)=-w%9LnUeYP0sqsBtM_^!h>EyE`e*DeZ-a^SuXpm zM!IN)r@%*uf4=JFA|Q{2b2cw0ArFZe&ch+~Om5Ue6=DNUz8L%WIX?#%v5@&9KJVX- zeLv0hdRmdw1cl0B_d+X;h^O|XnVU$dNw8iT@|cZbI^B03&tWpF;PJ^^k9-ZBq{T`T zu~NMs?u7257O!wUuwj#>E|hk)*LxTxE{#z$mvb)O?U7ihfx1L9TnHl%tECqt;9}zU zl}a+ZyYCV8&6ulZ z&hz{d);tv>BM(mo&uS7MpdMw=fMJkhIg-+!MPVI|{wQ!6&^4)5eZji8k#X)F_p%~o zQjx&RH3cAf_&3d3LMb=yBs+QqTx1WEe#-6n&W7`?mI6~r{yKya=-3=poceSa<%sbue8 z3}#(?vf|z6Cpjo~X^zxU`EUQ(@ap;eTju*BIu;oL9>`l*o@G}VJP43G_BxYfJN6g^ z63s(0=Y)L14_(t*Z|_O7^=*f_T*<1W5GkM#rL&7X9kPxc@I#VUV9+;Ve93zlZ2^QP za*&jdUoCG9s}$~jN2bztnP^>*1qn*Wc!bW_i_wL1Z%z7lwS%@Jw;TuCDC-h4$$kaZ zsM$%@rD+w@$1H(2g zIOP?SYJW-_)Rh6mlG0M^?_qyu#^P{hL0sK>YWU2Z?)#dd8$)GFQHuGRG%w|~8&#AT zCdPgeJtBB8m6qg%$#ChSl?ui4hRPjc88XU5%SoSm;POZLlCXb1#=I;!f@zZGgS5Mr zLKT;P_#AcX3C)P58i=oa7cMleN3p}~cHvC>`dpu8fB>Vp$ER3ATh2KsN0J#@*EcwV z?Nrj`KbIYeIm};!L``@Qs8F7F{JADyP;tx86Lswg*KP7Lm9ku4Ap$k|@!Gy**V!a#>2rl9cP=&;H~w714E;m zt-{uA1tgAx?|YQ?RYu(UOgho?Od{cm&?&}`y?uQh(s7bbCh0SJeisRl4P}xOn7;Ls z(U?qDk%xAjGt;qV+(nqf_n(dhROaNO8;?gPUuB$J_k=v1VUPlpB}vcbb$@$JLB?e; z>2?Vbw!if>0o!TchoWp+0+%57Sp*AWr6qJgPB*fGF1xu;W!qf&EYdMlp}A zZEa1Vnl7S&n;cet{h-6YECq%yF+yFWSnI~b!7Bm+O$+HjP5=;K>Fo+K5SU6~GTsJY zj+x<}(0Vck{*ky-1)w#IP6}v=cR6sv$$yfx2|R*QTC^rc>1h?ee*HQRGQ3=+P^RA- zR}2e|4?gG$rQ&1>h14xl!&XY|moJyywE(nh4oz)i=z54PTR>kI3z39#Z(S>1yhVnX zS9+V02bKt&s}c~;iooQ=*81^dBU&>E;);v|jS*GhHyv%*9>}lpiKS@&>m`B}%u4V^ z&<=hq4+voK?&y6hbYn>7D)&n}0`L>^Mn*a>4X#Y$Un0b;!L|0+y){Ls&}>S6x=p{ F{yz*p(nJ6N diff --git a/report/query_match_eql_cast_firstname_chart.png b/report/query_match_eql_cast_firstname_chart.png index 673b35adeecf95ea7e18b978f9b1928d7f746c4b..e16220f51dff8e7189bc9430934e4f2e98d04ffa 100644 GIT binary patch literal 44205 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

        3(xWy@dWs~ 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%0A4{!o=^@VXY6aIP+Hag}>@ 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

        f0lF86ElmK8sPurU&+*) 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 diff --git a/results/query/match_metadata_100000.json b/results/query/match_metadata_100000.json index b69b72a..ce016b6 100644 --- a/results/query/match_metadata_100000.json +++ b/results/query/match_metadata_100000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,36,1555,1789,1603,10}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1555,10,36,1603,1164,1789}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 93.35 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1164,36,1555,1789,1603,10}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1555,10,36,1603,1164,1789}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 93.35, "Total Cost": 97.86 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 1164, - 36, 1555, - 1789, + 10, + 36, 1603, - 10 + 1164, + 1789 ], "i": { "c": "value", @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1659,513,820,290,1196,237,242,1061,450,543,1665,765,835,1609,1185,1381,461,574,1988,1967,1846,523,97,44,1715,518,1987,2024,1098,702}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1185,518,820,835,1987,237,574,1715,702,1988,290,1196,513,242,97,44,1609,461,1381,2024,765,1659,1967,1665,523,1846,450,1098,543,1061}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -99,7 +99,7 @@ "Total Cost": 458.47 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1659,513,820,290,1196,237,242,1061,450,543,1665,765,835,1609,1185,1381,461,574,1988,1967,1846,523,97,44,1715,518,1987,2024,1098,702}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1185,518,820,835,1987,237,574,1715,702,1988,290,1196,513,242,97,44,1609,461,1381,2024,765,1659,1967,1665,523,1846,450,1098,543,1061}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 458.48, "Total Cost": 462.99 @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ - 1659, - 513, + 1185, + 518, 820, + 835, + 1987, + 237, + 574, + 1715, + 702, + 1988, 290, 1196, - 237, + 513, 242, - 1061, - 450, - 543, - 1665, - 765, - 835, + 97, + 44, 1609, - 1185, - 1381, 461, - 574, - 1988, + 1381, + 2024, + 765, + 1659, 1967, - 1846, + 1665, 523, - 97, - 44, - 1715, - 518, - 1987, - 2024, + 1846, + 450, 1098, - 702 + 543, + 1061 ], "i": { "c": "value", @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,835,702,523,1061,518,290,242,1846,1659,1185,97,1609,1987,1988,450,1098,1381,1967,513,461,1665,543,44,1196,574,765,237,2024,1715}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{461,518,1659,1988,1098,44,765,574,513,2024,290,450,702,543,1967,1196,1381,1715,1185,97,237,1609,1061,1846,1665,242,820,835,1987,523}'::smallint[])", "Index Name": "string_encrypted_100000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -190,7 +190,7 @@ "Total Cost": 458.47 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{820,835,702,523,1061,518,290,242,1846,1659,1185,97,1609,1987,1988,450,1098,1381,1967,513,461,1665,543,44,1196,574,765,237,2024,1715}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{461,518,1659,1988,1098,44,765,574,513,2024,290,450,702,543,1967,1196,1381,1715,1185,97,237,1609,1061,1846,1665,242,820,835,1987,523}'::smallint[])", "Relation Name": "string_encrypted_100000", "Startup Cost": 458.48, "Total Cost": 462.99 @@ -208,36 +208,36 @@ "parameters": [ { "bf": [ - 820, - 835, - 702, - 523, - 1061, + 461, 518, - 290, - 242, - 1846, 1659, - 1185, - 97, - 1609, - 1987, 1988, - 450, 1098, - 1381, - 1967, + 44, + 765, + 574, 513, - 461, - 1665, + 2024, + 290, + 450, + 702, 543, - 44, + 1967, 1196, - 574, - 765, + 1381, + 1715, + 1185, + 97, 237, - 2024, - 1715 + 1609, + 1061, + 1846, + 1665, + 242, + 820, + 835, + 1987, + 523 ], "i": { "c": "value", diff --git a/results/query/match_metadata_1000000.json b/results/query/match_metadata_1000000.json index 970c969..ab6a1dc 100644 --- a/results/query/match_metadata_1000000.json +++ b/results/query/match_metadata_1000000.json @@ -21,7 +21,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,36,1164,10,1555,1603}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{36,10,1164,1555,1603,1789}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -32,7 +32,7 @@ "Total Cost": 307.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1789,36,1164,10,1555,1603}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{36,10,1164,1555,1603,1789}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 307.85, "Total Cost": 312.36 @@ -50,12 +50,12 @@ "parameters": [ { "bf": [ - 1789, 36, - 1164, 10, + 1164, 1555, - 1603 + 1603, + 1789 ], "i": { "c": "value", @@ -88,7 +88,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1061,1967,702,820,1988,835,523,290,237,1098,1185,1715,574,1665,97,44,1659,450,765,513,1987,242,518,2024,1846,543,1609,1196,1381,461}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1987,543,1609,574,765,835,461,1967,513,1665,97,523,1185,1061,450,1846,702,1659,2024,518,1196,1098,242,237,1381,1715,1988,44,820,290}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -99,7 +99,7 @@ "Total Cost": 1526.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1061,1967,702,820,1988,835,523,290,237,1098,1185,1715,574,1665,97,44,1659,450,765,513,1987,242,518,2024,1846,543,1609,1196,1381,461}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1987,543,1609,574,765,835,461,1967,513,1665,97,523,1185,1061,450,1846,702,1659,2024,518,1196,1098,242,237,1381,1715,1988,44,820,290}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1526.85, "Total Cost": 1531.36 @@ -117,36 +117,36 @@ "parameters": [ { "bf": [ - 1061, - 1967, - 702, - 820, - 1988, - 835, - 523, - 290, - 237, - 1098, - 1185, - 1715, + 1987, + 543, + 1609, 574, + 765, + 835, + 461, + 1967, + 513, 1665, 97, - 44, - 1659, + 523, + 1185, + 1061, 450, - 765, - 513, - 1987, - 242, - 518, - 2024, 1846, - 543, - 1609, + 702, + 1659, + 2024, + 518, 1196, + 1098, + 242, + 237, 1381, - 461 + 1715, + 1988, + 44, + 820, + 290 ], "i": { "c": "value", @@ -179,7 +179,7 @@ "Plans": [ { "Async Capable": false, - "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1987,518,1061,450,1715,1846,1659,1609,44,1381,574,97,242,702,290,1967,237,1185,1988,543,1196,765,461,2024,820,513,1098,1665,835}'::smallint[])", + "Index Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1196,1967,1988,702,2024,1665,1185,290,835,765,461,523,1987,1715,1659,543,518,820,574,1098,450,242,1061,237,1609,97,513,1381,44,1846}'::smallint[])", "Index Name": "string_encrypted_1000000_gin_index", "Node Type": "Bitmap Index Scan", "Parallel Aware": false, @@ -190,7 +190,7 @@ "Total Cost": 1526.85 } ], - "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{523,1987,518,1061,450,1715,1846,1659,1609,44,1381,574,97,242,702,290,1967,237,1185,1988,543,1196,765,461,2024,820,513,1098,1665,835}'::smallint[])", + "Recheck Cond": "((eql_v2.bloom_filter(value))::smallint[] @> '{1196,1967,1988,702,2024,1665,1185,290,835,765,461,523,1987,1715,1659,543,518,820,574,1098,450,242,1061,237,1609,97,513,1381,44,1846}'::smallint[])", "Relation Name": "string_encrypted_1000000", "Startup Cost": 1526.85, "Total Cost": 1531.36 @@ -208,36 +208,36 @@ "parameters": [ { "bf": [ + 1196, + 1967, + 1988, + 702, + 2024, + 1665, + 1185, + 290, + 835, + 765, + 461, 523, 1987, - 518, - 1061, - 450, 1715, - 1846, 1659, - 1609, - 44, - 1381, + 543, + 518, + 820, 574, - 97, + 1098, + 450, 242, - 702, - 290, - 1967, + 1061, 237, - 1185, - 1988, - 543, - 1196, - 765, - 461, - 2024, - 820, + 1609, + 97, 513, - 1098, - 1665, - 835 + 1381, + 44, + 1846 ], "i": { "c": "value", diff --git a/results/query/match_rows_100000.json b/results/query/match_rows_100000.json index a200218..a78e735 100644 --- a/results/query/match_rows_100000.json +++ b/results/query/match_rows_100000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[75,150,225,300,375,450,525,600,675,750],"measured_values":[83049500.0,183102958.0,252012250.0,336468084.0,418309459.0,442338000.0,584502625.0,631205542.0,736529875.0,827671125.0],"unit":"ns","throughput":[],"typical":{"estimate":1085485.1128311688,"lower_bound":1054125.55879397,"upper_bound":1110164.902084942,"unit":"ns"},"mean":{"estimate":1102815.7442148149,"lower_bound":1067608.6598966666,"upper_bound":1137595.3618888888,"unit":"ns"},"median":{"estimate":1110332.5,"lower_bound":1077785.3683333332,"upper_bound":1120054.4444444445,"unit":"ns"},"median_abs_dev":{"estimate":15530.03045495357,"lower_bound":4498.49693293573,"upper_bound":96021.34067572495,"unit":"ns"},"slope":{"estimate":1085485.1128311688,"lower_bound":1054125.55879397,"upper_bound":1110164.902084942,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[101477791.0,243552958.0,315298000.0,437772166.0,535636625.0,661706875.0,735360583.0,874781459.0,980594708.0,1024302125.0],"unit":"ns","throughput":[],"typical":{"estimate":26719571.507142857,"lower_bound":26100909.314230163,"upper_bound":27353006.296006944,"unit":"ns"},"mean":{"estimate":27024820.58219246,"lower_bound":26281516.01031746,"upper_bound":27941008.865406748,"unit":"ns"},"median":{"estimate":27010286.569444444,"lower_bound":25941193.229166664,"upper_bound":27454020.192708336,"unit":"ns"},"median_abs_dev":{"estimate":960937.1345024575,"lower_bound":90452.30214831792,"upper_bound":2043587.1787284538,"unit":"ns"},"slope":{"estimate":26719571.507142857,"lower_bound":26100909.314230163,"upper_bound":27353006.296006944,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[31,62,93,124,155,186,217,248,279,310],"measured_values":[91988042.0,186928709.0,289205250.0,369885500.0,494362708.0,559358166.0,682145917.0,751933833.0,832365625.0,926013542.0],"unit":"ns","throughput":[],"typical":{"estimate":3031661.8243820695,"lower_bound":2995330.0758255483,"upper_bound":3094956.0514292275,"unit":"ns"},"mean":{"estimate":3041780.6244636457,"lower_bound":2999883.7267685933,"upper_bound":3090531.9181025024,"unit":"ns"},"median":{"estimate":3011140.572580645,"lower_bound":2983389.336917563,"upper_bound":3109733.870967742,"unit":"ns"},"median_abs_dev":{"estimate":41471.455182551195,"lower_bound":3435.653894704404,"upper_bound":118711.95373545212,"unit":"ns"},"slope":{"estimate":3031661.8243820695,"lower_bound":2995330.0758255483,"upper_bound":3094956.0514292275,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[83622333.0,177442500.0,287943750.0,416223125.0,439420084.0,537814041.0,594673583.0,697360625.0,753686500.0,838782916.0],"unit":"ns","throughput":[],"typical":{"estimate":28834479.21212121,"lower_bound":28242615.452261224,"upper_bound":30116221.50363636,"unit":"ns"},"mean":{"estimate":29654832.923981488,"lower_bound":28540893.86464815,"upper_bound":31056216.201666664,"unit":"ns"},"median":{"estimate":29175682.487499997,"lower_bound":27959430.533333335,"upper_bound":30783750.0,"unit":"ns"},"median_abs_dev":{"estimate":1537563.4944102848,"lower_bound":93050.45633024942,"upper_bound":2908545.453402993,"unit":"ns"},"slope":{"estimate":28834479.21212121,"lower_bound":28242615.452261224,"upper_bound":30116221.50363636,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[58286042.0,364186250.0,322643125.0,279122500.0,408477458.0,462647333.0,491612333.0,638363375.0,605499917.0,656854792.0],"unit":"ns","throughput":[],"typical":{"estimate":3669557.105064935,"lower_bound":3441198.97587822,"upper_bound":4118576.5018145163,"unit":"ns"},"mean":{"estimate":4297499.418414682,"lower_bound":3471401.3991765874,"upper_bound":5498786.805819444,"unit":"ns"},"median":{"estimate":3683455.5529761906,"lower_bound":3363888.427777778,"upper_bound":4683578.255208334,"unit":"ns"},"median_abs_dev":{"estimate":532808.4153235932,"lower_bound":109436.80978044149,"upper_bound":1569876.4124256219,"unit":"ns"},"slope":{"estimate":3669557.105064935,"lower_bound":3441198.97587822,"upper_bound":4118576.5018145163,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[56278375.0,116824000.0,190592792.0,259668833.0,310146958.0,368576375.0,428011959.0,524605875.0,541440500.0,641125542.0],"unit":"ns","throughput":[],"typical":{"estimate":31350290.592207793,"lower_bound":30475649.36634671,"upper_bound":32125331.125475284,"unit":"ns"},"mean":{"estimate":30879510.55259921,"lower_bound":29990463.475277774,"upper_bound":31706951.288988095,"unit":"ns"},"median":{"estimate":30864696.858333334,"lower_bound":29889141.39285714,"upper_bound":32112034.729166664,"unit":"ns"},"median_abs_dev":{"estimate":1551058.0761282132,"lower_bound":327960.761667532,"upper_bound":2535362.81887415,"unit":"ns"},"slope":{"estimate":31350290.592207793,"lower_bound":30475649.36634671,"upper_bound":32125331.125475284,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[88,176,264,352,440,528,616,704,792,880],"measured_values":[85677500.0,183023458.0,268052541.0,370069208.0,464215458.0,539308584.0,633765625.0,798449375.0,838526291.0,905780458.0],"unit":"ns","throughput":[],"typical":{"estimate":1054356.0578217236,"lower_bound":1029463.7241758804,"upper_bound":1089511.2881799163,"unit":"ns"},"mean":{"estimate":1040769.301809614,"lower_bound":1018197.676818182,"upper_bound":1066574.7620125362,"unit":"ns"},"median":{"estimate":1034600.9931818182,"lower_bound":1021417.7727272727,"upper_bound":1055039.1470959596,"unit":"ns"},"median_abs_dev":{"estimate":26673.78465712752,"lower_bound":5494.767282372647,"upper_bound":60361.965440633605,"unit":"ns"},"slope":{"estimate":1054356.0578217236,"lower_bound":1029463.7241758804,"upper_bound":1089511.2881799163,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[96447250.0,220087500.0,315921542.0,410497208.0,508278125.0,624599333.0,709050167.0,788909917.0,914446791.0,1030810458.0],"unit":"ns","throughput":[],"typical":{"estimate":25472804.243506495,"lower_bound":25112573.339325406,"upper_bound":25798816.508196723,"unit":"ns"},"mean":{"estimate":25619271.548125,"lower_bound":25097105.178125,"upper_bound":26179446.904166665,"unit":"ns"},"median":{"estimate":25534990.875,"lower_bound":25027367.328125,"upper_bound":26048528.308333334,"unit":"ns"},"median_abs_dev":{"estimate":537629.2301026717,"lower_bound":76570.72889059782,"upper_bound":1528979.476852063,"unit":"ns"},"slope":{"estimate":25472804.243506495,"lower_bound":25112573.339325406,"upper_bound":25798816.508196723,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[30,60,90,120,150,180,210,240,270,300],"measured_values":[96230042.0,187934875.0,279344125.0,391952334.0,457174583.0,553717000.0,644194917.0,735862541.0,852014417.0,908558333.0],"unit":"ns","throughput":[],"typical":{"estimate":3085376.1253679655,"lower_bound":3048559.5030533154,"upper_bound":3135664.374383453,"unit":"ns"},"mean":{"estimate":3115187.0645542326,"lower_bound":3073886.6209627977,"upper_bound":3161603.6771369055,"unit":"ns"},"median":{"estimate":3090014.583333333,"lower_bound":3057712.698095238,"upper_bound":3169957.9916666667,"unit":"ns"},"median_abs_dev":{"estimate":62578.5903280079,"lower_bound":8608.388163004147,"upper_bound":124106.59446888961,"unit":"ns"},"slope":{"estimate":3085376.1253679655,"lower_bound":3048559.5030533154,"upper_bound":3135664.374383453,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114649625.0,196185917.0,336185542.0,431083791.0,540683834.0,696958791.0,801554916.0,937055208.0,1062057416.0,1119558458.0],"unit":"ns","throughput":[],"typical":{"estimate":28562670.496753246,"lower_bound":27868473.945402298,"upper_bound":29106901.773024842,"unit":"ns"},"mean":{"estimate":27961847.88454365,"lower_bound":27010598.274583332,"upper_bound":28743019.690793645,"unit":"ns"},"median":{"estimate":28321211.55952381,"lower_bound":27034191.7,"upper_bound":29039949.625,"unit":"ns"},"median_abs_dev":{"estimate":1245755.929570911,"lower_bound":306148.2504772809,"upper_bound":2242722.5670120683,"unit":"ns"},"slope":{"estimate":28562670.496753246,"lower_bound":27868473.945402298,"upper_bound":29106901.773024842,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[31,62,93,124,155,186,217,248,279,310],"measured_values":[91443958.0,405558708.0,385294292.0,361392834.0,473369583.0,575331625.0,666706584.0,744025375.0,807097708.0,987186834.0],"unit":"ns","throughput":[],"typical":{"estimate":3106640.138332635,"lower_bound":2989257.957900492,"upper_bound":3299508.8066338617,"unit":"ns"},"mean":{"estimate":3484544.025915259,"lower_bound":2998342.2568033156,"upper_bound":4221761.273486944,"unit":"ns"},"median":{"estimate":3063188.9405529955,"lower_bound":2949805.0967741935,"upper_bound":3618065.0779569894,"unit":"ns"},"median_abs_dev":{"estimate":173959.80139611245,"lower_bound":29046.705715608787,"upper_bound":845868.8565996003,"unit":"ns"},"slope":{"estimate":3106640.138332635,"lower_bound":2989257.957900492,"upper_bound":3299508.8066338617,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[102674334.0,209133458.0,329981500.0,462745625.0,534877500.0,631621625.0,745918167.0,919155209.0,1045979750.0,1136939041.0],"unit":"ns","throughput":[],"typical":{"estimate":28041469.156493507,"lower_bound":27041058.916935325,"upper_bound":28637295.15926641,"unit":"ns"},"mean":{"estimate":27413377.225168653,"lower_bound":26673319.075541917,"upper_bound":28157492.898219742,"unit":"ns"},"median":{"estimate":27121166.666666664,"lower_bound":26317567.708333332,"upper_bound":28723600.28125,"unit":"ns"},"median_abs_dev":{"estimate":1691493.6953774828,"lower_bound":260767.7758954447,"upper_bound":2042201.7925261694,"unit":"ns"},"slope":{"estimate":28041469.156493507,"lower_bound":27041058.916935325,"upper_bound":28637295.15926641,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/100000","MATCH/match_decrypt/eql_cast_firstname/100000","MATCH/match/eql_cast_lastname/100000","MATCH/match_decrypt/eql_cast_lastname/100000","MATCH/match/eql_bloom/100000","MATCH/match_decrypt/eql_bloom/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_1000000.json b/results/query/match_rows_1000000.json index e8653ca..5371055 100644 --- a/results/query/match_rows_1000000.json +++ b/results/query/match_rows_1000000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[97811250.0,189023000.0,275835084.0,372533958.0,461705417.0,544146250.0,671188208.0,724793834.0,840099458.0,928714333.0],"unit":"ns","throughput":[],"typical":{"estimate":4637871.363506493,"lower_bound":4575909.02063492,"upper_bound":4699687.081886793,"unit":"ns"},"mean":{"estimate":4665662.345265874,"lower_bound":4603540.775194445,"upper_bound":4735887.722753969,"unit":"ns"},"median":{"estimate":4650123.07,"lower_bound":4575803.126666667,"upper_bound":4730710.348412698,"unit":"ns"},"median_abs_dev":{"estimate":95126.2829911706,"lower_bound":17529.925620948587,"upper_bound":192278.49457429102,"unit":"ns"},"slope":{"estimate":4637871.363506493,"lower_bound":4575909.02063492,"upper_bound":4699687.081886793,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[98375959.0,190452083.0,303520959.0,389798667.0,459990084.0,565262500.0,656858708.0,744771708.0,870707458.0,915927167.0],"unit":"ns","throughput":[],"typical":{"estimate":31335399.568831168,"lower_bound":30840679.753148615,"upper_bound":31991654.18445693,"unit":"ns"},"mean":{"estimate":31790172.1771164,"lower_bound":31218100.75730159,"upper_bound":32416324.263430554,"unit":"ns"},"median":{"estimate":31572743.027777776,"lower_bound":30972495.84761905,"upper_bound":32520205.35185185,"unit":"ns"},"median_abs_dev":{"estimate":1173047.0136498061,"lower_bound":275257.82259653136,"upper_bound":1720615.667419631,"unit":"ns"},"slope":{"estimate":31335399.568831168,"lower_bound":30840679.753148615,"upper_bound":31991654.18445693,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[5,10,15,20,25,30,35,40,45,50],"measured_values":[105495875.0,213367208.0,331288125.0,437082541.0,538206583.0,637502750.0,743834125.0,850143875.0,993868292.0,1095991166.0],"unit":"ns","throughput":[],"typical":{"estimate":21663995.01714286,"lower_bound":21328491.37617555,"upper_bound":21914239.631276872,"unit":"ns"},"mean":{"estimate":21566603.86475397,"lower_bound":21347909.442119047,"upper_bound":21793029.053131945,"unit":"ns"},"median":{"estimate":21432492.060000002,"lower_bound":21251844.270833336,"upper_bound":21970001.025,"unit":"ns"},"median_abs_dev":{"estimate":382301.34136879706,"lower_bound":3427.629939144774,"upper_bound":585281.3354215106,"unit":"ns"},"slope":{"estimate":21663995.01714286,"lower_bound":21328491.37617555,"upper_bound":21914239.631276872,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[90141500.0,177777666.0,273647875.0,377965583.0,449094042.0,567958667.0,656246917.0,759504750.0,835325584.0,928342458.0],"unit":"ns","throughput":[],"typical":{"estimate":46627073.05974026,"lower_bound":46155360.51730104,"upper_bound":47071696.54195804,"unit":"ns"},"mean":{"estimate":46177606.31079365,"lower_bound":45514733.14591667,"upper_bound":46800921.593856156,"unit":"ns"},"median":{"estimate":46412049.89444444,"lower_bound":45070750.0,"upper_bound":47245697.875,"unit":"ns"},"median_abs_dev":{"estimate":1298377.2921083618,"lower_bound":227979.42884005423,"upper_bound":1794305.2886097094,"unit":"ns"},"slope":{"estimate":46627073.05974026,"lower_bound":46155360.51730104,"upper_bound":47071696.54195804,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[5,10,15,20,25,30,35,40,45,50],"measured_values":[104300875.0,208811584.0,327037333.0,435585708.0,543867125.0,648077834.0,760070875.0,858888958.0,984639042.0,1062274334.0],"unit":"ns","throughput":[],"typical":{"estimate":21573654.03116883,"lower_bound":21377741.148275863,"upper_bound":21785863.657861635,"unit":"ns"},"mean":{"estimate":21499527.6077619,"lower_bound":21265343.631,"upper_bound":21705520.330857143,"unit":"ns"},"median":{"estimate":21659452.59047619,"lower_bound":21176691.174999997,"upper_bound":21779285.4,"unit":"ns"},"median_abs_dev":{"estimate":244825.3783784816,"lower_bound":35437.00573086776,"upper_bound":619189.5837231932,"unit":"ns"},"slope":{"estimate":21573654.03116883,"lower_bound":21377741.148275863,"upper_bound":21785863.657861635,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[103056083.0,182958250.0,294577500.0,380975916.0,460927166.0,582197917.0,656051000.0,721908750.0,851132291.0,1039849333.0],"unit":"ns","throughput":[],"typical":{"estimate":48182783.15324675,"lower_bound":46199266.75864257,"upper_bound":50301967.498489425,"unit":"ns"},"mean":{"estimate":47985272.97003968,"lower_bound":46700288.26217064,"upper_bound":49416180.898333326,"unit":"ns"},"median":{"estimate":47453558.38888889,"lower_bound":46092716.6,"upper_bound":50022267.29166667,"unit":"ns"},"median_abs_dev":{"estimate":2226519.2698913803,"lower_bound":564280.3563320196,"upper_bound":4035147.8085867986,"unit":"ns"},"slope":{"estimate":48182783.15324675,"lower_bound":46199266.75864257,"upper_bound":50301967.498489425,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[92363625.0,186380333.0,273056458.0,378651042.0,462890708.0,564554833.0,666599042.0,726641167.0,827620125.0,935175000.0],"unit":"ns","throughput":[],"typical":{"estimate":4646796.639740259,"lower_bound":4592532.777392739,"upper_bound":4704879.908801498,"unit":"ns"},"mean":{"estimate":4647199.286065477,"lower_bound":4603980.199541667,"upper_bound":4690513.632380953,"unit":"ns"},"median":{"estimate":4644207.702500001,"lower_bound":4584561.108333333,"upper_bound":4704623.608333333,"unit":"ns"},"median_abs_dev":{"estimate":79121.9313278052,"lower_bound":22684.7025157668,"upper_bound":130364.24973733733,"unit":"ns"},"slope":{"estimate":4646796.639740259,"lower_bound":4592532.777392739,"upper_bound":4704879.908801498,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[108544750.0,211809875.0,326539042.0,471726042.0,574831708.0,650356000.0,824029000.0,945852333.0,995579209.0,1225960958.0],"unit":"ns","throughput":[],"typical":{"estimate":29045340.55779221,"lower_bound":27889319.427740864,"upper_bound":29980697.388670754,"unit":"ns"},"mean":{"estimate":28343813.29268849,"lower_bound":27534986.600697428,"upper_bound":29180686.775993306,"unit":"ns"},"median":{"estimate":28198281.713888887,"lower_bound":27136187.5,"upper_bound":29493746.27455357,"unit":"ns"},"median_abs_dev":{"estimate":1728296.7943165966,"lower_bound":84078.36805730873,"upper_bound":2278448.4273869544,"unit":"ns"},"slope":{"estimate":29045340.55779221,"lower_bound":27889319.427740864,"upper_bound":29980697.388670754,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[5,10,15,20,25,30,35,40,45,50],"measured_values":[108743750.0,210253083.0,321599500.0,430525584.0,531467292.0,631428333.0,760199875.0,861037375.0,958719958.0,1058762375.0],"unit":"ns","throughput":[],"typical":{"estimate":21344342.185454544,"lower_bound":21205191.152941175,"upper_bound":21522287.16836735,"unit":"ns"},"mean":{"estimate":21377267.320579365,"lower_bound":21227310.325277776,"upper_bound":21528792.35252381,"unit":"ns"},"median":{"estimate":21372427.31111111,"lower_bound":21153151.39,"upper_bound":21622965.401785716,"unit":"ns"},"median_abs_dev":{"estimate":260219.7945901746,"lower_bound":63727.86105610614,"upper_bound":457802.16187238507,"unit":"ns"},"slope":{"estimate":21344342.185454544,"lower_bound":21205191.152941175,"upper_bound":21522287.16836735,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[86652208.0,174504833.0,263045000.0,358621708.0,461604500.0,551382875.0,617275334.0,705528042.0,792318667.0,916884375.0],"unit":"ns","throughput":[],"typical":{"estimate":44857749.1987013,"lower_bound":44157687.696186475,"upper_bound":45593836.629807696,"unit":"ns"},"mean":{"estimate":44577840.23829365,"lower_bound":43994895.55221726,"upper_bound":45210414.62857143,"unit":"ns"},"median":{"estimate":44093298.95535714,"lower_bound":43821955.98611111,"upper_bound":45844218.75,"unit":"ns"},"median_abs_dev":{"estimate":890675.8260123432,"lower_bound":60939.48615977487,"upper_bound":1661786.1416473947,"unit":"ns"},"slope":{"estimate":44857749.1987013,"lower_bound":44157687.696186475,"upper_bound":45593836.629807696,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[5,10,15,20,25,30,35,40,45,50],"measured_values":[105195375.0,220300833.0,337805417.0,419863166.0,534265166.0,646023917.0,736887292.0,849578709.0,975518250.0,1077467959.0],"unit":"ns","throughput":[],"typical":{"estimate":21452114.204675324,"lower_bound":21249713.99514563,"upper_bound":21619440.779963892,"unit":"ns"},"mean":{"estimate":21500834.780690476,"lower_bound":21238293.671617858,"upper_bound":21802302.998125006,"unit":"ns"},"median":{"estimate":21452368.60333333,"lower_bound":21053922.62857143,"upper_bound":21789721.240000002,"unit":"ns"},"median_abs_dev":{"estimate":462764.4522242879,"lower_bound":56051.142834892424,"upper_bound":749733.4800375743,"unit":"ns"},"slope":{"estimate":21452114.204675324,"lower_bound":21249713.99514563,"upper_bound":21619440.779963892,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[137718416.0,276242041.0,406271750.0,550647750.0,653145291.0,800304459.0,943097125.0,1050158542.0,1205087250.0,1324228875.0],"unit":"ns","throughput":[],"typical":{"estimate":44389769.84242424,"lower_bound":44071300.25063955,"upper_bound":44811890.299578056,"unit":"ns"},"mean":{"estimate":44841929.1554762,"lower_bound":44318065.53269841,"upper_bound":45370072.08944444,"unit":"ns"},"median":{"estimate":44771124.00793651,"lower_bound":44108982.375,"upper_bound":45887312.5,"unit":"ns"},"median_abs_dev":{"estimate":1219200.965246524,"lower_bound":158331.68199405,"upper_bound":1579492.7621833999,"unit":"ns"},"slope":{"estimate":44389769.84242424,"lower_bound":44071300.25063955,"upper_bound":44811890.299578056,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/1000000","MATCH/match_decrypt/eql_cast_firstname/1000000","MATCH/match/eql_cast_lastname/1000000","MATCH/match_decrypt/eql_cast_lastname/1000000","MATCH/match/eql_bloom/1000000","MATCH/match_decrypt/eql_bloom/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"}

      #ldfd^)2?Ocyp7&3$sOv7? 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 L8W-~vuHF3?#yV63 literal 38703 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 ABme*a diff --git a/report/query_group_by_low_cardinality_groups_encrypted_chart.png b/report/query_group_by_low_cardinality_groups_encrypted_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..94f759132b13097409b80795d936dd897271a2df GIT binary patch literal 44404 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 Sc#{wA59i~J8$z;LYq literal 0 HcmV?d00001 diff --git a/report/query_group_by_low_cardinality_groups_plaintext_chart.png b/report/query_group_by_low_cardinality_groups_plaintext_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..47ef5c9ff968aaa68c5dbeed062ac9b509e89b20 GIT binary patch literal 40865 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 literal 0 HcmV?d00001 diff --git a/report/query_group_by_top_n_groups_encrypted_chart.png b/report/query_group_by_top_n_groups_encrypted_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..e95c42dd41138a86b279cc3976eccd732ff035a6 GIT binary patch literal 37360 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 Ms;X?d^zBFg4{31<_y7O^ literal 0 HcmV?d00001 diff --git a/report/query_group_by_top_n_groups_plaintext_chart.png b/report/query_group_by_top_n_groups_plaintext_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..e6a8397c8891b19e6bbf866eae67691d5858cad1 GIT binary patch literal 39566 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

  • JbjxZ{6L&R9xXpdHm^Sx#T_4j>Ie761xg+`MP!u-z0 zfi35;Vg)?MqAwjU(=3?YmsP}c>v)^>X`ioezLL0ulGB4;`;>7E6b|R(2WEeZ80QRj zRQNC;Dr%_ESCMn0Y@FUlrO(_Zlb`i;#58@Oj=AAjumcQ9DIz|~{9f>K;SPSVHX(MD zmN_)x9!E@iQVOUx?K~q)P4}-V@P~#k zJsVfRRumSu@*CGv*_V%140_D#j25L+70Pgv^p&%Hb?nx02k+BFnll!|Zhp8I6VO1R zd#pSS?}@mMegAM)WT5xMrY4J6Mn@^vb{g$Z+HB(~KEJnC%f)55jE!?rn8E%-g7&c{ zd?h+sxA8m2zulWsi`(}LnVAXm{ZxccsiRFkwPkxs#N#e$+^ftb?bIi~V&(uv$k0!Da_*Z4iQzr^=;gG}MghzZ;UMSaEX(~E9`luf z%u}lrdGiGDBP~`-hM!d`7bz!{9$zCSM`X&!4_*tV+@r0z9`q55{6zmY{yrX zF(PYm?w>9tjvrDJ$RdY5kvx?e!f5Eg&i&(H*jb z#6AfOlq8eaydZz(tiF?blz={c6re(#3=^3G3S$8y87YH zn))F*6*|#>7GF%!h!R7YICMVTN=!2&M9h1~EC86W;)pNN|GRPG>Kw7EDw3=Wo)<{m ztOrIRV4+wHhPEMRO!+SXt=qP@wCI>=u^z~5`j?n5X72i3tZK}HW#6&u$73a`{(Q)D zUM2ajo`z7uMDouE(P(pr1;ccV7_HE+KpbL|Tkn|=175~+`i)`WPdUufgI|@CL3tJB za}nu}fWCJD_28gjih2>Zz9Kx{9}T*A<+z)xzaTXNwC05bJ=JVapVt;x$7+5Wsy>g8 zn*}r-+PW8BC+Y|qaD8EXSzmh|nph+>QM@k;5LVf2ep;y`d8IRss1v1?UZWpE2FA!ag|`!n4hV9!xBk{De-%8PasupObs zJ)iB}dj&L!Ae0B9d#vq>ajL#B^x34inK1|DY&-{=JOqF9#d@-|&wC;6(d0+==(os& z6h=;jjoWSUyS^Oj!=p-VkZ~SX1-?kV6q6$GX20EFNs=uj5tvHZ$^r2!b<3t+9C2Deg=Ajt0W zyk;G!QtsW3{+B?UW(TlXJ9OGD;PR_2{_$Zuel|`4*L4F#xNRW67z5l%eBc;pIKfco z%_-SEm@BlR98eHKHH622HC8j_anEsL2^dZ3pyV-t850FavN;BP zpe)$HX&;}k(|^J2e&(Eb)VERh{hSvm`btcNu8vL`2oMdWdt5>h>@o%eKi6@<-zO$q0HTCo%Qs}SZD`Blcv{m zG&w1z0L?rQgjU6T$eh!ACUyfv<)wRidKO;-3kN&!uV}=5^S1%F;YNGp7EWJ6e19^d zl578dJD@k$6*T}TlMcc088FwDLFlx^=`i)El~nZ+G7 zpf#4bU{T-^=<|0E<%}0NI`uYuuMR%xOSR zT5!CN;VCXpTKz47J`5lu))Y`{hee0ZY=Y$V&o56c)||kJQ~|oghlExHzn!QhTaN{4 zni;n<5TFe~?@F-%6uZHdXfeG4$XAhlJnwCQhaDZ_74tYVVPHz5J<{YM<1%iaxr5qf zBA5=>iPkuy;_laHw^OBx%VI?;7Dk0K7g^hjbPF7N{4MsIQ(ZAx#%|Q)E6Zh3m#NsE z;b-c{pMnj1VIUe+;`HOodlPPM%)D^|PTPEM0^OQ_&E$mBt42wnA!A$&w#4cQ|-zfWbch9Z+Pdh{wl1^@D;B6O&d+U zatebg0Ls<@L)rga0xTCSf$GY`hMaw)x70K>CDmm{&+eKBns);YSQ+leC6nvUG{!0R zb%A$D8<=iaguiHQTt)JK{0#F>&g(P%U9Zd|UZm*|9z#D;ET`2H^vDe#os&Ol;bjex z^@lnpLfBY}Lg3rLqtl2lmVf~Yv3Ah7yW9?4)O7HlE)fnK(>&3L4zFw4+ zy-^~eeZ#xPzaM#5CLz+IgaW`U_Nvl04BExOgp|Q; zpajI51W>SX9>;8b4KJY#(oBJcnDxul$Gv!Nzso-x|CCMbsa z5x+YFijLrM8TLIyunRB}@vMR3*+kTxCZj`Bdv)43EC>{ z!8^<6wLtIIxx1wn3&FzYpx`Fntp5t%z6OO8(PWrxuL z%7~7-cg7nuq<|8Ka?%!&oD6Zc;bu<&R?X2QNahP5@c+unf4+^8$}5 z+k1YBlcrlqfGjwYjOUU+Cv2P_2C>%=ybWxsUma`%R{`TY2q>T z9Fe3yA?H8X7CWEZ%WS)hz;THBYA}bZdxDZ~bTb23c3uDxppXFED%39bwyv>?aUIYa7F%jM07(N!epQPRoOb7Xt2U zB1J7MA$m*!739gFM0pGl&*y+Vh>Bv@Kl8|dR?>NY`qvi0 zBmg92i6d`ZrWi}3VEa_-5~pw;@ZF|Z9nWr)B=ur57h`{bp2g)aCgqMyCWCSiso}a~ zxmXi&WzkeBv!olNV`#Ed!&_NUGIl4P7P!z-wF%Vm~m( z$Pq|9JMf06CzO{xHbjum;2fAvAR6}hBQ`!rx$blT;8ox8lM^mVYlfsKhByKUn3M&{ z(Uu91hGg+dNwqJze6~m>{Vq~8xQ9v|f`l_fU8GDe)_dxLbF_Z%h)*7Kgb-^+wigaw zmUWjd0INJ50NfLBLg^5o=ezk}w3sZsSUedd<>9u`V2wchZUfwiMoO&bsDLv>4vLsP z&7K=TxO|iXk4M_nM_!#VhA5H>JjHg{mT6EQbb~zKouY*$jrV$v2^UbMO+q{#swLj=i$lepgM^bg&72LqT-S>MuTHB7Lv%eYL6 z;&zJ}DGe60#Mxm5#$SOkiNgBCEns9X|(NxcIuO(@9*H+y>fh!-}=dbH6rBnv8;5jW{j~ z-mP^?tVsbW*-e(~;s_2#;JmWsr@e7&p(3LKN!L)Abrea-yP>w97{UL?2NQDKf>GWz zLAfBuu`ytp^xr|r;{5=vk4~nn;}GGjyPj(~lKjpk-L>uGe{TA6@TG2nOG>0vXZvU6 z*;k~^%RT3T+R{+#)YYe|vIjqvRF>%il>g3okWb#2A&|bhtY)y|G>dE>XIv%2eXbFF ztgJp#R0Z7T>=L)!P#xaIipy1O>n?I`aFJu?D$sf`&FKtbyMB2kKrZz`G#Bmpy#vyO z0e6CYNiH^Wz=zP^2UmGRtq+HS?QYnZ)C*8y;dSRE_*=(KlD3a_LZ3yjeE5(>?xzC%^R}Bja;dcU3B-!nT-xoqY&E?KZFS3Uks2{2#f z;I&1nf+0`+X&O%Vw{%&WRC3#gjT`k0e7cwWDTpSGK(B94NcLLNa z%YmEKM;qs2ZO$tydU#`}EJ1sJWr>t^1!#sf{N7|Li3AA*bhR$ET{f4DVT&A0}aSE&ncfq|BgZ=yRe0k7fnUi>u)Evv=w?%mNEyqkG%-6z6T*m8Te?DB;rb`5VY^ z-MzG3)Lxg1APpitA9#bG;2*Imr7KHx?E*CcuILFB6-kgezr-b(*kV(l4-wfXzla@a zJWSxKu-%>X8+UL>)J(g#V9q6Z$fU$%qj^7j!$t-qG0h?8 zgkI-vRNu6>%+z+krDqkm4Gq(xI5Vz$`mVO(j(BBv(C*6;Wuf~bKCUI??s6=s`fKcT zVZeTAE!6EGeKAcExq*>z9@f~K4I;*&pm7Z zZQ^BFHcT44zHkp>_K7{OFRg+-MOd_?U3hr)Nf9QNU$ammV+!t1?Qk{Q0NeN^$zo+? z5jzHww|pSKUxneOhGbKBd>)v$(dS^WWsyA^nP>z#Y&NR)mmyq<7x+Rn)(_>=OoK%> zgn*NS!l4~xk`9!)DUh8Rz}d?OBCaiHyE?wdgYQW@ka)klmS&btJ#GW#TaG<+Ow%F% zH3sJ{2@AIl$X8uIvR#f`blm~rj4{6i6+?-n+jj$G0jCchbx^fqp9>qepYj1&qyuGi z^47Ah*6f&Psi{Z?aRRQH;YgHXq1MZ#Y|9ID4nB>@D};mugU+JSl+-kc*{x$D<*>So#;?KL6L~iS{n~}IT4yqpuiX6)avL}$ literal 26396 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 N&9?uNyTSGJzX5_ZKa>Cf diff --git a/report/query_ore_range_lt_hybrid_ordered_10_chart.png b/report/query_ore_range_lt_hybrid_ordered_10_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..0ffc3d60517bcc122eb6ce345a70adeed5d8b435 GIT binary patch literal 31908 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 literal 0 HcmV?d00001 diff --git a/report/query_ore_range_lt_ordered_10_chart.png b/report/query_ore_range_lt_ordered_10_chart.png deleted file mode 100644 index 8d1de44215e868c0c8d959172da5387232a77de8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48065 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 diff --git a/results/ingest/encrypt_ste_vec_small_combined.json b/results/ingest/encrypt_ste_vec_small_combined.json new file mode 100644 index 0000000..79090a6 --- /dev/null +++ b/results/ingest/encrypt_ste_vec_small_combined.json @@ -0,0 +1,24 @@ +{ + "metadata": { + "timestamp": "2026-05-13T13:11:12.461702+00:00", + "rust_version": "rustc 1.92.0 (ded5c06cf 2025-12-08)", + "postgres_version": "psql (PostgreSQL) 17.7 (Debian 17.7-3.pgdg13+1)", + "host_info": { + "os": "macOS", + "cpu_model": "Apple M1 Max", + "cpu_cores": 10, + "total_memory_gb": 64.0 + } + }, + "results": [ + { + "num_records": 10000, + "total_time_seconds": 2.47986869314, + "total_records": 10000, + "throughput_records_per_second": 4032.4715690241, + "average_memory_usage_bytes": 33447936, + "average_memory_usage_mb": 31.8984375, + "num_runs": 2 + } + ] +} \ No newline at end of file diff --git a/results/query/exact_rows_10000.json b/results/query/exact_rows_10000.json index b3c0b47..2b693d6 100644 --- a/results/query/exact_rows_10000.json +++ b/results/query/exact_rows_10000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[227,454,681,908,1135,1362,1589,1816,2043,2270],"measured_values":[101275458.0,196156959.0,280632375.0,427147834.0,486338000.0,546490917.0,657394667.0,690745792.0,804303292.0,972661667.0],"unit":"ns","throughput":[],"typical":{"estimate":410181.23052806227,"lower_bound":394711.3473043843,"upper_bound":427403.59533132747,"unit":"ns"},"mean":{"estimate":420671.53634431155,"lower_bound":405534.5988993776,"upper_bound":436622.7550667785,"unit":"ns"},"median":{"estimate":421100.6399937067,"lower_bound":401241.49559471366,"upper_bound":437319.5110132159,"unit":"ns"},"median_abs_dev":{"estimate":22848.56372651551,"lower_bound":2652.7201231251447,"upper_bound":45996.24283227268,"unit":"ns"},"slope":{"estimate":410181.23052806227,"lower_bound":394711.3473043843,"upper_bound":427403.59533132747,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[214,428,642,856,1070,1284,1498,1712,1926,2140],"measured_values":[87371000.0,173769083.0,278287750.0,372703041.0,443209667.0,542482583.0,637442166.0,713967417.0,791783584.0,853074625.0],"unit":"ns","throughput":[],"typical":{"estimate":413425.9184002913,"lower_bound":405836.34044591646,"upper_bound":423188.6779355115,"unit":"ns"},"mean":{"estimate":417215.93097704346,"lower_bound":410225.9191770509,"upper_bound":424270.0785230631,"unit":"ns"},"median":{"estimate":415625.8423481308,"lower_bound":408275.7009345794,"upper_bound":427982.1195482866,"unit":"ns"},"median_abs_dev":{"estimate":12582.4207730309,"lower_bound":3780.6724633313365,"upper_bound":20361.64641911595,"unit":"ns"},"slope":{"estimate":413425.9184002913,"lower_bound":405836.34044591646,"upper_bound":423188.6779355115,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[241,482,723,964,1205,1446,1687,1928,2169,2410],"measured_values":[122102958.0,197123333.0,290307208.0,380345208.0,483167625.0,570386833.0,643560584.0,763224834.0,877048250.0,998307167.0],"unit":"ns","throughput":[],"typical":{"estimate":401293.74233981787,"lower_bound":391607.0022065252,"upper_bound":408885.5777573002,"unit":"ns"},"mean":{"estimate":410306.57501712436,"lower_bound":395414.07611353975,"upper_bound":433563.5480082988,"unit":"ns"},"median":{"estimate":401250.1957123098,"lower_bound":394548.97095435683,"upper_bound":409295.68932687875,"unit":"ns"},"median_abs_dev":{"estimate":10002.38276661306,"lower_bound":1041.6097880430393,"upper_bound":21863.484270946563,"unit":"ns"},"slope":{"estimate":401293.74233981787,"lower_bound":391607.0022065252,"upper_bound":408885.5777573002,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[226,452,678,904,1130,1356,1582,1808,2034,2260],"measured_values":[82717916.0,176520333.0,264889250.0,374827417.0,479773458.0,567025917.0,657406209.0,719711958.0,841371833.0,979389959.0],"unit":"ns","throughput":[],"typical":{"estimate":416693.9892656017,"lower_bound":405548.94196821575,"upper_bound":426175.28608115757,"unit":"ns"},"mean":{"estimate":406524.02084211266,"lower_bound":394130.48774230934,"upper_bound":417656.35078452027,"unit":"ns"},"median":{"estimate":414142.9501597837,"lower_bound":390692.1091445428,"upper_bound":420066.07149178255,"unit":"ns"},"median_abs_dev":{"estimate":19650.01546930623,"lower_bound":1408.5142301561007,"upper_bound":35319.47804832265,"unit":"ns"},"slope":{"estimate":416693.9892656017,"lower_bound":405548.94196821575,"upper_bound":426175.28608115757,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[74991250.0,173599500.0,216787959.0,427694791.0,517642125.0,547974292.0,733010084.0,760262458.0,870843167.0,948152375.0],"unit":"ns","throughput":[],"typical":{"estimate":441103.8625748681,"lower_bound":426893.6484106108,"upper_bound":457722.3891483822,"unit":"ns"},"mean":{"estimate":423360.2499275206,"lower_bound":390081.1911212582,"upper_bound":453404.573008625,"unit":"ns"},"median":{"estimate":433443.02454337897,"lower_bound":379726.7092846271,"upper_bound":472732.5342465753,"unit":"ns"},"median_abs_dev":{"estimate":56625.418070040316,"lower_bound":7320.5375511228285,"upper_bound":95273.2914665518,"unit":"ns"},"slope":{"estimate":441103.8625748681,"lower_bound":426893.6484106108,"upper_bound":457722.3891483822,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000","iteration_count":[196,392,588,784,980,1176,1372,1568,1764,1960],"measured_values":[90264916.0,159893500.0,245573042.0,378181625.0,433173042.0,569048875.0,717647000.0,707154833.0,768480291.0,913609167.0],"unit":"ns","throughput":[],"typical":{"estimate":463461.9395043732,"lower_bound":444590.9391689512,"upper_bound":487262.37072264764,"unit":"ns"},"mean":{"estimate":457017.25015731284,"lower_bound":437727.18502667954,"upper_bound":477745.9001763392,"unit":"ns"},"median":{"estimate":455763.4441964286,"lower_bound":429827.26802721084,"upper_bound":482374.5216836735,"unit":"ns"},"median_abs_dev":{"estimate":34639.538591275275,"lower_bound":9439.543079557448,"upper_bound":59209.87874792167,"unit":"ns"},"slope":{"estimate":463461.9395043732,"lower_bound":444590.9391689512,"upper_bound":487262.37072264764,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000","iteration_count":[217,434,651,868,1085,1302,1519,1736,1953,2170],"measured_values":[91007500.0,172267500.0,250707584.0,361935208.0,388329000.0,433286542.0,564109083.0,799206750.0,820866167.0,958154750.0],"unit":"ns","throughput":[],"typical":{"estimate":412813.82392722485,"lower_bound":373116.48300301825,"upper_bound":436740.66501507227,"unit":"ns"},"mean":{"estimate":400269.6556817351,"lower_bound":376961.0252969333,"upper_bound":422818.06144562404,"unit":"ns"},"median":{"estimate":406952.8847926267,"lower_bound":371368.71823568136,"upper_bound":430467.6843317972,"unit":"ns"},"median_abs_dev":{"estimate":41834.87304115348,"lower_bound":3154.459565502484,"upper_bound":64339.658298065304,"unit":"ns"},"slope":{"estimate":412813.82392722485,"lower_bound":373116.48300301825,"upper_bound":436740.66501507227,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000","iteration_count":[216,432,648,864,1080,1296,1512,1728,1944,2160],"measured_values":[101341250.0,183687042.0,310530667.0,353972916.0,424303208.0,526833208.0,629080166.0,698574708.0,897699000.0,886788833.0],"unit":"ns","throughput":[],"typical":{"estimate":421333.001960077,"lower_bound":406472.9634491597,"upper_bound":442357.0208165187,"unit":"ns"},"mean":{"estimate":427531.5041093474,"lower_bound":410590.7641512345,"upper_bound":446518.1243518518,"unit":"ns"},"median":{"estimate":413304.3482473545,"lower_bound":406507.10493827163,"upper_bound":461779.3209876543,"unit":"ns"},"median_abs_dev":{"estimate":15518.162859914228,"lower_bound":3320.0366850391138,"upper_bound":47929.70747518869,"unit":"ns"},"slope":{"estimate":421333.001960077,"lower_bound":406472.9634491597,"upper_bound":442357.0208165187,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000","EXACT/exact_decrypt/eql_cast/10000","EXACT/exact/eql_hash/10000","EXACT/exact_decrypt/eql_hash/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_100000.json b/results/query/exact_rows_100000.json index 0f96881..f07550a 100644 --- a/results/query/exact_rows_100000.json +++ b/results/query/exact_rows_100000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[222,444,666,888,1110,1332,1554,1776,1998,2220],"measured_values":[90947000.0,188956709.0,309675292.0,355694167.0,461939458.0,573587916.0,668081959.0,735789541.0,868031625.0,964880292.0],"unit":"ns","throughput":[],"typical":{"estimate":428172.0525798526,"lower_bound":419428.8476419559,"upper_bound":433982.1766816817,"unit":"ns"},"mean":{"estimate":426085.5095490132,"lower_bound":416224.96153903904,"upper_bound":437163.94294937793,"unit":"ns"},"median":{"estimate":427744.671975547,"lower_bound":412916.4225225225,"upper_bound":434450.2627627628,"unit":"ns"},"median_abs_dev":{"estimate":13691.134905041863,"lower_bound":2972.0225785873904,"upper_bound":28561.241959242936,"unit":"ns"},"slope":{"estimate":428172.0525798526,"lower_bound":419428.8476419559,"upper_bound":433982.1766816817,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[212,424,636,848,1060,1272,1484,1696,1908,2120],"measured_values":[87278208.0,190636917.0,264577375.0,370877916.0,429554041.0,559041375.0,609721208.0,715908500.0,891481500.0,889522417.0],"unit":"ns","throughput":[],"typical":{"estimate":430797.45665278117,"lower_bound":416597.1790344682,"upper_bound":449499.23112639465,"unit":"ns"},"mean":{"estimate":427919.9568149146,"lower_bound":417023.91312674084,"upper_bound":440261.48816711584,"unit":"ns"},"median":{"estimate":420850.9533018868,"lower_bound":411689.6603773585,"upper_bound":443485.7016509434,"unit":"ns"},"median_abs_dev":{"estimate":18976.462434798555,"lower_bound":3809.402929067703,"upper_bound":33620.67833094386,"unit":"ns"},"slope":{"estimate":430797.45665278117,"lower_bound":416597.1790344682,"upper_bound":449499.23112639465,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[244,488,732,976,1220,1464,1708,1952,2196,2440],"measured_values":[97876542.0,183109708.0,278141042.0,385569792.0,474638125.0,571743958.0,674867209.0,772673000.0,851022667.0,962697333.0],"unit":"ns","throughput":[],"typical":{"estimate":392123.5301362572,"lower_bound":388803.12536023057,"upper_bound":394453.60120659333,"unit":"ns"},"mean":{"estimate":390400.55042219616,"lower_bound":385562.2732541472,"upper_bound":394749.0447619047,"unit":"ns"},"median":{"estimate":392541.7888661202,"lower_bound":384510.8722677596,"upper_bound":395443.7971311476,"unit":"ns"},"median_abs_dev":{"estimate":5032.637000816765,"lower_bound":477.0486329651529,"upper_bound":12644.775498324576,"unit":"ns"},"slope":{"estimate":392123.5301362572,"lower_bound":388803.12536023057,"upper_bound":394453.60120659333,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[227,454,681,908,1135,1362,1589,1816,2043,2270],"measured_values":[86533792.0,177242084.0,267043917.0,359093083.0,440976625.0,575338250.0,795111125.0,762941334.0,844392584.0,953869166.0],"unit":"ns","throughput":[],"typical":{"estimate":425001.0656330454,"lower_bound":407570.2157588871,"upper_bound":450663.2729270569,"unit":"ns"},"mean":{"estimate":412418.9701440459,"lower_bound":395543.89932697016,"upper_bound":435188.5112862737,"unit":"ns"},"median":{"estimate":404393.54399167886,"lower_bound":390330.3171806167,"upper_bound":421271.7512848752,"unit":"ns"},"median_abs_dev":{"estimate":23381.693541925757,"lower_bound":1767.6622572961728,"upper_bound":42841.59532775761,"unit":"ns"},"slope":{"estimate":425001.0656330454,"lower_bound":407570.2157588871,"upper_bound":450663.2729270569,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_100000","iteration_count":[221,442,663,884,1105,1326,1547,1768,1989,2210],"measured_values":[104694792.0,187655375.0,291082667.0,367697792.0,478614583.0,554792584.0,607046208.0,732623125.0,809741959.0,934031709.0],"unit":"ns","throughput":[],"typical":{"estimate":414693.26328965154,"lower_bound":406301.34832245554,"upper_bound":423127.8083396735,"unit":"ns"},"mean":{"estimate":424133.9853363141,"lower_bound":412182.7918981182,"upper_bound":437818.62830388575,"unit":"ns"},"median":{"estimate":420517.1981146305,"lower_bound":411528.90673705377,"upper_bound":433135.3692307692,"unit":"ns"},"median_abs_dev":{"estimate":13903.654754371184,"lower_bound":2977.074304103391,"upper_bound":32420.076238003232,"unit":"ns"},"slope":{"estimate":414693.26328965154,"lower_bound":406301.34832245554,"upper_bound":423127.8083396735,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_100000","iteration_count":[215,430,645,860,1075,1290,1505,1720,1935,2150],"measured_values":[88791917.0,174156083.0,275185125.0,360527417.0,436277583.0,544592667.0,531539584.0,722045666.0,797484292.0,899944750.0],"unit":"ns","throughput":[],"typical":{"estimate":408670.0282331622,"lower_bound":388325.4759514902,"upper_bound":419216.31342954317,"unit":"ns"},"mean":{"estimate":409555.77868069394,"lower_bound":395550.86958471755,"upper_bound":418975.8229534883,"unit":"ns"},"median":{"estimate":415782.3069767442,"lower_bound":405839.61209302326,"upper_bound":420691.39244186046,"unit":"ns"},"median_abs_dev":{"estimate":7705.247044483542,"lower_bound":900.7079292417762,"upper_bound":17333.80121470535,"unit":"ns"},"slope":{"estimate":408670.0282331622,"lower_bound":388325.4759514902,"upper_bound":419216.31342954317,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_100000","iteration_count":[226,452,678,904,1130,1356,1582,1808,2034,2260],"measured_values":[88961083.0,180892958.0,274716458.0,361955416.0,424547209.0,444089542.0,602613125.0,732092958.0,831507750.0,1005565500.0],"unit":"ns","throughput":[],"typical":{"estimate":403680.6300770026,"lower_bound":371706.24840612104,"upper_bound":426012.67983565107,"unit":"ns"},"mean":{"estimate":394220.5500747998,"lower_bound":375567.6366529709,"upper_bound":410750.66445427726,"unit":"ns"},"median":{"estimate":400299.4092920354,"lower_bound":380918.53666245256,"upper_bound":406861.4375,"unit":"ns"},"median_abs_dev":{"estimate":11246.330982196123,"lower_bound":3078.898199542165,"upper_bound":46191.79998964398,"unit":"ns"},"slope":{"estimate":403680.6300770026,"lower_bound":371706.24840612104,"upper_bound":426012.67983565107,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_100000","iteration_count":[219,438,657,876,1095,1314,1533,1752,1971,2190],"measured_values":[91820708.0,176940416.0,273376000.0,367707917.0,451000125.0,549027666.0,608749792.0,704326000.0,787731916.0,884615792.0],"unit":"ns","throughput":[],"typical":{"estimate":404642.46619225526,"lower_bound":401202.2422076633,"upper_bound":410905.64389907155,"unit":"ns"},"mean":{"estimate":409150.7845788939,"lower_bound":404070.0952609716,"upper_bound":414272.05217332573,"unit":"ns"},"median":{"estimate":407922.90639269404,"lower_bound":401797.5973617453,"upper_bound":417829.27397260274,"unit":"ns"},"median_abs_dev":{"estimate":12184.280387034332,"lower_bound":1453.6858892603773,"upper_bound":14054.729284839474,"unit":"ns"},"slope":{"estimate":404642.46619225526,"lower_bound":401202.2422076633,"upper_bound":410905.64389907155,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/100000","EXACT/exact_decrypt/eql_cast/100000","EXACT/exact/eql_hash/100000","EXACT/exact_decrypt/eql_hash/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_1000000.json b/results/query/exact_rows_1000000.json index 6de3a01..0575507 100644 --- a/results/query/exact_rows_1000000.json +++ b/results/query/exact_rows_1000000.json @@ -1,5 +1,5 @@ -{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[87070750.0,180223625.0,273658875.0,368119959.0,467538250.0,474206208.0,742624292.0,715602042.0,851097875.0,903270625.0],"unit":"ns","throughput":[],"typical":{"estimate":419594.76344746165,"lower_bound":398137.16494295176,"upper_bound":443856.7197556681,"unit":"ns"},"mean":{"estimate":415185.0582395382,"lower_bound":397811.0790909091,"upper_bound":433955.0126743325,"unit":"ns"},"median":{"estimate":412606.10795454547,"lower_bound":402687.64204545453,"upper_bound":425034.7727272727,"unit":"ns"},"median_abs_dev":{"estimate":13671.575794440074,"lower_bound":3567.6091449956434,"upper_bound":48768.38070964271,"unit":"ns"},"slope":{"estimate":419594.76344746165,"lower_bound":398137.16494295176,"upper_bound":443856.7197556681,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[228,456,684,912,1140,1368,1596,1824,2052,2280],"measured_values":[81331083.0,193577834.0,279381459.0,375507625.0,477066750.0,548345208.0,646157500.0,722498042.0,854797500.0,949357250.0],"unit":"ns","throughput":[],"typical":{"estimate":409818.904784689,"lower_bound":401989.0460432997,"upper_bound":415439.5970848173,"unit":"ns"},"mean":{"estimate":405465.7770989975,"lower_bound":392780.95477600256,"upper_bound":414814.6458666196,"unit":"ns"},"median":{"estimate":410096.6211622807,"lower_bound":400483.48582393484,"upper_bound":417432.1820175439,"unit":"ns"},"median_abs_dev":{"estimate":11011.526045624807,"lower_bound":2437.6845366566636,"upper_bound":21057.672237006835,"unit":"ns"},"slope":{"estimate":409818.904784689,"lower_bound":401989.0460432997,"upper_bound":415439.5970848173,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[236,472,708,944,1180,1416,1652,1888,2124,2360],"measured_values":[113229000.0,258234334.0,283526000.0,371137041.0,467789208.0,546185834.0,650216667.0,802012334.0,850017125.0,1036127250.0],"unit":"ns","throughput":[],"typical":{"estimate":413382.42176975566,"lower_bound":396131.401970339,"upper_bound":428902.91661192133,"unit":"ns"},"mean":{"estimate":426028.22758810874,"lower_bound":399908.181658974,"upper_bound":459138.30105091474,"unit":"ns"},"median":{"estimate":400328.4192561206,"lower_bound":393593.6240920097,"upper_bound":452289.2833686441,"unit":"ns"},"median_abs_dev":{"estimate":16144.575483750878,"lower_bound":2429.8976465005576,"upper_bound":66879.48731527882,"unit":"ns"},"slope":{"estimate":413382.42176975566,"lower_bound":396131.401970339,"upper_bound":428902.91661192133,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[184,368,552,736,920,1104,1288,1472,1656,1840],"measured_values":[85825708.0,487278958.0,239521250.0,777487958.0,521200833.0,751692375.0,1042108834.0,781810958.0,699227833.0,768085167.0],"unit":"ns","throughput":[],"typical":{"estimate":557992.7906549972,"lower_bound":465312.33819480875,"upper_bound":730315.819930149,"unit":"ns"},"mean":{"estimate":670814.8808329019,"lower_bound":507932.84667934774,"upper_bound":866795.447775459,"unit":"ns"},"median":{"estimate":548822.1096467392,"lower_bound":433915.30797101447,"upper_bound":868625.1413043478,"unit":"ns"},"median_abs_dev":{"estimate":191231.37770158588,"lower_bound":17311.250021287015,"upper_bound":470080.9154130005,"unit":"ns"},"slope":{"estimate":557992.7906549972,"lower_bound":465312.33819480875,"upper_bound":730315.819930149,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_1000000","iteration_count":[208,416,624,832,1040,1248,1456,1664,1872,2080],"measured_values":[108860042.0,176729166.0,283768000.0,355951833.0,574394708.0,579188584.0,603499459.0,683523875.0,769213458.0,841875041.0],"unit":"ns","throughput":[],"typical":{"estimate":426060.10857892106,"lower_bound":410594.23054534313,"upper_bound":461213.8914757995,"unit":"ns"},"mean":{"estimate":448808.96526614006,"lower_bound":421473.8367462225,"upper_bound":481385.084757326,"unit":"ns"},"median":{"estimate":426328.2241586539,"lower_bound":410904.625,"upper_bound":489060.9983974359,"unit":"ns"},"median_abs_dev":{"estimate":27529.859954071824,"lower_bound":2856.149297009555,"upper_bound":80708.4429253118,"unit":"ns"},"slope":{"estimate":426060.10857892106,"lower_bound":410594.23054534313,"upper_bound":461213.8914757995,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_1000000","iteration_count":[217,434,651,868,1085,1302,1519,1736,1953,2170],"measured_values":[91823000.0,184374917.0,260460333.0,348898583.0,447062000.0,548887042.0,625513500.0,729196250.0,827173542.0,1048638709.0],"unit":"ns","throughput":[],"typical":{"estimate":434607.6232569274,"lower_bound":413225.6892915723,"upper_bound":459419.2797570108,"unit":"ns"},"mean":{"estimate":422225.54554312053,"lower_bound":411120.9682495336,"upper_bound":437667.24283410143,"unit":"ns"},"median":{"estimate":420808.0758448541,"lower_bound":406997.80126728106,"upper_bound":423987.2315668203,"unit":"ns"},"median_abs_dev":{"estimate":9479.95773976164,"lower_bound":1245.037240799417,"upper_bound":23943.49167411159,"unit":"ns"},"slope":{"estimate":434607.6232569274,"lower_bound":413225.6892915723,"upper_bound":459419.2797570108,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_1000000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[80721167.0,173896042.0,252362833.0,358631000.0,417997875.0,486784125.0,598907708.0,693295625.0,845707375.0,774266417.0],"unit":"ns","throughput":[],"typical":{"estimate":386346.74587957497,"lower_bound":364207.1601744186,"upper_bound":410345.14301816165,"unit":"ns"},"mean":{"estimate":386269.3044406565,"lower_bound":374006.50714772724,"upper_bound":399155.60619318177,"unit":"ns"},"median":{"estimate":385634.5189393939,"lower_bound":368775.8522727273,"upper_bound":400726.59801136365,"unit":"ns"},"median_abs_dev":{"estimate":19601.769304499023,"lower_bound":4682.916690043449,"upper_bound":37475.60922349308,"unit":"ns"},"slope":{"estimate":386346.74587957497,"lower_bound":364207.1601744186,"upper_bound":410345.14301816165,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_1000000","iteration_count":[233,466,699,932,1165,1398,1631,1864,2097,2330],"measured_values":[92472750.0,186507875.0,273935416.0,386471000.0,462517958.0,496764875.0,525899375.0,728224708.0,844217166.0,929606041.0],"unit":"ns","throughput":[],"typical":{"estimate":384900.1279861769,"lower_bound":359152.29440608673,"upper_bound":400219.5058027165,"unit":"ns"},"mean":{"estimate":387069.9838381361,"lower_bound":369377.23862865317,"upper_bound":400748.9168587267,"unit":"ns"},"median":{"estimate":396944.939055794,"lower_bound":373617.9209585121,"upper_bound":400777.92153075826,"unit":"ns"},"median_abs_dev":{"estimate":7922.3715872468165,"lower_bound":1552.129776435612,"upper_bound":33799.0503841959,"unit":"ns"},"slope":{"estimate":384900.1279861769,"lower_bound":359152.29440608673,"upper_bound":400219.5058027165,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/1000000","EXACT/exact_decrypt/eql_cast/1000000","EXACT/exact/eql_hash/1000000","EXACT/exact_decrypt/eql_hash/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/exact_rows_10000000.json b/results/query/exact_rows_10000000.json new file mode 100644 index 0000000..7036ccb --- /dev/null +++ b/results/query/exact_rows_10000000.json @@ -0,0 +1,5 @@ +{"reason":"benchmark-complete","id":"EXACT/exact/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_cast_10000000","iteration_count":[224,448,672,896,1120,1344,1568,1792,2016,2240],"measured_values":[96654125.0,178946250.0,266622584.0,352151958.0,470580167.0,548630459.0,639825958.0,805467750.0,866075834.0,1026258334.0],"unit":"ns","throughput":[],"typical":{"estimate":432368.9163961039,"lower_bound":410157.84346198157,"upper_bound":446327.12933920877,"unit":"ns"},"mean":{"estimate":419436.4000258645,"lower_bound":406735.0950063776,"upper_bound":433102.95513358316,"unit":"ns"},"median":{"estimate":414184.0250744048,"lower_bound":399433.59375,"upper_bound":439540.4396701389,"unit":"ns"},"median_abs_dev":{"estimate":24258.810376299192,"lower_bound":4749.40146099375,"upper_bound":37461.7359246087,"unit":"ns"},"slope":{"estimate":432368.9163961039,"lower_bound":410157.84346198157,"upper_bound":446327.12933920877,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_cast/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_cast_10000000","iteration_count":[214,428,642,856,1070,1284,1498,1712,1926,2140],"measured_values":[88835958.0,182720625.0,263516375.0,361714916.0,444229625.0,534401583.0,624336125.0,716998666.0,823793458.0,932038292.0],"unit":"ns","throughput":[],"typical":{"estimate":424324.67368612695,"lower_bound":416917.81146165566,"upper_bound":430160.5462172595,"unit":"ns"},"mean":{"estimate":420527.47222481837,"lower_bound":416333.62118899275,"upper_bound":425190.63780373835,"unit":"ns"},"median":{"estimate":417793.710864486,"lower_bound":415167.8738317757,"upper_bound":426917.3481308411,"unit":"ns"},"median_abs_dev":{"estimate":5517.388417467328,"lower_bound":834.6189167246205,"upper_bound":12397.708647817217,"unit":"ns"},"slope":{"estimate":424324.67368612695,"lower_bound":416917.81146165566,"upper_bound":430160.5462172595,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_eql_hash_10000000","iteration_count":[234,468,702,936,1170,1404,1638,1872,2106,2340],"measured_values":[95094458.0,189608041.0,264719125.0,390219041.0,471933000.0,552052500.0,637328417.0,796633666.0,888147416.0,1059527416.0],"unit":"ns","throughput":[],"typical":{"estimate":420960.0758130758,"lower_bound":398797.60028054455,"upper_bound":437594.6893306028,"unit":"ns"},"mean":{"estimate":409124.02131189796,"lower_bound":397063.83103467134,"upper_bound":422221.46082443016,"unit":"ns"},"median":{"estimate":405765.9797008547,"lower_bound":393199.7863247863,"upper_bound":421722.4197530864,"unit":"ns"},"median_abs_dev":{"estimate":21143.827785020876,"lower_bound":2644.7334286876517,"upper_bound":35318.57608848276,"unit":"ns"},"slope":{"estimate":420960.0758130758,"lower_bound":398797.60028054455,"upper_bound":437594.6893306028,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"EXACT/exact_decrypt/eql_hash/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT/exact_decrypt_eql_hash_10000000","iteration_count":[220,440,660,880,1100,1320,1540,1760,1980,2200],"measured_values":[94662458.0,175865375.0,261389125.0,361282959.0,459140333.0,527607000.0,612758916.0,713856000.0,779551292.0,962562834.0],"unit":"ns","throughput":[],"typical":{"estimate":410611.4104368359,"lower_bound":397646.0474657768,"upper_bound":425793.1,"unit":"ns"},"mean":{"estimate":408841.01900252525,"lower_bound":400639.50991161616,"upper_bound":418190.0660733586,"unit":"ns"},"median":{"estimate":402651.13636363635,"lower_bound":397869.0814393939,"upper_bound":420416.35852272727,"unit":"ns"},"median_abs_dev":{"estimate":10752.32521444896,"lower_bound":1345.542029975465,"upper_bound":24180.227223192476,"unit":"ns"},"slope":{"estimate":410611.4104368359,"lower_bound":397646.0474657768,"upper_bound":425793.1,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"EXACT","benchmarks":["EXACT/exact/eql_cast/10000000","EXACT/exact_decrypt/eql_cast/10000000","EXACT/exact/eql_hash/10000000","EXACT/exact_decrypt/eql_hash/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/EXACT"} diff --git a/results/query/group_by_rows_10000.json b/results/query/group_by_rows_10000.json index 7f05566..9960633 100644 --- a/results/query/group_by_rows_10000.json +++ b/results/query/group_by_rows_10000.json @@ -1,2 +1,2 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_10000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[104910583.0,197574334.0,308844584.0,408725375.0,540370291.0,572927541.0,713591375.0,774349875.0,886934167.0,887293042.0],"unit":"ns","throughput":[],"typical":{"estimate":8061945.400865801,"lower_bound":7717893.974600119,"upper_bound":8472337.019085819,"unit":"ns"},"mean":{"estimate":8320018.1205787035,"lower_bound":8045513.359930557,"upper_bound":8576440.979791667,"unit":"ns"},"median":{"estimate":8363699.666666666,"lower_bound":8066144.53125,"upper_bound":8628830.28125,"unit":"ns"},"median_abs_dev":{"estimate":380191.77776795486,"lower_bound":62180.84005440306,"upper_bound":773225.4615679896,"unit":"ns"},"slope":{"estimate":8061945.400865801,"lower_bound":7717893.974600119,"upper_bound":8472337.019085819,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_10000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[87169500.0,219019791.0,315418375.0,402366084.0,530661625.0,658165125.0,679004708.0,719994625.0,849603250.0,948377750.0],"unit":"ns","throughput":[],"typical":{"estimate":9695175.097142857,"lower_bound":9388309.56969697,"upper_bound":10258688.41927711,"unit":"ns"},"mean":{"estimate":9944750.24140873,"lower_bound":9474180.57640873,"upper_bound":10408340.803888889,"unit":"ns"},"median":{"estimate":9879609.67857143,"lower_bound":9241855.15625,"upper_bound":10613232.5,"unit":"ns"},"median_abs_dev":{"estimate":1014067.9710466943,"lower_bound":192761.08513113906,"upper_bound":1338048.4724598909,"unit":"ns"},"slope":{"estimate":9695175.097142857,"lower_bound":9388309.56969697,"upper_bound":10258688.41927711,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/hmac_extractor/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_100000.json b/results/query/group_by_rows_100000.json index 9691876..c4d307b 100644 --- a/results/query/group_by_rows_100000.json +++ b/results/query/group_by_rows_100000.json @@ -1,2 +1,2 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_100000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[90049458.0,179946959.0,268270125.0,358392250.0,447349959.0,545643916.0,630043875.0,723980167.0,807523833.0,899432500.0],"unit":"ns","throughput":[],"typical":{"estimate":90034088.31168832,"lower_bound":89761686.34443088,"upper_bound":90356853.7813702,"unit":"ns"},"mean":{"estimate":89962692.8532143,"lower_bound":89704262.04766667,"upper_bound":90249642.43833333,"unit":"ns"},"median":{"estimate":89958364.75,"lower_bound":89597431.06666666,"upper_bound":90251894.36607143,"unit":"ns"},"median_abs_dev":{"estimate":440181.46118522057,"lower_bound":48612.0174369547,"upper_bound":761707.2897744946,"unit":"ns"},"slope":{"estimate":90034088.31168832,"lower_bound":89761686.34443088,"upper_bound":90356853.7813702,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_100000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[103863333.0,206231125.0,343631625.0,359709375.0,492998292.0,576530667.0,609772708.0,714324375.0,813800375.0,886064166.0],"unit":"ns","throughput":[],"typical":{"estimate":91111902.36623377,"lower_bound":89245310.38809524,"upper_bound":95071526.7756172,"unit":"ns"},"mean":{"estimate":96156783.13710317,"lower_bound":91334633.85710318,"upper_bound":101586440.94960317,"unit":"ns"},"median":{"estimate":93255354.19444445,"lower_bound":89266880.175,"upper_bound":103115562.5,"unit":"ns"},"median_abs_dev":{"estimate":7407990.014821895,"lower_bound":944115.0301136076,"upper_bound":15838328.82927512,"unit":"ns"},"slope":{"estimate":91111902.36623377,"lower_bound":89245310.38809524,"upper_bound":95071526.7756172,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/hmac_extractor/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_1000000.json b/results/query/group_by_rows_1000000.json index dc57743..a4a07ec 100644 --- a/results/query/group_by_rows_1000000.json +++ b/results/query/group_by_rows_1000000.json @@ -1,2 +1,2 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[964559250.0,880586834.0,866617541.0,867813792.0,869191083.0,865882958.0,861634250.0,907432125.0,869234792.0,875873417.0],"unit":"ns","throughput":[],"typical":{"estimate":882882604.2,"lower_bound":868225570.9,"upper_bound":903679608.5,"unit":"ns"},"mean":{"estimate":882882604.2,"lower_bound":868225570.9,"upper_bound":903679608.5,"unit":"ns"},"median":{"estimate":869212937.5,"lower_bound":866617541.0,"upper_bound":891652771.0,"unit":"ns"},"median_abs_dev":{"estimate":7405927.125218511,"lower_bound":1053387.2812986374,"upper_bound":28348083.931320906,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[938948125.0,911073500.0,936058750.0,950635000.0,980270667.0,930944042.0,910133041.0,935123375.0,895726375.0,942760792.0],"unit":"ns","throughput":[],"typical":{"estimate":933167366.7,"lower_bound":919473758.4,"upper_bound":947264791.7,"unit":"ns"},"mean":{"estimate":933167366.7,"lower_bound":919473758.4,"upper_bound":947264791.7,"unit":"ns"},"median":{"estimate":935591062.5,"lower_bound":911073500.0,"upper_bound":944791562.5,"unit":"ns"},"median_abs_dev":{"estimate":16466991.054752469,"lower_bound":2835287.1246635914,"upper_bound":42011354.63874936,"unit":"ns"},"slope":null,"change":null} {"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/hmac_extractor/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_10000000.json b/results/query/group_by_rows_10000000.json new file mode 100644 index 0000000..2059b57 --- /dev/null +++ b/results/query/group_by_rows_10000000.json @@ -0,0 +1,2 @@ +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[11407403875.0,11302651917.0,11717696792.0,12656201500.0,11666655875.0,11015182875.0,11191424209.0,11589390625.0,10718920792.0,11395754417.0],"unit":"ns","throughput":[],"typical":{"estimate":11466128287.7,"lower_bound":11185653455.09,"upper_bound":11794277590.2375,"unit":"ns"},"mean":{"estimate":11466128287.7,"lower_bound":11185653455.09,"upper_bound":11794277590.2375,"unit":"ns"},"median":{"estimate":11401579146.0,"lower_bound":11158917396.0,"upper_bound":11666655875.0,"unit":"ns"},"median_abs_dev":{"estimate":352289227.75141597,"lower_bound":77652625.08679032,"upper_bound":740392635.6554031,"unit":"ns"},"slope":null,"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/hmac_extractor/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/match_rows_10000.json b/results/query/match_rows_10000.json index e75a9b2..cd92fd2 100644 --- a/results/query/match_rows_10000.json +++ b/results/query/match_rows_10000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[146,292,438,584,730,876,1022,1168,1314,1460],"measured_values":[113029000.0,200526792.0,258130584.0,369387458.0,440171916.0,509010000.0,651644583.0,733772709.0,828514083.0,898601500.0],"unit":"ns","throughput":[],"typical":{"estimate":620801.9791496175,"lower_bound":607809.0934560942,"upper_bound":631096.9328653911,"unit":"ns"},"mean":{"estimate":637865.1465370189,"lower_bound":609412.4946819961,"upper_bound":674316.6409386009,"unit":"ns"},"median":{"estimate":629379.1402682648,"lower_bound":602409.8561643836,"upper_bound":659624.1797945206,"unit":"ns"},"median_abs_dev":{"estimate":29876.29734392182,"lower_bound":3407.2554927625374,"upper_bound":73246.44593756096,"unit":"ns"},"slope":{"estimate":620801.9791496175,"lower_bound":607809.0934560942,"upper_bound":631096.9328653911,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[100738875.0,197097000.0,306535416.0,408220000.0,528958500.0,618546625.0,716418000.0,820351917.0,909863292.0,1056248500.0],"unit":"ns","throughput":[],"typical":{"estimate":25800316.452597402,"lower_bound":25434284.69148936,"upper_bound":26167857.382665094,"unit":"ns"},"mean":{"estimate":25600346.017410714,"lower_bound":25288191.009445686,"upper_bound":25919185.184148062,"unit":"ns"},"median":{"estimate":25565487.57142857,"lower_bound":25273980.333333332,"upper_bound":26021104.953125,"unit":"ns"},"median_abs_dev":{"estimate":369757.2520229984,"lower_bound":53823.67404443798,"upper_bound":936414.7765003145,"unit":"ns"},"slope":{"estimate":25800316.452597402,"lower_bound":25434284.69148936,"upper_bound":26167857.382665094,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[98,196,294,392,490,588,686,784,882,980],"measured_values":[96178667.0,222633333.0,272075291.0,355344292.0,440302416.0,557772667.0,711558208.0,771266792.0,883149750.0,848342917.0],"unit":"ns","throughput":[],"typical":{"estimate":951762.9252054068,"lower_bound":899084.4153893318,"upper_bound":1001052.028002982,"unit":"ns"},"mean":{"estimate":968436.0487803693,"lower_bound":924914.4229348883,"upper_bound":1017609.2469144801,"unit":"ns"},"median":{"estimate":965003.9702380953,"lower_bound":906490.5408163265,"upper_bound":1010507.7631195335,"unit":"ns"},"median_abs_dev":{"estimate":72715.03476976443,"lower_bound":14743.42043110911,"upper_bound":127207.6894762039,"unit":"ns"},"slope":{"estimate":951762.9252054068,"lower_bound":899084.4153893318,"upper_bound":1001052.028002982,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[116466875.0,210180375.0,320523542.0,453299250.0,536388500.0,689362250.0,804064417.0,890482000.0,956254500.0,1111340708.0],"unit":"ns","throughput":[],"typical":{"estimate":27663451.785714287,"lower_bound":27055739.454113923,"upper_bound":28260881.984386537,"unit":"ns"},"mean":{"estimate":27686390.752142858,"lower_bound":27080317.92570833,"upper_bound":28290660.335895833,"unit":"ns"},"median":{"estimate":27805540.1,"lower_bound":26691025.0,"upper_bound":28716586.32142857,"unit":"ns"},"median_abs_dev":{"estimate":1411436.7193169883,"lower_bound":190365.8366203308,"upper_bound":1601802.555937319,"unit":"ns"},"slope":{"estimate":27663451.785714287,"lower_bound":27055739.454113923,"upper_bound":28260881.984386537,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[102,204,306,408,510,612,714,816,918,1020],"measured_values":[91222500.0,191019167.0,314964042.0,374062708.0,485122000.0,522542000.0,599066292.0,738662208.0,884972958.0,924283541.0],"unit":"ns","throughput":[],"typical":{"estimate":911271.1874713522,"lower_bound":878003.974809792,"upper_bound":943943.0248650184,"unit":"ns"},"mean":{"estimate":919630.2602521008,"lower_bound":888560.613356676,"upper_bound":952974.6353250465,"unit":"ns"},"median":{"estimate":911490.3485294117,"lower_bound":879525.045751634,"upper_bound":951219.6078431372,"unit":"ns"},"median_abs_dev":{"estimate":47893.44732736842,"lower_bound":8596.906820903881,"upper_bound":91973.80159655039,"unit":"ns"},"slope":{"estimate":911271.1874713522,"lower_bound":878003.974809792,"upper_bound":943943.0248650184,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[108145250.0,237320417.0,322656458.0,436715125.0,550415500.0,638819917.0,751131959.0,909455958.0,1027646917.0,1082283834.0],"unit":"ns","throughput":[],"typical":{"estimate":27589509.694805194,"lower_bound":26979821.90703744,"upper_bound":28196984.889465876,"unit":"ns"},"mean":{"estimate":27587185.327063493,"lower_bound":27064205.041946422,"upper_bound":28202573.9206002,"unit":"ns"},"median":{"estimate":27175895.58125,"lower_bound":26888038.166666668,"upper_bound":28420498.6875,"unit":"ns"},"median_abs_dev":{"estimate":514931.8838331324,"lower_bound":125322.4584300818,"upper_bound":1647131.5092875457,"unit":"ns"},"slope":{"estimate":27589509.694805194,"lower_bound":26979821.90703744,"upper_bound":28196984.889465876,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000","iteration_count":[128,256,384,512,640,768,896,1024,1152,1280],"measured_values":[78096083.0,176251333.0,249009084.0,316523375.0,317025666.0,393898125.0,884112417.0,863176792.0,935364209.0,1041164042.0],"unit":"ns","throughput":[],"typical":{"estimate":777523.4605722403,"lower_bound":649675.4034410112,"upper_bound":854082.2346305491,"unit":"ns"},"mean":{"estimate":702855.5277833582,"lower_bound":612588.1129913196,"upper_bound":798384.9134585813,"unit":"ns"},"median":{"estimate":668471.462890625,"lower_bound":565548.9501953125,"upper_bound":827447.0920138889,"unit":"ns"},"median_abs_dev":{"estimate":213801.72444834918,"lower_bound":22978.80798319046,"upper_bound":258052.24129761508,"unit":"ns"},"slope":{"estimate":777523.4605722403,"lower_bound":649675.4034410112,"upper_bound":854082.2346305491,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[97462167.0,229794625.0,303988375.0,426685042.0,530404375.0,595331708.0,732078750.0,806359417.0,908020333.0,1033877625.0],"unit":"ns","throughput":[],"typical":{"estimate":25640360.172727272,"lower_bound":25295885.0441313,"upper_bound":26067160.984504133,"unit":"ns"},"mean":{"estimate":25882988.524355154,"lower_bound":25224321.50907738,"upper_bound":26680871.959821425,"unit":"ns"},"median":{"estimate":25589652.604166664,"lower_bound":25014137.430555552,"upper_bound":26520218.75,"unit":"ns"},"median_abs_dev":{"estimate":993476.7577622619,"lower_bound":116894.14836012578,"upper_bound":1861060.404143949,"unit":"ns"},"slope":{"estimate":25640360.172727272,"lower_bound":25295885.0441313,"upper_bound":26067160.984504133,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000","iteration_count":[86,172,258,344,430,516,602,688,774,860],"measured_values":[78221750.0,155244666.0,286196333.0,467335625.0,536205625.0,475755083.0,638628333.0,740234666.0,784313417.0,1183791375.0],"unit":"ns","throughput":[],"typical":{"estimate":1145913.9645424343,"lower_bound":1022957.2050790208,"upper_bound":1282364.1895594776,"unit":"ns"},"mean":{"estimate":1097555.152002584,"lower_bound":998431.1819759366,"upper_bound":1204285.3402131782,"unit":"ns"},"median":{"estimate":1068383.4433139535,"lower_bound":922005.9748062015,"upper_bound":1246989.8255813953,"unit":"ns"},"median_abs_dev":{"estimate":226248.96602135935,"lower_bound":19563.40516256372,"upper_bound":292187.30534199876,"unit":"ns"},"slope":{"estimate":1145913.9645424343,"lower_bound":1022957.2050790208,"upper_bound":1282364.1895594776,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118569750.0,216823958.0,328995375.0,461319333.0,554299667.0,634342625.0,735535583.0,871040875.0,987755083.0,1110083333.0],"unit":"ns","throughput":[],"typical":{"estimate":27318013.224675324,"lower_bound":26835560.68504902,"upper_bound":27699153.419767417,"unit":"ns"},"mean":{"estimate":27581897.76983135,"lower_bound":27024155.936555058,"upper_bound":28211722.17949752,"unit":"ns"},"median":{"estimate":27426961.222222224,"lower_bound":26825485.026041664,"upper_bound":28273720.83125,"unit":"ns"},"median_abs_dev":{"estimate":481169.35210503585,"lower_bound":161317.14465583954,"upper_bound":1780243.4857631112,"unit":"ns"},"slope":{"estimate":27318013.224675324,"lower_bound":26835560.68504902,"upper_bound":27699153.419767417,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000","iteration_count":[79,158,237,316,395,474,553,632,711,790],"measured_values":[111933291.0,228747166.0,255370500.0,368436958.0,485911708.0,624771708.0,730656250.0,628139417.0,795240750.0,987279875.0],"unit":"ns","throughput":[],"typical":{"estimate":1188793.369357225,"lower_bound":1097404.4109719894,"upper_bound":1277316.3258478818,"unit":"ns"},"mean":{"estimate":1233969.032081073,"lower_bound":1146939.1227526371,"upper_bound":1319282.2751312538,"unit":"ns"},"median":{"estimate":1239938.7917721518,"lower_bound":1118482.0675105485,"upper_bound":1367480.4367088608,"unit":"ns"},"median_abs_dev":{"estimate":150318.56821738798,"lower_bound":47603.67746790384,"upper_bound":251570.85715777508,"unit":"ns"},"slope":{"estimate":1188793.369357225,"lower_bound":1097404.4109719894,"upper_bound":1277316.3258478818,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[117003333.0,227364666.0,337947000.0,471058458.0,558344083.0,650044666.0,790789875.0,874748583.0,982759334.0,1152432500.0],"unit":"ns","throughput":[],"typical":{"estimate":27963943.313636363,"lower_bound":27427181.8731454,"upper_bound":28549536.348312166,"unit":"ns"},"mean":{"estimate":28196529.033501983,"lower_bound":27722835.645238094,"upper_bound":28673805.919877235,"unit":"ns"},"median":{"estimate":28202372.76785714,"lower_bound":27335893.21875,"upper_bound":28835708.25,"unit":"ns"},"median_abs_dev":{"estimate":1093357.6437796466,"lower_bound":185843.0186850037,"upper_bound":1446990.0432524588,"unit":"ns"},"slope":{"estimate":27963943.313636363,"lower_bound":27427181.8731454,"upper_bound":28549536.348312166,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000","MATCH/match_decrypt/eql_cast_firstname/10000","MATCH/match/eql_cast_lastname/10000","MATCH/match_decrypt/eql_cast_lastname/10000","MATCH/match/eql_bloom/10000","MATCH/match_decrypt/eql_bloom/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_100000.json b/results/query/match_rows_100000.json index de15a1b..aba54ca 100644 --- a/results/query/match_rows_100000.json +++ b/results/query/match_rows_100000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[29,58,87,116,145,174,203,232,261,290],"measured_values":[208269541.0,94639458.0,156940333.0,176080208.0,151684416.0,185592667.0,516279750.0,377654458.0,465352292.0,469610375.0],"unit":"ns","throughput":[],"typical":{"estimate":1698534.4077026423,"lower_bound":1421402.672168782,"upper_bound":2011349.9107915678,"unit":"ns"},"mean":{"estimate":2182136.7781800767,"lower_bound":1438090.2697509578,"upper_bound":3391701.977162354,"unit":"ns"},"median":{"estimate":1629767.8663793104,"lower_bound":1342985.3218390804,"upper_bound":2163104.486590038,"unit":"ns"},"median_abs_dev":{"estimate":242653.51568887793,"lower_bound":12055.41020752551,"upper_bound":1092467.9531271157,"unit":"ns"},"slope":{"estimate":1698534.4077026423,"lower_bound":1421402.672168782,"upper_bound":2011349.9107915678,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[55204917.0,21711208.0,32000750.0,26974625.0,27554667.0,27051583.0,32857791.0,30929416.0,35755917.0,31435000.0],"unit":"ns","throughput":[],"typical":{"estimate":32147587.4,"lower_bound":27740133.2,"upper_bound":38131041.7,"unit":"ns"},"mean":{"estimate":32147587.4,"lower_bound":27740133.2,"upper_bound":38131041.7,"unit":"ns"},"median":{"estimate":31182208.0,"lower_bound":27051583.0,"upper_bound":33878333.5,"unit":"ns"},"median_abs_dev":{"estimate":5751128.353697062,"lower_bound":487034.09135341644,"upper_bound":9765143.985334039,"unit":"ns"},"slope":null,"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[31,62,93,124,155,186,217,248,279,310],"measured_values":[79416917.0,168479334.0,241975958.0,299570250.0,415893375.0,523271000.0,604072500.0,699315291.0,827693542.0,890108792.0],"unit":"ns","throughput":[],"typical":{"estimate":2826396.0586510263,"lower_bound":2718714.6808850975,"upper_bound":2888954.4997932175,"unit":"ns"},"mean":{"estimate":2723501.995531234,"lower_bound":2624468.069659978,"upper_bound":2815848.9979251153,"unit":"ns"},"median":{"estimate":2750576.426267281,"lower_bound":2601892.0215053763,"upper_bound":2842301.815053764,"unit":"ns"},"median_abs_dev":{"estimate":140836.28802054314,"lower_bound":26742.7544377213,"upper_bound":272691.0006023153,"unit":"ns"},"slope":{"estimate":2826396.0586510263,"lower_bound":2718714.6808850975,"upper_bound":2888954.4997932175,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107521209.0,213898541.0,387363458.0,435213917.0,649768542.0,705281125.0,847654167.0,1024833833.0,1072644875.0,1142838334.0],"unit":"ns","throughput":[],"typical":{"estimate":29956643.403246753,"lower_bound":28991282.109792843,"upper_bound":31182151.444272447,"unit":"ns"},"mean":{"estimate":29563998.820644844,"lower_bound":28268447.235347223,"upper_bound":30876298.706767112,"unit":"ns"},"median":{"estimate":29591202.256944448,"lower_bound":27200869.8125,"upper_bound":32026057.28125,"unit":"ns"},"median_abs_dev":{"estimate":3576911.4070815034,"lower_bound":343631.23049307615,"upper_bound":3837957.1236259732,"unit":"ns"},"slope":{"estimate":29956643.403246753,"lower_bound":28991282.109792843,"upper_bound":31182151.444272447,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[34,68,102,136,170,204,238,272,306,340],"measured_values":[91703375.0,194886916.0,270778375.0,356154834.0,445313458.0,533024958.0,660346208.0,710609000.0,799264667.0,938269417.0],"unit":"ns","throughput":[],"typical":{"estimate":2675822.791061879,"lower_bound":2616565.4729138166,"upper_bound":2734498.7757166754,"unit":"ns"},"mean":{"estimate":2682766.496844071,"lower_bound":2634820.1557329604,"upper_bound":2739091.493714402,"unit":"ns"},"median":{"estimate":2637090.4401960783,"lower_bound":2612867.4411764704,"upper_bound":2759615.932352941,"unit":"ns"},"median_abs_dev":{"estimate":36821.672224127506,"lower_bound":908.6545152403456,"upper_bound":155563.25722114087,"unit":"ns"},"slope":{"estimate":2675822.791061879,"lower_bound":2616565.4729138166,"upper_bound":2734498.7757166754,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103499750.0,256843667.0,334449334.0,442386917.0,557301916.0,677661625.0,798370500.0,922545583.0,1046583750.0,1271975875.0],"unit":"ns","throughput":[],"typical":{"estimate":29448397.888311688,"lower_bound":28308253.458285425,"upper_bound":30642285.92939815,"unit":"ns"},"mean":{"estimate":28781530.218244046,"lower_bound":27736746.70979167,"upper_bound":29943146.048469495,"unit":"ns"},"median":{"estimate":28374566.592261903,"lower_bound":27759980.072916664,"upper_bound":30314473.171875,"unit":"ns"},"median_abs_dev":{"estimate":894508.1863293037,"lower_bound":179558.69437782277,"upper_bound":3076554.000561498,"unit":"ns"},"slope":{"estimate":29448397.888311688,"lower_bound":28308253.458285425,"upper_bound":30642285.92939815,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_100000","iteration_count":[66,132,198,264,330,396,462,528,594,660],"measured_values":[97856417.0,187828750.0,335373958.0,389645750.0,461476708.0,502418292.0,527160250.0,648151833.0,644550541.0,778637166.0],"unit":"ns","throughput":[],"typical":{"estimate":1213017.5138134593,"lower_bound":1154037.2156360513,"upper_bound":1323339.446303727,"unit":"ns"},"mean":{"estimate":1337595.9122408608,"lower_bound":1230093.111003487,"upper_bound":1451965.567172393,"unit":"ns"},"median":{"estimate":1333573.6636363636,"lower_bound":1179753.2818181817,"upper_bound":1475930.871212121,"unit":"ns"},"median_abs_dev":{"estimate":216056.720954681,"lower_bound":44276.298223029546,"upper_bound":345102.359460077,"unit":"ns"},"slope":{"estimate":1213017.5138134593,"lower_bound":1154037.2156360513,"upper_bound":1323339.446303727,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[107472500.0,205546167.0,307837166.0,454273250.0,556861209.0,707144667.0,731780875.0,873516250.0,1041114041.0,1067379417.0],"unit":"ns","throughput":[],"typical":{"estimate":27558935.09285714,"lower_bound":26738984.947295345,"upper_bound":28519277.74841772,"unit":"ns"},"mean":{"estimate":27295072.670138888,"lower_bound":26531264.047916666,"upper_bound":28096233.872222222,"unit":"ns"},"median":{"estimate":27082753.90625,"lower_bound":26135031.25,"upper_bound":28392078.125,"unit":"ns"},"median_abs_dev":{"estimate":1673148.8187331706,"lower_bound":387038.4990911912,"upper_bound":2328426.3165246695,"unit":"ns"},"slope":{"estimate":27558935.09285714,"lower_bound":26738984.947295345,"upper_bound":28519277.74841772,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_100000","iteration_count":[34,68,102,136,170,204,238,272,306,340],"measured_values":[87303667.0,173226667.0,295621208.0,368612542.0,425737459.0,574685209.0,611939708.0,739244792.0,786945958.0,926281667.0],"unit":"ns","throughput":[],"typical":{"estimate":2667283.1112299464,"lower_bound":2594812.714215686,"upper_bound":2735281.8926606905,"unit":"ns"},"mean":{"estimate":2663032.5364612513,"lower_bound":2590390.8361344533,"upper_bound":2741885.533496732,"unit":"ns"},"median":{"estimate":2641052.577614379,"lower_bound":2559313.114495798,"upper_bound":2767448.0465686275,"unit":"ns"},"median_abs_dev":{"estimate":118655.75554030188,"lower_bound":3341.393771070818,"upper_bound":226516.6495564665,"unit":"ns"},"slope":{"estimate":2667283.1112299464,"lower_bound":2594812.714215686,"upper_bound":2735281.8926606905,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[94167916.0,167219459.0,244432833.0,325947042.0,423003583.0,563623750.0,610147208.0,739670125.0,767932917.0,933578125.0],"unit":"ns","throughput":[],"typical":{"estimate":29781837.987012986,"lower_bound":28542939.100274228,"upper_bound":30680036.17915696,"unit":"ns"},"mean":{"estimate":29252878.997182537,"lower_bound":28243600.10509921,"upper_bound":30276815.195238095,"unit":"ns"},"median":{"estimate":28748294.420634918,"lower_bound":27681246.183333334,"upper_bound":31119270.833333332,"unit":"ns"},"median_abs_dev":{"estimate":2353725.068596355,"lower_bound":244872.9080626409,"upper_bound":2711182.4182543913,"unit":"ns"},"slope":{"estimate":29781837.987012986,"lower_bound":28542939.100274228,"upper_bound":30680036.17915696,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_100000","iteration_count":[35,70,105,140,175,210,245,280,315,350],"measured_values":[116738000.0,207569667.0,310590875.0,429412583.0,539290459.0,623189333.0,666070709.0,849536083.0,875454542.0,988515917.0],"unit":"ns","throughput":[],"typical":{"estimate":2882368.998812616,"lower_bound":2807632.2574447435,"upper_bound":3006957.173958333,"unit":"ns"},"mean":{"estimate":2973138.6826927434,"lower_bound":2873155.0649931976,"upper_bound":3080450.1931630955,"unit":"ns"},"median":{"estimate":2966424.604761905,"lower_bound":2824331.1914285715,"upper_bound":3067232.7357142856,"unit":"ns"},"median_abs_dev":{"estimate":160152.8894457175,"lower_bound":8782.339794081809,"upper_bound":310940.129552709,"unit":"ns"},"slope":{"estimate":2882368.998812616,"lower_bound":2807632.2574447435,"upper_bound":3006957.173958333,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_100000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[97293166.0,190471750.0,281497166.0,340918000.0,451750083.0,514224750.0,676535959.0,747616667.0,835284000.0,972109125.0],"unit":"ns","throughput":[],"typical":{"estimate":31156563.963636365,"lower_bound":30008001.395459976,"upper_bound":31905248.99780702,"unit":"ns"},"mean":{"estimate":30925513.15392857,"lower_bound":30010613.953968257,"upper_bound":31735361.72198413,"unit":"ns"},"median":{"estimate":31214078.673611112,"lower_bound":29752243.055555556,"upper_bound":32215998.04761905,"unit":"ns"},"median_abs_dev":{"estimate":1556230.2232113918,"lower_bound":179746.8025588566,"upper_bound":2530160.571187341,"unit":"ns"},"slope":{"estimate":31156563.963636365,"lower_bound":30008001.395459976,"upper_bound":31905248.99780702,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/100000","MATCH/match_decrypt/eql_cast_firstname/100000","MATCH/match/eql_cast_lastname/100000","MATCH/match_decrypt/eql_cast_lastname/100000","MATCH/match/eql_bloom/100000","MATCH/match_decrypt/eql_bloom/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_1000000.json b/results/query/match_rows_1000000.json index 0e5ad2e..2e18123 100644 --- a/results/query/match_rows_1000000.json +++ b/results/query/match_rows_1000000.json @@ -1,7 +1,7 @@ -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[92498750.0,184108750.0,286777583.0,380556417.0,468554708.0,571999792.0,646170208.0,745909584.0,828352209.0,834386000.0],"unit":"ns","throughput":[],"typical":{"estimate":5037163.776046176,"lower_bound":4833394.727009937,"upper_bound":5224850.4543946935,"unit":"ns"},"mean":{"estimate":5140863.662394179,"lower_bound":5012266.923935185,"upper_bound":5233188.767009258,"unit":"ns"},"median":{"estimate":5159373.555555556,"lower_bound":5114131.944444444,"upper_bound":5285505.791666667,"unit":"ns"},"median_abs_dev":{"estimate":68850.59470987986,"lower_bound":11156.374574157733,"upper_bound":217477.1745306761,"unit":"ns"},"slope":{"estimate":5037163.776046176,"lower_bound":4833394.727009937,"upper_bound":5224850.4543946935,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[85323083.0,187606291.0,280790667.0,360159708.0,469693416.0,555590958.0,665629125.0,752081042.0,851177375.0,910942250.0],"unit":"ns","throughput":[],"typical":{"estimate":31057688.66839827,"lower_bound":30608087.15954416,"upper_bound":31453698.583435375,"unit":"ns"},"mean":{"estimate":30802323.827962972,"lower_bound":30166573.400374997,"upper_bound":31295594.346310187,"unit":"ns"},"median":{"estimate":31233339.083333336,"lower_bound":30364741.666666668,"upper_bound":31418991.18148148,"unit":"ns"},"median_abs_dev":{"estimate":488460.0779725453,"lower_bound":51145.93081697914,"upper_bound":1301595.89104205,"unit":"ns"},"slope":{"estimate":31057688.66839827,"lower_bound":30608087.15954416,"upper_bound":31453698.583435375,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[104324000.0,198272875.0,303808875.0,410783875.0,503738542.0,640497667.0,729443292.0,801839500.0,945175625.0,1076333000.0],"unit":"ns","throughput":[],"typical":{"estimate":17405991.452813853,"lower_bound":16965779.50051494,"upper_bound":17717150.038011696,"unit":"ns"},"mean":{"estimate":17200204.779616404,"lower_bound":16924091.272857144,"upper_bound":17478090.942397818,"unit":"ns"},"median":{"estimate":17241846.11011905,"lower_bound":16791284.733333334,"upper_bound":17589467.597222224,"unit":"ns"},"median_abs_dev":{"estimate":603519.4905778887,"lower_bound":109179.7534200037,"upper_bound":805505.6672160826,"unit":"ns"},"slope":{"estimate":17405991.452813853,"lower_bound":16965779.50051494,"upper_bound":17717150.038011696,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[134927625.0,262042375.0,382604708.0,499060542.0,659201416.0,761800875.0,890979333.0,977623500.0,1133139750.0,1239867875.0],"unit":"ns","throughput":[],"typical":{"estimate":41839533.18441559,"lower_bound":41349899.776,"upper_bound":42584729.40459337,"unit":"ns"},"mean":{"estimate":42547761.66301588,"lower_bound":41822353.44768651,"upper_bound":43342902.00301587,"unit":"ns"},"median":{"estimate":42374929.059523806,"lower_bound":41588378.5,"upper_bound":43673729.166666664,"unit":"ns"},"median_abs_dev":{"estimate":1358469.6262323395,"lower_bound":156142.1695279155,"upper_bound":2178989.536315201,"unit":"ns"},"slope":{"estimate":41839533.18441559,"lower_bound":41349899.776,"upper_bound":42584729.40459337,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[6,12,18,24,30,36,42,48,54,60],"measured_values":[99395959.0,201652500.0,314910792.0,428893250.0,539697125.0,607519667.0,695402833.0,798272000.0,904919416.0,1013842000.0],"unit":"ns","throughput":[],"typical":{"estimate":16901861.704329003,"lower_bound":16726566.7082397,"upper_bound":17227321.35737705,"unit":"ns"},"mean":{"estimate":17044442.53280423,"lower_bound":16752282.455995368,"upper_bound":17378063.68796296,"unit":"ns"},"median":{"estimate":16839960.652777776,"lower_bound":16630666.666666666,"upper_bound":17495044.0,"unit":"ns"},"median_abs_dev":{"estimate":358241.72299826983,"lower_bound":60963.92846767273,"upper_bound":886410.07701308,"unit":"ns"},"slope":{"estimate":16901861.704329003,"lower_bound":16726566.7082397,"upper_bound":17227321.35737705,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[140436000.0,255038041.0,392053291.0,547696584.0,650560416.0,771515375.0,879400083.0,1000347750.0,1110505417.0,1287158916.0],"unit":"ns","throughput":[],"typical":{"estimate":42358504.86147186,"lower_bound":41712989.23163559,"upper_bound":43194336.40616246,"unit":"ns"},"mean":{"estimate":43234633.67600529,"lower_bound":42284338.48416005,"upper_bound":44349907.503412694,"unit":"ns"},"median":{"estimate":42883631.23888889,"lower_bound":41876194.428571425,"upper_bound":44506038.2,"unit":"ns"},"median_abs_dev":{"estimate":1249299.7832871631,"lower_bound":295746.843559448,"upper_bound":2935715.296355635,"unit":"ns"},"slope":{"estimate":42358504.86147186,"lower_bound":41712989.23163559,"upper_bound":43194336.40616246,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_1000000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[86939333.0,185974541.0,259254000.0,349568417.0,448167708.0,535077125.0,617380708.0,691069042.0,787808375.0,869846208.0],"unit":"ns","throughput":[],"typical":{"estimate":4866548.3578643575,"lower_bound":4834609.652871833,"upper_bound":4917954.704557092,"unit":"ns"},"mean":{"estimate":4898052.939567901,"lower_bound":4840657.399598767,"upper_bound":4970326.490709878,"unit":"ns"},"median":{"estimate":4859065.781635802,"lower_bound":4816739.466666667,"upper_bound":4954417.824074074,"unit":"ns"},"median_abs_dev":{"estimate":73275.19743243861,"lower_bound":18646.628981456623,"upper_bound":159031.2509099641,"unit":"ns"},"slope":{"estimate":4866548.3578643575,"lower_bound":4834609.652871833,"upper_bound":4917954.704557092,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[94749000.0,170939541.0,248723000.0,347731375.0,484772000.0,573212000.0,646754208.0,721727917.0,868137333.0,919546292.0],"unit":"ns","throughput":[],"typical":{"estimate":30949485.966233768,"lower_bound":30205695.82181342,"upper_bound":31643911.728052743,"unit":"ns"},"mean":{"estimate":30452426.500912696,"lower_bound":29454136.376348216,"upper_bound":31372821.927301586,"unit":"ns"},"median":{"estimate":30724681.247619048,"lower_bound":28977614.583333332,"upper_bound":31868117.277777776,"unit":"ns"},"median_abs_dev":{"estimate":1889561.1914335836,"lower_bound":388605.92643420026,"upper_bound":2715612.4372715754,"unit":"ns"},"slope":{"estimate":30949485.966233768,"lower_bound":30205695.82181342,"upper_bound":31643911.728052743,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_1000000","iteration_count":[5,10,15,20,25,30,35,40,45,50],"measured_values":[88572791.0,178399375.0,263443666.0,368984250.0,433077041.0,544759500.0,612610834.0,709828208.0,826756458.0,962989625.0],"unit":"ns","throughput":[],"typical":{"estimate":18276980.58077922,"lower_bound":17676827.224712644,"upper_bound":18798428.130560577,"unit":"ns"},"mean":{"estimate":17992938.102571428,"lower_bound":17683606.109995235,"upper_bound":18357299.102990475,"unit":"ns"},"median":{"estimate":17792821.35,"lower_bound":17562911.066666666,"upper_bound":18372365.733333334,"unit":"ns"},"median_abs_dev":{"estimate":485909.772253377,"lower_bound":92943.6734399205,"upper_bound":952176.1609154965,"unit":"ns"},"slope":{"estimate":18276980.58077922,"lower_bound":17676827.224712644,"upper_bound":18798428.130560577,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[117642500.0,251467958.0,411673542.0,534915000.0,681575875.0,778496250.0,890772250.0,1001851958.0,1107180875.0,1277106625.0],"unit":"ns","throughput":[],"typical":{"estimate":42476217.71082251,"lower_bound":41765208.27336737,"upper_bound":43567616.94923432,"unit":"ns"},"mean":{"estimate":42786990.86812169,"lower_bound":41595383.037407406,"upper_bound":43978651.328184515,"unit":"ns"},"median":{"estimate":42493973.51190476,"lower_bound":41459012.7037037,"upper_bound":44576250.0,"unit":"ns"},"median_abs_dev":{"estimate":1662804.5093682054,"lower_bound":488438.4841784835,"upper_bound":3750481.138865657,"unit":"ns"},"slope":{"estimate":42476217.71082251,"lower_bound":41765208.27336737,"upper_bound":43567616.94923432,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_1000000","iteration_count":[5,10,15,20,25,30,35,40,45,50],"measured_values":[84563500.0,185978583.0,258909250.0,346875458.0,442285125.0,541442959.0,606361250.0,715461083.0,807947250.0,928983166.0],"unit":"ns","throughput":[],"typical":{"estimate":17979432.701818183,"lower_bound":17589037.828857917,"upper_bound":18296210.480196398,"unit":"ns"},"mean":{"estimate":17759963.237119045,"lower_bound":17435214.866188094,"upper_bound":18092205.98125655,"unit":"ns"},"median":{"estimate":17788966.0375,"lower_bound":17302194.78333333,"upper_bound":18267023.326666668,"unit":"ns"},"median_abs_dev":{"estimate":674250.9094571576,"lower_bound":61643.71467560603,"upper_bound":977341.935183214,"unit":"ns"},"slope":{"estimate":17979432.701818183,"lower_bound":17589037.828857917,"upper_bound":18296210.480196398,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_1000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[132723208.0,251133333.0,400812208.0,518440625.0,635182417.0,800753417.0,875117917.0,1010162333.0,1169543500.0,1256438750.0],"unit":"ns","throughput":[],"typical":{"estimate":42587900.14545455,"lower_bound":42019520.473154046,"upper_bound":43389326.23165983,"unit":"ns"},"mean":{"estimate":42962659.20017196,"lower_bound":42310496.52358466,"upper_bound":43650160.93996693,"unit":"ns"},"median":{"estimate":42774439.94166666,"lower_bound":41881291.666666664,"upper_bound":44241069.333333336,"unit":"ns"},"median_abs_dev":{"estimate":1343259.829017367,"lower_bound":167593.85605239493,"upper_bound":1854124.241202157,"unit":"ns"},"slope":{"estimate":42587900.14545455,"lower_bound":42019520.473154046,"upper_bound":43389326.23165983,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/1000000","MATCH/match_decrypt/eql_cast_firstname/1000000","MATCH/match/eql_cast_lastname/1000000","MATCH/match_decrypt/eql_cast_lastname/1000000","MATCH/match/eql_bloom/1000000","MATCH/match_decrypt/eql_bloom/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/match_rows_10000000.json b/results/query/match_rows_10000000.json new file mode 100644 index 0000000..3f6112b --- /dev/null +++ b/results/query/match_rows_10000000.json @@ -0,0 +1,7 @@ +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_firstname_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[116623500.0,234926250.0,348537000.0,470062042.0,584395042.0,726574875.0,823502375.0,949295708.0,1074512583.0,1186954750.0],"unit":"ns","throughput":[],"typical":{"estimate":39560868.107359305,"lower_bound":39289150.01328021,"upper_bound":39788932.282327585,"unit":"ns"},"mean":{"estimate":39338229.27761905,"lower_bound":39068061.01,"upper_bound":39643245.876666665,"unit":"ns"},"median":{"estimate":39193117.82142857,"lower_bound":38959669.46666667,"upper_bound":39675375.083333336,"unit":"ns"},"median_abs_dev":{"estimate":503704.32190746255,"lower_bound":44495.64921004169,"upper_bound":810651.8199680436,"unit":"ns"},"slope":{"estimate":39560868.107359305,"lower_bound":39289150.01328021,"upper_bound":39788932.282327585,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_firstname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_firstname_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[135230250.0,267334625.0,392870292.0,516642750.0,635798250.0,762055000.0,902268917.0,1055698625.0,1204004792.0,1229056792.0],"unit":"ns","throughput":[],"typical":{"estimate":64356474.146753244,"lower_bound":62576092.062118895,"upper_bound":66068239.32903226,"unit":"ns"},"mean":{"estimate":65036285.38926587,"lower_bound":63884459.33997768,"upper_bound":66107759.37726934,"unit":"ns"},"median":{"estimate":65029362.875,"lower_bound":63579825.0,"upper_bound":66833656.25,"unit":"ns"},"median_abs_dev":{"estimate":2204861.4618308824,"lower_bound":579302.7740903253,"upper_bound":3356846.864455304,"unit":"ns"},"slope":{"estimate":64356474.146753244,"lower_bound":62576092.062118895,"upper_bound":66068239.32903226,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_cast_lastname_10000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[161006000.0,322233250.0,484308625.0,645749916.0,798946875.0,987234417.0,1139723667.0,1283559875.0,1452311250.0,1643900917.0],"unit":"ns","throughput":[],"typical":{"estimate":162378945.46753246,"lower_bound":160955374.0917431,"upper_bound":163662315.37709463,"unit":"ns"},"mean":{"estimate":161834541.6289286,"lower_bound":160958448.54833332,"upper_bound":162820313.63619047,"unit":"ns"},"median":{"estimate":161402062.5,"lower_bound":160780804.6875,"upper_bound":162913785.35,"unit":"ns"},"median_abs_dev":{"estimate":1003083.1275042146,"lower_bound":52508.50196778774,"upper_bound":2494605.6393369096,"unit":"ns"},"slope":{"estimate":162378945.46753246,"lower_bound":160955374.0917431,"upper_bound":163662315.37709463,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_cast_lastname/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_cast_lastname_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[587244625.0,562273417.0,559027917.0,551735041.0,552763667.0,557834875.0,552740541.0,557057750.0,556741500.0,557877333.0],"unit":"ns","throughput":[],"typical":{"estimate":186509888.86666667,"lower_bound":184981924.96666667,"upper_bound":188776764.73083332,"unit":"ns"},"mean":{"estimate":186509888.86666667,"lower_bound":184981924.96666667,"upper_bound":188776764.73083332,"unit":"ns"},"median":{"estimate":185815437.5,"lower_bound":184254555.66666666,"upper_bound":186691791.6666667,"unit":"ns"},"median_abs_dev":{"estimate":1547896.1475193575,"lower_bound":202518.95570457718,"upper_bound":2614678.472480156,"unit":"ns"},"slope":null,"change":null} +{"reason":"benchmark-complete","id":"MATCH/match/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_eql_bloom_10000000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[160402167.0,317283708.0,481396083.0,651602000.0,817966709.0,989079583.0,1189155125.0,1310939625.0,1521253958.0,1628276000.0],"unit":"ns","throughput":[],"typical":{"estimate":165339026.94025975,"lower_bound":163056442.1467577,"upper_bound":167734286.5660683,"unit":"ns"},"mean":{"estimate":163645239.52186507,"lower_bound":161639340.4925,"upper_bound":165834889.17243353,"unit":"ns"},"median":{"estimate":163246920.9,"lower_bound":160465361.0,"upper_bound":166447835.3402778,"unit":"ns"},"median_abs_dev":{"estimate":3247810.3126898333,"lower_bound":567644.3862623065,"upper_bound":6394491.163308419,"unit":"ns"},"slope":{"estimate":165339026.94025975,"lower_bound":163056442.1467577,"upper_bound":167734286.5660683,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"MATCH/match_decrypt/eql_bloom/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH/match_decrypt_eql_bloom_10000000","iteration_count":[3,3,3,3,3,3,3,3,3,3],"measured_values":[574568959.0,561026333.0,554790834.0,561136125.0,562995958.0,552403834.0,568127875.0,562293459.0,566241958.0,563234209.0],"unit":"ns","throughput":[],"typical":{"estimate":187560651.46666664,"lower_bound":186338982.06666666,"upper_bound":188803829.26666665,"unit":"ns"},"mean":{"estimate":187560651.46666664,"lower_bound":186338982.06666666,"upper_bound":188803829.26666665,"unit":"ns"},"median":{"estimate":187548236.1666667,"lower_bound":185987826.5,"upper_bound":188747319.33333334,"unit":"ns"},"median_abs_dev":{"estimate":1288780.9146195797,"lower_bound":232459.32087302944,"upper_bound":3509581.994092494,"unit":"ns"},"slope":null,"change":null} +{"reason":"group-complete","group_name":"MATCH","benchmarks":["MATCH/match/eql_cast_firstname/10000000","MATCH/match_decrypt/eql_cast_firstname/10000000","MATCH/match/eql_cast_lastname/10000000","MATCH/match_decrypt/eql_cast_lastname/10000000","MATCH/match/eql_bloom/10000000","MATCH/match_decrypt/eql_bloom/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/MATCH"} diff --git a/results/query/ore_rows_10000.json b/results/query/ore_rows_10000.json index 2cac4c1..73f9857 100644 --- a/results/query/ore_rows_10000.json +++ b/results/query/ore_rows_10000.json @@ -1,15 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[404,808,1212,1616,2020,2424,2828,3232,3636,4040],"measured_values":[546129125.0,1056875667.0,1568391375.0,2124475334.0,2696924334.0,3215566292.0,3755895666.0,4536527750.0,5044113584.0,5614395208.0],"unit":"ns","throughput":[],"typical":{"estimate":1367914.6286485791,"lower_bound":1328131.736902557,"upper_bound":1385779.722518921,"unit":"ns"},"mean":{"estimate":1343889.7468530962,"lower_bound":1322787.5280943688,"upper_bound":1366712.2285403896,"unit":"ns"},"median":{"estimate":1331610.631824611,"lower_bound":1314650.577970297,"upper_bound":1387269.9625962595,"unit":"ns"},"median_abs_dev":{"estimate":32461.76771316868,"lower_bound":6343.530536488723,"upper_bound":62656.57074810186,"unit":"ns"},"slope":{"estimate":1367914.6286485791,"lower_bound":1328131.736902557,"upper_bound":1385779.722518921,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[523394375.0,1090135584.0,1755735000.0,2230641167.0,2821204375.0,3269742958.0,3951888250.0,4436041875.0,5050251417.0,5603818958.0],"unit":"ns","throughput":[],"typical":{"estimate":27955833.755454544,"lower_bound":27725161.46279799,"upper_bound":28146290.07565598,"unit":"ns"},"mean":{"estimate":27805735.67105357,"lower_bound":27320160.795106247,"upper_bound":28269098.89450223,"unit":"ns"},"median":{"estimate":27951054.68875,"lower_bound":27253389.6,"upper_bound":28212043.75,"unit":"ns"},"median_abs_dev":{"estimate":398602.6270076393,"lower_bound":116942.19952823484,"upper_bound":1432960.8692248557,"unit":"ns"},"slope":{"estimate":27955833.755454544,"lower_bound":27725161.46279799,"upper_bound":28146290.07565598,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[539410500.0,1077117167.0,1615432959.0,2089531625.0,2701165250.0,3300884625.0,3701044750.0,4198184000.0,4724078541.0,5419745542.0],"unit":"ns","throughput":[],"typical":{"estimate":6428294.531372243,"lower_bound":6345075.892028801,"upper_bound":6519076.816408491,"unit":"ns"},"mean":{"estimate":6445272.263479633,"lower_bound":6380481.796537938,"upper_bound":6509487.090021586,"unit":"ns"},"median":{"estimate":6488170.09939759,"lower_bound":6324067.658634538,"upper_bound":6514367.796385542,"unit":"ns"},"median_abs_dev":{"estimate":118374.67263891122,"lower_bound":8331.559865337691,"upper_bound":192052.4414572551,"unit":"ns"},"slope":{"estimate":6428294.531372243,"lower_bound":6345075.892028801,"upper_bound":6519076.816408491,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[538449084.0,1119299625.0,1682068666.0,2349125459.0,2733274291.0,3430113459.0,3959750125.0,4319365250.0,5086899875.0,5370028625.0],"unit":"ns","throughput":[],"typical":{"estimate":46152027.354329005,"lower_bound":45273424.17994905,"upper_bound":47280633.86510618,"unit":"ns"},"mean":{"estimate":46435195.47117724,"lower_bound":45640336.440277785,"upper_bound":47248855.56076058,"unit":"ns"},"median":{"estimate":46680806.99305555,"lower_bound":44993388.020833336,"upper_bound":47370694.738425925,"unit":"ns"},"median_abs_dev":{"estimate":1546272.5955306764,"lower_bound":181812.74825968218,"upper_bound":2656903.810320111,"unit":"ns"},"slope":{"estimate":46152027.354329005,"lower_bound":45273424.17994905,"upper_bound":47280633.86510618,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[378,756,1134,1512,1890,2268,2646,3024,3402,3780],"measured_values":[544345500.0,1124747750.0,1675804500.0,2337671000.0,2907230875.0,3078183417.0,3686077291.0,4550664583.0,4776282458.0,5186789959.0],"unit":"ns","throughput":[],"typical":{"estimate":1424032.7959183673,"lower_bound":1387841.5113359452,"upper_bound":1481728.5983568402,"unit":"ns"},"mean":{"estimate":1452118.5077531072,"lower_bound":1412264.0397779667,"upper_bound":1492217.498152872,"unit":"ns"},"median":{"estimate":1458924.603174603,"lower_bound":1388064.8767048796,"upper_bound":1512989.4841269841,"unit":"ns"},"median_abs_dev":{"estimate":89557.03772000923,"lower_bound":16142.22197285392,"upper_bound":111746.92253720667,"unit":"ns"},"slope":{"estimate":1424032.7959183673,"lower_bound":1387841.5113359452,"upper_bound":1481728.5983568402,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[19,38,57,76,95,114,133,152,171,190],"measured_values":[618783125.0,1103218375.0,1705026625.0,2277933500.0,2710761916.0,3438096375.0,3883000500.0,4603478625.0,5111704458.0,5678040875.0],"unit":"ns","throughput":[],"typical":{"estimate":29805742.0303486,"lower_bound":29428318.287046444,"upper_bound":30068942.02406015,"unit":"ns"},"mean":{"estimate":29943719.875269424,"lower_bound":29387570.625664163,"upper_bound":30640477.096447367,"unit":"ns"},"median":{"estimate":29902878.166666664,"lower_bound":29195492.48120301,"upper_bound":30158740.13157895,"unit":"ns"},"median_abs_dev":{"estimate":473710.9911800859,"lower_bound":27357.68901956166,"upper_bound":1366907.477048327,"unit":"ns"},"slope":{"estimate":29805742.0303486,"lower_bound":29428318.287046444,"upper_bound":30068942.02406015,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[81,162,243,324,405,486,567,648,729,810],"measured_values":[570159542.0,1117241791.0,1640635375.0,2179395750.0,2834297583.0,3284595583.0,3769932708.0,4384894750.0,4875262166.0,5437406750.0],"unit":"ns","throughput":[],"typical":{"estimate":6735395.466153599,"lower_bound":6696701.317989473,"upper_bound":6805093.638529122,"unit":"ns"},"mean":{"estimate":6798654.416667646,"lower_bound":6726367.041681362,"upper_bound":6881554.433902997,"unit":"ns"},"median":{"estimate":6755006.515432099,"lower_bound":6707066.257544581,"upper_bound":6896554.265432099,"unit":"ns"},"median_abs_dev":{"estimate":81218.87911507318,"lower_bound":12432.72798236195,"upper_bound":211580.20955333015,"unit":"ns"},"slope":{"estimate":6735395.466153599,"lower_bound":6696701.317989473,"upper_bound":6805093.638529122,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[567960125.0,1158084042.0,1601054459.0,2337225542.0,2997381292.0,3482247291.0,4051949792.0,4400676833.0,5049297917.0,5642958541.0],"unit":"ns","throughput":[],"typical":{"estimate":47263834.162554115,"lower_bound":46600683.720681794,"upper_bound":48223360.143410854,"unit":"ns"},"mean":{"estimate":47492564.070552245,"lower_bound":46546242.75960011,"upper_bound":48389820.27485566,"unit":"ns"},"median":{"estimate":47783753.97023809,"lower_bound":46432519.092708334,"upper_bound":48472850.27083333,"unit":"ns"},"median_abs_dev":{"estimate":1236150.5552889393,"lower_bound":106044.75017983328,"upper_bound":2654880.41465019,"unit":"ns"},"slope":{"estimate":47263834.162554115,"lower_bound":46600683.720681794,"upper_bound":48223360.143410854,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_ordered_10_10000","iteration_count":[24,48,72,96,120,144,168,192,216,240],"measured_values":[389070541.0,762233792.0,1158909458.0,1742839542.0,1955660417.0,2337403834.0,2757757792.0,3129162584.0,3605193916.0,4045226334.0],"unit":"ns","throughput":[],"typical":{"estimate":16601835.882683983,"lower_bound":16326104.54314227,"upper_bound":16842837.47091195,"unit":"ns"},"mean":{"estimate":16512959.67195106,"lower_bound":16205430.176349208,"upper_bound":16933941.171210315,"unit":"ns"},"median":{"estimate":16297445.966666667,"lower_bound":16163967.881944444,"upper_bound":16690712.574074075,"unit":"ns"},"median_abs_dev":{"estimate":236667.62500664272,"lower_bound":48741.00951800728,"upper_bound":695473.9610584262,"unit":"ns"},"slope":{"estimate":16601835.882683983,"lower_bound":16326104.54314227,"upper_bound":16842837.47091195,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_ordered_10_10000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[565397208.0,1106108541.0,1671758084.0,2174164083.0,2707368541.0,3255916209.0,3749849458.0,4310632459.0,4935610042.0,5396249208.0],"unit":"ns","throughput":[],"typical":{"estimate":41694080.55324675,"lower_bound":41466993.78258997,"upper_bound":42009779.39623185,"unit":"ns"},"mean":{"estimate":42045534.44064407,"lower_bound":41652278.04010989,"upper_bound":42488867.31007746,"unit":"ns"},"median":{"estimate":41776681.625,"lower_bound":41509609.29230769,"upper_bound":42542636.192307696,"unit":"ns"},"median_abs_dev":{"estimate":545828.2129233971,"lower_bound":117884.52046982184,"upper_bound":1168257.4640862069,"unit":"ns"},"slope":{"estimate":41694080.55324675,"lower_bound":41466993.78258997,"upper_bound":42009779.39623185,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[374,748,1122,1496,1870,2244,2618,2992,3366,3740],"measured_values":[420735708.0,926221625.0,1536964917.0,1829728708.0,2252635208.0,2790247417.0,3343207917.0,4353981125.0,4305282750.0,5190214291.0],"unit":"ns","throughput":[],"typical":{"estimate":1327117.4467810264,"lower_bound":1253869.6808245422,"upper_bound":1383836.6728227914,"unit":"ns"},"mean":{"estimate":1280321.8088213012,"lower_bound":1224822.6459237968,"upper_bound":1339225.623574421,"unit":"ns"},"median":{"estimate":1260217.0684046345,"lower_bound":1221440.9814171123,"upper_bound":1369843.9545454546,"unit":"ns"},"median_abs_dev":{"estimate":68744.96678078952,"lower_bound":15081.806043073333,"upper_bound":174298.8173258446,"unit":"ns"},"slope":{"estimate":1327117.4467810264,"lower_bound":1253869.6808245422,"upper_bound":1383836.6728227914,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[19,38,57,76,95,114,133,152,171,190],"measured_values":[530723792.0,1075039792.0,1605988250.0,2284986167.0,2912156208.0,3427514042.0,3923893084.0,4523760792.0,5044287875.0,5503492750.0],"unit":"ns","throughput":[],"typical":{"estimate":29508603.470266577,"lower_bound":29188182.08463944,"upper_bound":29908531.432229154,"unit":"ns"},"mean":{"estimate":29291343.09348788,"lower_bound":28746536.45537594,"upper_bound":29820051.41633939,"unit":"ns"},"median":{"estimate":29500857.510860484,"lower_bound":28290520.842105262,"upper_bound":30065607.460526317,"unit":"ns"},"median_abs_dev":{"estimate":837524.4968121109,"lower_bound":194831.91327086752,"upper_bound":1535346.6540316178,"unit":"ns"},"slope":{"estimate":29508603.470266577,"lower_bound":29188182.08463944,"upper_bound":29908531.432229154,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_ore_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_ore_ordered_10_10000","iteration_count":[423,846,1269,1692,2115,2538,2961,3384,3807,4230],"measured_values":[617764458.0,1187760292.0,1725203000.0,2307733125.0,3092123375.0,3620276791.0,3783680333.0,4397741167.0,4730630750.0,6221006417.0],"unit":"ns","throughput":[],"typical":{"estimate":1357253.6105738233,"lower_bound":1283109.8436663118,"upper_bound":1437671.8236030822,"unit":"ns"},"mean":{"estimate":1376694.8889844834,"lower_bound":1327242.6193684214,"upper_bound":1423185.3539965851,"unit":"ns"},"median":{"estimate":1383940.2213356975,"lower_bound":1299568.9027777778,"upper_bound":1460436.070921986,"unit":"ns"},"median_abs_dev":{"estimate":114569.76314913617,"lower_bound":8756.103482633058,"upper_bound":135359.44310681868,"unit":"ns"},"slope":{"estimate":1357253.6105738233,"lower_bound":1283109.8436663118,"upper_bound":1437671.8236030822,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_ore_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_ore_ordered_10_10000","iteration_count":[18,36,54,72,90,108,126,144,162,180],"measured_values":[494396000.0,1107232042.0,1537748292.0,2224900125.0,2755962708.0,3219992834.0,3595326500.0,4360473583.0,4649677291.0,5336402875.0],"unit":"ns","throughput":[],"typical":{"estimate":29521453.757142857,"lower_bound":28995294.62506505,"upper_bound":30122341.871192884,"unit":"ns"},"mean":{"estimate":29520145.53943342,"lower_bound":28815186.11574515,"upper_bound":30186032.376332674,"unit":"ns"},"median":{"estimate":29730715.550925925,"lower_bound":28534337.301587302,"upper_bound":30621807.866666667,"unit":"ns"},"median_abs_dev":{"estimate":1523174.241398992,"lower_bound":199613.9163694784,"upper_bound":1893123.493174643,"unit":"ns"},"slope":{"estimate":29521453.757142857,"lower_bound":28995294.62506505,"upper_bound":30122341.871192884,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_lt_ordered_10/10000","ORE/ore_decrypt/range_lt_ordered_10/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","ORE/ore/range_lt_ore_ordered_10/10000","ORE/ore_decrypt/range_lt_ore_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000","iteration_count":[61,122,183,244,305,366,427,488,549,610],"measured_values":[81550209.0,172107417.0,340402750.0,463255292.0,469167916.0,504406708.0,609341542.0,673642375.0,734317000.0,996677875.0],"unit":"ns","throughput":[],"typical":{"estimate":1486158.647349372,"lower_bound":1385954.6561576729,"upper_bound":1607391.0028163095,"unit":"ns"},"mean":{"estimate":1520162.86158535,"lower_bound":1407169.4939454691,"upper_bound":1651992.6830351287,"unit":"ns"},"median":{"estimate":1418872.9525761125,"lower_bound":1358984.2184653915,"upper_bound":1699189.8896174864,"unit":"ns"},"median_abs_dev":{"estimate":121056.88162922616,"lower_bound":24133.85756580065,"upper_bound":338358.58021987433,"unit":"ns"},"slope":{"estimate":1486158.647349372,"lower_bound":1385954.6561576729,"upper_bound":1607391.0028163095,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103471709.0,240986875.0,367286166.0,451622875.0,582865417.0,687652958.0,756421334.0,852126791.0,1048919125.0,1198956166.0],"unit":"ns","throughput":[],"typical":{"estimate":28620673.857792206,"lower_bound":27454002.656159867,"upper_bound":29539995.268209487,"unit":"ns"},"mean":{"estimate":28537493.061855156,"lower_bound":27576327.402741816,"upper_bound":29439473.794236112,"unit":"ns"},"median":{"estimate":28894424.472222224,"lower_bound":27015047.64285714,"upper_bound":29973904.15,"unit":"ns"},"median_abs_dev":{"estimate":1711227.698185465,"lower_bound":364025.9344172498,"upper_bound":2590396.565939393,"unit":"ns"},"slope":{"estimate":28620673.857792206,"lower_bound":27454002.656159867,"upper_bound":29539995.268209487,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[92390458.0,185325916.0,276098958.0,363145542.0,447146041.0,591960708.0,657671041.0,725837666.0,876967709.0,987546250.0],"unit":"ns","throughput":[],"typical":{"estimate":6810758.122634509,"lower_bound":6564879.352465986,"upper_bound":6967264.772116645,"unit":"ns"},"mean":{"estimate":6691716.495447846,"lower_bound":6555151.2696043085,"upper_bound":6840002.726213152,"unit":"ns"},"median":{"estimate":6609050.571428571,"lower_bound":6484741.821428572,"upper_bound":6960061.182539683,"unit":"ns"},"median_abs_dev":{"estimate":187301.20981223744,"lower_bound":33357.01680779457,"upper_bound":396333.255819393,"unit":"ns"},"slope":{"estimate":6810758.122634509,"lower_bound":6564879.352465986,"upper_bound":6967264.772116645,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[84447125.0,178379208.0,275191041.0,370173166.0,458190416.0,534300958.0,664221334.0,750530416.0,869699959.0,946884208.0],"unit":"ns","throughput":[],"typical":{"estimate":47005407.18571428,"lower_bound":45951010.238970585,"upper_bound":47634688.7014935,"unit":"ns"},"mean":{"estimate":45931271.19722222,"lower_bound":44834188.59900001,"upper_bound":46916781.12666667,"unit":"ns"},"median":{"estimate":46068409.625,"lower_bound":44594802.0,"upper_bound":47344210.4,"unit":"ns"},"median_abs_dev":{"estimate":1965758.6598958063,"lower_bound":335515.45043840894,"upper_bound":2957929.833061248,"unit":"ns"},"slope":{"estimate":47005407.18571428,"lower_bound":45951010.238970585,"upper_bound":47634688.7014935,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000","iteration_count":[59,118,177,236,295,354,413,472,531,590],"measured_values":[112993333.0,189155791.0,274495583.0,389001333.0,508775791.0,573503208.0,631850875.0,663987167.0,884636375.0,876659541.0],"unit":"ns","throughput":[],"typical":{"estimate":1554869.9733656175,"lower_bound":1483067.7780690638,"upper_bound":1648926.474818402,"unit":"ns"},"mean":{"estimate":1615052.215019505,"lower_bound":1537068.3648591605,"upper_bound":1701673.7210640304,"unit":"ns"},"median":{"estimate":1611540.368644068,"lower_bound":1518343.065819209,"upper_bound":1686487.2156779661,"unit":"ns"},"median_abs_dev":{"estimate":105526.25339348393,"lower_bound":33577.59438820047,"upper_bound":229742.0632550483,"unit":"ns"},"slope":{"estimate":1554869.9733656175,"lower_bound":1483067.7780690638,"upper_bound":1648926.474818402,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[128383334.0,230169833.0,367004708.0,436404125.0,587805167.0,713750541.0,800334583.0,887081917.0,980764041.0,1215844041.0],"unit":"ns","throughput":[],"typical":{"estimate":28792985.00064935,"lower_bound":27770454.471048057,"upper_bound":29863620.53699257,"unit":"ns"},"mean":{"estimate":29180014.48080357,"lower_bound":28279981.28747024,"upper_bound":30127880.187678568,"unit":"ns"},"median":{"estimate":29080743.7375,"lower_bound":27721309.90625,"upper_bound":30396101.025,"unit":"ns"},"median_abs_dev":{"estimate":1982822.6211272355,"lower_bound":354240.8162890943,"upper_bound":2628708.6944029676,"unit":"ns"},"slope":{"estimate":28792985.00064935,"lower_bound":27770454.471048057,"upper_bound":29863620.53699257,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[89611000.0,169320375.0,285381833.0,392627500.0,444262875.0,516838916.0,656224833.0,734907667.0,810700541.0,850352875.0],"unit":"ns","throughput":[],"typical":{"estimate":6883101.679520479,"lower_bound":6686158.388798767,"upper_bound":7116344.542853183,"unit":"ns"},"mean":{"estimate":6948236.330601344,"lower_bound":6752189.980235043,"upper_bound":7153931.832836539,"unit":"ns"},"median":{"estimate":6911109.14957265,"lower_bound":6626139.948717949,"upper_bound":7211261.901098901,"unit":"ns"},"median_abs_dev":{"estimate":433750.8955993823,"lower_bound":69868.2587236927,"upper_bound":575476.3213640216,"unit":"ns"},"slope":{"estimate":6883101.679520479,"lower_bound":6686158.388798767,"upper_bound":7116344.542853183,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[88509375.0,191508542.0,271223125.0,335732833.0,497671625.0,547968291.0,617520709.0,691051958.0,779791166.0,917287459.0],"unit":"ns","throughput":[],"typical":{"estimate":44735520.451948054,"lower_bound":43574873.650624365,"upper_bound":46120203.0882353,"unit":"ns"},"mean":{"estimate":45121894.18825397,"lower_bound":43830007.07044147,"upper_bound":46562720.73527778,"unit":"ns"},"median":{"estimate":44729270.83333333,"lower_bound":43321731.44444445,"upper_bound":46770579.875,"unit":"ns"},"median_abs_dev":{"estimate":1884860.114605377,"lower_bound":489642.56539211085,"upper_bound":3838340.269230836,"unit":"ns"},"slope":{"estimate":44735520.451948054,"lower_bound":43574873.650624365,"upper_bound":46120203.0882353,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000","iteration_count":[67,134,201,268,335,402,469,536,603,670],"measured_values":[69483750.0,147088667.0,262988208.0,428069667.0,458733291.0,602053917.0,661197666.0,848165917.0,820828541.0,1004513417.0],"unit":"ns","throughput":[],"typical":{"estimate":1458313.485946889,"lower_bound":1386254.3433836447,"upper_bound":1520514.8945856493,"unit":"ns"},"mean":{"estimate":1376013.8446653637,"lower_bound":1261985.1072594617,"upper_bound":1481373.3762271972,"unit":"ns"},"median":{"estimate":1389578.11663113,"lower_bound":1229458.990464345,"upper_bound":1540022.8292910447,"unit":"ns"},"median_abs_dev":{"estimate":161428.51197735468,"lower_bound":35998.835217111744,"upper_bound":338915.8696057395,"unit":"ns"},"slope":{"estimate":1458313.485946889,"lower_bound":1386254.3433836447,"upper_bound":1520514.8945856493,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[119873916.0,239298375.0,314259209.0,432073250.0,578887125.0,657696584.0,735697083.0,892802875.0,1005503750.0,1104386125.0],"unit":"ns","throughput":[],"typical":{"estimate":27594710.391558442,"lower_bound":27069105.387123745,"upper_bound":28002782.91443252,"unit":"ns"},"mean":{"estimate":27913730.05124008,"lower_bound":27152793.011011906,"upper_bound":28714175.769955356,"unit":"ns"},"median":{"estimate":27754871.484375,"lower_bound":26839460.07738095,"upper_bound":28944356.25,"unit":"ns"},"median_abs_dev":{"estimate":1437957.4985336512,"lower_bound":237962.18629616126,"upper_bound":2409512.6147163506,"unit":"ns"},"slope":{"estimate":27594710.391558442,"lower_bound":27069105.387123745,"upper_bound":28002782.91443252,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000","ORE/ore_decrypt/range_gt_10/10000","ORE/ore/range_gt_100/10000","ORE/ore_decrypt/range_gt_100/10000","ORE/ore/range_lt_10/10000","ORE/ore_decrypt/range_lt_10/10000","ORE/ore/range_lt_100/10000","ORE/ore_decrypt/range_lt_100/10000","ORE/ore/range_lt_hybrid_ordered_10/10000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_100000.json b/results/query/ore_rows_100000.json index 4f07f64..6da4183 100644 --- a/results/query/ore_rows_100000.json +++ b/results/query/ore_rows_100000.json @@ -1,15 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[562,1124,1686,2248,2810,3372,3934,4496,5058,5620],"measured_values":[497131000.0,1072819959.0,1647958958.0,2074459083.0,2913657875.0,3429829208.0,3816003083.0,4427056416.0,4672046208.0,5321147750.0],"unit":"ns","throughput":[],"typical":{"estimate":963257.9148125895,"lower_bound":942115.550569621,"upper_bound":994178.6577921115,"unit":"ns"},"mean":{"estimate":961850.8094581427,"lower_bound":934887.5214243348,"upper_bound":988606.7616505676,"unit":"ns"},"median":{"estimate":962236.0116293848,"lower_bound":923694.3867141162,"upper_bound":997293.4644128114,"unit":"ns"},"median_abs_dev":{"estimate":45197.9395570068,"lower_bound":10867.239411872197,"upper_bound":77426.33812683128,"unit":"ns"},"slope":{"estimate":963257.9148125895,"lower_bound":942115.550569621,"upper_bound":994178.6577921115,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[563135459.0,1052908041.0,1648721917.0,2141136083.0,2653131833.0,3331859083.0,3859279875.0,4404566458.0,4940792167.0,5329200042.0],"unit":"ns","throughput":[],"typical":{"estimate":27200921.55831169,"lower_bound":26840800.967941586,"upper_bound":27525044.14477612,"unit":"ns"},"mean":{"estimate":27220885.508365076,"lower_bound":26859615.40796984,"upper_bound":27571157.844638392,"unit":"ns"},"median":{"estimate":27463771.994444445,"lower_bound":26646000.21,"upper_bound":27647016.360416666,"unit":"ns"},"median_abs_dev":{"estimate":737386.901012932,"lower_bound":59077.895244077554,"upper_bound":1027443.198465902,"unit":"ns"},"slope":{"estimate":27200921.55831169,"lower_bound":26840800.967941586,"upper_bound":27525044.14477612,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[79,158,237,316,395,474,553,632,711,790],"measured_values":[533583625.0,1017244833.0,1533591958.0,2063798167.0,2590618833.0,2998424084.0,3501015375.0,4028913375.0,4651966792.0,5172719334.0],"unit":"ns","throughput":[],"typical":{"estimate":6467236.21880651,"lower_bound":6379130.112815923,"upper_bound":6536475.9960972825,"unit":"ns"},"mean":{"estimate":6487506.803131906,"lower_bound":6414978.564104468,"upper_bound":6567446.046606893,"unit":"ns"},"median":{"estimate":6500929.500527427,"lower_bound":6374862.935126582,"upper_bound":6550689.656399438,"unit":"ns"},"median_abs_dev":{"estimate":89156.33802639908,"lower_bound":11622.152698898246,"upper_bound":243907.6957561032,"unit":"ns"},"slope":{"estimate":6467236.21880651,"lower_bound":6379130.112815923,"upper_bound":6536475.9960972825,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[604627000.0,1205973375.0,1783282208.0,2346328542.0,2975423334.0,3594999083.0,4136867167.0,4799709333.0,5487765416.0,6137939333.0],"unit":"ns","throughput":[],"typical":{"estimate":46418356.16723277,"lower_bound":45722722.26535666,"upper_bound":46860278.384615384,"unit":"ns"},"mean":{"estimate":46133574.94593102,"lower_bound":45756608.114072725,"upper_bound":46517108.90002137,"unit":"ns"},"median":{"estimate":46120391.556089744,"lower_bound":45617911.17912088,"upper_bound":46643784.63034188,"unit":"ns"},"median_abs_dev":{"estimate":581612.412997391,"lower_bound":217838.05298644706,"upper_bound":1070362.4255536771,"unit":"ns"},"slope":{"estimate":46418356.16723277,"lower_bound":45722722.26535666,"upper_bound":46860278.384615384,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[555,1110,1665,2220,2775,3330,3885,4440,4995,5550],"measured_values":[468384333.0,1093078750.0,1782876708.0,2250968583.0,2692536750.0,3107066916.0,3583256083.0,4404723125.0,4950630167.0,5729441708.0],"unit":"ns","throughput":[],"typical":{"estimate":988804.482035802,"lower_bound":953549.0461219215,"upper_bound":1015303.4847059658,"unit":"ns"},"mean":{"estimate":975460.9426798942,"lower_bound":936078.095909624,"upper_bound":1010680.6645775776,"unit":"ns"},"median":{"estimate":987936.3905905907,"lower_bound":933053.1279279279,"upper_bound":1013949.8121621622,"unit":"ns"},"median_abs_dev":{"estimate":52194.094597300376,"lower_bound":6105.891239151152,"upper_bound":104389.78667752165,"unit":"ns"},"slope":{"estimate":988804.482035802,"lower_bound":953549.0461219215,"upper_bound":1015303.4847059658,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[20,40,60,80,100,120,140,160,180,200],"measured_values":[611409041.0,1131291833.0,1670259917.0,2232686875.0,2770069125.0,3443314208.0,3930429667.0,4557428834.0,5161545250.0,5711665709.0],"unit":"ns","throughput":[],"typical":{"estimate":28424513.443116885,"lower_bound":28144010.789372824,"upper_bound":28577853.146873806,"unit":"ns"},"mean":{"estimate":28478598.318031747,"lower_bound":28080362.106642853,"upper_bound":29022089.80808056,"unit":"ns"},"median":{"estimate":28383113.018749997,"lower_bound":27908585.9375,"upper_bound":28675251.388888888,"unit":"ns"},"median_abs_dev":{"estimate":459448.4249981596,"lower_bound":105146.96000076573,"upper_bound":979566.4263010521,"unit":"ns"},"slope":{"estimate":28424513.443116885,"lower_bound":28144010.789372824,"upper_bound":28577853.146873806,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[83,166,249,332,415,498,581,664,747,830],"measured_values":[549750500.0,1096254750.0,1689090708.0,2245436250.0,2701181917.0,3278122084.0,3813961250.0,4431725542.0,5334266584.0,5563090750.0],"unit":"ns","throughput":[],"typical":{"estimate":6751893.570802691,"lower_bound":6600832.271308077,"upper_bound":6936585.473320346,"unit":"ns"},"mean":{"estimate":6694795.059723656,"lower_bound":6605413.565457401,"upper_bound":6811359.3277337905,"unit":"ns"},"median":{"estimate":6648892.727409638,"lower_bound":6582574.465863454,"upper_bound":6763362.198795181,"unit":"ns"},"median_abs_dev":{"estimate":111738.95985208014,"lower_bound":29256.947823959024,"upper_bound":220506.87399184794,"unit":"ns"},"slope":{"estimate":6751893.570802691,"lower_bound":6600832.271308077,"upper_bound":6936585.473320346,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[12,24,36,48,60,72,84,96,108,120],"measured_values":[548455958.0,1031840208.0,1778378417.0,2149156167.0,2773169875.0,3383344875.0,3989273916.0,4503322791.0,4899834625.0,5686707375.0],"unit":"ns","throughput":[],"typical":{"estimate":46672489.18463203,"lower_bound":45865840.50951803,"upper_bound":47274325.32327697,"unit":"ns"},"mean":{"estimate":46324092.72041997,"lower_bound":45275771.1283569,"upper_bound":47340457.31914683,"unit":"ns"},"median":{"estimate":46564555.16145833,"lower_bound":45239374.98958333,"upper_bound":47389228.125,"unit":"ns"},"median_abs_dev":{"estimate":1324475.4797358608,"lower_bound":355539.12599729374,"upper_bound":2987855.0770827457,"unit":"ns"},"slope":{"estimate":46672489.18463203,"lower_bound":45865840.50951803,"upper_bound":47274325.32327697,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[602132125.0,1177489208.0,1756067458.0,2317997750.0,2900268500.0,3502459042.0,4090488750.0,4744116667.0,5214842250.0,5807024334.0],"unit":"ns","throughput":[],"typical":{"estimate":145846479.76818183,"lower_bound":145127242.8438287,"upper_bound":146999408.41975105,"unit":"ns"},"mean":{"estimate":146425708.2163988,"lower_bound":145482676.71404764,"upper_bound":147579316.36429688,"unit":"ns"},"median":{"estimate":146012338.67261904,"lower_bound":145013425.0,"upper_bound":147296300.3385417,"unit":"ns"},"median_abs_dev":{"estimate":1583708.080721057,"lower_bound":129598.54238668067,"upper_bound":2589189.107177746,"unit":"ns"},"slope":{"estimate":145846479.76818183,"lower_bound":145127242.8438287,"upper_bound":146999408.41975105,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[679648292.0,1348633375.0,2064615583.0,2724893584.0,3429891834.0,4075594334.0,4771313250.0,5431898334.0,6264237041.0,6754153167.0],"unit":"ns","throughput":[],"typical":{"estimate":170680133.61168832,"lower_bound":169372974.23434344,"upper_bound":172492083.96151453,"unit":"ns"},"mean":{"estimate":170517069.5969246,"lower_bound":169644389.6829717,"upper_bound":171528979.93970236,"unit":"ns"},"median":{"estimate":170108961.0,"lower_bound":169335129.87916666,"upper_bound":171494591.7,"unit":"ns"},"median_abs_dev":{"estimate":1198882.1463193283,"lower_bound":141799.4444325419,"upper_bound":2515011.077549649,"unit":"ns"},"slope":{"estimate":170680133.61168832,"lower_bound":169372974.23434344,"upper_bound":172492083.96151453,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[469,938,1407,1876,2345,2814,3283,3752,4221,4690],"measured_values":[589651958.0,1098011125.0,1508862458.0,2245511500.0,2532533625.0,3380537750.0,3564116083.0,4181705291.0,4827934167.0,4943504917.0],"unit":"ns","throughput":[],"typical":{"estimate":1110564.6929859053,"lower_bound":1076733.8033481035,"upper_bound":1152295.2104512565,"unit":"ns"},"mean":{"estimate":1137650.203554422,"lower_bound":1099588.3483820693,"upper_bound":1178468.463830846,"unit":"ns"},"median":{"estimate":1129158.0927949538,"lower_bound":1079012.3593765865,"upper_bound":1196967.750533049,"unit":"ns"},"median_abs_dev":{"estimate":78538.93705957303,"lower_bound":11230.370251367303,"upper_bound":110288.56791608053,"unit":"ns"},"slope":{"estimate":1110564.6929859053,"lower_bound":1076733.8033481035,"upper_bound":1152295.2104512565,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[19,38,57,76,95,114,133,152,171,190],"measured_values":[564329417.0,1162963584.0,1636773792.0,2177974834.0,2838050000.0,3232703375.0,3740852667.0,4410711708.0,4954326625.0,5660335542.0],"unit":"ns","throughput":[],"typical":{"estimate":29085837.993848257,"lower_bound":28579244.546488173,"upper_bound":29524205.97021627,"unit":"ns"},"mean":{"estimate":29181846.60527151,"lower_bound":28738356.52061947,"upper_bound":29654971.187776316,"unit":"ns"},"median":{"estimate":28995255.252923977,"lower_bound":28536188.416666668,"upper_bound":29791239.694736842,"unit":"ns"},"median_abs_dev":{"estimate":996678.6581396251,"lower_bound":127994.53340659161,"upper_bound":1271938.6231364699,"unit":"ns"},"slope":{"estimate":29085837.993848257,"lower_bound":28579244.546488173,"upper_bound":29524205.97021627,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_ore_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_ore_ordered_10_100000","iteration_count":[465,930,1395,1860,2325,2790,3255,3720,4185,4650],"measured_values":[521063000.0,1098691208.0,1700217459.0,2517401708.0,2702331541.0,3114532166.0,3583489500.0,4020757917.0,4676474000.0,5182882292.0],"unit":"ns","throughput":[],"typical":{"estimate":1124173.3505488061,"lower_bound":1104178.0111974508,"upper_bound":1165819.120053293,"unit":"ns"},"mean":{"estimate":1156660.5266686294,"lower_bound":1116315.0882330302,"upper_bound":1209258.3264578427,"unit":"ns"},"median":{"estimate":1119001.314217443,"lower_bound":1108619.10296979,"upper_bound":1190543.5066666668,"unit":"ns"},"median_abs_dev":{"estimate":41687.22183908826,"lower_bound":2552.1926572273087,"upper_bound":101536.38109078837,"unit":"ns"},"slope":{"estimate":1124173.3505488061,"lower_bound":1104178.0111974508,"upper_bound":1165819.120053293,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_ore_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_ore_ordered_10_100000","iteration_count":[19,38,57,76,95,114,133,152,171,190],"measured_values":[630458875.0,1130951458.0,1614970042.0,2286545875.0,2756787750.0,3304212584.0,3797490125.0,4686632541.0,4860942584.0,5750958334.0],"unit":"ns","throughput":[],"typical":{"estimate":29504610.727272727,"lower_bound":28676254.446138445,"upper_bound":30232801.86307601,"unit":"ns"},"mean":{"estimate":29744643.627804928,"lower_bound":28974529.95661445,"upper_bound":30693008.42843729,"unit":"ns"},"median":{"estimate":29390349.44736842,"lower_bound":28552557.33082707,"upper_bound":30459619.378289476,"unit":"ns"},"median_abs_dev":{"estimate":1271807.1912061705,"lower_bound":232402.46867578538,"upper_bound":2220105.075733066,"unit":"ns"},"slope":{"estimate":29504610.727272727,"lower_bound":28676254.446138445,"upper_bound":30232801.86307601,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/100000","ORE/ore_decrypt/range_gt_10/100000","ORE/ore/range_gt_100/100000","ORE/ore_decrypt/range_gt_100/100000","ORE/ore/range_lt_10/100000","ORE/ore_decrypt/range_lt_10/100000","ORE/ore/range_lt_100/100000","ORE/ore_decrypt/range_lt_100/100000","ORE/ore/range_lt_ordered_10/100000","ORE/ore_decrypt/range_lt_ordered_10/100000","ORE/ore/range_lt_hybrid_ordered_10/100000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","ORE/ore/range_lt_ore_ordered_10/100000","ORE/ore_decrypt/range_lt_ore_ordered_10/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_100000","iteration_count":[79,158,237,316,395,474,553,632,711,790],"measured_values":[113317084.0,218793792.0,302355166.0,290266000.0,376017750.0,546228791.0,609689791.0,818160250.0,901923750.0,948607584.0],"unit":"ns","throughput":[],"typical":{"estimate":1189971.9148117704,"lower_bound":1100115.6444155413,"upper_bound":1246898.3789029536,"unit":"ns"},"mean":{"estimate":1198418.0992254368,"lower_bound":1095333.579876281,"upper_bound":1294974.1961013412,"unit":"ns"},"median":{"estimate":1234648.787341772,"lower_bound":1052162.5432489451,"upper_bound":1330265.5147679325,"unit":"ns"},"median_abs_dev":{"estimate":158936.92226653345,"lower_bound":24656.07467903921,"upper_bound":308670.762616581,"unit":"ns"},"slope":{"estimate":1189971.9148117704,"lower_bound":1100115.6444155413,"upper_bound":1246898.3789029536,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[106088750.0,254052500.0,327964334.0,448493875.0,574788750.0,663761250.0,773318208.0,895542250.0,957550709.0,1104049125.0],"unit":"ns","throughput":[],"typical":{"estimate":27587393.88896104,"lower_bound":27135984.501420453,"upper_bound":28101313.82326284,"unit":"ns"},"mean":{"estimate":27984019.62757937,"lower_bound":27257964.278075397,"upper_bound":28955400.87757937,"unit":"ns"},"median":{"estimate":27637613.089285716,"lower_bound":27099929.465277776,"upper_bound":28362566.40625,"unit":"ns"},"median_abs_dev":{"estimate":549552.6053184877,"lower_bound":41135.19958220699,"upper_bound":1633564.8423234236,"unit":"ns"},"slope":{"estimate":27587393.88896104,"lower_bound":27135984.501420453,"upper_bound":28101313.82326284,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[89276750.0,170963541.0,265826875.0,332501291.0,431558250.0,542842542.0,633863041.0,764845584.0,830917834.0,907487250.0],"unit":"ns","throughput":[],"typical":{"estimate":7009485.532067932,"lower_bound":6828467.261877828,"upper_bound":7144634.009386888,"unit":"ns"},"mean":{"estimate":6865451.525854702,"lower_bound":6703432.323717949,"upper_bound":7027965.677564102,"unit":"ns"},"median":{"estimate":6913481.038461538,"lower_bound":6639357.692307692,"upper_bound":7033694.876068376,"unit":"ns"},"median_abs_dev":{"estimate":211854.7230054934,"lower_bound":20133.365504100144,"upper_bound":501059.82924287027,"unit":"ns"},"slope":{"estimate":7009485.532067932,"lower_bound":6828467.261877828,"upper_bound":7144634.009386888,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[85021708.0,170326459.0,228239000.0,382831750.0,443003625.0,598203167.0,649138916.0,731755417.0,765527875.0,948403875.0],"unit":"ns","throughput":[],"typical":{"estimate":45737352.11168831,"lower_bound":43764337.088509314,"upper_bound":47370142.7948085,"unit":"ns"},"mean":{"estimate":44718819.63799603,"lower_bound":42660310.35215029,"upper_bound":46675857.346837796,"unit":"ns"},"median":{"estimate":45017538.03125,"lower_bound":42529326.38888889,"upper_bound":47420193.75,"unit":"ns"},"median_abs_dev":{"estimate":3650261.1540678274,"lower_bound":66148.52468396717,"upper_bound":6172977.042607746,"unit":"ns"},"slope":{"estimate":45737352.11168831,"lower_bound":43764337.088509314,"upper_bound":47370142.7948085,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_100000","iteration_count":[88,176,264,352,440,528,616,704,792,880],"measured_values":[114061833.0,186489125.0,221899833.0,448161083.0,409929250.0,565586334.0,574020958.0,662975125.0,910028167.0,873317584.0],"unit":"ns","throughput":[],"typical":{"estimate":1022252.8104191263,"lower_bound":957248.4219208211,"upper_bound":1099262.9654415604,"unit":"ns"},"mean":{"estimate":1048732.2727872473,"lower_bound":962920.5868567709,"upper_bound":1141280.3014316603,"unit":"ns"},"median":{"estimate":1026001.8232954545,"lower_bound":931852.2045454546,"upper_bound":1172185.5667613635,"unit":"ns"},"median_abs_dev":{"estimate":139730.64099621694,"lower_bound":7608.303984385846,"upper_bound":253174.33757315468,"unit":"ns"},"slope":{"estimate":1022252.8104191263,"lower_bound":957248.4219208211,"upper_bound":1099262.9654415604,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[116675833.0,243027875.0,314302041.0,458709791.0,612586292.0,689020250.0,796430708.0,917993708.0,1003076209.0,1073883167.0],"unit":"ns","throughput":[],"typical":{"estimate":28092864.935714286,"lower_bound":27421876.611350574,"upper_bound":28996881.476780187,"unit":"ns"},"mean":{"estimate":28558869.7430754,"lower_bound":27742435.31224207,"upper_bound":29351422.4489375,"unit":"ns"},"median":{"estimate":28678332.65625,"lower_bound":27645516.51607143,"upper_bound":29543830.729166664,"unit":"ns"},"median_abs_dev":{"estimate":967937.7965490036,"lower_bound":32429.95939925129,"upper_bound":2617830.6282842155,"unit":"ns"},"slope":{"estimate":28092864.935714286,"lower_bound":27421876.611350574,"upper_bound":28996881.476780187,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_100000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[89514084.0,180823250.0,271153291.0,341620958.0,454509208.0,563657958.0,613949583.0,700997166.0,802401417.0,965085917.0],"unit":"ns","throughput":[],"typical":{"estimate":7005733.148651348,"lower_bound":6780467.40027637,"upper_bound":7244126.589547857,"unit":"ns"},"mean":{"estimate":6935048.05514652,"lower_bound":6798496.767069598,"upper_bound":7086039.802454213,"unit":"ns"},"median":{"estimate":6919173.628205128,"lower_bound":6746698.714285715,"upper_bound":7090562.230769231,"unit":"ns"},"median_abs_dev":{"estimate":182174.94587190208,"lower_bound":29504.38193619288,"upper_bound":416473.89770072536,"unit":"ns"},"slope":{"estimate":7005733.148651348,"lower_bound":6780467.40027637,"upper_bound":7244126.589547857,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[98028208.0,174041750.0,282405167.0,370345375.0,488301542.0,559377167.0,676062667.0,739924459.0,831181042.0,881491292.0],"unit":"ns","throughput":[],"typical":{"estimate":46129683.1948052,"lower_bound":45036852.65489225,"upper_bound":47498170.92859514,"unit":"ns"},"mean":{"estimate":46611691.76680557,"lower_bound":45511662.135791674,"upper_bound":47653986.32471875,"unit":"ns"},"median":{"estimate":46453967.89583333,"lower_bound":45159921.64375,"upper_bound":48290190.5,"unit":"ns"},"median_abs_dev":{"estimate":1816023.7658966426,"lower_bound":101638.35421639675,"upper_bound":3525318.5078930864,"unit":"ns"},"slope":{"estimate":46129683.1948052,"lower_bound":45036852.65489225,"upper_bound":47498170.92859514,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_100000","iteration_count":[85,170,255,340,425,510,595,680,765,850],"measured_values":[86760334.0,167041291.0,255757333.0,337142625.0,392144125.0,498536333.0,649571208.0,736961916.0,811228292.0,944919333.0],"unit":"ns","throughput":[],"typical":{"estimate":1059788.106340718,"lower_bound":1005219.8517334671,"upper_bound":1089252.8515311785,"unit":"ns"},"mean":{"estimate":1024566.8593678806,"lower_bound":988774.3088563727,"upper_bound":1059967.0282511204,"unit":"ns"},"median":{"estimate":1011839.8725490196,"lower_bound":982595.8294117647,"upper_bound":1083767.5235294118,"unit":"ns"},"median_abs_dev":{"estimate":61458.89744516104,"lower_bound":11784.879457835437,"upper_bound":103916.65166628726,"unit":"ns"},"slope":{"estimate":1059788.106340718,"lower_bound":1005219.8517334671,"upper_bound":1089252.8515311785,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_100000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[114109542.0,217580541.0,377151208.0,467497875.0,536029625.0,640629834.0,802442209.0,938228125.0,980793583.0,1084117625.0],"unit":"ns","throughput":[],"typical":{"estimate":27834988.205844156,"lower_bound":27197715.23703898,"upper_bound":28777690.396921188,"unit":"ns"},"mean":{"estimate":28219271.469295632,"lower_bound":27395922.971031748,"upper_bound":29156931.811345488,"unit":"ns"},"median":{"estimate":27885825.847222224,"lower_bound":26999524.4375,"upper_bound":29218617.1875,"unit":"ns"},"median_abs_dev":{"estimate":1384177.4405801073,"lower_bound":104764.64276922491,"upper_bound":2736616.257540346,"unit":"ns"},"slope":{"estimate":27834988.205844156,"lower_bound":27197715.23703898,"upper_bound":28777690.396921188,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/100000","ORE/ore_decrypt/range_gt_10/100000","ORE/ore/range_gt_100/100000","ORE/ore_decrypt/range_gt_100/100000","ORE/ore/range_lt_10/100000","ORE/ore_decrypt/range_lt_10/100000","ORE/ore/range_lt_100/100000","ORE/ore_decrypt/range_lt_100/100000","ORE/ore/range_lt_hybrid_ordered_10/100000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_1000000.json b/results/query/ore_rows_1000000.json index f1b89b1..1fea3ae 100644 --- a/results/query/ore_rows_1000000.json +++ b/results/query/ore_rows_1000000.json @@ -1,11 +1,11 @@ -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[76,152,228,304,380,456,532,608,684,760],"measured_values":[98253084.0,201466667.0,368788250.0,452605750.0,531013833.0,529478500.0,605673167.0,699027000.0,812500042.0,957680959.0],"unit":"ns","throughput":[],"typical":{"estimate":1229362.6954887218,"lower_bound":1178824.6496334905,"upper_bound":1308621.1184256382,"unit":"ns"},"mean":{"estimate":1301928.2189745198,"lower_bound":1214015.5915601505,"upper_bound":1400761.8263157895,"unit":"ns"},"median":{"estimate":1276455.1309210525,"lower_bound":1161137.0614035088,"upper_bound":1407136.6513157894,"unit":"ns"},"median_abs_dev":{"estimate":175145.2890692337,"lower_bound":25119.490236934816,"upper_bound":258524.75397171563,"unit":"ns"},"slope":{"estimate":1229362.6954887218,"lower_bound":1178824.6496334905,"upper_bound":1308621.1184256382,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[109531458.0,223709875.0,333104584.0,477418750.0,570097000.0,695500125.0,821134417.0,941277250.0,1047837542.0,1126003375.0],"unit":"ns","throughput":[],"typical":{"estimate":28868932.634415586,"lower_bound":28432211.080714174,"upper_bound":29264559.29519774,"unit":"ns"},"mean":{"estimate":28642583.396329366,"lower_bound":28163674.68808036,"upper_bound":29115928.11527778,"unit":"ns"},"median":{"estimate":28742010.9375,"lower_bound":27954399.854166664,"upper_bound":29326229.17857143,"unit":"ns"},"median_abs_dev":{"estimate":937618.2306976989,"lower_bound":228554.40479026825,"upper_bound":1277803.9091477785,"unit":"ns"},"slope":{"estimate":28868932.634415586,"lower_bound":28432211.080714174,"upper_bound":29264559.29519774,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[103750583.0,184277292.0,276464334.0,391348166.0,474211875.0,548913334.0,661355875.0,843564458.0,910766709.0,1067288833.0],"unit":"ns","throughput":[],"typical":{"estimate":7194698.6478664195,"lower_bound":6779033.87037037,"upper_bound":7442114.687864431,"unit":"ns"},"mean":{"estimate":7000422.367363945,"lower_bound":6760851.717942176,"upper_bound":7252347.862619048,"unit":"ns"},"median":{"estimate":6881407.732142857,"lower_bound":6582484.142857143,"upper_bound":7410755.928571428,"unit":"ns"},"median_abs_dev":{"estimate":479473.61691264185,"lower_bound":38437.917174734175,"upper_bound":657346.404279768,"unit":"ns"},"slope":{"estimate":7194698.6478664195,"lower_bound":6779033.87037037,"upper_bound":7442114.687864431,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[97414000.0,186072125.0,274883041.0,373494333.0,519381250.0,539076084.0,684634459.0,780335375.0,835807459.0,916927333.0],"unit":"ns","throughput":[],"typical":{"estimate":47202872.9,"lower_bound":46091233.71488152,"upper_bound":48772453.78016999,"unit":"ns"},"mean":{"estimate":47454033.17085317,"lower_bound":46315383.96363095,"upper_bound":48764720.80585317,"unit":"ns"},"median":{"estimate":46602411.4375,"lower_bound":45846366.65,"upper_bound":48804730.67857143,"unit":"ns"},"median_abs_dev":{"estimate":1829510.3601072002,"lower_bound":144895.50147759143,"upper_bound":3805749.348306109,"unit":"ns"},"slope":{"estimate":47202872.9,"lower_bound":46091233.71488152,"upper_bound":48772453.78016999,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[93,186,279,372,465,558,651,744,837,930],"measured_values":[98757709.0,173966625.0,284847542.0,345222625.0,427476917.0,526906625.0,597545709.0,712523583.0,801816792.0,902095250.0],"unit":"ns","throughput":[],"typical":{"estimate":952416.1618489038,"lower_bound":934539.1528412724,"upper_bound":964188.4162903226,"unit":"ns"},"mean":{"estimate":961331.6267805941,"lower_bound":936791.2754249873,"upper_bound":991083.4622699053,"unit":"ns"},"median":{"estimate":950985.0468189964,"lower_bound":927304.8166666667,"upper_bound":989462.0179211469,"unit":"ns"},"median_abs_dev":{"estimate":31117.611322551995,"lower_bound":8558.381851767856,"upper_bound":68334.58105241001,"unit":"ns"},"slope":{"estimate":952416.1618489038,"lower_bound":934539.1528412724,"upper_bound":964188.4162903226,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[109574416.0,216329250.0,317976084.0,706599083.0,530279416.0,650573125.0,783180750.0,902029709.0,973924417.0,1242003833.0],"unit":"ns","throughput":[],"typical":{"estimate":29065749.568181816,"lower_bound":27243514.86531401,"upper_bound":31357975.561363637,"unit":"ns"},"mean":{"estimate":29297911.5609623,"lower_bound":27078500.66214286,"upper_bound":32865005.330803573,"unit":"ns"},"median":{"estimate":27250408.770833336,"lower_bound":26783713.413888887,"upper_bound":29510418.448214285,"unit":"ns"},"median_abs_dev":{"estimate":1079903.7830378744,"lower_bound":48968.26944314036,"upper_bound":2922858.5847438886,"unit":"ns"},"slope":{"estimate":29065749.568181816,"lower_bound":27243514.86531401,"upper_bound":31357975.561363637,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[86427250.0,166578875.0,256444750.0,342376583.0,426869583.0,518523584.0,600918375.0,729043041.0,790054125.0,915166208.0],"unit":"ns","throughput":[],"typical":{"estimate":6814153.278521478,"lower_bound":6611475.216117216,"upper_bound":6943068.720571152,"unit":"ns"},"mean":{"estimate":6683563.117316851,"lower_bound":6574441.263278388,"upper_bound":6807885.94808379,"unit":"ns"},"median":{"estimate":6625618.441391941,"lower_bound":6575506.41025641,"upper_bound":6829139.620192308,"unit":"ns"},"median_abs_dev":{"estimate":80435.58435044404,"lower_bound":12837.310460554498,"upper_bound":316346.2092429631,"unit":"ns"},"slope":{"estimate":6814153.278521478,"lower_bound":6611475.216117216,"upper_bound":6943068.720571152,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[81482625.0,172910583.0,256079917.0,352140542.0,464530083.0,504716250.0,657786750.0,788269125.0,895951917.0,964519917.0],"unit":"ns","throughput":[],"typical":{"estimate":47499325.06233766,"lower_bound":45143146.4375,"upper_bound":48725562.33367983,"unit":"ns"},"mean":{"estimate":45343189.84863095,"lower_bound":43480212.37722321,"upper_bound":47221226.14791667,"unit":"ns"},"median":{"estimate":45235288.025,"lower_bound":42643666.625,"upper_bound":48225995.85,"unit":"ns"},"median_abs_dev":{"estimate":4111256.9052656023,"lower_bound":811960.0838348307,"upper_bound":5102806.115387081,"unit":"ns"},"slope":{"estimate":47499325.06233766,"lower_bound":45143146.4375,"upper_bound":48725562.33367983,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[86,172,258,344,430,516,602,688,774,860],"measured_values":[85235250.0,197916750.0,354367166.0,418043541.0,471478708.0,613888458.0,748863666.0,768270708.0,811350333.0,982983167.0],"unit":"ns","throughput":[],"typical":{"estimate":1140962.388794926,"lower_bound":1094805.5649754335,"upper_bound":1201379.4953725676,"unit":"ns"},"mean":{"estimate":1156860.5807336657,"lower_bound":1096117.771482558,"upper_bound":1221594.1153732005,"unit":"ns"},"median":{"estimate":1146841.2308139536,"lower_bound":1082464.3924418604,"upper_bound":1216832.946013289,"unit":"ns"},"median_abs_dev":{"estimate":88052.16108495936,"lower_bound":25208.824057686328,"upper_bound":180782.75861837115,"unit":"ns"},"slope":{"estimate":1140962.388794926,"lower_bound":1094805.5649754335,"upper_bound":1201379.4953725676,"unit":"ns"},"change":null} -{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[102677458.0,217983042.0,313971708.0,423432083.0,535579042.0,653586167.0,787876791.0,849678834.0,997905083.0,1102017708.0],"unit":"ns","throughput":[],"typical":{"estimate":27329604.055844154,"lower_bound":26820108.770202022,"upper_bound":27667783.49744898,"unit":"ns"},"mean":{"estimate":26951871.671865083,"lower_bound":26504884.75972222,"upper_bound":27395342.948551092,"unit":"ns"},"median":{"estimate":27005854.52916667,"lower_bound":26358386.28125,"upper_bound":27550442.7,"unit":"ns"},"median_abs_dev":{"estimate":805005.4637245456,"lower_bound":233099.49209790787,"upper_bound":1244079.1045881808,"unit":"ns"},"slope":{"estimate":27329604.055844154,"lower_bound":26820108.770202022,"upper_bound":27667783.49744898,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_1000000","iteration_count":[80,160,240,320,400,480,560,640,720,800],"measured_values":[101857375.0,170036750.0,265073625.0,437960708.0,459742000.0,540055666.0,669346958.0,707798208.0,803041625.0,938091417.0],"unit":"ns","throughput":[],"typical":{"estimate":1152082.5241233767,"lower_bound":1121279.980927835,"upper_bound":1191494.3482404435,"unit":"ns"},"mean":{"estimate":1167266.5482361112,"lower_bound":1118299.8379583333,"upper_bound":1226119.6200833335,"unit":"ns"},"median":{"estimate":1137235.4854166666,"lower_bound":1105934.7,"upper_bound":1222915.729375,"unit":"ns"},"median_abs_dev":{"estimate":50512.79916209354,"lower_bound":9135.347583231773,"upper_bound":141454.90055367336,"unit":"ns"},"slope":{"estimate":1152082.5241233767,"lower_bound":1121279.980927835,"upper_bound":1191494.3482404435,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[118227084.0,229263833.0,327507834.0,449532417.0,674467458.0,686878250.0,757511583.0,942063000.0,1083636917.0,1141121333.0],"unit":"ns","throughput":[],"typical":{"estimate":29126003.48961039,"lower_bound":28148975.31030151,"upper_bound":30248178.74415888,"unit":"ns"},"mean":{"estimate":29106865.83251984,"lower_bound":28148934.741428573,"upper_bound":30336377.946944438,"unit":"ns"},"median":{"estimate":28638953.104166664,"lower_bound":27910176.4125,"upper_bound":29770247.111111112,"unit":"ns"},"median_abs_dev":{"estimate":1273800.631823022,"lower_bound":96328.81982982214,"upper_bound":2363961.3322625463,"unit":"ns"},"slope":{"estimate":29126003.48961039,"lower_bound":28148975.31030151,"upper_bound":30248178.74415888,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[92813417.0,194259208.0,279213708.0,367430417.0,466010375.0,593858208.0,659313500.0,751084250.0,868469834.0,917958750.0],"unit":"ns","throughput":[],"typical":{"estimate":7253062.9878121875,"lower_bound":7125709.593943154,"upper_bound":7399829.215684318,"unit":"ns"},"mean":{"estimate":7257046.165995116,"lower_bound":7155650.3704739,"upper_bound":7371549.0647802185,"unit":"ns"},"median":{"estimate":7195677.163461538,"lower_bound":7112647.701923077,"upper_bound":7422819.094017094,"unit":"ns"},"median_abs_dev":{"estimate":137801.1098996945,"lower_bound":22162.474637307874,"upper_bound":282802.4982510466,"unit":"ns"},"slope":{"estimate":7253062.9878121875,"lower_bound":7125709.593943154,"upper_bound":7399829.215684318,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[92474667.0,173575042.0,281669125.0,382738666.0,438093250.0,541790959.0,635199333.0,719224500.0,805217708.0,966360208.0],"unit":"ns","throughput":[],"typical":{"estimate":45931885.16493507,"lower_bound":44806245.50702576,"upper_bound":47285197.605321504,"unit":"ns"},"mean":{"estimate":45675209.26896825,"lower_bound":44740649.549732134,"upper_bound":46663813.46565873,"unit":"ns"},"median":{"estimate":45260313.75595238,"lower_bound":44380428.125,"upper_bound":47039833.375,"unit":"ns"},"median_abs_dev":{"estimate":1799882.669095695,"lower_bound":311234.5611994796,"upper_bound":2793637.267269686,"unit":"ns"},"slope":{"estimate":45931885.16493507,"lower_bound":44806245.50702576,"upper_bound":47285197.605321504,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_1000000","iteration_count":[88,176,264,352,440,528,616,704,792,880],"measured_values":[93749958.0,184984875.0,281166958.0,362270208.0,512087542.0,561191292.0,827914709.0,815666000.0,822880458.0,890974750.0],"unit":"ns","throughput":[],"typical":{"estimate":1101543.3725206612,"lower_bound":1034912.4051860616,"upper_bound":1205416.9947179668,"unit":"ns"},"mean":{"estimate":1099138.720557359,"lower_bound":1049267.1730776515,"upper_bound":1164968.0816040314,"unit":"ns"},"median":{"estimate":1063944.3257575757,"lower_bound":1038990.4772727273,"upper_bound":1158616.4772727273,"unit":"ns"},"median_abs_dev":{"estimate":44271.507852659845,"lower_bound":2069.8668087072624,"upper_bound":140128.1049895016,"unit":"ns"},"slope":{"estimate":1101543.3725206612,"lower_bound":1034912.4051860616,"upper_bound":1205416.9947179668,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[131154459.0,222742625.0,365286083.0,419153167.0,576540875.0,664308542.0,761423708.0,875368375.0,1001167333.0,1088288375.0],"unit":"ns","throughput":[],"typical":{"estimate":27561018.802597404,"lower_bound":27264960.534222737,"upper_bound":28024281.66847826,"unit":"ns"},"mean":{"estimate":28334196.770783734,"lower_bound":27345842.02326389,"upper_bound":29561332.82165179,"unit":"ns"},"median":{"estimate":27744863.138888888,"lower_bound":27207209.375,"upper_bound":29141667.520833336,"unit":"ns"},"median_abs_dev":{"estimate":807137.0963996167,"lower_bound":119762.84068315876,"upper_bound":2655258.283934746,"unit":"ns"},"slope":{"estimate":27561018.802597404,"lower_bound":27264960.534222737,"upper_bound":28024281.66847826,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_1000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[84929416.0,177442541.0,274809666.0,350006166.0,475346208.0,555462041.0,597846625.0,735223833.0,791170166.0,930584083.0],"unit":"ns","throughput":[],"typical":{"estimate":6966405.756043956,"lower_bound":6774955.327228327,"upper_bound":7131233.651123213,"unit":"ns"},"mean":{"estimate":6912904.175344934,"lower_bound":6757456.205822956,"upper_bound":7067377.960238094,"unit":"ns"},"median":{"estimate":6935557.403846154,"lower_bound":6665940.651404152,"upper_bound":7121308.217948718,"unit":"ns"},"median_abs_dev":{"estimate":289418.6449848687,"lower_bound":54427.923141402905,"upper_bound":431533.53727182467,"unit":"ns"},"slope":{"estimate":6966405.756043956,"lower_bound":6774955.327228327,"upper_bound":7131233.651123213,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_1000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[77410833.0,249309708.0,304418875.0,400968833.0,455950292.0,545112209.0,694365375.0,709511291.0,881444042.0,945704333.0],"unit":"ns","throughput":[],"typical":{"estimate":47493863.09220779,"lower_bound":45947605.71757925,"upper_bound":49065778.8252149,"unit":"ns"},"mean":{"estimate":48310778.59759921,"lower_bound":44987640.03158135,"upper_bound":52167342.39940476,"unit":"ns"},"median":{"estimate":48127165.04722223,"lower_bound":44969742.44375,"upper_bound":50167002.97619048,"unit":"ns"},"median_abs_dev":{"estimate":3811356.7926248866,"lower_bound":844305.3850105827,"upper_bound":8549763.713607596,"unit":"ns"},"slope":{"estimate":47493863.09220779,"lower_bound":45947605.71757925,"upper_bound":49065778.8252149,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_1000000","iteration_count":[86,172,258,344,430,516,602,688,774,860],"measured_values":[101359042.0,201853792.0,297428834.0,485602500.0,537194500.0,622815375.0,689682875.0,709048125.0,766008041.0,875302792.0],"unit":"ns","throughput":[],"typical":{"estimate":1084563.373361522,"lower_bound":1031417.1866606337,"upper_bound":1192753.201285041,"unit":"ns"},"mean":{"estimate":1155663.2494735143,"lower_bound":1085438.2742671994,"upper_bound":1231580.6100775194,"unit":"ns"},"median":{"estimate":1163196.7480620155,"lower_bound":1030593.2049418605,"upper_bound":1213941.5232558139,"unit":"ns"},"median_abs_dev":{"estimate":96296.78044213471,"lower_bound":19102.243302727824,"upper_bound":225188.3446721947,"unit":"ns"},"slope":{"estimate":1084563.373361522,"lower_bound":1031417.1866606337,"upper_bound":1192753.201285041,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_1000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103119625.0,214301458.0,322408792.0,455553042.0,550797875.0,670121541.0,810212708.0,929354084.0,1046133875.0,1077071875.0],"unit":"ns","throughput":[],"typical":{"estimate":28174107.116233766,"lower_bound":27357734.784810126,"upper_bound":28855961.063815776,"unit":"ns"},"mean":{"estimate":27733323.203174602,"lower_bound":27060578.493452378,"upper_bound":28388469.45535714,"unit":"ns"},"median":{"estimate":27730812.3125,"lower_bound":26857239.5625,"upper_bound":28936168.14285714,"unit":"ns"},"median_abs_dev":{"estimate":1339190.3330121199,"lower_bound":103125.66968165338,"upper_bound":1995697.3386067897,"unit":"ns"},"slope":{"estimate":28174107.116233766,"lower_bound":27357734.784810126,"upper_bound":28855961.063815776,"unit":"ns"},"change":null} {"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/1000000","ORE/ore_decrypt/range_gt_10/1000000","ORE/ore/range_gt_100/1000000","ORE/ore_decrypt/range_gt_100/1000000","ORE/ore/range_lt_10/1000000","ORE/ore_decrypt/range_lt_10/1000000","ORE/ore/range_lt_100/1000000","ORE/ore_decrypt/range_lt_100/1000000","ORE/ore/range_lt_hybrid_ordered_10/1000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} diff --git a/results/query/ore_rows_10000000.json b/results/query/ore_rows_10000000.json new file mode 100644 index 0000000..fc52b5f --- /dev/null +++ b/results/query/ore_rows_10000000.json @@ -0,0 +1,11 @@ +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_10_10000000","iteration_count":[60,120,180,240,300,360,420,480,540,600],"measured_values":[93057083.0,180015208.0,250905916.0,344142959.0,442850875.0,546129375.0,625415791.0,701323709.0,808558541.0,897277667.0],"unit":"ns","throughput":[],"typical":{"estimate":1485355.4742857143,"lower_bound":1466886.368034826,"upper_bound":1496822.1216535433,"unit":"ns"},"mean":{"estimate":1481509.4179953705,"lower_bound":1454600.082797801,"upper_bound":1506507.5895555555,"unit":"ns"},"median":{"estimate":1492273.9975,"lower_bound":1455049.2895833333,"upper_bound":1507178.336574074,"unit":"ns"},"median_abs_dev":{"estimate":30286.892024800298,"lower_bound":4145.500531958299,"upper_bound":75936.77549095008,"unit":"ns"},"slope":{"estimate":1485355.4742857143,"lower_bound":1466886.368034826,"upper_bound":1496822.1216535433,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_10_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[75428250.0,164576292.0,245010125.0,365139417.0,464936667.0,531030334.0,593387416.0,678872542.0,794605042.0,860920334.0],"unit":"ns","throughput":[],"typical":{"estimate":28966558.5991342,"lower_bound":28497056.262593783,"upper_bound":29566331.42696629,"unit":"ns"},"mean":{"estimate":28539128.73671957,"lower_bound":27503537.155246694,"upper_bound":29503504.561666667,"unit":"ns"},"median":{"estimate":28491850.191666666,"lower_bound":27429382.0,"upper_bound":29929050.560185187,"unit":"ns"},"median_abs_dev":{"estimate":1536198.351360362,"lower_bound":326765.6625387483,"upper_bound":2931517.860503491,"unit":"ns"},"slope":{"estimate":28966558.5991342,"lower_bound":28497056.262593783,"upper_bound":29566331.42696629,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_gt_100_10000000","iteration_count":[13,26,39,52,65,78,91,104,117,130],"measured_values":[103680458.0,175957541.0,256530292.0,373167708.0,448801292.0,536014833.0,655899666.0,755978042.0,856662500.0,959280625.0],"unit":"ns","throughput":[],"typical":{"estimate":7216751.938861139,"lower_bound":7027653.35399198,"upper_bound":7309850.539790757,"unit":"ns"},"mean":{"estimate":7145133.146086691,"lower_bound":6926444.181452991,"upper_bound":7387918.803247864,"unit":"ns"},"median":{"estimate":7191995.357142857,"lower_bound":6836116.496153846,"upper_bound":7324050.682692308,"unit":"ns"},"median_abs_dev":{"estimate":351707.16139671893,"lower_bound":68731.52429707942,"upper_bound":661897.5110066627,"unit":"ns"},"slope":{"estimate":7216751.938861139,"lower_bound":7027653.35399198,"upper_bound":7309850.539790757,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_gt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_gt_100_10000000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[90249791.0,169959792.0,266960167.0,315666375.0,436542541.0,526580792.0,595945667.0,730798417.0,769599958.0,882890708.0],"unit":"ns","throughput":[],"typical":{"estimate":43648346.15584416,"lower_bound":42624888.63959391,"upper_bound":44561363.42415502,"unit":"ns"},"mean":{"estimate":43424502.563591264,"lower_bound":42317136.37061755,"upper_bound":44371324.12652777,"unit":"ns"},"median":{"estimate":43767993.38333333,"lower_bound":42567547.64285714,"upper_bound":44634715.45,"unit":"ns"},"median_abs_dev":{"estimate":1640412.2897235258,"lower_bound":254417.76196652112,"upper_bound":2654151.157699401,"unit":"ns"},"slope":{"estimate":43648346.15584416,"lower_bound":42624888.63959391,"upper_bound":44561363.42415502,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_10_10000000","iteration_count":[81,162,243,324,405,486,567,648,729,810],"measured_values":[88181958.0,179394875.0,273148250.0,360669167.0,475564667.0,531925584.0,631736500.0,669595167.0,822515875.0,923388833.0],"unit":"ns","throughput":[],"typical":{"estimate":1112519.4165784833,"lower_bound":1075761.2350186964,"upper_bound":1137282.7214308463,"unit":"ns"},"mean":{"estimate":1111778.1539481678,"lower_bound":1089410.1171364272,"upper_bound":1132447.7890666274,"unit":"ns"},"median":{"estimate":1113675.0813492064,"lower_bound":1094497.086419753,"upper_bound":1132026.543004115,"unit":"ns"},"median_abs_dev":{"estimate":25043.024258689726,"lower_bound":5039.320049423339,"upper_bound":59108.78445949817,"unit":"ns"},"slope":{"estimate":1112519.4165784833,"lower_bound":1075761.2350186964,"upper_bound":1137282.7214308463,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[103979541.0,213906750.0,377848500.0,454448000.0,567987167.0,638137875.0,796359292.0,902865708.0,1018485250.0,1167993125.0],"unit":"ns","throughput":[],"typical":{"estimate":28438722.61948052,"lower_bound":27798528.45319483,"upper_bound":28939183.93674699,"unit":"ns"},"mean":{"estimate":28175908.22051587,"lower_bound":27309917.214960318,"upper_bound":29132973.92135714,"unit":"ns"},"median":{"estimate":28345307.64722222,"lower_bound":26738343.75,"upper_bound":28801414.0625,"unit":"ns"},"median_abs_dev":{"estimate":730384.1592080891,"lower_bound":33867.465388731274,"upper_bound":2603785.843420225,"unit":"ns"},"slope":{"estimate":28438722.61948052,"lower_bound":27798528.45319483,"upper_bound":28939183.93674699,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_100_10000000","iteration_count":[14,28,42,56,70,84,98,112,126,140],"measured_values":[92913084.0,198131834.0,281854375.0,389918000.0,464882084.0,575317750.0,675451417.0,738177542.0,834382625.0,944537584.0],"unit":"ns","throughput":[],"typical":{"estimate":6727111.042115028,"lower_bound":6651963.278069026,"upper_bound":6828045.856357927,"unit":"ns"},"mean":{"estimate":6772863.279121315,"lower_bound":6681020.170090562,"upper_bound":6873388.7671428565,"unit":"ns"},"median":{"estimate":6728757.740476191,"lower_bound":6631628.4769841265,"upper_bound":6905921.130952381,"unit":"ns"},"median_abs_dev":{"estimate":168228.0303466884,"lower_bound":21593.374383307593,"upper_bound":272465.59684848203,"unit":"ns"},"slope":{"estimate":6727111.042115028,"lower_bound":6651963.278069026,"upper_bound":6828045.856357927,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_100/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_100_10000000","iteration_count":[3,6,9,12,15,18,21,24,27,30],"measured_values":[137563792.0,278808209.0,427574625.0,507106875.0,696746916.0,772894208.0,942305708.0,1114533209.0,1220100667.0,1383319041.0],"unit":"ns","throughput":[],"typical":{"estimate":45414660.9991342,"lower_bound":44427567.61125508,"upper_bound":46089598.73966866,"unit":"ns"},"mean":{"estimate":45408832.39763227,"lower_bound":44374597.395583004,"upper_bound":46313078.0019861,"unit":"ns"},"median":{"estimate":45982616.016666666,"lower_bound":44063740.35185185,"upper_bound":46453459.270833336,"unit":"ns"},"median_abs_dev":{"estimate":948212.5589269772,"lower_bound":29697.82416775528,"upper_bound":2616394.376033049,"unit":"ns"},"slope":{"estimate":45414660.9991342,"lower_bound":44427567.61125508,"upper_bound":46089598.73966866,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_range_lt_hybrid_ordered_10_10000000","iteration_count":[87,174,261,348,435,522,609,696,783,870],"measured_values":[88961250.0,178517416.0,256108709.0,373768916.0,449121125.0,529829875.0,623717166.0,702315041.0,820920042.0,862088792.0],"unit":"ns","throughput":[],"typical":{"estimate":1018889.1337811614,"lower_bound":1001653.8062299809,"upper_bound":1039685.7403623292,"unit":"ns"},"mean":{"estimate":1022385.0694759168,"lower_bound":1007245.9686512384,"upper_bound":1038338.358270936,"unit":"ns"},"median":{"estimate":1023354.6108374384,"lower_bound":1002953.2090038315,"upper_bound":1037195.6666666667,"unit":"ns"},"median_abs_dev":{"estimate":17338.28136847702,"lower_bound":2662.8128492774063,"upper_bound":45829.27725231603,"unit":"ns"},"slope":{"estimate":1018889.1337811614,"lower_bound":1001653.8062299809,"upper_bound":1039685.7403623292,"unit":"ns"},"change":null} +{"reason":"benchmark-complete","id":"ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE/ore_decrypt_range_lt_hybrid_ordered_10_10000000","iteration_count":[4,8,12,16,20,24,28,32,36,40],"measured_values":[110380375.0,205210083.0,305144750.0,430175916.0,529705959.0,668966375.0,788820042.0,947462542.0,993732958.0,1081509875.0],"unit":"ns","throughput":[],"typical":{"estimate":27713897.72857143,"lower_bound":27017858.947144322,"upper_bound":28538542.58118362,"unit":"ns"},"mean":{"estimate":27234176.389742065,"lower_bound":26529611.893965278,"upper_bound":27976908.423075397,"unit":"ns"},"median":{"estimate":27316420.3125,"lower_bound":26268627.5625,"upper_bound":27887918.817460317,"unit":"ns"},"median_abs_dev":{"estimate":1029147.5192064788,"lower_bound":212830.73710066086,"upper_bound":2221912.3252181667,"unit":"ns"},"slope":{"estimate":27713897.72857143,"lower_bound":27017858.947144322,"upper_bound":28538542.58118362,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"ORE","benchmarks":["ORE/ore/range_gt_10/10000000","ORE/ore_decrypt/range_gt_10/10000000","ORE/ore/range_gt_100/10000000","ORE/ore_decrypt/range_gt_100/10000000","ORE/ore/range_lt_10/10000000","ORE/ore_decrypt/range_lt_10/10000000","ORE/ore/range_lt_100/10000000","ORE/ore_decrypt/range_lt_100/10000000","ORE/ore/range_lt_hybrid_ordered_10/10000000","ORE/ore_decrypt/range_lt_hybrid_ordered_10/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/ORE"} From b6b4694c841d805569970867ae8c74150b2d5696 Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Fri, 15 May 2026 15:12:06 +1000 Subject: [PATCH 12/30] bench(group_by): isolate aggregation cost from emit cost via subquery wrapper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The bench's `hmac_extractor` scenario was SELECT count(*) FROM tbl GROUP BY eql_v2.hmac_256(value) against `string_encrypted_*`. The test data is generated by `encrypt_string` with `fake::faker::name::Name`, which yields effectively-unique rows (1-15% collision rate across the bench ladder). So the bare GROUP BY emits ~one row per input row, and wall-clock time was bottlenecked by result emission — server-side row construction, network round-trip, sqlx deserialisation, and the bench's own iter-and-sum loop — rather than the per-row hash extraction and HashAggregate insert the recipe is actually about. Wrap the GROUP BY in `count(*)` so the inner aggregation stays identical but the outer query emits exactly one row regardless of cardinality: SELECT count(*) FROM (SELECT 1 FROM tbl GROUP BY eql_v2.hmac_256(value)) g Plan choice is unchanged (HashAggregate on the inner; trivial aggregate on the outer). The scenario is renamed `count_groups` to signal that the measurement objective has shifted — we're now counting distinct groups, not benching a `SELECT col, count(*) ...` shape that materialises the full result. Numbers across the ladder (median, before → after): 10k 9.88 ms → 5.49 ms (−44%) 100k 93.26 ms → 63.85 ms (−32%) 1M 935.59 ms → 792.58 ms (−15%) 10M 11,401.58 ms → 10,989.93 ms (−4%) The delta shrinks with scale — at 10k emit was ~45% of wall-clock; by 10M the hash-table maintenance dominates and emit is in the noise. The new shape gives an honest measurement of aggregation cost at every tier. Companion change in `report_benchmarks.py`: `sql_map["GROUP_BY"]` and `descriptions["GROUP_BY"]` updated to the new key/SQL/description. Regenerated report + chart; stale `report/query_group_by_hmac_extractor_chart.png` removed. The EQL query-performance guide's §5 table (29s / 780ms / 80ms at 100k) deliberately untouched — those numbers measure the *recipe* cost a caller would experience including emit, which is the right thing for the guide. The bench targets a different measurement objective (isolated aggregation cost) so the two don't need to track numerically. --- benches/group_by.rs | 38 ++++++++++++------ report/BENCHMARK_REPORT.md | 18 ++++----- report/query_group_by_count_groups_chart.png | Bin 0 -> 40248 bytes .../query_group_by_hmac_extractor_chart.png | Bin 41328 -> 0 bytes report_benchmarks.py | 34 ++++++++++------ results/query/group_by_rows_10000.json | 4 +- results/query/group_by_rows_100000.json | 4 +- results/query/group_by_rows_1000000.json | 4 +- results/query/group_by_rows_10000000.json | 4 +- 9 files changed, 65 insertions(+), 41 deletions(-) create mode 100644 report/query_group_by_count_groups_chart.png delete mode 100644 report/query_group_by_hmac_extractor_chart.png diff --git a/benches/group_by.rs b/benches/group_by.rs index 1349382..fd2079f 100644 --- a/benches/group_by.rs +++ b/benches/group_by.rs @@ -10,20 +10,34 @@ use tokio::runtime::Runtime; // fits comfortably in `work_mem`. `HashAggregate` engages on every // deployment without `work_mem` tuning. // -// The natural form (`GROUP BY value`) was removed from this bench -// deliberately. Its plan choice degrades pathologically with row count: -// the planner estimates the hash table against the full ~1-2 KB encrypted -// payload, decides it won't fit in the default `work_mem = 4 MB`, and -// falls back to `GroupAggregate` + sort. At 100k rows that's ~29 s vs the -// extractor's ~80 ms; at 1M rows the natural form's sort runs for -// minutes regardless of how `hash_encrypted` is implemented. Benching the -// natural form measured the planner's cost model, not anything EQL -// controls — and recommended practice is the extractor form anyway. See -// `docs/reference/query-performance.md` §5 in the EQL repo. +// The bench wraps the GROUP BY in a `count(*)` subquery: +// +// SELECT count(*) FROM (SELECT 1 FROM tbl GROUP BY eql_v2.hmac_256(value)) g +// +// rather than running the bare `SELECT count(*) FROM tbl GROUP BY ...` form. +// The bench tables are populated by `encrypt_string` with `fake` random +// English names — effectively unique per row at high cardinality — so the +// bare-GROUP BY shape emitted ~as many rows as the table size. Wall-clock +// time was then dominated by result emission (server-side row construction, +// network round-trip, sqlx deserialisation, the bench's iter-and-sum loop), +// not by the per-row hash extraction or HashAggregate insert that the +// recipe is actually about. Wrapping in `count(*)` keeps the inner +// HashAggregate work identical (scan + hash + group) but emits a single row, +// so the bench measures aggregation cost rather than emission cost. +// +// The natural form (`GROUP BY value` directly on `eql_v2_encrypted`) was +// dropped from this bench in an earlier pass. The planner estimates the +// hash table against the full ~1-2 KB encrypted payload, decides it won't +// fit in the default `work_mem = 4 MB`, and falls back to `GroupAggregate` +// + sort. At 100k rows that's ~29 s vs the extractor's tens of ms. The +// natural form measured the planner's cost model, not EQL — and recommended +// practice is the extractor form anyway. See §5 of +// `docs/reference/query-performance.md` in the EQL repo. static QUERY_TEMPLATES: &[(&str, &str)] = &[ ( - "SELECT count(*) FROM {TABLE} GROUP BY eql_v2.hmac_256(value)", - "hmac_extractor", + "SELECT count(*) FROM \ + (SELECT 1 FROM {TABLE} GROUP BY eql_v2.hmac_256(value)) g", + "count_groups", ), ]; diff --git a/report/BENCHMARK_REPORT.md b/report/BENCHMARK_REPORT.md index 74579a5..bf732b4 100644 --- a/report/BENCHMARK_REPORT.md +++ b/report/BENCHMARK_REPORT.md @@ -167,16 +167,16 @@ ON string_encrypted_10000 USING GIN ( ### GROUP_BY Queries -#### hmac_extractor +#### count_groups -**Description:** GROUP BY in extractor form on `eql_v2.hmac_256(value)` +**Description:** GROUP BY in extractor form on `eql_v2.hmac_256(value)`, wrapped in `count(*)` to isolate aggregation cost from emit cost **SQL Query:** ```sql -SELECT count(*) FROM {TABLE} GROUP BY eql_v2.hmac_256(value) +SELECT count(*) FROM (SELECT 1 FROM {TABLE} GROUP BY eql_v2.hmac_256(value)) g ``` -**Table: `string_encrypted_{rows}` with encrypted string values (carrying an `hm` HMAC term, configured via the `unique` search index). Index: no index drives `GROUP BY` directly — hash aggregation is in-memory. Query: `GROUP BY eql_v2.hmac_256(value)`. The extractor's 32-byte HMAC group key fits in default `work_mem`, so the planner picks `HashAggregate` reliably across deployments. Natural-form `GROUP BY value` against an encrypted column has been removed from this bench because the planner estimates the hash table against the full ~1-2 KB ciphertext payload, exceeds default `work_mem`, and falls back to GroupAggregate + Sort — see §5 of the EQL query-performance guide.** +**Table: `string_encrypted_{rows}` with encrypted string values (carrying an `hm` HMAC term, configured via the `unique` search index). Index: no index drives `GROUP BY` directly — hash aggregation is in-memory. The extractor's 32-byte HMAC group key fits in default `work_mem`, so the planner picks `HashAggregate` reliably across deployments. **Why the subquery wrapper.** The bench data is `fake::name::Name` — effectively unique per row, so a bare `SELECT count(*) FROM tbl GROUP BY eql_v2.hmac_256(value)` emits ~one row per input row. Wall-clock time on that shape is dominated by result emission (server-side row construction, network round-trip, sqlx deserialisation, bench iter-and-sum), not by the aggregation work the recipe is actually about. Wrapping the GROUP BY in `count(*)` keeps the inner HashAggregate identical but emits a single row, so the bench measures aggregation cost. Natural-form `GROUP BY value` against an encrypted column was removed from this bench in an earlier pass because the planner picks `GroupAggregate` + sort against the full ~1-2 KB ciphertext payload at scale — see §5 of the EQL query-performance guide.** **Indexes:** ```sql @@ -197,12 +197,12 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|-------------------------|---------------------------| -| 10,000 | 9.94ms | N/A | -| 100,000 | 96.16ms | N/A | -| 1,000,000 | ⚠️ 933.17ms | N/A | -| 10,000,000 | ⚠️ 11.466s | N/A | +| 10,000 | 5.38ms | N/A | +| 100,000 | 63.34ms | N/A | +| 1,000,000 | ⚠️ 792.58ms | N/A | +| 10,000,000 | ⚠️ 10.990s | N/A | -![Query Performance - GROUP_BY/hmac_extractor](query_group_by_hmac_extractor_chart.png) +![Query Performance - GROUP_BY/count_groups](query_group_by_count_groups_chart.png) ### MATCH Queries diff --git a/report/query_group_by_count_groups_chart.png b/report/query_group_by_count_groups_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..234a47f07800ff3bafcc997fe4fcfdb7ab1ca92f GIT binary patch literal 40248 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 XB>sWKGiV55Fp^?&w^K#$Kl#4^&RG+h literal 0 HcmV?d00001 diff --git a/report/query_group_by_hmac_extractor_chart.png b/report/query_group_by_hmac_extractor_chart.png deleted file mode 100644 index 8b0d6b1660617d9eae4643ab03b6fd22b7b72b21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41328 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 diff --git a/report_benchmarks.py b/report_benchmarks.py index 4233352..4dbca99 100755 --- a/report_benchmarks.py +++ b/report_benchmarks.py @@ -220,8 +220,9 @@ def get_query_sql_and_param(self, query_type: str, query_name: str) -> Tuple[str ) }, "GROUP_BY": { - "hmac_extractor": ( - "SELECT count(*) FROM {TABLE} GROUP BY eql_v2.hmac_256(value)", + "count_groups": ( + "SELECT count(*) FROM " + "(SELECT 1 FROM {TABLE} GROUP BY eql_v2.hmac_256(value)) g", "" ) }, @@ -322,18 +323,27 @@ def get_query_description(self, query_type: str, query_name: str) -> Tuple[str, ) }, "GROUP_BY": { - "hmac_extractor": ( - "GROUP BY in extractor form on `eql_v2.hmac_256(value)`", + "count_groups": ( + "GROUP BY in extractor form on `eql_v2.hmac_256(value)`, " + "wrapped in `count(*)` to isolate aggregation cost from emit cost", "Table: `string_encrypted_{rows}` with encrypted string values " "(carrying an `hm` HMAC term, configured via the `unique` search index). " - "Index: no index drives `GROUP BY` directly — hash aggregation is in-memory. " - "Query: `GROUP BY eql_v2.hmac_256(value)`. The extractor's 32-byte HMAC " - "group key fits in default `work_mem`, so the planner picks `HashAggregate` " - "reliably across deployments. Natural-form `GROUP BY value` against an " - "encrypted column has been removed from this bench because the planner " - "estimates the hash table against the full ~1-2 KB ciphertext payload, " - "exceeds default `work_mem`, and falls back to GroupAggregate + Sort — " - "see §5 of the EQL query-performance guide." + "Index: no index drives `GROUP BY` directly — hash aggregation is " + "in-memory. The extractor's 32-byte HMAC group key fits in default " + "`work_mem`, so the planner picks `HashAggregate` reliably across " + "deployments. **Why the subquery wrapper.** The bench data is " + "`fake::name::Name` — effectively unique per row, so a bare " + "`SELECT count(*) FROM tbl GROUP BY eql_v2.hmac_256(value)` emits ~one " + "row per input row. Wall-clock time on that shape is dominated by result " + "emission (server-side row construction, network round-trip, sqlx " + "deserialisation, bench iter-and-sum), not by the aggregation work the " + "recipe is actually about. Wrapping the GROUP BY in `count(*)` keeps the " + "inner HashAggregate identical but emits a single row, so the bench " + "measures aggregation cost. Natural-form `GROUP BY value` against an " + "encrypted column was removed from this bench in an earlier pass " + "because the planner picks `GroupAggregate` + sort against the full " + "~1-2 KB ciphertext payload at scale — see §5 of the EQL " + "query-performance guide." ) }, "JSON": { diff --git a/results/query/group_by_rows_10000.json b/results/query/group_by_rows_10000.json index 9960633..6bf775e 100644 --- a/results/query/group_by_rows_10000.json +++ b/results/query/group_by_rows_10000.json @@ -1,2 +1,2 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_10000","iteration_count":[10,20,30,40,50,60,70,80,90,100],"measured_values":[87169500.0,219019791.0,315418375.0,402366084.0,530661625.0,658165125.0,679004708.0,719994625.0,849603250.0,948377750.0],"unit":"ns","throughput":[],"typical":{"estimate":9695175.097142857,"lower_bound":9388309.56969697,"upper_bound":10258688.41927711,"unit":"ns"},"mean":{"estimate":9944750.24140873,"lower_bound":9474180.57640873,"upper_bound":10408340.803888889,"unit":"ns"},"median":{"estimate":9879609.67857143,"lower_bound":9241855.15625,"upper_bound":10613232.5,"unit":"ns"},"median_abs_dev":{"estimate":1014067.9710466943,"lower_bound":192761.08513113906,"upper_bound":1338048.4724598909,"unit":"ns"},"slope":{"estimate":9695175.097142857,"lower_bound":9388309.56969697,"upper_bound":10258688.41927711,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/hmac_extractor/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups/10000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_10000","iteration_count":[17,34,51,68,85,102,119,136,153,170],"measured_values":[92425208.0,194063708.0,250885417.0,340870875.0,445095209.0,519002667.0,651493083.0,776053541.0,861498709.0,947325250.0],"unit":"ns","throughput":[],"typical":{"estimate":5489962.599236058,"lower_bound":5283551.123289867,"upper_bound":5596929.341070163,"unit":"ns"},"mean":{"estimate":5378555.742439309,"lower_bound":5201599.384950981,"upper_bound":5544163.079192344,"unit":"ns"},"median":{"estimate":5455754.365546219,"lower_bound":5088261.44117647,"upper_bound":5639388.75367647,"unit":"ns"},"median_abs_dev":{"estimate":348308.5559676105,"lower_bound":58211.0871736547,"upper_bound":480048.9654768387,"unit":"ns"},"slope":{"estimate":5489962.599236058,"lower_bound":5283551.123289867,"upper_bound":5596929.341070163,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups/10000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_100000.json b/results/query/group_by_rows_100000.json index c4d307b..5c10574 100644 --- a/results/query/group_by_rows_100000.json +++ b/results/query/group_by_rows_100000.json @@ -1,2 +1,2 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_100000","iteration_count":[1,2,3,4,5,6,7,8,9,10],"measured_values":[103863333.0,206231125.0,343631625.0,359709375.0,492998292.0,576530667.0,609772708.0,714324375.0,813800375.0,886064166.0],"unit":"ns","throughput":[],"typical":{"estimate":91111902.36623377,"lower_bound":89245310.38809524,"upper_bound":95071526.7756172,"unit":"ns"},"mean":{"estimate":96156783.13710317,"lower_bound":91334633.85710318,"upper_bound":101586440.94960317,"unit":"ns"},"median":{"estimate":93255354.19444445,"lower_bound":89266880.175,"upper_bound":103115562.5,"unit":"ns"},"median_abs_dev":{"estimate":7407990.014821895,"lower_bound":944115.0301136076,"upper_bound":15838328.82927512,"unit":"ns"},"slope":{"estimate":91111902.36623377,"lower_bound":89245310.38809524,"upper_bound":95071526.7756172,"unit":"ns"},"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/hmac_extractor/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups/100000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_100000","iteration_count":[2,4,6,8,10,12,14,16,18,20],"measured_values":[122680917.0,263723708.0,379049292.0,498431000.0,628223750.0,742064125.0,863380542.0,1035620083.0,1161070250.0,1301144000.0],"unit":"ns","throughput":[],"typical":{"estimate":63849610.93116883,"lower_bound":62467171.48183358,"upper_bound":64626040.50879397,"unit":"ns"},"mean":{"estimate":63336859.12628968,"lower_bound":62421029.765178576,"upper_bound":64303184.73402778,"unit":"ns"},"median":{"estimate":62998628.5,"lower_bound":61838677.083333336,"upper_bound":64780551.38888889,"unit":"ns"},"median_abs_dev":{"estimate":2100743.392971013,"lower_bound":384364.04317617416,"upper_bound":2570606.223229279,"unit":"ns"},"slope":{"estimate":63849610.93116883,"lower_bound":62467171.48183358,"upper_bound":64626040.50879397,"unit":"ns"},"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups/100000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_1000000.json b/results/query/group_by_rows_1000000.json index a4a07ec..53bac11 100644 --- a/results/query/group_by_rows_1000000.json +++ b/results/query/group_by_rows_1000000.json @@ -1,2 +1,2 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[938948125.0,911073500.0,936058750.0,950635000.0,980270667.0,930944042.0,910133041.0,935123375.0,895726375.0,942760792.0],"unit":"ns","throughput":[],"typical":{"estimate":933167366.7,"lower_bound":919473758.4,"upper_bound":947264791.7,"unit":"ns"},"mean":{"estimate":933167366.7,"lower_bound":919473758.4,"upper_bound":947264791.7,"unit":"ns"},"median":{"estimate":935591062.5,"lower_bound":911073500.0,"upper_bound":944791562.5,"unit":"ns"},"median_abs_dev":{"estimate":16466991.054752469,"lower_bound":2835287.1246635914,"upper_bound":42011354.63874936,"unit":"ns"},"slope":null,"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/hmac_extractor/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups/1000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_1000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[778493709.0,806914208.0,792225542.0,800485833.0,772279042.0,777750792.0,782215917.0,795327666.0,804902875.0,815161708.0],"unit":"ns","throughput":[],"typical":{"estimate":792575729.2,"lower_bound":784109391.5725,"upper_bound":801025299.9,"unit":"ns"},"mean":{"estimate":792575729.2,"lower_bound":784109391.5725,"upper_bound":801025299.9,"unit":"ns"},"median":{"estimate":793776604.0,"lower_bound":778493709.0,"upper_bound":804902875.0,"unit":"ns"},"median_abs_dev":{"estimate":18308842.793253064,"lower_bound":3309997.1037358046,"upper_bound":24237976.547589898,"unit":"ns"},"slope":null,"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups/1000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} diff --git a/results/query/group_by_rows_10000000.json b/results/query/group_by_rows_10000000.json index 2059b57..3d5187b 100644 --- a/results/query/group_by_rows_10000000.json +++ b/results/query/group_by_rows_10000000.json @@ -1,2 +1,2 @@ -{"reason":"benchmark-complete","id":"GROUP_BY/group_by/hmac_extractor/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_hmac_extractor_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[11407403875.0,11302651917.0,11717696792.0,12656201500.0,11666655875.0,11015182875.0,11191424209.0,11589390625.0,10718920792.0,11395754417.0],"unit":"ns","throughput":[],"typical":{"estimate":11466128287.7,"lower_bound":11185653455.09,"upper_bound":11794277590.2375,"unit":"ns"},"mean":{"estimate":11466128287.7,"lower_bound":11185653455.09,"upper_bound":11794277590.2375,"unit":"ns"},"median":{"estimate":11401579146.0,"lower_bound":11158917396.0,"upper_bound":11666655875.0,"unit":"ns"},"median_abs_dev":{"estimate":352289227.75141597,"lower_bound":77652625.08679032,"upper_bound":740392635.6554031,"unit":"ns"},"slope":null,"change":null} -{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/hmac_extractor/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} +{"reason":"benchmark-complete","id":"GROUP_BY/group_by/count_groups/10000000","report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY/group_by_count_groups_10000000","iteration_count":[1,1,1,1,1,1,1,1,1,1],"measured_values":[11410915250.0,11111635708.0,10972916042.0,10724915458.0,10976860250.0,11053467250.0,10954192583.0,11017035250.0,10620541459.0,11056557000.0],"unit":"ns","throughput":[],"typical":{"estimate":10989903625.0,"lower_bound":10863744679.3,"upper_bound":11116414249.725,"unit":"ns"},"mean":{"estimate":10989903625.0,"lower_bound":10863744679.3,"upper_bound":11116414249.725,"unit":"ns"},"median":{"estimate":10996947750.0,"lower_bound":10848915750.0,"upper_bound":11082551479.0,"unit":"ns"},"median_abs_dev":{"estimate":86086240.84666371,"lower_bound":16803541.24877751,"upper_bound":364048160.3205532,"unit":"ns"},"slope":null,"change":null} +{"reason":"group-complete","group_name":"GROUP_BY","benchmarks":["GROUP_BY/group_by/count_groups/10000000"],"report_directory":"/Users/dan/Projects/CipherStash/benches/target/criterion/reports/GROUP_BY"} From 7550efbde6805f576bf7fba0de746a2c1f3a584a Mon Sep 17 00:00:00 2001 From: Dan Draper Date: Fri, 15 May 2026 15:33:14 +1000 Subject: [PATCH 13/30] bench(group_by): add plaintext baseline alongside encrypted scenario MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a parallel `count_groups_plaintext` scenario that runs the same `SELECT count(*) FROM (SELECT 1 FROM tbl GROUP BY ) g` shape against a plain TEXT column. The wall-clock delta between this and `count_groups_encrypted` is the EQL recipe's overhead relative to a bare-PG aggregate on the same data size and cardinality. Numbers across the ladder (median, encrypted / plaintext / ratio): 10k 4.87 ms / 3.20 ms 1.52× 100k 66.08 ms / 32.60 ms 2.03× 1M 820.77 ms / 740.10 ms 1.11× (plaintext high variance: 549-905 ms CI; 1M sits near the HashAggregate work_mem threshold where the planner picks aren't fully stable) So EQL adds roughly a 1.5-2× factor over bare PG for small-to-mid tables where the comparison is clean. The 1M plaintext number is noisy enough that the 1.1× should be read as "the gap is no larger at 1M than at 100k", not as a sharper claim. 10M tier deliberately not run yet — would need to keep adding rows over potentially-flaky long sessions; we have enough signal from the lower tiers to validate the bench design. Plaintext data plumbing: * `sql/schema.sql` — four new `string_plaintext_` tables mirroring the encrypted variants. * `mise.toml` `[tasks."prepare:string_plaintext"]` — SQL-side populate via `INSERT … SELECT md5(random()::text || g::text) FROM generate_series`. No encryption-client dependency, so it finishes in tens of seconds even at 10M and doesn't compete with ZeroKMS TTLs. `[tasks."bench:query:group_by"]` now also chains `prepare:string_plaintext` before the criterion run. * `benches/group_by.rs` — `QUERY_TEMPLATES` gains a `base_table` field; the bench loop builds the per-scenario table name from `_`. Two scenarios: `count_groups_encrypted` (against `string_encrypted_*`), `count_groups_plaintext` (against `string_plaintext_*`). * `report_benchmarks.py` `sql_map["GROUP_BY"]` and `descriptions["GROUP_BY"]` updated with both scenarios. The `_write_query_subsection` table-name selector special-cases `count_groups_plaintext` to point at `string_plaintext_` (which has no functional EQL indexes, so the Indexes block is correctly omitted for that scenario). * Regenerated report sections + charts. Drops the now-stale `query_group_by_count_groups_chart.png` (replaced by per-scenario `_encrypted_chart.png` / `_plaintext_chart.png`). * Drops `results/query/group_by_rows_10000000.json` from the previous single-scenario run — stale once the scenario name changed. Will regenerate on the next full ladder pass. --- benches/group_by.rs | 74 ++++++++++-------- mise.toml | 60 ++++++++++++++ report/BENCHMARK_REPORT.md | 34 ++++++-- report/query_group_by_count_groups_chart.png | Bin 40248 -> 0 bytes ..._group_by_count_groups_encrypted_chart.png | Bin 0 -> 39812 bytes ..._group_by_count_groups_plaintext_chart.png | Bin 0 -> 43061 bytes report_benchmarks.py | 41 +++++++--- results/query/group_by_rows_10000.json | 5 +- results/query/group_by_rows_100000.json | 5 +- results/query/group_by_rows_1000000.json | 5 +- results/query/group_by_rows_10000000.json | 2 - sql/schema.sql | 23 ++++++ 12 files changed, 194 insertions(+), 55 deletions(-) delete mode 100644 report/query_group_by_count_groups_chart.png create mode 100644 report/query_group_by_count_groups_encrypted_chart.png create mode 100644 report/query_group_by_count_groups_plaintext_chart.png delete mode 100644 results/query/group_by_rows_10000000.json diff --git a/benches/group_by.rs b/benches/group_by.rs index fd2079f..101ac37 100644 --- a/benches/group_by.rs +++ b/benches/group_by.rs @@ -3,41 +3,53 @@ use sqlx::postgres::PgPoolOptions; use sqlx::Row; use tokio::runtime::Runtime; -// The canonical `GROUP BY` recipe on an encrypted column is the extractor -// form: `GROUP BY eql_v2.hmac_256(value)`. The body of `eql_v2.hmac_256` is -// inlinable single-statement SQL (`(val).data ->> 'hm'`), so the planner -// folds it into the aggregation and the group key is a 32-byte HMAC that -// fits comfortably in `work_mem`. `HashAggregate` engages on every -// deployment without `work_mem` tuning. +// Two scenarios, same query shape, side-by-side encrypted vs plaintext. // -// The bench wraps the GROUP BY in a `count(*)` subquery: +// count_groups_encrypted — `GROUP BY eql_v2.hmac_256(value)` against +// `string_encrypted_` (encrypted column, +// inlinable HMAC extractor). // -// SELECT count(*) FROM (SELECT 1 FROM tbl GROUP BY eql_v2.hmac_256(value)) g +// count_groups_plaintext — `GROUP BY value` against `string_plaintext_` +// (plain TEXT column, no encryption). The +// baseline: "what would this cost without +// encryption?" The plaintext data is +// high-cardinality `md5(random()::text)` so the +// cardinality matches the encrypted side (fake +// random names give similar ~99% uniqueness). // -// rather than running the bare `SELECT count(*) FROM tbl GROUP BY ...` form. -// The bench tables are populated by `encrypt_string` with `fake` random -// English names — effectively unique per row at high cardinality — so the -// bare-GROUP BY shape emitted ~as many rows as the table size. Wall-clock -// time was then dominated by result emission (server-side row construction, -// network round-trip, sqlx deserialisation, the bench's iter-and-sum loop), -// not by the per-row hash extraction or HashAggregate insert that the -// recipe is actually about. Wrapping in `count(*)` keeps the inner -// HashAggregate work identical (scan + hash + group) but emits a single row, -// so the bench measures aggregation cost rather than emission cost. +// Both queries wrap the GROUP BY in `count(*)`: // -// The natural form (`GROUP BY value` directly on `eql_v2_encrypted`) was -// dropped from this bench in an earlier pass. The planner estimates the -// hash table against the full ~1-2 KB encrypted payload, decides it won't -// fit in the default `work_mem = 4 MB`, and falls back to `GroupAggregate` -// + sort. At 100k rows that's ~29 s vs the extractor's tens of ms. The -// natural form measured the planner's cost model, not EQL — and recommended -// practice is the extractor form anyway. See §5 of -// `docs/reference/query-performance.md` in the EQL repo. -static QUERY_TEMPLATES: &[(&str, &str)] = &[ +// SELECT count(*) FROM (SELECT 1 FROM tbl GROUP BY ) g +// +// rather than the bare `SELECT count(*) FROM tbl GROUP BY ` form. With +// effectively-unique rows the bare form emits ~one row per input row, so +// wall-clock is bottlenecked by result emission (server-side row +// construction, network round-trip, sqlx deserialisation, the bench's own +// iter-and-sum), not by aggregation work. The subquery wrapper keeps the +// inner HashAggregate identical but emits one row regardless of +// cardinality — both scenarios measure aggregation cost cleanly. +// +// The natural form (`GROUP BY value` against `eql_v2_encrypted`) was dropped +// from this bench earlier. The planner picks `GroupAggregate` + sort against +// the full ~1-2 KB ciphertext payload at scale; the cost is the planner's +// work_mem fallback, not anything EQL controls. See §5 of EQL's +// `docs/reference/query-performance.md`. +// +// QUERY_TEMPLATES entries: (sql_template, scenario_name, base_table_name). +// The bench substitutes `{TABLE}` with `_` so +// each scenario runs against its own table family. +static QUERY_TEMPLATES: &[(&str, &str, &str)] = &[ ( "SELECT count(*) FROM \ (SELECT 1 FROM {TABLE} GROUP BY eql_v2.hmac_256(value)) g", - "count_groups", + "count_groups_encrypted", + "string_encrypted", + ), + ( + "SELECT count(*) FROM \ + (SELECT 1 FROM {TABLE} GROUP BY value) g", + "count_groups_plaintext", + "string_plaintext", ), ]; @@ -51,7 +63,6 @@ fn criterion_benchmark(c: &mut Criterion) { "10000" | "100000" | "1000000" | "10000000" => format!("_{}", target_rows), _ => String::new(), }; - let table_name = format!("string_encrypted{}", table_suffix); let pool = rt.block_on(async { let database_url = @@ -67,7 +78,8 @@ fn criterion_benchmark(c: &mut Criterion) { let mut group = c.benchmark_group("GROUP_BY"); group.sample_size(10); - for (query_template, scenario) in QUERY_TEMPLATES { + for (query_template, scenario, base_table) in QUERY_TEMPLATES { + let table_name = format!("{}{}", base_table, table_suffix); let query_str = query_template.replace("{TABLE}", &table_name); group.bench_function(format!("group_by/{}/{}", scenario, target_rows), |b| { @@ -76,7 +88,7 @@ fn criterion_benchmark(c: &mut Criterion) { .fetch_all(&pool) .await .expect("group_by query failed"); - // Drain the result to force the aggregation to materialise. + // Drain the single-row result to force the aggregation to materialise. black_box(rows.iter().map(|r| r.get::(0)).sum::()) }) }); diff --git a/mise.toml b/mise.toml index 1e84299..f1a93f5 100644 --- a/mise.toml +++ b/mise.toml @@ -283,6 +283,63 @@ run = "mise run prepare:_table integer_encrypted encrypt_int $1" description = "Prepare json_ste_vec_small_encrypted table with target row count" run = "mise run prepare:_table json_ste_vec_small_encrypted encrypt_ste_vec_small $1" +[tasks."prepare:string_plaintext"] +description = "Prepare string_plaintext_ table with random high-cardinality strings (md5)" +depends = ["postgres"] +run = """ +#!/usr/bin/env bash +set -e + +TARGET_ROWS="$1" + +if [ -z "$TARGET_ROWS" ]; then + echo "Error: target row count argument required" + echo "Usage: mise run prepare:string_plaintext " + exit 1 +fi + +case "$TARGET_ROWS" in + 10000|100000|1000000|10000000) + ;; + *) + echo "Error: TARGET_ROWS must be one of: 10000, 100000, 1000000, 10000000" + exit 1 + ;; +esac + +TABLE_NAME="string_plaintext_${TARGET_ROWS}" + +echo "Waiting for PostgreSQL to be ready..." +until docker exec ore-benches-postgres pg_isready -U postgres > /dev/null 2>&1; do + sleep 1 +done + +CURRENT_ROWS=$(docker exec ore-benches-postgres psql -U postgres -d postgres -t -c "SELECT COUNT(*) FROM $TABLE_NAME;" | tr -d ' ') + +echo "Current rows in $TABLE_NAME: $CURRENT_ROWS" +echo "Target rows: $TARGET_ROWS" + +if [ "$CURRENT_ROWS" -ge "$TARGET_ROWS" ]; then + echo "Table already has $CURRENT_ROWS rows (>= $TARGET_ROWS). No action needed." + exit 0 +fi + +ROWS_TO_INSERT=$((TARGET_ROWS - CURRENT_ROWS)) +echo "Inserting $ROWS_TO_INSERT random rows (md5 of (random, ordinal))..." + +# md5(random()::text || g::text) is high-cardinality 32-char hex per row. +# Single SQL insert in PG is far faster than per-row roundtrips — completes +# 10M rows in tens of seconds, no encryption-client dependency. +docker exec ore-benches-postgres psql -v ON_ERROR_STOP=1 -U postgres -d postgres -c " + INSERT INTO $TABLE_NAME (value) + SELECT md5(random()::text || g::text) + FROM generate_series(1, $ROWS_TO_INSERT) g; +" + +FINAL_ROWS=$(docker exec ore-benches-postgres psql -U postgres -d postgres -t -c "SELECT COUNT(*) FROM $TABLE_NAME;" | tr -d ' ') +echo "Preparation complete! Final row count: $FINAL_ROWS" +""" + [tasks."bench:query:ore"] description = "Run ORE query benchmark" run = """ @@ -404,6 +461,9 @@ fi echo "Preparing string_encrypted table with $TARGET_ROWS rows..." mise run prepare:string_encrypted "$TARGET_ROWS" +echo "Preparing string_plaintext table with $TARGET_ROWS rows (plaintext baseline)..." +mise run prepare:string_plaintext "$TARGET_ROWS" + echo "Cleaning old benchmark data..." rm -rf target/criterion/data/main/GROUP_BY target/criterion/reports/GROUP_BY diff --git a/report/BENCHMARK_REPORT.md b/report/BENCHMARK_REPORT.md index bf732b4..c88c398 100644 --- a/report/BENCHMARK_REPORT.md +++ b/report/BENCHMARK_REPORT.md @@ -167,7 +167,7 @@ ON string_encrypted_10000 USING GIN ( ### GROUP_BY Queries -#### count_groups +#### count_groups_encrypted **Description:** GROUP BY in extractor form on `eql_v2.hmac_256(value)`, wrapped in `count(*)` to isolate aggregation cost from emit cost @@ -176,7 +176,7 @@ ON string_encrypted_10000 USING GIN ( SELECT count(*) FROM (SELECT 1 FROM {TABLE} GROUP BY eql_v2.hmac_256(value)) g ``` -**Table: `string_encrypted_{rows}` with encrypted string values (carrying an `hm` HMAC term, configured via the `unique` search index). Index: no index drives `GROUP BY` directly — hash aggregation is in-memory. The extractor's 32-byte HMAC group key fits in default `work_mem`, so the planner picks `HashAggregate` reliably across deployments. **Why the subquery wrapper.** The bench data is `fake::name::Name` — effectively unique per row, so a bare `SELECT count(*) FROM tbl GROUP BY eql_v2.hmac_256(value)` emits ~one row per input row. Wall-clock time on that shape is dominated by result emission (server-side row construction, network round-trip, sqlx deserialisation, bench iter-and-sum), not by the aggregation work the recipe is actually about. Wrapping the GROUP BY in `count(*)` keeps the inner HashAggregate identical but emits a single row, so the bench measures aggregation cost. Natural-form `GROUP BY value` against an encrypted column was removed from this bench in an earlier pass because the planner picks `GroupAggregate` + sort against the full ~1-2 KB ciphertext payload at scale — see §5 of the EQL query-performance guide.** +**Table: `string_encrypted_{rows}` with encrypted string values (carrying an `hm` HMAC term, configured via the `unique` search index). Index: no index drives `GROUP BY` directly — hash aggregation is in-memory. The extractor's 32-byte HMAC group key fits in default `work_mem`, so the planner picks `HashAggregate` reliably across deployments. **Why the subquery wrapper.** The bench data is `fake::name::Name` — effectively unique per row, so a bare `SELECT count(*) FROM tbl GROUP BY eql_v2.hmac_256(value)` emits ~one row per input row. Wall-clock time on that shape is dominated by result emission (server-side row construction, network round-trip, sqlx deserialisation, bench iter-and-sum), not by the aggregation work the recipe is actually about. Wrapping the GROUP BY in `count(*)` keeps the inner HashAggregate identical but emits a single row, so the bench measures aggregation cost. The companion `count_groups_plaintext` scenario runs the same query shape against an unencrypted column for comparison. Natural-form `GROUP BY value` against an encrypted column was removed from this bench in an earlier pass because the planner picks `GroupAggregate` + sort against the full ~1-2 KB ciphertext payload at scale — see §5 of the EQL query-performance guide.** **Indexes:** ```sql @@ -197,12 +197,32 @@ ON string_encrypted_10000 USING GIN ( | Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | |---------------|-------------------------|---------------------------| -| 10,000 | 5.38ms | N/A | -| 100,000 | 63.34ms | N/A | -| 1,000,000 | ⚠️ 792.58ms | N/A | -| 10,000,000 | ⚠️ 10.990s | N/A | +| 10,000 | 4.95ms | N/A | +| 100,000 | 66.51ms | N/A | +| 1,000,000 | ⚠️ 829.22ms | N/A | -![Query Performance - GROUP_BY/count_groups](query_group_by_count_groups_chart.png) +![Query Performance - GROUP_BY/count_groups_encrypted](query_group_by_count_groups_encrypted_chart.png) + +#### count_groups_plaintext + +**Description:** Plaintext baseline: GROUP BY on a plain TEXT column, same query shape as the encrypted scenario + +**SQL Query:** +```sql +SELECT count(*) FROM (SELECT 1 FROM {TABLE} GROUP BY value) g +``` + +**Table: `string_plaintext_{rows}` with unencrypted high-cardinality random strings (`md5(random()::text || ordinal)`). Populated via SQL by `mise run prepare:string_plaintext` — no encryption-client dependency. Index: none. Same `SELECT count(*) FROM (SELECT 1 ... GROUP BY value) g` shape as the encrypted scenario, so the wall-clock delta between this and `count_groups_encrypted` is the EQL recipe's overhead relative to a bare-PG aggregate on a TEXT column at the same row count and cardinality.** + +*⚠️ = Query time exceeds 100ms* + +| Data Set Size | Query Time (no decrypt) | Query Time (with decrypt) | +|---------------|-------------------------|---------------------------| +| 10,000 | 3.21ms | N/A | +| 100,000 | 32.53ms | N/A | +| 1,000,000 | ⚠️ 727.76ms | N/A | + +![Query Performance - GROUP_BY/count_groups_plaintext](query_group_by_count_groups_plaintext_chart.png) ### MATCH Queries diff --git a/report/query_group_by_count_groups_chart.png b/report/query_group_by_count_groups_chart.png deleted file mode 100644 index 234a47f07800ff3bafcc997fe4fcfdb7ab1ca92f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40248 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 XB>sWKGiV55Fp^?&w^K#$Kl#4^&RG+h diff --git a/report/query_group_by_count_groups_encrypted_chart.png b/report/query_group_by_count_groups_encrypted_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..59bc6ff5314be2003213d2bc2ce45ea5c6a50ab2 GIT binary patch literal 39812 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