Skip to content

[Rust] [DataFusion] Performance degredation after removing specialization #26430

Description

@asfimport

The following commit caused a pretty large drop in performance for the TPC-H benchmark running against a SF=100 data set.

29e9d13481ea6acc3f74cda108ed34ef8a411ba2isthefirstbadcommitcommit29e9d13481ea6acc3f74cda108ed34ef8a411ba2Author: JorgeC. Leitao <jorgecarleitao@gmail.com>
Date: SunOct1821:05:482020 +0200ARROW-10002: [Rust] RemovetraitspecializationfromarrowcrateThisPRremovestraitspecializationbyleveragingthecompilertoremovetrivial `if` statements.
Iverifiedthattheassemblycodewasthesameina [simpleexample](https://rust.godbolt.org/z/qrcW8W). I do not know if this generalizes to our use-case, but I suspect so as LLVM is (hopefully) removing trivial branches like `if a != a`.Thechange `get_data_type()` to `DATA_TYPE` isnotnecessary. Ididitbeforerealizingthis. IMOitmakesitmoreexplicitthatthisisnotafunction, butaconstant, butwecanrevertit.
Closes #8485fromjorgecarleitao/simp_typesAuthored-by: JorgeC. Leitao <jorgecarleitao@gmail.com>
Signed-off-by: NevilleDipale <nevilledips@gmail.com>:040000040000cbdaf3c9e924ec0e51d178df73169956b2bf723f87c79e17378196b61dce9c5373e008ee94620d58Mrust

Benchmark command:

cargorun --release --bintpch -- --iterations3 --path /mnt/tpch/parquet-100GB --formatparquet --query1 --batch-size4096 --concurrency24

Before this commit:

Query1iteration0took13629msQuery1iteration1took13450msQuery1iteration2took13465ms

After this commit:

Query1iteration0took18586msQuery1iteration1took18297msQuery1iteration2took18253ms

Reporter: Andy Grove / @andygrove
Assignee: Jorge Leitão / @jorgecarleitao

PRs and other links:

Note: This issue was originally created as ARROW-10453. Please see the migration documentation for further details.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions