[ https://issues.apache.org/jira/browse/TEPHRA-270?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16458839#comment-16458839 ] ASF GitHub Bot commented on TEPHRA-270: --------------------------------------- Github user poornachandra commented on a diff in the pull request: https://github.com/apache/incubator-tephra/pull/72#discussion_r185069321 --- Diff: tephra-core/src/main/java/org/apache/tephra/coprocessor/TransactionStateCache.java --- @@ -78,6 +78,7 @@ protected void startUp() throws Exception { protected void shutDown() throws Exception { if (refreshService != null) { refreshService.interrupt(); + refreshService.join(1000); --- End diff -- `Thread.join(long millis)` does not throw an exception on timeout being reached. It only throws `IllegalArgumentException` when timeout is negative or `InterruptedException`. Are you talking about handling the `InterruptedException`? > Avoid transaction state cache refresh on co-procesor startup > ------------------------------------------------------------ > > Key: TEPHRA-270 > URL: https://issues.apache.org/jira/browse/TEPHRA-270 > Project: Tephra > Issue Type: Improvement > Components: core > Reporter: Poorna Chandra > Assignee: Poorna Chandra > Priority: Major > Fix For: 0.14.0-incubating > > > Transaction state cache, on startup, refreshes the transaction snapshot from HDFS. The transaction state cache startup is called during HBase co-processor startup. The refresh of the transaction snapshot can block, thus blocking the co-processor startup. > The subsequent transaction snapshot refreshes happen in the background. Also - there is no guarantee that a snapshot will be present during the refresh on startup. Hence it is okay not to refresh the snapshot during snapshot, but do it in background. -- This message was sent by Atlassian JIRA (v7.6.3#76005)