Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add skipping index benchmark test #291

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 92 additions & 0 deletions docs/benchmark-skipping-index.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
================================================================================================
Skipping Index Write
================================================================================================

OpenJDK 64-Bit Server VM 11.0.20+0 on Mac OS X 14.3.1
Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Skipping Index Write 1000000 Rows with Cardinality 64: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative
-------------------------------------------------------------------------------------------------------------------------------------
Partition Write 1334 1334 0 0.7 1333.8 1.0X
MinMax Write 1318 1318 0 0.8 1318.3 1.0X
ValueSet Write (Default Size 100) 1400 1400 0 0.7 1399.8 1.0X
ValueSet Write (Unlimited Size) 1331 1331 0 0.8 1330.8 1.0X
BloomFilter Write (1M NDV) 1062 1062 0 0.9 1062.4 1.3X
BloomFilter Write (Optimal NDV) 1048 1048 0 1.0 1047.6 1.3X
Adaptive BloomFilter Write (Default 10 Candidates) 1045 1045 0 1.0 1045.2 1.3X
Adaptive BloomFilter Write (5 Candidates) 1053 1053 0 0.9 1053.4 1.3X
Adaptive BloomFilter Write (15 Candidates) 2102 2102 0 0.5 2102.1 0.6X

OpenJDK 64-Bit Server VM 11.0.20+0 on Mac OS X 14.3.1
Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Skipping Index Write 1000000 Rows with Cardinality 2048: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative
---------------------------------------------------------------------------------------------------------------------------------------
Partition Write 1288 1288 0 0.8 1287.7 1.0X
MinMax Write 1295 1295 0 0.8 1295.0 1.0X
ValueSet Write (Default Size 100) 1357 1357 0 0.7 1357.4 0.9X
ValueSet Write (Unlimited Size) 1360 1360 0 0.7 1360.5 0.9X
BloomFilter Write (1M NDV) 1070 1070 0 0.9 1070.2 1.2X
BloomFilter Write (Optimal NDV) 1048 1048 0 1.0 1047.6 1.2X
Adaptive BloomFilter Write (Default 10 Candidates) 1045 1045 0 1.0 1044.9 1.2X
Adaptive BloomFilter Write (5 Candidates) 1061 1061 0 0.9 1061.4 1.2X
Adaptive BloomFilter Write (15 Candidates) 2050 2050 0 0.5 2050.2 0.6X

OpenJDK 64-Bit Server VM 11.0.20+0 on Mac OS X 14.3.1
Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Skipping Index Write 1000000 Rows with Cardinality 65536: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative
----------------------------------------------------------------------------------------------------------------------------------------
Partition Write 1304 1304 0 0.8 1304.1 1.0X
MinMax Write 1287 1287 0 0.8 1286.8 1.0X
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why BF latency is lower than MinMax?

ValueSet Write (Default Size 100) 1474 1474 0 0.7 1473.7 0.9X
ValueSet Write (Unlimited Size) 1713 1713 0 0.6 1713.5 0.8X
BloomFilter Write (1M NDV) 1077 1077 0 0.9 1076.7 1.2X
BloomFilter Write (Optimal NDV) 1049 1049 0 1.0 1048.8 1.2X
Adaptive BloomFilter Write (Default 10 Candidates) 1055 1055 0 0.9 1054.7 1.2X
Adaptive BloomFilter Write (5 Candidates) 1047 1047 0 1.0 1047.4 1.2X
Adaptive BloomFilter Write (15 Candidates) 2054 2054 0 0.5 2054.3 0.6X


================================================================================================
Skipping Index Read
================================================================================================

OpenJDK 64-Bit Server VM 11.0.20+0 on Mac OS X 14.3.1
Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Skipping Index Read 1000000 Rows with Cardinality 64: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------------------
Partition Read 54 65 9 0.0 54473389.0 1.0X
MinMax Read 57 65 8 0.0 56855820.0 1.0X
ValueSet Read (Default Size 100) 50 61 11 0.0 49529808.0 1.1X
ValueSet Read (Unlimited Size) 43 54 8 0.0 43301469.0 1.3X
BloomFilter Read (1M NDV) 2648 2733 60 0.0 2647662965.0 0.0X
BloomFilter Read (Optimal NDV) 2450 2484 24 0.0 2450135369.0 0.0X
Adaptive BloomFilter Read (Default 10 Candidates) 2441 2458 18 0.0 2441226280.0 0.0X
Adaptive BloomFilter Read (5 Candidates) 2451 2476 26 0.0 2450510244.0 0.0X
Adaptive BloomFilter Read (15 Candidates) 2397 2461 44 0.0 2397133383.0 0.0X

OpenJDK 64-Bit Server VM 11.0.20+0 on Mac OS X 14.3.1
Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Skipping Index Read 1000000 Rows with Cardinality 2048: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative
--------------------------------------------------------------------------------------------------------------------------------------
Partition Read 31 35 5 0.0 31101827.0 1.0X
MinMax Read 33 40 6 0.0 33385163.0 0.9X
ValueSet Read (Default Size 100) 30 37 6 0.0 30479810.0 1.0X
ValueSet Read (Unlimited Size) 31 37 6 0.0 31004587.0 1.0X
BloomFilter Read (1M NDV) 2477 2537 51 0.0 2477281890.0 0.0X
BloomFilter Read (Optimal NDV) 2408 2461 45 0.0 2408002056.0 0.0X
Adaptive BloomFilter Read (Default 10 Candidates) 2367 2413 43 0.0 2366950203.0 0.0X
Adaptive BloomFilter Read (5 Candidates) 2399 2429 26 0.0 2399147197.0 0.0X
Adaptive BloomFilter Read (15 Candidates) 2382 2421 34 0.0 2381512783.0 0.0X

OpenJDK 64-Bit Server VM 11.0.20+0 on Mac OS X 14.3.1
Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Skipping Index Read 1000000 Rows with Cardinality 65536: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative
---------------------------------------------------------------------------------------------------------------------------------------
Partition Read 26 30 5 0.0 25781731.0 1.0X
MinMax Read 30 34 7 0.0 29514335.0 0.9X
ValueSet Read (Default Size 100) 27 34 6 0.0 27338628.0 0.9X
ValueSet Read (Unlimited Size) 39 45 6 0.0 39315292.0 0.7X
BloomFilter Read (1M NDV) 2374 2433 55 0.0 2373982609.0 0.0X
BloomFilter Read (Optimal NDV) 2354 2415 60 0.0 2354204521.0 0.0X
Adaptive BloomFilter Read (Default 10 Candidates) 2322 2407 51 0.0 2321669934.0 0.0X
Adaptive BloomFilter Read (5 Candidates) 2413 2465 44 0.0 2413487418.0 0.0X
Adaptive BloomFilter Read (15 Candidates) 2351 2401 36 0.0 2351322414.0 0.0X
Comment on lines +52 to +92
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the intended result? Can we include some explanations for why the BF read takes so long?

Copy link
Collaborator Author

@dai-chen dai-chen Mar 21, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's because BF is translated to Painless script filtering which deserializes BF out of bytes and then do the membership check. Reading other data structures is simply translated to OpenSearch match query.

Loading
Loading