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

Eugene Koifman reassigned HIVE-16564:
-------------------------------------


> StreamingAPI is locking too much?
> ---------------------------------
>
>                 Key: HIVE-16564
>                 URL: https://issues.apache.org/jira/browse/HIVE-16564
>             Project: Hive
>          Issue Type: Bug
>          Components: HCatalog, Transactions
>    Affects Versions: 1.0.0
>            Reporter: Eugene Koifman
>            Assignee: Eugene Koifman
>
> Currently _TransactionBatchImpl.beginNextTransactionImpl()_ acquires Shared 
> locks for each Transaction in the batch.  
> Especially under high load this creates pressure on the LockManager (i.e. 
> Metastore) and degrades performance of Ingest itself.
> Because all transactions in a batch write to the same physical file and the 
> fact that for Acid tables (which are required for Streaming Ingest) shared 
> locks only protect against Exclusive locks (like drop table), 
> acquiring/releasing locks doesn't for each txn doesn't achieve much.
> One possibility to acquire all locks (i.e. for all txns) at the time the 
> batch is created (same as is done for openTxn() for all txns in the batch).  
> Locks for each txn in the batch will be released automatically when commit is 
> called for the respective txn.
> Alternatively, don't acquire any locks - this means someone may drop a table 
> while it's written to but using locks here doesn't buy much.  Say a Drop 
> request is issued when a write is in progress.  It will block until the write 
> releases it's lock and execute immediately after that.  Thus none of the data 
> of that write is visible for any meaningful length of time anyway.
> Allow a "meta lock" - a lock not associated with any specific txn, that is 
> held for the duration of the TransactionBatch.  This sort of breaks the model 
> (especially since HIVE-12636).  Perhaps each batch can open one "extra" txn 
> for internal purposes, just to acquire this "meta lock".  No data will ever 
> be tagged with this "extra" txn.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to