abstractdog commented on PR #6780: URL: https://github.com/apache/hive/pull/6780#issuecomment-5678734768
Update on this branch: even with the batch-shaped encode path enabled by default and split-boundary tuning applied (tez.grouping.min-size = max-size = 32 MB, split-waves = 1.0), the LLAP SerDe cache doesn't get us to non-cached performance for TPC-DS 10TB Q1 on Parquet. Our perf measurements run 3 iterations; over those 3 runs the Q1 cache hit ratio climbs from 33 % → 42 % → 50 % (was plateauing at ~44 % before the split-size fix). The ratio keeps climbing beyond that if more iterations are run, but never approaches 100 % because: 1. Q1's self-join over store_returns generates two independent scans; each has its own DPP + Tez grouping pass, so the two scans produce different (offset, length) tuples per file. HostAffinitySplitLocationProvider then routes them to different daemons and neither daemon can serve both. 2. HostAffinitySplitLocationProvider is a soft preference — under executor-slot contention (800 concurrent tasks vs 120 slots) some tasks are displaced, admitting stripes on the wrong daemon that later requests never find. At the 50 % hit rate we see after 3 iterations, end-to-end Q1 latency doesn't match a plain non-cached read from S3. The encode/decode overhead on this path eats the gain from the hits. Parking this — no more time on the SerDe-encode path for Parquet. This can go in to simply fix a silent correctness problem. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
