You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Gopal V (JIRA)" <ji...@apache.org> on 2016/03/08 05:31:40 UTC

[jira] [Resolved] (HIVE-13225) LLAP: Stripe metadata cache holds unreachable keys

     [ https://issues.apache.org/jira/browse/HIVE-13225?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gopal V resolved HIVE-13225.
----------------------------
    Resolution: Invalid

Cache issue seems to be entirely related to the linked patch - back to inspecting that patch for cache hit-rate metrics.

> LLAP: Stripe metadata cache holds unreachable keys 
> ---------------------------------------------------
>
>                 Key: HIVE-13225
>                 URL: https://issues.apache.org/jira/browse/HIVE-13225
>             Project: Hive
>          Issue Type: Bug
>          Components: llap
>    Affects Versions: 2.0.0, 2.1.0
>            Reporter: Gopal V
>            Assignee: Gopal V
>
> The Hash inspection reported that there were some unreachable keys in the metadata hashmap.
> {code}
> for (...) {
>       if (hasFileId && metadataCache != null) {
>         stripeKey.stripeIx = stripeIx;
>         value = metadataCache.getStripeMetadata(stripeKey);
>       }
>       if (value == null || !value.hasAllIndexes(globalInc)) {
>           if (hasFileId && metadataCache != null) {
>             value = metadataCache.putStripeMetadata(value);
> ...
> }
> {code}
> Means that the hashCode of the key changes after the put if there are > 1 stripes in the file.
> {code}
>   public OrcStripeMetadata putStripeMetadata(OrcStripeMetadata metaData) {
> ....
>     OrcStripeMetadata val = stripeMetadata.putIfAbsent(metaData.getKey(), metaData);
> {code}
> needs to make a copy of the Key, if it needs to preserve hash consistency.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)