-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Optimize add_items for Varcher by automatically avoiding deep copying. #7395
Conversation
✅ Deploy Preview for meta-velox canceled.
|
This pull request was exported from Phabricator. Differential Revision: D50957600 |
facebookincubator#7395) Summary: Before: ``` array_concat_VARCHAR_10##2arg 652.44ms 1.53 array_concat_VARCHAR_10##3arg 958.59ms 1.04 array_concat_VARCHAR_10##4arg 1.26s 790.86m array_concat_VARCHAR_20##2arg 1.67s 598.25m array_concat_VARCHAR_20##3arg 2.22s 449.48m array_concat_VARCHAR_20##4arg 2.82s 355.01m array_concat_VARCHAR_40##2arg 2.83s 353.24m array_concat_VARCHAR_40##3arg 4.98s 200.99m array_concat_VARCHAR_40##4arg 7.03s 142.22m array_concat_VARCHAR_5##2arg 290.04ms 3.45 array_concat_VARCHAR_5##3arg 438.06ms 2.28 array_concat_VARCHAR_5##4arg 584.20ms 1.71 ```` After: ``` ============================================================================ [...]hmarks/ExpressionBenchmarkBuilder.cpp relative time/iter iters/s ============================================================================ array_concat_VARCHAR_10##2arg 228.69ms 4.37 array_concat_VARCHAR_10##3arg 305.58ms 3.27 array_concat_VARCHAR_10##4arg 392.84ms 2.55 array_concat_VARCHAR_20##2arg 580.45ms 1.72 array_concat_VARCHAR_20##3arg 749.82ms 1.33 array_concat_VARCHAR_20##4arg 1.00s 999.14m array_concat_VARCHAR_40##2arg 1.15s 867.18m array_concat_VARCHAR_40##3arg 1.83s 545.75m array_concat_VARCHAR_40##4arg 2.15s 464.43m array_concat_VARCHAR_5##2arg 101.89ms 9.81 array_concat_VARCHAR_5##3arg 139.85ms 7.15 array_concat_VARCHAR_5##4arg 185.80ms 5.38 ``` Differential Revision: D50957600
e549bf6
to
55881d8
Compare
This pull request was exported from Phabricator. Differential Revision: D50957600 |
facebookincubator#7395) Summary: Before: ``` array_concat_VARCHAR_10##2arg 652.44ms 1.53 array_concat_VARCHAR_10##3arg 958.59ms 1.04 array_concat_VARCHAR_10##4arg 1.26s 790.86m array_concat_VARCHAR_20##2arg 1.67s 598.25m array_concat_VARCHAR_20##3arg 2.22s 449.48m array_concat_VARCHAR_20##4arg 2.82s 355.01m array_concat_VARCHAR_40##2arg 2.83s 353.24m array_concat_VARCHAR_40##3arg 4.98s 200.99m array_concat_VARCHAR_40##4arg 7.03s 142.22m array_concat_VARCHAR_5##2arg 290.04ms 3.45 array_concat_VARCHAR_5##3arg 438.06ms 2.28 array_concat_VARCHAR_5##4arg 584.20ms 1.71 ```` After: ``` ============================================================================ [...]hmarks/ExpressionBenchmarkBuilder.cpp relative time/iter iters/s ============================================================================ array_concat_VARCHAR_10##2arg 228.69ms 4.37 array_concat_VARCHAR_10##3arg 305.58ms 3.27 array_concat_VARCHAR_10##4arg 392.84ms 2.55 array_concat_VARCHAR_20##2arg 580.45ms 1.72 array_concat_VARCHAR_20##3arg 749.82ms 1.33 array_concat_VARCHAR_20##4arg 1.00s 999.14m array_concat_VARCHAR_40##2arg 1.15s 867.18m array_concat_VARCHAR_40##3arg 1.83s 545.75m array_concat_VARCHAR_40##4arg 2.15s 464.43m array_concat_VARCHAR_5##2arg 101.89ms 9.81 array_concat_VARCHAR_5##3arg 139.85ms 7.15 array_concat_VARCHAR_5##4arg 185.80ms 5.38 ``` Differential Revision: D50957600
55881d8
to
2bdb5ea
Compare
This pull request was exported from Phabricator. Differential Revision: D50957600 |
facebookincubator#7395) Summary: Before: ``` array_concat_VARCHAR_10##2arg 652.44ms 1.53 array_concat_VARCHAR_10##3arg 958.59ms 1.04 array_concat_VARCHAR_10##4arg 1.26s 790.86m array_concat_VARCHAR_20##2arg 1.67s 598.25m array_concat_VARCHAR_20##3arg 2.22s 449.48m array_concat_VARCHAR_20##4arg 2.82s 355.01m array_concat_VARCHAR_40##2arg 2.83s 353.24m array_concat_VARCHAR_40##3arg 4.98s 200.99m array_concat_VARCHAR_40##4arg 7.03s 142.22m array_concat_VARCHAR_5##2arg 290.04ms 3.45 array_concat_VARCHAR_5##3arg 438.06ms 2.28 array_concat_VARCHAR_5##4arg 584.20ms 1.71 ```` After: ``` ============================================================================ [...]hmarks/ExpressionBenchmarkBuilder.cpp relative time/iter iters/s ============================================================================ array_concat_VARCHAR_10##2arg 228.69ms 4.37 array_concat_VARCHAR_10##3arg 305.58ms 3.27 array_concat_VARCHAR_10##4arg 392.84ms 2.55 array_concat_VARCHAR_20##2arg 580.45ms 1.72 array_concat_VARCHAR_20##3arg 749.82ms 1.33 array_concat_VARCHAR_20##4arg 1.00s 999.14m array_concat_VARCHAR_40##2arg 1.15s 867.18m array_concat_VARCHAR_40##3arg 1.83s 545.75m array_concat_VARCHAR_40##4arg 2.15s 464.43m array_concat_VARCHAR_5##2arg 101.89ms 9.81 array_concat_VARCHAR_5##3arg 139.85ms 7.15 array_concat_VARCHAR_5##4arg 185.80ms 5.38 ``` Differential Revision: D50957600
2bdb5ea
to
913204e
Compare
This pull request was exported from Phabricator. Differential Revision: D50957600 |
facebookincubator#7395) Summary: Before: ``` array_concat_VARCHAR_10##2arg 652.44ms 1.53 array_concat_VARCHAR_10##3arg 958.59ms 1.04 array_concat_VARCHAR_10##4arg 1.26s 790.86m array_concat_VARCHAR_20##2arg 1.67s 598.25m array_concat_VARCHAR_20##3arg 2.22s 449.48m array_concat_VARCHAR_20##4arg 2.82s 355.01m array_concat_VARCHAR_40##2arg 2.83s 353.24m array_concat_VARCHAR_40##3arg 4.98s 200.99m array_concat_VARCHAR_40##4arg 7.03s 142.22m array_concat_VARCHAR_5##2arg 290.04ms 3.45 array_concat_VARCHAR_5##3arg 438.06ms 2.28 array_concat_VARCHAR_5##4arg 584.20ms 1.71 ```` After: ``` ============================================================================ [...]hmarks/ExpressionBenchmarkBuilder.cpp relative time/iter iters/s ============================================================================ array_concat_VARCHAR_10##2arg 228.69ms 4.37 array_concat_VARCHAR_10##3arg 305.58ms 3.27 array_concat_VARCHAR_10##4arg 392.84ms 2.55 array_concat_VARCHAR_20##2arg 580.45ms 1.72 array_concat_VARCHAR_20##3arg 749.82ms 1.33 array_concat_VARCHAR_20##4arg 1.00s 999.14m array_concat_VARCHAR_40##2arg 1.15s 867.18m array_concat_VARCHAR_40##3arg 1.83s 545.75m array_concat_VARCHAR_40##4arg 2.15s 464.43m array_concat_VARCHAR_5##2arg 101.89ms 9.81 array_concat_VARCHAR_5##3arg 139.85ms 7.15 array_concat_VARCHAR_5##4arg 185.80ms 5.38 ``` Differential Revision: D50957600
913204e
to
d955ab7
Compare
This pull request was exported from Phabricator. Differential Revision: D50957600 |
facebookincubator#7395) Summary: Before: ``` array_concat_VARCHAR_10##2arg 652.44ms 1.53 array_concat_VARCHAR_10##3arg 958.59ms 1.04 array_concat_VARCHAR_10##4arg 1.26s 790.86m array_concat_VARCHAR_20##2arg 1.67s 598.25m array_concat_VARCHAR_20##3arg 2.22s 449.48m array_concat_VARCHAR_20##4arg 2.82s 355.01m array_concat_VARCHAR_40##2arg 2.83s 353.24m array_concat_VARCHAR_40##3arg 4.98s 200.99m array_concat_VARCHAR_40##4arg 7.03s 142.22m array_concat_VARCHAR_5##2arg 290.04ms 3.45 array_concat_VARCHAR_5##3arg 438.06ms 2.28 array_concat_VARCHAR_5##4arg 584.20ms 1.71 ```` After: ``` ============================================================================ [...]hmarks/ExpressionBenchmarkBuilder.cpp relative time/iter iters/s ============================================================================ array_concat_VARCHAR_10##2arg 228.69ms 4.37 array_concat_VARCHAR_10##3arg 305.58ms 3.27 array_concat_VARCHAR_10##4arg 392.84ms 2.55 array_concat_VARCHAR_20##2arg 580.45ms 1.72 array_concat_VARCHAR_20##3arg 749.82ms 1.33 array_concat_VARCHAR_20##4arg 1.00s 999.14m array_concat_VARCHAR_40##2arg 1.15s 867.18m array_concat_VARCHAR_40##3arg 1.83s 545.75m array_concat_VARCHAR_40##4arg 2.15s 464.43m array_concat_VARCHAR_5##2arg 101.89ms 9.81 array_concat_VARCHAR_5##3arg 139.85ms 7.15 array_concat_VARCHAR_5##4arg 185.80ms 5.38 ``` Differential Revision: D50957600
d955ab7
to
8897746
Compare
This pull request was exported from Phabricator. Differential Revision: D50957600 |
facebookincubator#7395) Summary: Before: ``` array_concat_VARCHAR_10##2arg 652.44ms 1.53 array_concat_VARCHAR_10##3arg 958.59ms 1.04 array_concat_VARCHAR_10##4arg 1.26s 790.86m array_concat_VARCHAR_20##2arg 1.67s 598.25m array_concat_VARCHAR_20##3arg 2.22s 449.48m array_concat_VARCHAR_20##4arg 2.82s 355.01m array_concat_VARCHAR_40##2arg 2.83s 353.24m array_concat_VARCHAR_40##3arg 4.98s 200.99m array_concat_VARCHAR_40##4arg 7.03s 142.22m array_concat_VARCHAR_5##2arg 290.04ms 3.45 array_concat_VARCHAR_5##3arg 438.06ms 2.28 array_concat_VARCHAR_5##4arg 584.20ms 1.71 ```` After: ``` ============================================================================ [...]hmarks/ExpressionBenchmarkBuilder.cpp relative time/iter iters/s ============================================================================ array_concat_VARCHAR_10##2arg 360.60ms 2.77 array_concat_VARCHAR_10##3arg 443.43ms 2.26 array_concat_VARCHAR_10##4arg 549.27ms 1.82 array_concat_VARCHAR_20##2arg 595.89ms 1.68 array_concat_VARCHAR_20##3arg 771.17ms 1.30 array_concat_VARCHAR_20##4arg 977.47ms 1.02 array_concat_VARCHAR_40##2arg 879.40ms 1.14 array_concat_VARCHAR_40##3arg 1.38s 725.43m array_concat_VARCHAR_40##4arg 1.79s 557.91m array_concat_VARCHAR_5##2arg 170.32ms 5.87 array_concat_VARCHAR_5##3arg 212.43ms 4.71 array_concat_VARCHAR_5##4arg 271.83ms 3.68 ``` Differential Revision: D50957600
8897746
to
26f59ba
Compare
This pull request was exported from Phabricator. Differential Revision: D50957600 |
…or#7395) Summary: Before: ``` array_concat_VARCHAR_10##2arg 652.44ms 1.53 array_concat_VARCHAR_10##3arg 958.59ms 1.04 array_concat_VARCHAR_10##4arg 1.26s 790.86m array_concat_VARCHAR_20##2arg 1.67s 598.25m array_concat_VARCHAR_20##3arg 2.22s 449.48m array_concat_VARCHAR_20##4arg 2.82s 355.01m array_concat_VARCHAR_40##2arg 2.83s 353.24m array_concat_VARCHAR_40##3arg 4.98s 200.99m array_concat_VARCHAR_40##4arg 7.03s 142.22m array_concat_VARCHAR_5##2arg 290.04ms 3.45 array_concat_VARCHAR_5##3arg 438.06ms 2.28 array_concat_VARCHAR_5##4arg 584.20ms 1.71 ```` After: ``` ============================================================================ [...]hmarks/ExpressionBenchmarkBuilder.cpp relative time/iter iters/s ============================================================================ array_concat_VARCHAR_10##2arg 360.60ms 2.77 array_concat_VARCHAR_10##3arg 443.43ms 2.26 array_concat_VARCHAR_10##4arg 549.27ms 1.82 array_concat_VARCHAR_20##2arg 595.89ms 1.68 array_concat_VARCHAR_20##3arg 771.17ms 1.30 array_concat_VARCHAR_20##4arg 977.47ms 1.02 array_concat_VARCHAR_40##2arg 879.40ms 1.14 array_concat_VARCHAR_40##3arg 1.38s 725.43m array_concat_VARCHAR_40##4arg 1.79s 557.91m array_concat_VARCHAR_5##2arg 170.32ms 5.87 array_concat_VARCHAR_5##3arg 212.43ms 4.71 array_concat_VARCHAR_5##4arg 271.83ms 3.68 ``` Reviewed By: mbasmanova Differential Revision: D50957600
26f59ba
to
8eb37fe
Compare
This pull request was exported from Phabricator. Differential Revision: D50957600 |
…bookincubator#7393) Summary: Optimize ArrayConcatFunction for primitives, similar to what we do for registerArrayRemoveFunctions and registerArrayTrimFunctions. Note: we can further optimize this by adding fast path for strings and add a no copy version for that. Note: there are also still several functions that uses add_items() and do not have such fast path we shall optimize those also. Follow up will address the points above. before: ``` ============================================================================ [...]hmarks/ExpressionBenchmarkBuilder.cpp relative time/iter iters/s ============================================================================ array_concat_BOOLEAN_10##2arg 737.98ms 1.36 array_concat_BOOLEAN_10##3arg 1.14s 874.37m array_concat_BOOLEAN_10##4arg 1.50s 666.55m array_concat_BOOLEAN_20##2arg 1.58s 631.44m array_concat_BOOLEAN_20##3arg 2.33s 428.92m array_concat_BOOLEAN_20##4arg 3.22s 310.71m array_concat_BOOLEAN_40##2arg 3.07s 325.76m array_concat_BOOLEAN_40##3arg 4.75s 210.37m array_concat_BOOLEAN_40##4arg 6.32s 158.26m array_concat_BOOLEAN_5##2arg 451.47ms 2.21 array_concat_BOOLEAN_5##3arg 674.46ms 1.48 array_concat_BOOLEAN_5##4arg 859.56ms 1.16 array_concat_INTEGER_10##2arg 706.34ms 1.42 array_concat_INTEGER_10##3arg 1.09s 919.50m array_concat_INTEGER_10##4arg 1.47s 681.77m array_concat_INTEGER_20##2arg 1.40s 716.06m array_concat_INTEGER_20##3arg 2.02s 494.92m array_concat_INTEGER_20##4arg 2.73s 366.24m array_concat_INTEGER_40##2arg 2.68s 372.98m array_concat_INTEGER_40##3arg 3.98s 251.52m array_concat_INTEGER_40##4arg 5.40s 185.08m array_concat_INTEGER_5##2arg 382.78ms 2.61 array_concat_INTEGER_5##3arg 565.82ms 1.77 array_concat_INTEGER_5##4arg 758.75ms 1.32 array_concat_VARCHAR_10##2arg 1.24s 803.73m array_concat_VARCHAR_10##3arg 1.81s 552.59m array_concat_VARCHAR_10##4arg 2.31s 432.19m array_concat_VARCHAR_20##2arg 3.38s 295.55m array_concat_VARCHAR_20##3arg 4.53s 220.65m array_concat_VARCHAR_20##4arg 5.61s 178.32m array_concat_VARCHAR_40##2arg 5.69s 175.66m array_concat_VARCHAR_40##3arg 9.95s 100.53m array_concat_VARCHAR_40##4arg 11.99s 83.39m array_concat_VARCHAR_5##2arg 523.94ms 1.91 array_concat_VARCHAR_5##3arg 797.74ms 1.25 array_concat_VARCHAR_5##4arg 1.05s 954.15m ``` after: ``` ============================================================================ [...]hmarks/ExpressionBenchmarkBuilder.cpp relative time/iter iters/s ============================================================================ array_concat_BOOLEAN_10##2arg 190.24ms 5.26 array_concat_BOOLEAN_10##3arg 253.91ms 3.94 array_concat_BOOLEAN_10##4arg 387.03ms 2.58 array_concat_BOOLEAN_20##2arg 484.33ms 2.06 array_concat_BOOLEAN_20##3arg 766.60ms 1.30 array_concat_BOOLEAN_20##4arg 1.01s 991.11m array_concat_BOOLEAN_40##2arg 982.59ms 1.02 array_concat_BOOLEAN_40##3arg 1.36s 736.99m array_concat_BOOLEAN_40##4arg 1.74s 575.58m array_concat_BOOLEAN_5##2arg 139.40ms 7.17 array_concat_BOOLEAN_5##3arg 214.43ms 4.66 array_concat_BOOLEAN_5##4arg 273.88ms 3.65 array_concat_INTEGER_10##2arg 80.90ms 12.36 array_concat_INTEGER_10##3arg 110.80ms 9.03 array_concat_INTEGER_10##4arg 149.86ms 6.67 array_concat_INTEGER_20##2arg 167.08ms 5.99 array_concat_INTEGER_20##3arg 261.83ms 3.82 array_concat_INTEGER_20##4arg 319.26ms 3.13 array_concat_INTEGER_40##2arg 301.37ms 3.32 array_concat_INTEGER_40##3arg 422.25ms 2.37 array_concat_INTEGER_40##4arg 714.74ms 1.40 array_concat_INTEGER_5##2arg 60.61ms 16.50 array_concat_INTEGER_5##3arg 89.28ms 11.20 array_concat_INTEGER_5##4arg 117.99ms 8.48 array_concat_VARCHAR_10##2arg 652.44ms 1.53 array_concat_VARCHAR_10##3arg 958.59ms 1.04 array_concat_VARCHAR_10##4arg 1.26s 790.86m array_concat_VARCHAR_20##2arg 1.67s 598.25m array_concat_VARCHAR_20##3arg 2.22s 449.48m array_concat_VARCHAR_20##4arg 2.82s 355.01m array_concat_VARCHAR_40##2arg 2.83s 353.24m array_concat_VARCHAR_40##3arg 4.98s 200.99m array_concat_VARCHAR_40##4arg 7.03s 142.22m array_concat_VARCHAR_5##2arg 290.04ms 3.45 array_concat_VARCHAR_5##3arg 438.06ms 2.28 array_concat_VARCHAR_5##4arg 584.20ms 1.71 ``` Reviewed By: mbasmanova Differential Revision: D50948537
…or#7395) Summary: Before: ``` array_concat_VARCHAR_10##2arg 652.44ms 1.53 array_concat_VARCHAR_10##3arg 958.59ms 1.04 array_concat_VARCHAR_10##4arg 1.26s 790.86m array_concat_VARCHAR_20##2arg 1.67s 598.25m array_concat_VARCHAR_20##3arg 2.22s 449.48m array_concat_VARCHAR_20##4arg 2.82s 355.01m array_concat_VARCHAR_40##2arg 2.83s 353.24m array_concat_VARCHAR_40##3arg 4.98s 200.99m array_concat_VARCHAR_40##4arg 7.03s 142.22m array_concat_VARCHAR_5##2arg 290.04ms 3.45 array_concat_VARCHAR_5##3arg 438.06ms 2.28 array_concat_VARCHAR_5##4arg 584.20ms 1.71 ```` After: ``` ============================================================================ [...]hmarks/ExpressionBenchmarkBuilder.cpp relative time/iter iters/s ============================================================================ array_concat_VARCHAR_10##2arg 360.60ms 2.77 array_concat_VARCHAR_10##3arg 443.43ms 2.26 array_concat_VARCHAR_10##4arg 549.27ms 1.82 array_concat_VARCHAR_20##2arg 595.89ms 1.68 array_concat_VARCHAR_20##3arg 771.17ms 1.30 array_concat_VARCHAR_20##4arg 977.47ms 1.02 array_concat_VARCHAR_40##2arg 879.40ms 1.14 array_concat_VARCHAR_40##3arg 1.38s 725.43m array_concat_VARCHAR_40##4arg 1.79s 557.91m array_concat_VARCHAR_5##2arg 170.32ms 5.87 array_concat_VARCHAR_5##3arg 212.43ms 4.71 array_concat_VARCHAR_5##4arg 271.83ms 3.68 ``` Reviewed By: mbasmanova Differential Revision: D50957600
8eb37fe
to
e6bb37f
Compare
This pull request was exported from Phabricator. Differential Revision: D50957600 |
This pull request has been merged in 26a0d2a. |
Summary:
Before:
After:
Differential Revision: D50957600