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

Peter Vary commented on HIVE-26882:
-----------------------------------

[~lirui]: Thanks for collecting the possibilities.
I am not comfortable with the 2nd solution. Could we move forward with 
something like this:
{code}
DatabaseProduct dbProduct = jdbcResource.getDatabaseProduct();
if (dbProduct.dbType.MYSQL) {
  connection = getConnection(Connection.TRANSACTION_SERIALIZABLE);
} else {
  connection = getConnection(Connection.TRANSACTION_REPEATABLE_READ);
}
{code}

Even better, if we could test it out for the different supported databases, and 
set the transaction insolation level correctly for all (I still kind of 
remember trying to find an Oracle 11 installation, but....)

> Allow transactional check of Table parameter before altering the Table
> ----------------------------------------------------------------------
>
>                 Key: HIVE-26882
>                 URL: https://issues.apache.org/jira/browse/HIVE-26882
>             Project: Hive
>          Issue Type: Improvement
>          Components: Standalone Metastore
>            Reporter: Peter Vary
>            Assignee: Peter Vary
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 2.3.10, 4.0.0-beta-1
>
>          Time Spent: 4h 40m
>  Remaining Estimate: 0h
>
> We should add the possibility to transactionally check if a Table parameter 
> is changed before altering the table in the HMS.
> This would provide an alternative, less error-prone and faster way to commit 
> an Iceberg table, as the Iceberg table currently needs to:
> - Create an exclusive lock
> - Get the table metadata to check if the current snapshot is not changed
> - Update the table metadata
> - Release the lock
> After the change these 4 HMS calls could be substituted with a single alter 
> table call.
> Also we could avoid cases where the locks are left hanging by failed processes



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to