[ https://issues.apache.org/jira/browse/HIVE-24736?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ádám Szita resolved HIVE-24736. ------------------------------- Fix Version/s: 4.0.0 Resolution: Fixed Committed to master, thanks reviewing [~pvary] > Make buffer tracking in LLAP cache with BP wrapper more accurate > ---------------------------------------------------------------- > > Key: HIVE-24736 > URL: https://issues.apache.org/jira/browse/HIVE-24736 > Project: Hive > Issue Type: Improvement > Components: llap > Reporter: Ádám Szita > Assignee: Ádám Szita > Priority: Major > Labels: pull-request-available > Fix For: 4.0.0 > > Time Spent: 2h > Remaining Estimate: 0h > > HIVE-22492 has introduced threadlocal buffers in which LlapCachableBuffer > instances are stored before entering LRFU's heap - so that lock contention is > eased up. > This is a nice performance improvement, but comes at the cost of losing the > exact accounting of llap buffer instances - e.g. if user gives a purge > command, not all the cache space is free'd up as one'd expect because purge > only considers buffers that the policy knows about. In this case we'd see in > LLAP's iomem servlet that the LRFU policy is empty, but a table may still > have the full content loaded. > Also, if we use text based tables, during cache load, a set of -OrcEncode > threads are used that are ephemeral in nature. Attaching buffers to these > threads' thread local structures are ultimately lost. In an edge case we > could load lots of data into the cache by reading in many distinct smaller > text tables, whose buffers never reach LRFU policy, and hence cache hit ratio > will be suffering as a consequence (memory manager will give up asking LRFU > to evict, and will free up random buffers). > I propose we try and track the amount of data stored in the BP wrapper > threadlocals, and flush them into the heap as a first step of a purge > request. This will enhance supportability. > We should also replace the ephemeral OrcEncode threads with a thread pool, > that could actually serve as small performance improvement on its own by > saving time and memory to deal with thread lifecycle management. -- This message was sent by Atlassian Jira (v8.3.4#803005)