> On May 16, 2016, 8:38 p.m., Ashutosh Chauhan wrote:
> > metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java, 
> > lines 698-699
> > <https://reviews.apache.org/r/47353/diff/1/?file=1382994#file1382994line698>
> >
> >     I am referring to deleteTableColumnStatistics() here and subsequent 
> > updateColumnStatistics() in the following if () block. Both of these are 
> > independent calls which happens in their own transactions, which leaves a 
> > small window of inconsistent state.

Actually all of those calls will be in one transaction. The openTransaction() 
and commitTrasanction() in ObjectStore.java use openTrasactionCalls to manage 
trsanction. We will not open a new transaction if the call is already in a 
transaction. Not sure if I misunderstood anything.

See below:

  public boolean openTransaction() {
    openTrasactionCalls++;
    if (openTrasactionCalls == 1) {
      currentTransaction = pm.currentTransaction();
      currentTransaction.begin();
      transactionStatus = TXN_STATUS.OPEN;
    } else {
      // openTransactionCalls > 1 means this is an interior transaction
      // We should already have a transaction created that is active.


- Aihua


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/47353/#review133433
-----------------------------------------------------------


On May 13, 2016, 7:17 p.m., Aihua Xu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/47353/
> -----------------------------------------------------------
> 
> (Updated May 13, 2016, 7:17 p.m.)
> 
> 
> Review request for hive and Chaoyu Tang.
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> HIVE-13616: Investigate renaming a table without invalidating the column stats
> 
> 
> Diffs
> -----
> 
>   metastore/src/java/org/apache/hadoop/hive/metastore/HiveAlterHandler.java 
> 0652b9db1a4224262611ff9258e871647442cfeb 
>   ql/src/test/queries/clientpositive/rename_table_update_column_stats.q 
> PRE-CREATION 
>   ql/src/test/results/clientpositive/rename_table_update_column_stats.q.out 
> PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/47353/diff/
> 
> 
> Testing
> -------
> 
> Tests have been run and the failed tests don't seem to be related. 
> 
> To carry over the column stats during renaming the table, the patch 
> 1. Save affected column stats
> 2. Rename the table
> 3. Write the saved column stats for the new table.
> 
> In this order, column stats will find the foreign key when writing in 3).
> 
> 
> Thanks,
> 
> Aihua Xu
> 
>

Reply via email to