-
Notifications
You must be signed in to change notification settings - Fork 153
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
Use Predicates with Uncorrelated Subqueries for Dynamic Pruning #2588
Conversation
Ping. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Haven't reviewed the tests yet.
JOB with UCCDiscoveryPlugin master vs. pruningConfiguration Overview - click to expand +Configuration Overview---+------------------------------------------------+------------------------------------------------+
| Parameter | job_plugin_master.json | job_plugin_pruning.json |
+-------------------------+------------------------------------------------+------------------------------------------------+
| GIT-HASH | b685721debab96b308d134e8a0c00607b4421490-dirty | 567e81d78498a4c253d1fa90560349061c76de6b-dirty |
| benchmark_mode | Ordered | Ordered |
| build_type | release | release |
| chunk_indexes | False | False |
| chunk_size | 65535 | 65535 |
| clients | 1 | 1 |
| compiler | clang 14.0.0 | clang 14.0.0 |
| cores | 0 | 0 |
| data_preparation_cores | 0 | 0 |
| date | 2023-07-29 13:23:00 | 2023-07-28 14:27:44 |
| encoding | {'default': {'encoding': 'Dictionary'}} | {'default': {'encoding': 'Dictionary'}} |
| max_duration | 60000000000 | 60000000000 |
| max_runs | 100 | 100 |
| time_unit | ns | ns |
| using_scheduler | False | False |
| verify | False | False |
| warmup_duration | 1000000000 | 1000000000 |
+-------------------------+------------------------------------------------+------------------------------------------------+ +---------++----------+----------+--------++----------+----------+--------+----------------------+
| Item || Latency (ms/iter) | Change || Throughput (iter/s) | Change | p-value |
| || old | new | || old | new | | |
+---------++----------+----------+--------++----------+----------+--------+----------------------+
| 10a || 289.30 | 290.51 | +0%˄ || 3.46 | 3.44 | -0%˄ | 0.0000 |
| 10b || 225.19 | 224.89 | -0%˄ || 4.44 | 4.45 | +0%˄ | 0.1840 |
| 10c || 443.63 | 444.69 | +0%˄ || 2.25 | 2.25 | -0%˄ | 0.0488 |
+| 11a || 20.47 | 17.29 | -16%˄ || 48.83 | 57.83 | +18%˄ | 0.0000 |
+| 11b || 20.17 | 16.88 | -16%˄ || 49.57 | 59.22 | +19%˄ | 0.0000 |
| 11c || 36.27 | 35.99 | -1%˄ || 27.57 | 27.79 | +1%˄ | 0.0000 |
| 11d || 40.70 | 40.25 | -1%˄ || 24.57 | 24.84 | +1%˄ | 0.0000 |
+| 12a || 64.55 | 60.80 | -6%˄ || 15.49 | 16.44 | +6%˄ | 0.0000 |
+| 12b || 49.65 | 15.90 | -68%˄ || 20.14 | 62.85 | +212%˄ | 0.0000 |
+| 12c || 96.72 | 90.68 | -6%˄ || 10.34 | 11.03 | +7%˄ | 0.0000 |
+| 13a || 367.11 | 276.58 | -25%˄ || 2.72 | 3.62 | +33%˄ | 0.0000 |
+| 13b || 201.83 | 142.09 | -30%˄ || 4.95 | 7.04 | +42%˄ | 0.0000 |
+| 13c || 158.57 | 93.96 | -41%˄ || 6.31 | 10.64 | +69%˄ | 0.0000 |
+| 13d || 804.83 | 561.16 | -30%˄ || 1.24 | 1.78 | +43%˄ | (run time too short) |
| 14a || 577.92 | 565.38 | -2%˄ || 1.73 | 1.77 | +2%˄ | 0.0000 |
+| 14b || 310.58 | 294.29 | -5%˄ || 3.22 | 3.40 | +6%˄ | 0.0000 |
| 14c || 667.85 | 659.99 | -1% || 1.50 | 1.52 | +1% | 0.0000 |
| 15a || 52.33 | 52.16 | -0%˄ || 19.11 | 19.17 | +0%˄ | 0.1800 |
| 15b || 51.06 | 50.95 | -0%˄ || 19.58 | 19.63 | +0%˄ | 0.0119 |
| 15c || 58.67 | 58.29 | -1%˄ || 17.04 | 17.15 | +1%˄ | 0.0000 |
| 15d || 53.09 | 52.90 | -0%˄ || 18.83 | 18.90 | +0%˄ | 0.0000 |
| 16a || 3404.48 | 3419.87 | +0% || 0.29 | 0.29 | -0% | 0.3611 |
| 16b || 4857.59 | 4861.10 | +0% || 0.21 | 0.21 | -0% | 0.8289 |
| 16c || 3544.14 | 3572.99 | +1% || 0.28 | 0.28 | -1% | 0.1262 |
| 16d || 3515.80 | 3549.86 | +1% || 0.28 | 0.28 | -1% | 0.0305 |
| 17a || 874.62 | 879.20 | +1% || 1.14 | 1.14 | -1% | 0.0000 |
| 17b || 703.76 | 710.05 | +1% || 1.42 | 1.41 | -1% | 0.0000 |
| 17c || 675.09 | 680.07 | +1% || 1.48 | 1.47 | -1% | 0.0000 |
| 17d || 787.84 | 794.17 | +1% || 1.27 | 1.26 | -1% | 0.0000 |
| 17e || 2320.88 | 2360.41 | +2% || 0.43 | 0.42 | -2% | 0.0000 |
| 17f || 1399.35 | 1409.95 | +1% || 0.71 | 0.71 | -1% | 0.0000 |
+| 18a || 834.66 | 537.76 | -36%˄ || 1.20 | 1.86 | +55%˄ | (run time too short) |
| 18b || 219.25 | 220.89 | +1%˄ || 4.56 | 4.53 | -1%˄ | 0.0000 |
| 18c || 772.17 | 764.80 | -1% || 1.30 | 1.31 | +1% | 0.0000 |
+| 19a || 257.93 | 181.31 | -30%˄ || 3.88 | 5.52 | +42%˄ | 0.0000 |
+| 19b || 182.33 | 141.06 | -23%˄ || 5.48 | 7.09 | +29%˄ | 0.0000 |
+| 19c || 272.26 | 192.89 | -29%˄ || 3.67 | 5.18 | +41%˄ | 0.0000 |
+| 19d || 1025.10 | 933.93 | -9% || 0.98 | 1.07 | +10% | 0.0000 |
+| 1a || 13.26 | 10.35 | -22%˄ || 75.42 | 96.63 | +28%˄ | 0.0000 |
+| 1b || 12.43 | 9.82 | -21%˄ || 80.45 | 101.84 | +27%˄ | 0.0000 |
+| 1c || 13.93 | 10.00 | -28%˄ || 71.77 | 99.96 | +39%˄ | 0.0000 |
+| 1d || 12.45 | 9.81 | -21%˄ || 80.30 | 101.87 | +27%˄ | 0.0000 |
| 20a || 591.30 | 587.20 | -1%˄ || 1.69 | 1.70 | +1%˄ | 0.0000 |
| 20b || 376.53 | 367.76 | -2%˄ || 2.66 | 2.72 | +2%˄ | 0.0000 |
| 20c || 369.32 | 360.45 | -2%˄ || 2.71 | 2.77 | +2%˄ | 0.0000 |
| 21a || 56.23 | 56.20 | -0%˄ || 17.78 | 17.79 | +0%˄ | 0.5123 |
+| 21b || 34.48 | 31.74 | -8%˄ || 28.99 | 31.50 | +9%˄ | 0.0000 |
| 21c || 56.64 | 54.21 | -4%˄ || 17.65 | 18.45 | +4%˄ | 0.0000 |
| 22a || 249.89 | 244.16 | -2%˄ || 4.00 | 4.10 | +2%˄ | 0.0000 |
| 22b || 179.31 | 174.05 | -3%˄ || 5.58 | 5.75 | +3%˄ | 0.0000 |
| 22c || 632.70 | 621.48 | -2% || 1.58 | 1.61 | +2% | 0.0000 |
| 22d || 1222.50 | 1206.96 | -1% || 0.82 | 0.83 | +1% | 0.0057 |
+| 23a || 72.14 | 47.99 | -33%˄ || 13.86 | 20.84 | +50%˄ | 0.0000 |
+| 23b || 85.21 | 63.20 | -26%˄ || 11.73 | 15.82 | +35%˄ | 0.0000 |
| 23c || 58.05 | 58.05 | +0%˄ || 17.23 | 17.22 | -0%˄ | 0.9321 |
+| 24a || 279.11 | 108.60 | -61%˄ || 3.58 | 9.21 | +157%˄ | 0.0000 |
+| 24b || 243.56 | 222.31 | -9%˄ || 4.11 | 4.50 | +10%˄ | 0.0000 |
| 25a || 425.52 | 426.76 | +0%˄ || 2.35 | 2.34 | -0%˄ | 0.0046 |
+| 25b || 228.27 | 202.83 | -11%˄ || 4.38 | 4.93 | +13%˄ | 0.0000 |
| 25c || 1286.81 | 1312.24 | +2% || 0.78 | 0.76 | -2% | 0.0000 |
| 26a || 303.40 | 298.64 | -2%˄ || 3.30 | 3.35 | +2%˄ | 0.0000 |
| 26b || 260.31 | 256.24 | -2%˄ || 3.84 | 3.90 | +2%˄ | 0.0000 |
| 26c || 384.31 | 378.99 | -1%˄ || 2.60 | 2.64 | +1%˄ | 0.0000 |
| 27a || 40.73 | 40.81 | +0%˄ || 24.55 | 24.50 | -0%˄ | 0.2281 |
+| 27b || 39.86 | 37.36 | -6%˄ || 25.08 | 26.76 | +7%˄ | 0.0000 |
| 27c || 56.57 | 54.43 | -4%˄ || 17.68 | 18.37 | +4%˄ | 0.0000 |
| 28a || 372.49 | 357.70 | -4%˄ || 2.68 | 2.80 | +4%˄ | 0.0000 |
+| 28b || 60.56 | 54.24 | -10%˄ || 16.51 | 18.44 | +12%˄ | 0.0000 |
| 28c || 422.82 | 410.39 | -3%˄ || 2.37 | 2.44 | +3%˄ | 0.0000 |
+| 29a || 135.31 | 64.14 | -53%˄ || 7.39 | 15.59 | +111%˄ | 0.0000 |
+| 29b || 131.29 | 62.94 | -52%˄ || 7.62 | 15.89 | +109%˄ | 0.0000 |
+| 29c || 269.80 | 247.22 | -8%˄ || 3.71 | 4.04 | +9%˄ | 0.0000 |
| 2a || 64.48 | 64.41 | -0%˄ || 15.51 | 15.52 | +0%˄ | 0.3237 |
| 2b || 53.09 | 53.37 | +1%˄ || 18.83 | 18.73 | -1%˄ | 0.0000 |
| 2c || 29.89 | 30.00 | +0%˄ || 33.45 | 33.32 | -0%˄ | 0.0000 |
| 2d || 87.39 | 88.12 | +1%˄ || 11.44 | 11.35 | -1%˄ | 0.0000 |
| 30a || 270.34 | 269.53 | -0%˄ || 3.70 | 3.71 | +0%˄ | 0.0000 |
| 30b || 245.20 | 244.79 | -0%˄ || 4.08 | 4.09 | +0%˄ | 0.0043 |
| 30c || 552.33 | 551.73 | -0%˄ || 1.81 | 1.81 | +0%˄ | 0.1984 |
+| 31a || 278.34 | 246.69 | -11%˄ || 3.59 | 4.05 | +13%˄ | 0.0000 |
+| 31b || 246.51 | 218.47 | -11%˄ || 4.06 | 4.58 | +13%˄ | 0.0000 |
+| 31c || 313.98 | 262.92 | -16%˄ || 3.18 | 3.80 | +19%˄ | 0.0000 |
| 32a || 13.96 | 14.12 | +1%˄ || 71.64 | 70.79 | -1%˄ | 0.0000 |
| 32b || 41.67 | 41.45 | -1%˄ || 24.00 | 24.12 | +1%˄ | 0.0003 |
| 33a || 32.91 | 33.17 | +1%˄ || 30.38 | 30.14 | -1%˄ | 0.0000 |
| 33b || 32.24 | 32.40 | +1%˄ || 31.01 | 30.86 | -1%˄ | 0.0000 |
| 33c || 37.92 | 38.14 | +1%˄ || 26.37 | 26.22 | -1%˄ | 0.0000 |
| 3a || 174.34 | 174.42 | +0%˄ || 5.74 | 5.73 | -0%˄ | 0.6309 |
| 3b || 22.03 | 21.83 | -1%˄ || 45.40 | 45.81 | +1%˄ | 0.0000 |
| 3c || 628.58 | 635.03 | +1% || 1.59 | 1.57 | -1% | 0.0090 |
| 4a || 158.95 | 158.07 | -1%˄ || 6.29 | 6.33 | +1%˄ | 0.0000 |
| 4b || 20.42 | 20.20 | -1%˄ || 48.97 | 49.50 | +1%˄ | 0.0000 |
| 4c || 174.99 | 174.49 | -0%˄ || 5.71 | 5.73 | +0%˄ | 0.0195 |
+| 5a || 80.31 | 50.75 | -37%˄ || 12.45 | 19.70 | +58%˄ | 0.0000 |
+| 5b || 185.18 | 90.26 | -51%˄ || 5.40 | 11.08 | +105%˄ | 0.0000 |
+| 5c || 231.48 | 116.32 | -50%˄ || 4.32 | 8.60 | +99%˄ | 0.0000 |
| 6a || 209.79 | 211.82 | +1%˄ || 4.77 | 4.72 | -1%˄ | 0.0000 |
| 6b || 233.41 | 233.49 | +0%˄ || 4.28 | 4.28 | -0%˄ | 0.6438 |
| 6c || 202.70 | 203.94 | +1%˄ || 4.93 | 4.90 | -1%˄ | 0.0000 |
| 6d || 821.71 | 825.63 | +0% || 1.22 | 1.21 | -0% | 0.0000 |
| 6e || 210.82 | 210.52 | -0%˄ || 4.74 | 4.75 | +0%˄ | 0.0108 |
| 6f || 1031.17 | 1041.56 | +1% || 0.97 | 0.96 | -1% | 0.0000 |
| 7a || 97.79 | 98.15 | +0%˄ || 10.23 | 10.19 | -0%˄ | 0.0025 |
| 7b || 88.94 | 89.59 | +1%˄ || 11.24 | 11.16 | -1%˄ | 0.0000 |
| 7c || 874.79 | 880.88 | +1% || 1.14 | 1.14 | -1% | 0.0336 |
+| 8a || 67.19 | 53.47 | -20%˄ || 14.88 | 18.70 | +26%˄ | 0.0000 |
+| 8b || 62.51 | 49.51 | -21%˄ || 16.00 | 20.19 | +26%˄ | 0.0000 |
| 8c || 2513.14 | 2500.57 | -1% || 0.40 | 0.40 | +1% | 0.0004 |
| 8d || 371.01 | 368.78 | -1%˄ || 2.70 | 2.71 | +1%˄ | 0.0000 |
+| 9a || 256.74 | 201.41 | -22%˄ || 3.89 | 4.96 | +27%˄ | 0.0000 |
+| 9b || 151.81 | 132.08 | -13%˄ || 6.59 | 7.57 | +15%˄ | 0.0000 |
+| 9c || 384.48 | 322.29 | -16%˄ || 2.60 | 3.10 | +19%˄ | 0.0000 |
+| 9d || 669.30 | 609.06 | -9% || 1.49 | 1.64 | +10% | 0.0000 |
+---------++----------+----------+--------++----------+----------+--------+----------------------+
| Sum || 51438.65 | 49368.67 | -4% || | | | |
+| Geomean || | | || | | +12% | |
+---------++----------+----------+--------++----------+----------+--------+----------------------+
| Notes || ˄ Execution stopped due to max runs reached |
+---------++----------+----------+--------++----------+----------+--------+----------------------+ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor things. Good to go.
Dismissing: still have to review the tests; should be ready to go pretty soon.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor things.
Prunes tables using Predicates that contain uncorrelated subquery results. The information about such Predicates is added to StoredTableNodes by the ChunkPruningRule and later to GetTable operators by the LQPTranslator. Deep copies of LQPs and PQPs preserve the information.
Prunes tables using Predicates that contain uncorrelated subquery results. The information about such Predicates is added to StoredTableNodes by the ChunkPruningRule and later to GetTable operators by the LQPTranslator. Deep copies of LQPs and PQPs preserve the information.
This PR prunes tables using Predicates that contain uncorrelated subquery results. The information about such Predicates is added to StoredTableNodes by the ChunkPruningRule and later to GetTable operators by the LQPTranslator. Deep copies of LQPs and PQPs preserve the information.
If the uncorrelated subquery used in the Predicate can be safely scheduled and executed before the GetTable operator (i.e., their tasks do not depend on each other), the tasks of the respective uncorrelated subqueries are scheduled first. Thus, their result is available when the GetTable operator is executed, and the Predicates are used for chunk pruning. Otherwise, the predicates are ignored.
Though we currently do not use Predicates with uncorrelated subquery results not much in the master, they are heavily used by data dependency-based optimizations (e.g., after running the UCCDiscoveryPlugin). #2588 (comment) provides the JOB benchmark results with/without subquery pruning after running the plugin.
System
sidon - click to expand
Commit Info and Build Time
hyriseBenchmarkTPCH - single-threaded, SF 10.0
Sum of avg. item runtimes: -0% || Geometric mean of throughput changes: -0%
Configuration Overview - click to expand
hyriseBenchmarkTPCH - single-threaded, SF 0.01
Sum of avg. item runtimes: +1% || Geometric mean of throughput changes: -1%
Configuration Overview - click to expand
hyriseBenchmarkTPCH - multi-threaded, ordered, 1 client, 15 cores, SF 10.0
Sum of avg. item runtimes: -1% || Geometric mean of throughput changes: -0%
Configuration Overview - click to expand
hyriseBenchmarkTPCH - multi-threaded, shuffled, 15 clients, 15 cores, SF 10.0
Sum of avg. item runtimes: -1% || Geometric mean of throughput changes: +1%
Configuration Overview - click to expand
hyriseBenchmarkTPCDS - single-threaded
Sum of avg. item runtimes: -1% || Geometric mean of throughput changes: +1%
Configuration Overview - click to expand
hyriseBenchmarkTPCDS - multi-threaded, shuffled, 15 clients, 15 cores
Sum of avg. item runtimes: -1% || Geometric mean of throughput changes: +1%
Configuration Overview - click to expand
hyriseBenchmarkTPCC - single-threaded
Sum of avg. item runtimes: -0% || Geometric mean of throughput changes: +1%
Configuration Overview - click to expand
hyriseBenchmarkTPCC - multi-threaded, shuffled, 15 clients, 15 cores
Sum of avg. item runtimes: -0% || Geometric mean of throughput changes: +0%
Configuration Overview - click to expand
hyriseBenchmarkJoinOrder - single-threaded
Sum of avg. item runtimes: -0% || Geometric mean of throughput changes: +1%
Configuration Overview - click to expand
hyriseBenchmarkJoinOrder - multi-threaded, shuffled, 15 clients, 15 cores
Sum of avg. item runtimes: -0% || Geometric mean of throughput changes: +0%
Configuration Overview - click to expand
hyriseBenchmarkStarSchema - single-threaded
Sum of avg. item runtimes: -0% || Geometric mean of throughput changes: +1%
Configuration Overview - click to expand
hyriseBenchmarkStarSchema - multi-threaded, shuffled, 15 clients, 15 cores
Sum of avg. item runtimes: -1% || Geometric mean of throughput changes: +1%
Configuration Overview - click to expand