[
https://issues.apache.org/jira/browse/PHOENIX-4021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16090056#comment-16090056
]
Hudson commented on PHOENIX-4021:
---------------------------------
FAILURE: Integrated in Jenkins build Phoenix-master #1691 (See
[https://builds.apache.org/job/Phoenix-master/1691/])
PHOENIX-4021 - Remove CachingHTableFactory (gjacoby: rev
b2ab339a1690384c89d928c9dd3244d7518a8033)
* (edit)
phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestIndexWriter.java
* (edit)
phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/ParallelWriterIndexCommitter.java
* (edit)
phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleIndexWriter.java
* (delete)
phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestCachingHTableFactory.java
* (edit)
phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleWriterIndexCommitter.java
* (edit)
phoenix-core/src/main/java/org/apache/phoenix/hbase/index/write/recovery/TrackingParallelWriterIndexCommitter.java
* (delete)
phoenix-core/src/main/java/org/apache/phoenix/hbase/index/table/CachingHTableFactory.java
> Remove CachingHTableFactory
> ---------------------------
>
> Key: PHOENIX-4021
> URL: https://issues.apache.org/jira/browse/PHOENIX-4021
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.11.0
> Reporter: Geoffrey Jacoby
> Assignee: Geoffrey Jacoby
> Labels: globalMutableSecondaryIndex
> Fix For: 4.12.0
>
> Attachments: PHOENIX-4021.patch
>
>
> CachingHTableFactory is used as a performance optimization when writing to
> global indexes so that HTable instances are cached and later automatically
> cleaned up, rather than instantiated each time we write to an index.
> This should be removed for two reasons:
> 1. It opens us up to race conditions, because HTables aren't threadsafe, but
> CachingHTableFactory doesn't guard against two threads both grabbing the same
> HTable and using it simultaneously. Since all ops going through a region
> share the same IndexWriter and ParallelWriterIndexCommitter, and hence the
> same CachingHTableFactory, that means separate operations can both be holding
> the same HTable.
> 2. According to discussion on PHOENIX-3159, and offline discussions I've had
> with [~apurtell], HBase 1.x and above make creating throwaway HTable
> instances cheap so the caching is no longer needed.
> For 4.x-HBase-1.x and master, we should remove CachingHTableFactory, and for
> 4.x-HBase-0.98, we should either get rid of it (if it's not too much of a
> perf hit) or at least make it threadsafe.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)