[
https://issues.apache.org/jira/browse/HIVE-23843?focusedWorklogId=462780&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-462780
]
ASF GitHub Bot logged work on HIVE-23843:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 24/Jul/20 01:22
Start Date: 24/Jul/20 01:22
Worklog Time Spent: 10m
Work Description: rbalamohan commented on a change in pull request #1250:
URL: https://github.com/apache/hive/pull/1250#discussion_r459811176
##########
File path:
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java
##########
@@ -561,17 +590,25 @@ private void flush(boolean all) throws HiveException {
maxHashTblMemory/1024/1024,
gcCanary.get() == null ? "dead" : "alive"));
}
+ int avgAccess = computeAvgAccess();
/* Iterate the global (keywrapper,aggregationbuffers) map and emit
a row for each key */
Iterator<Map.Entry<KeyWrapper, VectorAggregationBufferRow>> iter =
mapKeysAggregationBuffers.entrySet().iterator();
while(iter.hasNext()) {
Map.Entry<KeyWrapper, VectorAggregationBufferRow> pair = iter.next();
+ if (!all && avgAccess >= 1) {
+ // Retain entries when access pattern is > than average access
+ if (pair.getValue().getAccessCount() > avgAccess) {
Review comment:
>> keys could retain their places for a long time because of very old
cache hits - and they will keep their place in the cache
This depends on incoming data and would be the worst case scenario similar
to earlier implementation. However, there is a corner case (again depending on
data) that large number of entries in the map exceeds the average threshold
which could prevent 10% flushing limit. Adding the reset would help preventing
this. I will create a follow up ticket on this.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 462780)
Time Spent: 2h 20m (was: 2h 10m)
> Improve key evictions in VectorGroupByOperator
> ----------------------------------------------
>
> Key: HIVE-23843
> URL: https://issues.apache.org/jira/browse/HIVE-23843
> Project: Hive
> Issue Type: Improvement
> Components: Hive
> Reporter: Rajesh Balamohan
> Assignee: Rajesh Balamohan
> Priority: Major
> Labels: pull-request-available
> Fix For: 4.0.0
>
> Time Spent: 2h 20m
> Remaining Estimate: 0h
>
> Keys in {{mapKeysAggregationBuffers}} are evicted in random order. Tasks also
> get into GC issues when multiple keys are involved in groupbys. It would be
> good to provide an option to have LRU based eviction for
> mapKeysAggregationBuffers.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)