You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Panagiotis Garefalakis (Jira)" <ji...@apache.org> on 2020/01/15 16:57:00 UTC

[jira] [Created] (HIVE-22731) Use MapJoin hashtables for row level filtering

Panagiotis Garefalakis created HIVE-22731:
---------------------------------------------

             Summary: Use MapJoin hashtables for row level filtering
                 Key: HIVE-22731
                 URL: https://issues.apache.org/jira/browse/HIVE-22731
             Project: Hive
          Issue Type: Bug
          Components: Hive, llap
            Reporter: Panagiotis Garefalakis
            Assignee: Panagiotis Garefalakis
         Attachments: decode_time_bars.pdf

Currently, RecordReaders such as ORC support filtering at coarser-grained levels, namely: File, Stripe (64 to 256mb), and Row group (10k row) level. They only filter sets of rows if they can guarantee that none of the rows can pass a filter (usually given as searchable argument).

However, a significant amount of time can be spend deconding rows with multiple columns that are not even used in the final result. See figure where original is what happens today and in LazyDecode we skip decoding rows that do not much the key.

To enable a more fine-grained filtering in the particular case of a MapJoin we could utilize the key HashTable created from the smaller table to skip deserializing row columns at the larger table that do not match any key and thus save CPU time. 
This Jira investigates this direction. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)