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

Eugene Koifman commented on HIVE-13725:
---------------------------------------

TransactionBatchImpl has "this.heartbeaterMSClient = msClient;"  this looks 
wrong

In DbTxnManager, instead of 
bq. private static int heartbeaterMSClientCount = 0;
bq. private static Object heartBeaterClientCountLock = new Object();

can heartbeaterMSClientCount be AtomicInteger?

I also think that doing "LOG.warn("The number of hearbeater metastore client 
has ex..." from synchronized block is suboptimal.
I would also modify the message to include both current client count and thread 
count.  I think it would be more useful.


> ACID: Streaming API should synchronize calls when multiple threads use the 
> same endpoint
> ----------------------------------------------------------------------------------------
>
>                 Key: HIVE-13725
>                 URL: https://issues.apache.org/jira/browse/HIVE-13725
>             Project: Hive
>          Issue Type: Bug
>          Components: HCatalog, Metastore, Transactions
>    Affects Versions: 1.2.1, 2.0.0
>            Reporter: Vaibhav Gumashta
>            Assignee: Vaibhav Gumashta
>            Priority: Critical
>              Labels: ACID, Streaming
>         Attachments: HIVE-13725.1.patch, HIVE-13725.2.patch, 
> HIVE-13725.3.patch, HIVE-13725.4.patch
>
>
> Currently, the streaming endpoint creates a metastore client which gets used 
> for RPC. The client itself is not internally thread safe. Therefore, the API 
> methods should provide the relevant synchronization so that the methods can 
> be called from different threads. A sample use case is as follows:
> 1. Thread 1 creates a streaming endpoint and opens a txn batch.
> 2. Thread 2 heartbeats the txn batch.
> With the current impl, this can result in an "out of sequence response", 
> since the response of the calls in thread1 might end up going to thread2 and 
> vice-versa.



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

Reply via email to