[ 
https://issues.apache.org/jira/browse/HIVE-19820?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16534208#comment-16534208
 ] 

Sergey Shelukhin commented on HIVE-19820:
-----------------------------------------

So after fixing that, the next issue not covered by the new scheme is actually 
that analyze should actually be able to rewrite invalid stats (duh), whereas 
the new scheme doesn't allow it.
At the same time if parallel inserts are present, analyze should not mark stats 
as valid... it's easy to tell apart the cases where writeID is set, but it's 
not so easy to tell apart the cases where someone just unsets the flag without 
having a write ID. Then we come back and we don't know if the flag was unset 
because stats were invalid before analyze and we should update stats, or 
whether the flag was unset by some silly parallel operation (could be anything 
from truncate to simply an insert with auto-update disabled by hand), so our 
analyze is actually moot.
In the previous scheme having the whole BLOB in the table solved this because 
the blob was validated on read side and would trivially be marked as invalid.

I think I know how to solve this (analyze would update stats in the beginning 
to say they are valid, and to its own uncommitted write ID), but I'm not sure 
yet it will cover all the cases and what races are possible. 


> add ACID stats support to background stats updater
> --------------------------------------------------
>
>                 Key: HIVE-19820
>                 URL: https://issues.apache.org/jira/browse/HIVE-19820
>             Project: Hive
>          Issue Type: Sub-task
>            Reporter: Sergey Shelukhin
>            Assignee: Sergey Shelukhin
>            Priority: Major
>         Attachments: HIVE-19820.01-master-txnstats.patch, 
> HIVE-19820.02-master-txnstats.patch, HIVE-19820.03-master-txnstats.patch, 
> HIVE-19820.04-master-txnstats.patch
>
>
> Follow-up from HIVE-19418.
> Right now it checks whether stats are valid in an old-fashioned way... and 
> also gets ACID state, and discards it without using.
> When ACID stats are implemented, ACID state needs to be used to do 
> version-aware valid stats checks.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to